Skip to content

Commit b3d5b03

Browse files
committed
feat: improve generated stub tests
1 parent 25b7c2b commit b3d5b03

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

demo/test/specimen_test_m.f90

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
module specimen_test_m
55
use julienne_m, only : test_t, test_description_t, test_diagnosis_t, test_result_t
6-
use julienne_m, only : operator(.approximates.), operator(.within.)
6+
use julienne_m, only : operator(.approximates.), operator(.within.), operator(.all.)
77
use specimen_m, only : specimen_t
88
implicit none
99

@@ -26,19 +26,21 @@ function results() result(test_results)
2626
type(test_description_t), allocatable :: test_descriptions(:)
2727
test_descriptions = [ &
2828
test_description_t('checking something', check_something) &
29+
,test_description_t('skipping something') &
2930
,test_description_t('doing something', do_something) &
3031
]
3132
test_results = specimen_test%run(test_descriptions)
3233
end function
3334

3435
function check_something() result(test_diagnosis)
3536
type(test_diagnosis_t) test_diagnosis
36-
test_diagnosis = 1. .approximates. 2. .within. 3.
37+
real, parameter :: pi = 3.1415926536
38+
test_diagnosis = .all.([22./7., 3.14159] .approximates. pi .within. 0.001)
3739
end function
3840

3941
function do_something() result(test_diagnosis)
4042
type(test_diagnosis_t) test_diagnosis
41-
test_diagnosis = test_diagnosis_t(test_passed = 0 == 1, diagnostics_string = 'impossible result')
43+
test_diagnosis = test_diagnosis_t(test_passed = 1 == 1, diagnostics_string = 'craziness ensued')
4244
end function
4345

4446
end module

demo/test/widget_test_m.f90

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
module widget_test_m
55
use julienne_m, only : test_t, test_description_t, test_diagnosis_t, test_result_t
6-
use julienne_m, only : operator(.approximates.), operator(.within.)
6+
use julienne_m, only : operator(.approximates.), operator(.within.), operator(.all.)
77
use widget_m, only : widget_t
88
implicit none
99

@@ -26,19 +26,21 @@ function results() result(test_results)
2626
type(test_description_t), allocatable :: test_descriptions(:)
2727
test_descriptions = [ &
2828
test_description_t('checking something', check_something) &
29+
,test_description_t('skipping something') &
2930
,test_description_t('doing something', do_something) &
3031
]
3132
test_results = widget_test%run(test_descriptions)
3233
end function
3334

3435
function check_something() result(test_diagnosis)
3536
type(test_diagnosis_t) test_diagnosis
36-
test_diagnosis = 1. .approximates. 2. .within. 3.
37+
real, parameter :: pi = 3.1415926536
38+
test_diagnosis = .all.([22./7., 3.14159] .approximates. pi .within. 0.001)
3739
end function
3840

3941
function do_something() result(test_diagnosis)
4042
type(test_diagnosis_t) test_diagnosis
41-
test_diagnosis = test_diagnosis_t(test_passed = 0 == 1, diagnostics_string = 'impossible result')
43+
test_diagnosis = test_diagnosis_t(test_passed = 1 == 1, diagnostics_string = 'craziness ensued')
4244
end function
4345

4446
end module

src/julienne/julienne_test_suite_s.F90

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101
string_t(copyright_and_license) // new_line('') &
102102
,string_t("module ") // test_module &
103103
,string_t(" use julienne_m, only : test_t, test_description_t, test_diagnosis_t, test_result_t")&
104-
,string_t(" use julienne_m, only : operator(.approximates.), operator(.within.)")&
104+
,string_t(" use julienne_m, only : operator(.approximates.), operator(.within.), operator(.all.)")&
105105
,string_t(" use " // subject_module // ", only : " // subject_type) &
106106
,string_t(" implicit none") // new_line('') &
107107
,string_t(" type, extends(test_t) :: ") // test_type &
@@ -120,17 +120,19 @@
120120
,string_t(" type(test_description_t), allocatable :: test_descriptions(:)") &
121121
,string_t(" test_descriptions = [ &") &
122122
,string_t(" test_description_t('checking something', check_something) &") &
123+
,string_t(" ,test_description_t('skipping something') &") &
123124
,string_t(" ,test_description_t('doing something', do_something) &") &
124125
,string_t(" ]") &
125126
,string_t(" test_results = ") // subject // "_test%run(test_descriptions)" &
126127
,string_t(" end function") // new_line('') &
127128
,string_t(" function check_something() result(test_diagnosis)") &
128129
,string_t(" type(test_diagnosis_t) test_diagnosis") &
129-
,string_t(" test_diagnosis = 1. .approximates. 2. .within. 3.") &
130+
,string_t(" real, parameter :: pi = 3.1415926536") &
131+
,string_t(" test_diagnosis = .all.([22./7., 3.14159] .approximates. pi .within. 0.001)") &
130132
,string_t(" end function") // new_line('') &
131133
,string_t(" function do_something() result(test_diagnosis)") &
132134
,string_t(" type(test_diagnosis_t) test_diagnosis") &
133-
,string_t(" test_diagnosis = test_diagnosis_t(test_passed = 0 == 1, diagnostics_string = 'impossible result')") &
135+
,string_t(" test_diagnosis = test_diagnosis_t(test_passed = 1 == 1, diagnostics_string = 'craziness ensued')") &
134136
,string_t(" end function") // new_line('') &
135137
,string_t("end module") &
136138
])

0 commit comments

Comments
 (0)