Skip to content

Commit 336285d

Browse files
committed
improved test_math.fypp: used int_8, _int16, _int32,... & removed some test_cases
1 parent 243ac91 commit 336285d

File tree

3 files changed

+53
-291
lines changed

3 files changed

+53
-291
lines changed

doc/specs/stdlib_math.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ program demo
6363
integer(int32) :: xmax
6464
integer(int32) :: clipped_value
6565
66-
xmin = -5
66+
xmin = -5_int32
6767
! xmin <- -5
68-
xmax = 5
68+
xmax = 5_int32
6969
! xmax <- 5
70-
x = 12
70+
x = 12_int32
7171
! x <- 12
7272
7373
clipped_value = clip(x, xmin, xmax)
@@ -88,11 +88,11 @@ program demo
8888
real(real32) :: xmax
8989
real(real32) :: clipped_value
9090
91-
xmin = -5.76999998
92-
! xmin <- -5.76999998
93-
xmax = 3.02500010
91+
xmin = -5.769_real32
92+
! xmin <- -5.76900005
93+
xmax = 3.025_real32
9494
! xmax <- 3.02500010
95-
x = 3.02500010
95+
x = 3.025_real32
9696
! x <- 3.02500010
9797
9898
clipped_value = clip(x, xmin, xmax)

src/tests/math/test_math.f90

Lines changed: 28 additions & 253 deletions
Original file line numberDiff line numberDiff line change
@@ -71,287 +71,62 @@ program tester
7171
! invalid case: xmin is greater than xmax
7272

7373

74-
! data declaration
75-
integer(int8) :: x_integer_int8, xmin_integer_int8, xmax_integer_int8, compare_integer_int8
76-
integer(int16) :: x_integer_int16, xmin_integer_int16, xmax_integer_int16, compare_integer_int16
77-
integer(int32) :: x_integer_int32, xmin_integer_int32, xmax_integer_int32, compare_integer_int32
78-
integer(int64) :: x_integer_int64, xmin_integer_int64, xmax_integer_int64, compare_integer_int64
79-
real(sp) :: x_real_sp, xmin_real_sp, xmax_real_sp, compare_real_sp
80-
real(dp) :: x_real_dp, xmin_real_dp, xmax_real_dp, compare_real_dp
81-
real(qp) :: x_real_qp, xmin_real_qp, xmax_real_qp, compare_real_qp
8274

8375
! type: integer, kind: int8
8476
! valid test cases
85-
x_integer_int8 = 2
86-
xmin_integer_int8 = -2
87-
xmax_integer_int8 = 5
88-
compare_integer_int8 = 2
89-
call test_clip_integer_int8(x_integer_int8, xmin_integer_int8, xmax_integer_int8, compare_integer_int8)
90-
91-
x_integer_int8 = 127
92-
xmin_integer_int8 = -127
93-
xmax_integer_int8 = 0
94-
compare_integer_int8 = 0
95-
call test_clip_integer_int8(x_integer_int8, xmin_integer_int8, xmax_integer_int8, compare_integer_int8)
96-
97-
x_integer_int8 = -57
98-
xmin_integer_int8 = -57
99-
xmax_integer_int8 = 57
100-
compare_integer_int8 = -57
101-
call test_clip_integer_int8(x_integer_int8, xmin_integer_int8, xmax_integer_int8, compare_integer_int8)
77+
call test_clip_integer_int8(2_int8, -2_int8, 5_int8, 2_int8)
78+
call test_clip_integer_int8(127_int8, -127_int8, 0_int8, 0_int8)
10279

10380
! invalid test cases
104-
x_integer_int8 = 2
105-
xmin_integer_int8 = 5
106-
xmax_integer_int8 = -2
107-
compare_integer_int8 = 5
108-
call test_clip_integer_int8(x_integer_int8, xmin_integer_int8, xmax_integer_int8, compare_integer_int8)
109-
110-
x_integer_int8 = 127
111-
xmin_integer_int8 = 0
112-
xmax_integer_int8 = -127
113-
compare_integer_int8 = 0
114-
call test_clip_integer_int8(x_integer_int8, xmin_integer_int8, xmax_integer_int8, compare_integer_int8)
115-
116-
x_integer_int8 = -57
117-
xmin_integer_int8 = 57
118-
xmax_integer_int8 = -57
119-
compare_integer_int8 = 57
120-
call test_clip_integer_int8(x_integer_int8, xmin_integer_int8, xmax_integer_int8, compare_integer_int8)
121-
81+
call test_clip_integer_int8(2_int8, 5_int8, -2_int8, 5_int8)
82+
call test_clip_integer_int8(127_int8, 0_int8, -127_int8, 0_int8)
12283
! type: integer, kind: int16
12384
! valid test cases
124-
x_integer_int16 = 2
125-
xmin_integer_int16 = -2
126-
xmax_integer_int16 = 5
127-
compare_integer_int16 = 2
128-
call test_clip_integer_int16(x_integer_int16, xmin_integer_int16, xmax_integer_int16, compare_integer_int16)
129-
130-
x_integer_int16 = 32767
131-
xmin_integer_int16 = -32767
132-
xmax_integer_int16 = 0
133-
compare_integer_int16 = 0
134-
call test_clip_integer_int16(x_integer_int16, xmin_integer_int16, xmax_integer_int16, compare_integer_int16)
135-
136-
x_integer_int16 = -598
137-
xmin_integer_int16 = -32
138-
xmax_integer_int16 = 676
139-
compare_integer_int16 = -32
140-
call test_clip_integer_int16(x_integer_int16, xmin_integer_int16, xmax_integer_int16, compare_integer_int16)
85+
call test_clip_integer_int16(2_int16, -2_int16, 5_int16, 2_int16)
86+
call test_clip_integer_int16(32767_int16, -32767_int16, 0_int16, 0_int16)
14187

