22! Test the insertion routine
33!
44program test_insertion
5- use stdlib_stringlist
5+ use stdlib_stringlist, only: stringlist_type, fidx, bidx, stringlist_index_type, &
6+ & list_head, list_tail
7+ use stdlib_string_type, only: string_type, char
68
79 type (stringlist_type) :: list, second_list
810 character (len= 10 ), dimension (3 ) :: sarray
911
1012
11- call list% insert( 1 , " C" )
12- call list% insert( 1 , " B" )
13- call list% insert( 1 , " A" )
13+ call list% insert_at( fidx( 1 ) , " C" )
14+ call list% insert_at( fidx( 1 ) , " B" )
15+ call list% insert_at( fidx( 1 ) , " A" )
1416
1517 write (* ,* ) ' Expected: A, B, C (3)'
1618 call print_list( list )
1719
18- call list% insert( 6 , " D" )
20+ call list% insert_at( fidx( 1 ) , " D" )
1921
2022 write (* ,* ) ' Expected: A, B, C, D (4)'
2123 call print_list( list )
2224
23- call list% insert( - 1 , " X" )
25+ call list% insert_at( bidx( 1 ) , " X" )
2426
2527 write (* ,* ) ' Expected: X, A, B, C, D (5)'
2628 call print_list( list )
2729
28- call list% insert( list_end -1 , " Y" )
30+ call list% insert_at( bidx( 2 ) , " Y" )
2931
3032 write (* ,* ) ' Expected: X, A, B, Y, C, D (6)'
3133 call print_list( list )
3234
33- call list% insert( list_end +1 , " Z" )
35+ call list% insert_at( list_tail , " Z" )
3436
3537 write (* ,* ) ' Expected: X, A, B, Y, C, D, Z (7)'
3638 call print_list( list )
@@ -40,15 +42,15 @@ program test_insertion
4042 !
4143 call renew_list( list )
4244
43- call second_list% insert( 1 , " SecondA" )
44- call second_list% insert( 2 , " SecondB" )
45+ call second_list% insert_at( fidx( 1 ) , " SecondA" )
46+ call second_list% insert_at( fidx( 2 ) , " SecondB" )
4547
46- call list% insert( 2 , second_list )
48+ call list% insert_at( fidx( 2 ) , second_list )
4749 call print_list( list )
4850
4951 call renew_list( list )
5052
51- call list% insert( list_after_end , second_list )
53+ call list% insert_at( list_tail , second_list )
5254 call print_list( list )
5355
5456 !
@@ -60,31 +62,32 @@ program test_insertion
6062 sarray(2 ) = " ThirdB"
6163 sarray(3 ) = " ThirdC"
6264
63- call list% insert ( list_head, sarray )
65+ call list% insert_at ( list_head, sarray )
6466 call print_list( list )
6567
6668 call renew_list( list )
6769
68- call list% insert( 2 , sarray )
70+ call list% insert_at( fidx( 2 ) , sarray )
6971 call print_list( list )
7072
7173contains
7274subroutine renew_list ( list )
7375 type (stringlist_type), intent (inout ) :: list
7476
75- call list% destroy
76- call list% insert( 1 , " A" )
77- call list% insert( 2 , " B" )
78- call list% insert( 3 , " C" )
77+ call list% destroy()
78+ call list% insert_at( fidx( 1 ) , " A" )
79+ call list% insert_at( fidx( 2 ) , " B" )
80+ call list% insert_at( fidx( 3 ) , " C" )
7981end subroutine renew_list
8082
8183subroutine print_list ( list )
8284 type (stringlist_type), intent (in ) :: list
85+ integer :: i
8386
84- write (* ,* ) list% length ()
87+ write (* ,* ) list% len ()
8588
86- do i = 1 ,list% length ()
87- write (* ,* ) ' >' , list% get(i ), ' <'
89+ do i = 1 , list% len ()
90+ write (* ,* ) ' >' , char ( list% get( fidx(i) ) ), ' <'
8891 enddo
8992end subroutine print_list
9093
0 commit comments