@@ -4,7 +4,7 @@ module test_string_functions
4
4
use stdlib_error, only : check
5
5
use stdlib_string_type, only : string_type, assignment (= ), operator (==), &
6
6
to_lower, to_upper, to_title, to_sentence, reverse
7
- use stdlib_strings, only: slice, find, replace_all
7
+ use stdlib_strings, only: slice, find, replace_all, padl, padr
8
8
use stdlib_optval, only: optval
9
9
use stdlib_ascii, only : to_string
10
10
implicit none
@@ -378,6 +378,81 @@ subroutine test_replace_all
378
378
379
379
end subroutine test_replace_all
380
380
381
+ subroutine test_padl
382
+ type (string_type) :: test_string
383
+ character (len= :), allocatable :: test_char
384
+
385
+ test_string = " left pad this string"
386
+ test_char = " left pad this string "
387
+
388
+ ! output_length > len(string)
389
+ call check(padl(test_string, 25 , " #" ) == " #####left pad this string" , &
390
+ & ' padl: output_length > len(string), test_case 1' )
391
+ call check(padl(test_string, 22 , " $" ) == " $$left pad this string" , &
392
+ & ' padl: output_length > len(string), test_case 2' )
393
+ call check(padl(test_string, 23 ) == " left pad this string" , &
394
+ & ' padl: output_length > len(string), test_case 3' )
395
+ call check(padl(test_char, 26 ) == " left pad this string " , &
396
+ & ' padl: output_length > len(string), test_case 4' )
397
+ call check(padl(test_char, 26 , " &" ) == " && left pad this string " , &
398
+ & ' padl: output_length > len(string), test_case 5' )
399
+ call check(padl(" " , 10 , " !" ) == " !!!!!!!!!!" , &
400
+ & ' padl: output_length > len(string), test_case 6' )
401
+
402
+ ! output_length <= len(string)
403
+ call check(padl(test_string, 18 , " #" ) == " left pad this string" , &
404
+ & ' padl: output_length <= len(string), test_case 1' )
405
+ call check(padl(test_string, - 4 , " @" ) == " left pad this string" , &
406
+ & ' padl: output_length <= len(string), test_case 2' )
407
+ call check(padl(test_char, 20 , " 0" ) == " left pad this string " , &
408
+ & ' padl: output_length <= len(string), test_case 3' )
409
+ call check(padl(test_char, 17 ) == " left pad this string " , &
410
+ & ' padl: output_length <= len(string), test_case 4' )
411
+ call check(padl(" " , 0 , " !" ) == " " , &
412
+ & ' padl: output_length <= len(string), test_case 5' )
413
+ call check(padl(" " , - 12 , " !" ) == " " , &
414
+ & ' padl: output_length <= len(string), test_case 6' )
415
+
416
+ end subroutine test_padl
417
+
418
+ subroutine test_padr
419
+ type (string_type) :: test_string
420
+ character (len= :), allocatable :: test_char
421
+
422
+ test_string = " right pad this string"
423
+ test_char = " right pad this string "
424
+
425
+ ! output_length > len(string)
426
+ call check(padr(test_string, 25 , " #" ) == " right pad this string####" , &
427
+ & ' padr: output_length > len(string), test_case 1' )
428
+ call check(padr(test_string, 22 , " $" ) == " right pad this string$" , &
429
+ & ' padr: output_length > len(string), test_case 2' )
430
+ call check(padr(test_string, 24 ) == " right pad this string " , &
431
+ & ' padr: output_length > len(string), test_case 3' )
432
+ call check(padr(test_char, 27 ) == " right pad this string " , &
433
+ & ' padr: output_length > len(string), test_case 4' )
434
+ call check(padr(test_char, 27 , " &" ) == " right pad this string &&" , &
435
+ & ' padr: output_length > len(string), test_case 5' )
436
+ call check(padr(" " , 10 , " !" ) == " !!!!!!!!!!" , &
437
+ & ' padr: output_length > len(string), test_case 6' )
438
+
439
+ ! output_length <= len(string)
440
+ call check(padr(test_string, 18 , " #" ) == " right pad this string" , &
441
+ & ' padr: output_length <= len(string), test_case 1' )
442
+ call check(padr(test_string, - 4 , " @" ) == " right pad this string" , &
443
+ & ' padr: output_length <= len(string), test_case 2' )
444
+ call check(padr(test_char, 20 , " 0" ) == " right pad this string " , &
445
+ & ' padr: output_length <= len(string), test_case 3' )
446
+ call check(padr(test_char, 17 ) == " right pad this string " , &
447
+ & ' padr: output_length <= len(string), test_case 4' )
448
+ call check(padr(" " , 0 , " !" ) == " " , &
449
+ & ' padr: output_length <= len(string), test_case 5' )
450
+ call check(padr(" " , - 12 , " !" ) == " " , &
451
+ & ' padr: output_length <= len(string), test_case 6' )
452
+
453
+ end subroutine test_padr
454
+
455
+
381
456
end module test_string_functions
382
457
383
458
@@ -394,5 +469,7 @@ program tester
394
469
call test_slice_gen
395
470
call test_find
396
471
call test_replace_all
472
+ call test_padl
473
+ call test_padr
397
474
398
475
end program tester
0 commit comments