14288
! invalid test cases
143-
x_integer_int16 = 2
144-
xmin_integer_int16 = 5
145-
xmax_integer_int16 = -2
146-
compare_integer_int16 = 5
147-
call test_clip_integer_int16(x_integer_int16, xmin_integer_int16, xmax_integer_int16, compare_integer_int16)
148-
149-
x_integer_int16 = 32767
150-
xmin_integer_int16 = 0
151-
xmax_integer_int16 = -32767
152-
compare_integer_int16 = 0
153-
call test_clip_integer_int16(x_integer_int16, xmin_integer_int16, xmax_integer_int16, compare_integer_int16)
154-
155-
x_integer_int16 = -598
156-
xmin_integer_int16 = 676
157-
xmax_integer_int16 = -32
158-
compare_integer_int16 = 676
159-
call test_clip_integer_int16(x_integer_int16, xmin_integer_int16, xmax_integer_int16, compare_integer_int16)
160-
89+
call test_clip_integer_int16(2_int16, 5_int16, -2_int16, 5_int16)
90+
call test_clip_integer_int16(32767_int16, 0_int16, -32767_int16, 0_int16)
16191
! type: integer, kind: int32
16292
! valid test cases
163-
x_integer_int32 = 2
164-
xmin_integer_int32 = -2
165-
xmax_integer_int32 = 5
166-
compare_integer_int32 = 2
167-
call test_clip_integer_int32(x_integer_int32, xmin_integer_int32, xmax_integer_int32, compare_integer_int32)
168-
169-
x_integer_int32 = -2147483647
170-
xmin_integer_int32 = 0
171-
xmax_integer_int32 = 2147483647
172-
compare_integer_int32 = 0
173-
call test_clip_integer_int32(x_integer_int32, xmin_integer_int32, xmax_integer_int32, compare_integer_int32)
174-
175-
x_integer_int32 = 45732
176-
xmin_integer_int32 = -385769
177-
xmax_integer_int32 = 57642
178-
compare_integer_int32 = 45732
179-
call test_clip_integer_int32(x_integer_int32, xmin_integer_int32, xmax_integer_int32, compare_integer_int32)
93+
call test_clip_integer_int32(2_int32, -2_int32, 5_int32, 2_int32)
94+
call test_clip_integer_int32(-2147483647_int32, 0_int32, 2147483647_int32, 0_int32)
18095

18196
! invalid test cases
182-
x_integer_int32 = 2
183-
xmin_integer_int32 = 5
184-
xmax_integer_int32 = -2
185-
compare_integer_int32 = 5
186-
call test_clip_integer_int32(x_integer_int32, xmin_integer_int32, xmax_integer_int32, compare_integer_int32)
187-
188-
x_integer_int32 = -2147483647
189-
xmin_integer_int32 = 2147483647
190-
xmax_integer_int32 = 0
191-
compare_integer_int32 = 2147483647
192-
call test_clip_integer_int32(x_integer_int32, xmin_integer_int32, xmax_integer_int32, compare_integer_int32)
193-
194-
x_integer_int32 = 45732
195-
xmin_integer_int32 = 57642
196-
xmax_integer_int32 = -385769
197-
compare_integer_int32 = 57642
198-
call test_clip_integer_int32(x_integer_int32, xmin_integer_int32, xmax_integer_int32, compare_integer_int32)
199-
97+
call test_clip_integer_int32(2_int32, 5_int32, -2_int32, 5_int32)
98+
call test_clip_integer_int32(-2147483647_int32, 2147483647_int32, 0_int32, 2147483647_int32)
20099
! type: integer, kind: int64
201100
! valid test cases
202-
x_integer_int64 = 2
203-
xmin_integer_int64 = -2
204-
xmax_integer_int64 = 5
205-
compare_integer_int64 = 2
206-
call test_clip_integer_int64(x_integer_int64, xmin_integer_int64, xmax_integer_int64, compare_integer_int64)
207-
208-
x_integer_int64 = -922337203
209-
xmin_integer_int64 = -10
210-
xmax_integer_int64 = 25
211-
compare_integer_int64 = -10
212-
call test_clip_integer_int64(x_integer_int64, xmin_integer_int64, xmax_integer_int64, compare_integer_int64)
213-
214-
x_integer_int64 = 97683
215-
xmin_integer_int64 = -200
216-
xmax_integer_int64 = 513788324
217-
compare_integer_int64 = 97683
218-
call test_clip_integer_int64(x_integer_int64, xmin_integer_int64, xmax_integer_int64, compare_integer_int64)
101+
call test_clip_integer_int64(2_int64, -2_int64, 5_int64, 2_int64)
102+
call test_clip_integer_int64(-922337203_int64, -10_int64, 25_int64, -10_int64)
219103

