@@ -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
@@ -329,6 +329,81 @@ subroutine test_replace_all
329
329
330
330
end subroutine test_replace_all
331
331
332
+ subroutine test_padl
333
+ type (string_type) :: test_string
334
+ character (len= :), allocatable :: test_char
335
+
336
+ test_string = " left pad this string"
337
+ test_char = " left pad this string "
338
+
339
+ ! output_length > len(string)
340
+ call check(padl(test_string, 25 , " #" ) == " #####left pad this string" , &
341
+ & ' padl: output_length > len(string), test_case 1' )
342
+ call check(padl(test_string, 22 , " $" ) == " $$left pad this string" , &
343
+ & ' padl: output_length > len(string), test_case 2' )
344
+ call check(padl(test_string, 23 ) == " left pad this string" , &
345
+ & ' padl: output_length > len(string), test_case 3' )
346
+ call check(padl(test_char, 26 ) == " left pad this string " , &
347
+ & ' padl: output_length > len(string), test_case 4' )
348
+ call check(padl(test_char, 26 , " &" ) == " && left pad this string " , &
349
+ & ' padl: output_length > len(string), test_case 5' )
350
+ call check(padl(" " , 10 , " !" ) == " !!!!!!!!!!" , &
351
+ & ' padl: output_length > len(string), test_case 6' )
352
+
353
+ ! output_length <= len(string)
354
+ call check(padl(test_string, 18 , " #" ) == " left pad this string" , &
355
+ & ' padl: output_length <= len(string), test_case 1' )
356
+ call check(padl(test_string, - 4 , " @" ) == " left pad this string" , &
357
+ & ' padl: output_length <= len(string), test_case 2' )
358
+ call check(padl(test_char, 20 , " 0" ) == " left pad this string " , &
359
+ & ' padl: output_length <= len(string), test_case 3' )
360
+ call check(padl(test_char, 17 ) == " left pad this string " , &
361
+ & ' padl: output_length <= len(string), test_case 4' )
362
+ call check(padl(" " , 0 , " !" ) == " " , &
363
+ & ' padl: output_length <= len(string), test_case 5' )
364
+ call check(padl(" " , - 12 , " !" ) == " " , &
365
+ & ' padl: output_length <= len(string), test_case 6' )
366
+
367
+ end subroutine test_padl
368
+
369
+ subroutine test_padr
370
+ type (string_type) :: test_string
371
+ character (len= :), allocatable :: test_char
372
+
373
+ test_string = " right pad this string"
374
+ test_char = " right pad this string "
375
+
376
+ ! output_length > len(string)
377
+ call check(padr(test_string, 25 , " #" ) == " right pad this string####" , &
378
+ & ' padr: output_length > len(string), test_case 1' )
379
+ call check(padr(test_string, 22 , " $" ) == " right pad this string$" , &
380
+ & ' padr: output_length > len(string), test_case 2' )
381
+ call check(padr(test_string, 24 ) == " right pad this string " , &
382
+ & ' padr: output_length > len(string), test_case 3' )
383
+ call check(padr(test_char, 27 ) == " right pad this string " , &
384
+ & ' padr: output_length > len(string), test_case 4' )
385
+ call check(padr(test_char, 27 , " &" ) == " right pad this string &&" , &
386
+ & ' padr: output_length > len(string), test_case 5' )
387
+ call check(padr(" " , 10 , " !" ) == " !!!!!!!!!!" , &
388
+ & ' padr: output_length > len(string), test_case 6' )
389
+
390
+ ! output_length <= len(string)
391
+ call check(padr(test_string, 18 , " #" ) == " right pad this string" , &
392
+ & ' padr: output_length <= len(string), test_case 1' )
393
+ call check(padr(test_string, - 4 , " @" ) == " right pad this string" , &
394
+ & ' padr: output_length <= len(string), test_case 2' )
395
+ call check(padr(test_char, 20 , " 0" ) == " right pad this string " , &
396
+ & ' padr: output_length <= len(string), test_case 3' )
397
+ call check(padr(test_char, 17 ) == " right pad this string " , &
398
+ & ' padr: output_length <= len(string), test_case 4' )
399
+ call check(padr(" " , 0 , " !" ) == " " , &
400
+ & ' padr: output_length <= len(string), test_case 5' )
401
+ call check(padr(" " , - 12 , " !" ) == " " , &
402
+ & ' padr: output_length <= len(string), test_case 6' )
403
+
404
+ end subroutine test_padr
405
+
406
+
332
407
end module test_string_functions
333
408
334
409
@@ -345,5 +420,7 @@ program tester
345
420
call test_slice_gen
346
421
call test_find
347
422
call test_replace_all
423
+ call test_padl
424
+ call test_padr
348
425
349
426
end program tester
0 commit comments