11module string_test_m
2- use sourcery_m, only : test_t, test_result_t, string_t
2+ use sourcery_m, only : test_t, test_result_t, string_t, operator (.cat.)
33 implicit none
44
55 private
@@ -23,20 +23,22 @@ function results() result(test_results)
2323
2424 test_results = [ &
2525 test_result_t(" is_allocated() result .true. if & only if the string_t component(s) is/are allocated" , check_allocation()), &
26+ test_result_t(' supporting operator(==) for string_t and character operands' , supports_equivalence_operator()), &
27+ test_result_t(' supporting operator(/=) for string_t and character operands' , supports_non_equivalence_operator()), &
28+ test_result_t(' supporting operator(//) for string_t and character operands' , supports_concatenation_operator()), &
29+ test_result_t(' assigning a string_t object to a character variable' , assigns_string_t_to_character()), &
30+ test_result_t(' assigning a character variable to a string_t object' , assigns_character_to_string_t()), &
31+ test_result_t(' constructing from a default integer' , constructs_from_default_integer()), &
32+ test_result_t(' constructing from a real value' , constructs_from_real()), &
33+ test_result_t(' supporting unary operator(.cat.) for array arguments' , concatenates_elements()), &
2634 test_result_t(" extracting a key string from a colon-separated key/value pair" , extracts_key()), &
2735 test_result_t(" extracting a real value from a colon-separated key/value pair" , extracts_real_value()), &
2836 test_result_t(" extracting a string value from a colon-separated key/value pair" , extracts_string_value()), &
2937 test_result_t(" extracting a logical value from a colon-separated key/value pair" , extracts_logical_value()), &
3038 test_result_t(" extracting an integer array value from a colon-separated key/value pair" , extracts_integer_array_value()), &
3139 test_result_t(" extracting an integer value from a colon-separated key/value pair" , extracts_integer_value()), &
32- test_result_t(' supporting operator(==) for string_t and character operands' , supports_equivalence_operator()), &
33- test_result_t(' supporting operator(/=) for string_t and character operands' , supports_non_equivalence_operator()), &
34- test_result_t(' assigning a string_t object to a character variable' , assigns_string_t_to_character()), &
35- test_result_t(' assigning a character variable to a string_t object' , assigns_character_to_string_t()), &
36- test_result_t(' supporting operator(//) for string_t and character operands' , supports_concatenation_operator()), &
37- test_result_t(' constructing from a default integer' , constructs_from_default_integer()), &
38- test_result_t(' extracting file base name' , extracts_file_base_name()), &
39- test_result_t(' extracting file name extension' , extracts_file_name_extension()) &
40+ test_result_t(' extracting a file base name' , extracts_file_base_name()), &
41+ test_result_t(' extracting a file name extension' , extracts_file_name_extension()) &
4042 ]
4143 end function
4244
@@ -160,6 +162,13 @@ function constructs_from_default_integer() result(passed)
160162 end associate
161163 end function
162164
165+ function constructs_from_real () result(passed)
166+ logical passed
167+ associate(string = > string_t(123456789E+09 ))
168+ passed = adjustl (trim (string% string ())) == " 0.123456791E+18"
169+ end associate
170+ end function
171+
163172 function extracts_file_base_name () result(passed)
164173 logical passed
165174 associate(string = > string_t(" foo .bar.too " ))
@@ -174,4 +183,11 @@ function extracts_file_name_extension() result(passed)
174183 end associate
175184 end function
176185
186+ function concatenates_elements () result(passed)
187+ logical passed
188+ associate(elements = > [string_t(" foo" ), string_t(" bar" )])
189+ passed = .cat. elements == " foobar"
190+ end associate
191+ end function
192+
177193end module string_test_m
0 commit comments