220104
! invalid test cases
221-
x_integer_int64 = 2
222-
xmin_integer_int64 = 5
223-
xmax_integer_int64 = -2
224-
compare_integer_int64 = 5
225-
call test_clip_integer_int64(x_integer_int64, xmin_integer_int64, xmax_integer_int64, compare_integer_int64)
226-
227-
x_integer_int64 = -922337203
228-
xmin_integer_int64 = 25
229-
xmax_integer_int64 = -10
230-
compare_integer_int64 = 25
231-
call test_clip_integer_int64(x_integer_int64, xmin_integer_int64, xmax_integer_int64, compare_integer_int64)
232-
233-
x_integer_int64 = 97683
234-
xmin_integer_int64 = 513788324
235-
xmax_integer_int64 = -200
236-
compare_integer_int64 = 513788324
237-
call test_clip_integer_int64(x_integer_int64, xmin_integer_int64, xmax_integer_int64, compare_integer_int64)
238-
105+
call test_clip_integer_int64(2_int64, 5_int64, -2_int64, 5_int64)
106+
call test_clip_integer_int64(-922337203_int64, 25_int64, -10_int64, 25_int64)
239107
! type: real, kind: sp
240108
! valid test cases
241-
x_real_sp = 3.025
242-
xmin_real_sp = -5.77
243-
xmax_real_sp = 3.025
244-
compare_real_sp = 3.025
245-
call test_clip_real_sp(x_real_sp, xmin_real_sp, xmax_real_sp, compare_real_sp)
246-
247-
x_real_sp = 0.0
248-
xmin_real_sp = -1578.025
249-
xmax_real_sp = -59.68
250-
compare_real_sp = -59.68
251-
call test_clip_real_sp(x_real_sp, xmin_real_sp, xmax_real_sp, compare_real_sp)
252-
253-
x_real_sp = 5.6
254-
xmin_real_sp = -97854.25
255-
xmax_real_sp = 2.3666
256-
compare_real_sp = 2.3666
257-
call test_clip_real_sp(x_real_sp, xmin_real_sp, xmax_real_sp, compare_real_sp)
109+
call test_clip_real_sp(3.025_sp, -5.77_sp, 3.025_sp, 3.025_sp)
110+
call test_clip_real_sp(0.0_sp, -1578.025_sp, -59.68_sp, -59.68_sp)
258111

259112
! invalid test cases
260-
x_real_sp = 3.025
261-
xmin_real_sp = 3.025
262-
xmax_real_sp = -5.77
263-
compare_real_sp = 3.025
264-
call test_clip_real_sp(x_real_sp, xmin_real_sp, xmax_real_sp, compare_real_sp)
265-
266-
x_real_sp = 0.0
267-
xmin_real_sp = -59.68
268-
xmax_real_sp = -1578.025
269-
compare_real_sp = -59.68
270-
call test_clip_real_sp(x_real_sp, xmin_real_sp, xmax_real_sp, compare_real_sp)
271-
272-
x_real_sp = 5.6
273-
xmin_real_sp = 2.3666
274-
xmax_real_sp = -97854.25
275-
compare_real_sp = 2.3666
276-
call test_clip_real_sp(x_real_sp, xmin_real_sp, xmax_real_sp, compare_real_sp)
277-
113+
call test_clip_real_sp(3.025_sp, 3.025_sp, -5.77_sp, 3.025_sp)
114+
call test_clip_real_sp(0.0_sp, -59.68_sp, -1578.025_sp, -59.68_sp)
278115
! type: real, kind: dp
279116
! valid test cases
280-
x_real_dp = 3.025
281-
xmin_real_dp = -5.77
282-
xmax_real_dp = 3.025
283-
compare_real_dp = 3.025
284-
call test_clip_real_dp(x_real_dp, xmin_real_dp, xmax_real_dp, compare_real_dp)
285-
286-
x_real_dp = -7.0
287-
xmin_real_dp = 0.059668
288-
xmax_real_dp = 1.00268
289-
compare_real_dp = 0.059668
290-
call test_clip_real_dp(x_real_dp, xmin_real_dp, xmax_real_dp, compare_real_dp)
291-
292-
x_real_dp = -12.3358
293-
xmin_real_dp = 8.55759
294-
xmax_real_dp = 8.55759
295-
compare_real_dp = 8.55759
296-
call test_clip_real_dp(x_real_dp, xmin_real_dp, xmax_real_dp, compare_real_dp)
117+
call test_clip_real_dp(3.025_dp, -5.77_dp, 3.025_dp, 3.025_dp)
118+
call test_clip_real_dp(-7.0_dp, 0.059668_dp, 1.00268_dp, 0.059668_dp)
297119

298120
! invalid test cases
299-
x_real_dp = 3.025
300-
xmin_real_dp = 3.025
301-
xmax_real_dp = -5.77
302-
compare_real_dp = 3.025
303-
call test_clip_real_dp(x_real_dp, xmin_real_dp, xmax_real_dp, compare_real_dp)
304-
305-
x_real_dp = -7.0
306-
xmin_real_dp = 1.00268
307-
xmax_real_dp = 0.059668
308-
compare_real_dp = 1.00268
309-
call test_clip_real_dp(x_real_dp, xmin_real_dp, xmax_real_dp, compare_real_dp)
310-
311-
x_real_dp = -12.3358
312-
xmin_real_dp = 8.55759
313-
xmax_real_dp = 8.55759
314-
compare_real_dp = 8.55759
315-
call test_clip_real_dp(x_real_dp, xmin_real_dp, xmax_real_dp, compare_real_dp)
316-
121+
call test_clip_real_dp(3.025_dp, 3.025_dp, -5.77_dp, 3.025_dp)
122+
call test_clip_real_dp(-7.0_dp, 1.00268_dp, 0.059668_dp, 1.00268_dp)
317123
! type: real, kind: qp
318124
! valid test cases
319-
x_real_qp = 3.025
320-
xmin_real_qp = -5.77
321-
xmax_real_qp = 3.025
322-
compare_real_qp = 3.025
323-
call test_clip_real_qp(x_real_qp, xmin_real_qp, xmax_real_qp, compare_real_qp)
324-
325-
x_real_qp = -55891546.2
326-
xmin_real_qp = -8958133457.23
327-
xmax_real_qp = -689712245.23
328-
compare_real_qp = -689712245.23
329-
call test_clip_real_qp(x_real_qp, xmin_real_qp, xmax_real_qp, compare_real_qp)
330-
331-
x_real_qp = 58.7
332-
xmin_real_qp = -2352.335
333-
xmax_real_qp = -189.58
334-
compare_real_qp = -189.58
335-
call test_clip_real_qp(x_real_qp, xmin_real_qp, xmax_real_qp, compare_real_qp)
125+
call test_clip_real_qp(3.025_qp, -5.77_qp, 3.025_qp, 3.025_qp)
126+
call test_clip_real_qp(-55891546.2_qp, -8958133457.23_qp, -689712245.23_qp, -689712245.23_qp)
336127

337128
! invalid test cases
338-
x_real_qp = 3.025
339-
xmin_real_qp = 3.025
340-
xmax_real_qp = -5.77
341-
compare_real_qp = 3.025
342-
call test_clip_real_qp(x_real_qp, xmin_real_qp, xmax_real_qp, compare_real_qp)
343-
344-
x_real_qp = -55891546.2
345-
xmin_real_qp = -689712245.23
346-
xmax_real_qp = -8958133457.23
347-
compare_real_qp = -689712245.23
348-
call test_clip_real_qp(x_real_qp, xmin_real_qp, xmax_real_qp, compare_real_qp)
349-
350-
x_real_qp = 58.7
351-
xmin_real_qp = -189.58
352-
xmax_real_qp = -2352.335
353-
compare_real_qp = -189.58
354-
call test_clip_real_qp(x_real_qp, xmin_real_qp, xmax_real_qp, compare_real_qp)
355-
129+
call test_clip_real_qp(3.025_qp, 3.025_qp, -5.77_qp, 3.025_qp)
130+
call test_clip_real_qp(-55891546.2_qp, -689712245.23_qp, -8958133457.23_qp, -689712245.23_qp)
356131

357132
end program tester

0 commit comments

Comments
 (0)