Line data Source code
1 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3 : !!!! !!!!
4 : !!!! ParaMonte: Parallel Monte Carlo and Machine Learning Library. !!!!
5 : !!!! !!!!
6 : !!!! Copyright (C) 2012-present, The Computational Data Science Lab !!!!
7 : !!!! !!!!
8 : !!!! This file is part of the ParaMonte library. !!!!
9 : !!!! !!!!
10 : !!!! LICENSE !!!!
11 : !!!! !!!!
12 : !!!! https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md !!!!
13 : !!!! !!!!
14 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16 :
17 : !> \brief
18 : !> This module contains tests of the module [pm_arrayUnique](@ref pm_arrayUnique).
19 : !>
20 : !> \fintest
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, September 1, 2017, 11:35 PM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : module test_pm_arrayUnique
28 :
29 : use pm_arrayUnique
30 : use pm_err, only: err_type
31 : use pm_test, only: test_type, LK
32 : implicit none
33 :
34 : private
35 : public :: setTest
36 : type(test_type) :: test
37 :
38 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
39 :
40 : interface
41 :
42 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 :
44 : #if SK5_ENABLED
45 : module function test_isUnique_D0_SK5_1() result(assertion); logical(LK) :: assertion; end function
46 : #endif
47 : #if SK4_ENABLED
48 : module function test_isUnique_D0_SK4_1() result(assertion); logical(LK) :: assertion; end function
49 : #endif
50 : #if SK3_ENABLED
51 : module function test_isUnique_D0_SK3_1() result(assertion); logical(LK) :: assertion; end function
52 : #endif
53 : #if SK2_ENABLED
54 : module function test_isUnique_D0_SK2_1() result(assertion); logical(LK) :: assertion; end function
55 : #endif
56 : #if SK1_ENABLED
57 : module function test_isUnique_D0_SK1_1() result(assertion); logical(LK) :: assertion; end function
58 : #endif
59 :
60 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61 :
62 : #if SK5_ENABLED
63 : module function test_isUnique_D1_SK5_1() result(assertion); logical(LK) :: assertion; end function
64 : #endif
65 : #if SK4_ENABLED
66 : module function test_isUnique_D1_SK4_1() result(assertion); logical(LK) :: assertion; end function
67 : #endif
68 : #if SK3_ENABLED
69 : module function test_isUnique_D1_SK3_1() result(assertion); logical(LK) :: assertion; end function
70 : #endif
71 : #if SK2_ENABLED
72 : module function test_isUnique_D1_SK2_1() result(assertion); logical(LK) :: assertion; end function
73 : #endif
74 : #if SK1_ENABLED
75 : module function test_isUnique_D1_SK1_1() result(assertion); logical(LK) :: assertion; end function
76 : #endif
77 :
78 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
79 :
80 : #if IK5_ENABLED
81 : module function test_isUnique_D1_IK5_1() result(assertion); logical(LK) :: assertion; end function
82 : #endif
83 : #if IK4_ENABLED
84 : module function test_isUnique_D1_IK4_1() result(assertion); logical(LK) :: assertion; end function
85 : #endif
86 : #if IK3_ENABLED
87 : module function test_isUnique_D1_IK3_1() result(assertion); logical(LK) :: assertion; end function
88 : #endif
89 : #if IK2_ENABLED
90 : module function test_isUnique_D1_IK2_1() result(assertion); logical(LK) :: assertion; end function
91 : #endif
92 : #if IK1_ENABLED
93 : module function test_isUnique_D1_IK1_1() result(assertion); logical(LK) :: assertion; end function
94 : #endif
95 :
96 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97 :
98 : #if LK5_ENABLED
99 : module function test_isUnique_D1_LK5_1() result(assertion); logical(LK) :: assertion; end function
100 : #endif
101 : #if LK4_ENABLED
102 : module function test_isUnique_D1_LK4_1() result(assertion); logical(LK) :: assertion; end function
103 : #endif
104 : #if LK3_ENABLED
105 : module function test_isUnique_D1_LK3_1() result(assertion); logical(LK) :: assertion; end function
106 : #endif
107 : #if LK2_ENABLED
108 : module function test_isUnique_D1_LK2_1() result(assertion); logical(LK) :: assertion; end function
109 : #endif
110 : #if LK1_ENABLED
111 : module function test_isUnique_D1_LK1_1() result(assertion); logical(LK) :: assertion; end function
112 : #endif
113 :
114 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
115 :
116 : #if CK5_ENABLED
117 : module function test_isUnique_D1_CK5_1() result(assertion); logical(LK) :: assertion; end function
118 : #endif
119 : #if CK4_ENABLED
120 : module function test_isUnique_D1_CK4_1() result(assertion); logical(LK) :: assertion; end function
121 : #endif
122 : #if CK3_ENABLED
123 : module function test_isUnique_D1_CK3_1() result(assertion); logical(LK) :: assertion; end function
124 : #endif
125 : #if CK2_ENABLED
126 : module function test_isUnique_D1_CK2_1() result(assertion); logical(LK) :: assertion; end function
127 : #endif
128 : #if CK1_ENABLED
129 : module function test_isUnique_D1_CK1_1() result(assertion); logical(LK) :: assertion; end function
130 : #endif
131 :
132 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
133 :
134 : #if RK5_ENABLED
135 : module function test_isUnique_D1_RK5_1() result(assertion); logical(LK) :: assertion; end function
136 : #endif
137 : #if RK4_ENABLED
138 : module function test_isUnique_D1_RK4_1() result(assertion); logical(LK) :: assertion; end function
139 : #endif
140 : #if RK3_ENABLED
141 : module function test_isUnique_D1_RK3_1() result(assertion); logical(LK) :: assertion; end function
142 : #endif
143 : #if RK2_ENABLED
144 : module function test_isUnique_D1_RK2_1() result(assertion); logical(LK) :: assertion; end function
145 : #endif
146 : #if RK1_ENABLED
147 : module function test_isUnique_D1_RK1_1() result(assertion); logical(LK) :: assertion; end function
148 : #endif
149 :
150 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
151 :
152 : end interface
153 :
154 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
155 :
156 : interface
157 :
158 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
159 :
160 : #if SK5_ENABLED
161 : module function test_isUniqueAll_D0_SK5_1() result(assertion); logical(LK) :: assertion; end function
162 : #endif
163 : #if SK4_ENABLED
164 : module function test_isUniqueAll_D0_SK4_1() result(assertion); logical(LK) :: assertion; end function
165 : #endif
166 : #if SK3_ENABLED
167 : module function test_isUniqueAll_D0_SK3_1() result(assertion); logical(LK) :: assertion; end function
168 : #endif
169 : #if SK2_ENABLED
170 : module function test_isUniqueAll_D0_SK2_1() result(assertion); logical(LK) :: assertion; end function
171 : #endif
172 : #if SK1_ENABLED
173 : module function test_isUniqueAll_D0_SK1_1() result(assertion); logical(LK) :: assertion; end function
174 : #endif
175 :
176 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
177 :
178 : #if SK5_ENABLED
179 : module function test_isUniqueAll_D1_SK5_1() result(assertion); logical(LK) :: assertion; end function
180 : #endif
181 : #if SK4_ENABLED
182 : module function test_isUniqueAll_D1_SK4_1() result(assertion); logical(LK) :: assertion; end function
183 : #endif
184 : #if SK3_ENABLED
185 : module function test_isUniqueAll_D1_SK3_1() result(assertion); logical(LK) :: assertion; end function
186 : #endif
187 : #if SK2_ENABLED
188 : module function test_isUniqueAll_D1_SK2_1() result(assertion); logical(LK) :: assertion; end function
189 : #endif
190 : #if SK1_ENABLED
191 : module function test_isUniqueAll_D1_SK1_1() result(assertion); logical(LK) :: assertion; end function
192 : #endif
193 :
194 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
195 :
196 : #if IK5_ENABLED
197 : module function test_isUniqueAll_D1_IK5_1() result(assertion); logical(LK) :: assertion; end function
198 : #endif
199 : #if IK4_ENABLED
200 : module function test_isUniqueAll_D1_IK4_1() result(assertion); logical(LK) :: assertion; end function
201 : #endif
202 : #if IK3_ENABLED
203 : module function test_isUniqueAll_D1_IK3_1() result(assertion); logical(LK) :: assertion; end function
204 : #endif
205 : #if IK2_ENABLED
206 : module function test_isUniqueAll_D1_IK2_1() result(assertion); logical(LK) :: assertion; end function
207 : #endif
208 : #if IK1_ENABLED
209 : module function test_isUniqueAll_D1_IK1_1() result(assertion); logical(LK) :: assertion; end function
210 : #endif
211 :
212 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
213 :
214 : #if LK5_ENABLED
215 : module function test_isUniqueAll_D1_LK5_1() result(assertion); logical(LK) :: assertion; end function
216 : #endif
217 : #if LK4_ENABLED
218 : module function test_isUniqueAll_D1_LK4_1() result(assertion); logical(LK) :: assertion; end function
219 : #endif
220 : #if LK3_ENABLED
221 : module function test_isUniqueAll_D1_LK3_1() result(assertion); logical(LK) :: assertion; end function
222 : #endif
223 : #if LK2_ENABLED
224 : module function test_isUniqueAll_D1_LK2_1() result(assertion); logical(LK) :: assertion; end function
225 : #endif
226 : #if LK1_ENABLED
227 : module function test_isUniqueAll_D1_LK1_1() result(assertion); logical(LK) :: assertion; end function
228 : #endif
229 :
230 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
231 :
232 : #if CK5_ENABLED
233 : module function test_isUniqueAll_D1_CK5_1() result(assertion); logical(LK) :: assertion; end function
234 : #endif
235 : #if CK4_ENABLED
236 : module function test_isUniqueAll_D1_CK4_1() result(assertion); logical(LK) :: assertion; end function
237 : #endif
238 : #if CK3_ENABLED
239 : module function test_isUniqueAll_D1_CK3_1() result(assertion); logical(LK) :: assertion; end function
240 : #endif
241 : #if CK2_ENABLED
242 : module function test_isUniqueAll_D1_CK2_1() result(assertion); logical(LK) :: assertion; end function
243 : #endif
244 : #if CK1_ENABLED
245 : module function test_isUniqueAll_D1_CK1_1() result(assertion); logical(LK) :: assertion; end function
246 : #endif
247 :
248 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
249 :
250 : #if RK5_ENABLED
251 : module function test_isUniqueAll_D1_RK5_1() result(assertion); logical(LK) :: assertion; end function
252 : #endif
253 : #if RK4_ENABLED
254 : module function test_isUniqueAll_D1_RK4_1() result(assertion); logical(LK) :: assertion; end function
255 : #endif
256 : #if RK3_ENABLED
257 : module function test_isUniqueAll_D1_RK3_1() result(assertion); logical(LK) :: assertion; end function
258 : #endif
259 : #if RK2_ENABLED
260 : module function test_isUniqueAll_D1_RK2_1() result(assertion); logical(LK) :: assertion; end function
261 : #endif
262 : #if RK1_ENABLED
263 : module function test_isUniqueAll_D1_RK1_1() result(assertion); logical(LK) :: assertion; end function
264 : #endif
265 :
266 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
267 :
268 : end interface
269 :
270 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
271 :
272 : interface
273 :
274 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
275 :
276 : #if SK5_ENABLED
277 : module function test_isUniqueAny_D0_SK5_1() result(assertion); logical(LK) :: assertion; end function
278 : #endif
279 : #if SK4_ENABLED
280 : module function test_isUniqueAny_D0_SK4_1() result(assertion); logical(LK) :: assertion; end function
281 : #endif
282 : #if SK3_ENABLED
283 : module function test_isUniqueAny_D0_SK3_1() result(assertion); logical(LK) :: assertion; end function
284 : #endif
285 : #if SK2_ENABLED
286 : module function test_isUniqueAny_D0_SK2_1() result(assertion); logical(LK) :: assertion; end function
287 : #endif
288 : #if SK1_ENABLED
289 : module function test_isUniqueAny_D0_SK1_1() result(assertion); logical(LK) :: assertion; end function
290 : #endif
291 :
292 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
293 :
294 : #if SK5_ENABLED
295 : module function test_isUniqueAny_D1_SK5_1() result(assertion); logical(LK) :: assertion; end function
296 : #endif
297 : #if SK4_ENABLED
298 : module function test_isUniqueAny_D1_SK4_1() result(assertion); logical(LK) :: assertion; end function
299 : #endif
300 : #if SK3_ENABLED
301 : module function test_isUniqueAny_D1_SK3_1() result(assertion); logical(LK) :: assertion; end function
302 : #endif
303 : #if SK2_ENABLED
304 : module function test_isUniqueAny_D1_SK2_1() result(assertion); logical(LK) :: assertion; end function
305 : #endif
306 : #if SK1_ENABLED
307 : module function test_isUniqueAny_D1_SK1_1() result(assertion); logical(LK) :: assertion; end function
308 : #endif
309 :
310 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
311 :
312 : #if IK5_ENABLED
313 : module function test_isUniqueAny_D1_IK5_1() result(assertion); logical(LK) :: assertion; end function
314 : #endif
315 : #if IK4_ENABLED
316 : module function test_isUniqueAny_D1_IK4_1() result(assertion); logical(LK) :: assertion; end function
317 : #endif
318 : #if IK3_ENABLED
319 : module function test_isUniqueAny_D1_IK3_1() result(assertion); logical(LK) :: assertion; end function
320 : #endif
321 : #if IK2_ENABLED
322 : module function test_isUniqueAny_D1_IK2_1() result(assertion); logical(LK) :: assertion; end function
323 : #endif
324 : #if IK1_ENABLED
325 : module function test_isUniqueAny_D1_IK1_1() result(assertion); logical(LK) :: assertion; end function
326 : #endif
327 :
328 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
329 :
330 : #if LK5_ENABLED
331 : module function test_isUniqueAny_D1_LK5_1() result(assertion); logical(LK) :: assertion; end function
332 : #endif
333 : #if LK4_ENABLED
334 : module function test_isUniqueAny_D1_LK4_1() result(assertion); logical(LK) :: assertion; end function
335 : #endif
336 : #if LK3_ENABLED
337 : module function test_isUniqueAny_D1_LK3_1() result(assertion); logical(LK) :: assertion; end function
338 : #endif
339 : #if LK2_ENABLED
340 : module function test_isUniqueAny_D1_LK2_1() result(assertion); logical(LK) :: assertion; end function
341 : #endif
342 : #if LK1_ENABLED
343 : module function test_isUniqueAny_D1_LK1_1() result(assertion); logical(LK) :: assertion; end function
344 : #endif
345 :
346 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
347 :
348 : #if CK5_ENABLED
349 : module function test_isUniqueAny_D1_CK5_1() result(assertion); logical(LK) :: assertion; end function
350 : #endif
351 : #if CK4_ENABLED
352 : module function test_isUniqueAny_D1_CK4_1() result(assertion); logical(LK) :: assertion; end function
353 : #endif
354 : #if CK3_ENABLED
355 : module function test_isUniqueAny_D1_CK3_1() result(assertion); logical(LK) :: assertion; end function
356 : #endif
357 : #if CK2_ENABLED
358 : module function test_isUniqueAny_D1_CK2_1() result(assertion); logical(LK) :: assertion; end function
359 : #endif
360 : #if CK1_ENABLED
361 : module function test_isUniqueAny_D1_CK1_1() result(assertion); logical(LK) :: assertion; end function
362 : #endif
363 :
364 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
365 :
366 : #if RK5_ENABLED
367 : module function test_isUniqueAny_D1_RK5_1() result(assertion); logical(LK) :: assertion; end function
368 : #endif
369 : #if RK4_ENABLED
370 : module function test_isUniqueAny_D1_RK4_1() result(assertion); logical(LK) :: assertion; end function
371 : #endif
372 : #if RK3_ENABLED
373 : module function test_isUniqueAny_D1_RK3_1() result(assertion); logical(LK) :: assertion; end function
374 : #endif
375 : #if RK2_ENABLED
376 : module function test_isUniqueAny_D1_RK2_1() result(assertion); logical(LK) :: assertion; end function
377 : #endif
378 : #if RK1_ENABLED
379 : module function test_isUniqueAny_D1_RK1_1() result(assertion); logical(LK) :: assertion; end function
380 : #endif
381 :
382 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
383 :
384 : end interface
385 :
386 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
387 :
388 : interface
389 :
390 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
391 :
392 : #if SK5_ENABLED
393 : module function test_getUnique_D0_SK5_1() result(assertion); logical(LK) :: assertion; end function
394 : #endif
395 : #if SK4_ENABLED
396 : module function test_getUnique_D0_SK4_1() result(assertion); logical(LK) :: assertion; end function
397 : #endif
398 : #if SK3_ENABLED
399 : module function test_getUnique_D0_SK3_1() result(assertion); logical(LK) :: assertion; end function
400 : #endif
401 : #if SK2_ENABLED
402 : module function test_getUnique_D0_SK2_1() result(assertion); logical(LK) :: assertion; end function
403 : #endif
404 : #if SK1_ENABLED
405 : module function test_getUnique_D0_SK1_1() result(assertion); logical(LK) :: assertion; end function
406 : #endif
407 :
408 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
409 :
410 : #if SK5_ENABLED
411 : module function test_getUnique_D1_SK5_1() result(assertion); logical(LK) :: assertion; end function
412 : #endif
413 : #if SK4_ENABLED
414 : module function test_getUnique_D1_SK4_1() result(assertion); logical(LK) :: assertion; end function
415 : #endif
416 : #if SK3_ENABLED
417 : module function test_getUnique_D1_SK3_1() result(assertion); logical(LK) :: assertion; end function
418 : #endif
419 : #if SK2_ENABLED
420 : module function test_getUnique_D1_SK2_1() result(assertion); logical(LK) :: assertion; end function
421 : #endif
422 : #if SK1_ENABLED
423 : module function test_getUnique_D1_SK1_1() result(assertion); logical(LK) :: assertion; end function
424 : #endif
425 :
426 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
427 :
428 : #if IK5_ENABLED
429 : module function test_getUnique_D1_IK5_1() result(assertion); logical(LK) :: assertion; end function
430 : #endif
431 : #if IK4_ENABLED
432 : module function test_getUnique_D1_IK4_1() result(assertion); logical(LK) :: assertion; end function
433 : #endif
434 : #if IK3_ENABLED
435 : module function test_getUnique_D1_IK3_1() result(assertion); logical(LK) :: assertion; end function
436 : #endif
437 : #if IK2_ENABLED
438 : module function test_getUnique_D1_IK2_1() result(assertion); logical(LK) :: assertion; end function
439 : #endif
440 : #if IK1_ENABLED
441 : module function test_getUnique_D1_IK1_1() result(assertion); logical(LK) :: assertion; end function
442 : #endif
443 :
444 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
445 :
446 : #if LK5_ENABLED
447 : module function test_getUnique_D1_LK5_1() result(assertion); logical(LK) :: assertion; end function
448 : #endif
449 : #if LK4_ENABLED
450 : module function test_getUnique_D1_LK4_1() result(assertion); logical(LK) :: assertion; end function
451 : #endif
452 : #if LK3_ENABLED
453 : module function test_getUnique_D1_LK3_1() result(assertion); logical(LK) :: assertion; end function
454 : #endif
455 : #if LK2_ENABLED
456 : module function test_getUnique_D1_LK2_1() result(assertion); logical(LK) :: assertion; end function
457 : #endif
458 : #if LK1_ENABLED
459 : module function test_getUnique_D1_LK1_1() result(assertion); logical(LK) :: assertion; end function
460 : #endif
461 :
462 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
463 :
464 : #if CK5_ENABLED
465 : module function test_getUnique_D1_CK5_1() result(assertion); logical(LK) :: assertion; end function
466 : #endif
467 : #if CK4_ENABLED
468 : module function test_getUnique_D1_CK4_1() result(assertion); logical(LK) :: assertion; end function
469 : #endif
470 : #if CK3_ENABLED
471 : module function test_getUnique_D1_CK3_1() result(assertion); logical(LK) :: assertion; end function
472 : #endif
473 : #if CK2_ENABLED
474 : module function test_getUnique_D1_CK2_1() result(assertion); logical(LK) :: assertion; end function
475 : #endif
476 : #if CK1_ENABLED
477 : module function test_getUnique_D1_CK1_1() result(assertion); logical(LK) :: assertion; end function
478 : #endif
479 :
480 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
481 :
482 : #if RK5_ENABLED
483 : module function test_getUnique_D1_RK5_1() result(assertion); logical(LK) :: assertion; end function
484 : #endif
485 : #if RK4_ENABLED
486 : module function test_getUnique_D1_RK4_1() result(assertion); logical(LK) :: assertion; end function
487 : #endif
488 : #if RK3_ENABLED
489 : module function test_getUnique_D1_RK3_1() result(assertion); logical(LK) :: assertion; end function
490 : #endif
491 : #if RK2_ENABLED
492 : module function test_getUnique_D1_RK2_1() result(assertion); logical(LK) :: assertion; end function
493 : #endif
494 : #if RK1_ENABLED
495 : module function test_getUnique_D1_RK1_1() result(assertion); logical(LK) :: assertion; end function
496 : #endif
497 :
498 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
499 :
500 : end interface
501 :
502 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
503 :
504 : interface
505 :
506 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
507 :
508 : #if SK5_ENABLED
509 : module function test_setUnique_D0_SK5_1() result(assertion); logical(LK) :: assertion; end function
510 : #endif
511 : #if SK4_ENABLED
512 : module function test_setUnique_D0_SK4_1() result(assertion); logical(LK) :: assertion; end function
513 : #endif
514 : #if SK3_ENABLED
515 : module function test_setUnique_D0_SK3_1() result(assertion); logical(LK) :: assertion; end function
516 : #endif
517 : #if SK2_ENABLED
518 : module function test_setUnique_D0_SK2_1() result(assertion); logical(LK) :: assertion; end function
519 : #endif
520 : #if SK1_ENABLED
521 : module function test_setUnique_D0_SK1_1() result(assertion); logical(LK) :: assertion; end function
522 : #endif
523 :
524 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
525 :
526 : #if SK5_ENABLED
527 : module function test_setUnique_D1_SK5_1() result(assertion); logical(LK) :: assertion; end function
528 : #endif
529 : #if SK4_ENABLED
530 : module function test_setUnique_D1_SK4_1() result(assertion); logical(LK) :: assertion; end function
531 : #endif
532 : #if SK3_ENABLED
533 : module function test_setUnique_D1_SK3_1() result(assertion); logical(LK) :: assertion; end function
534 : #endif
535 : #if SK2_ENABLED
536 : module function test_setUnique_D1_SK2_1() result(assertion); logical(LK) :: assertion; end function
537 : #endif
538 : #if SK1_ENABLED
539 : module function test_setUnique_D1_SK1_1() result(assertion); logical(LK) :: assertion; end function
540 : #endif
541 :
542 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
543 :
544 : #if IK5_ENABLED
545 : module function test_setUnique_D1_IK5_1() result(assertion); logical(LK) :: assertion; end function
546 : #endif
547 : #if IK4_ENABLED
548 : module function test_setUnique_D1_IK4_1() result(assertion); logical(LK) :: assertion; end function
549 : #endif
550 : #if IK3_ENABLED
551 : module function test_setUnique_D1_IK3_1() result(assertion); logical(LK) :: assertion; end function
552 : #endif
553 : #if IK2_ENABLED
554 : module function test_setUnique_D1_IK2_1() result(assertion); logical(LK) :: assertion; end function
555 : #endif
556 : #if IK1_ENABLED
557 : module function test_setUnique_D1_IK1_1() result(assertion); logical(LK) :: assertion; end function
558 : #endif
559 :
560 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
561 :
562 : #if LK5_ENABLED
563 : module function test_setUnique_D1_LK5_1() result(assertion); logical(LK) :: assertion; end function
564 : #endif
565 : #if LK4_ENABLED
566 : module function test_setUnique_D1_LK4_1() result(assertion); logical(LK) :: assertion; end function
567 : #endif
568 : #if LK3_ENABLED
569 : module function test_setUnique_D1_LK3_1() result(assertion); logical(LK) :: assertion; end function
570 : #endif
571 : #if LK2_ENABLED
572 : module function test_setUnique_D1_LK2_1() result(assertion); logical(LK) :: assertion; end function
573 : #endif
574 : #if LK1_ENABLED
575 : module function test_setUnique_D1_LK1_1() result(assertion); logical(LK) :: assertion; end function
576 : #endif
577 :
578 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
579 :
580 : #if CK5_ENABLED
581 : module function test_setUnique_D1_CK5_1() result(assertion); logical(LK) :: assertion; end function
582 : #endif
583 : #if CK4_ENABLED
584 : module function test_setUnique_D1_CK4_1() result(assertion); logical(LK) :: assertion; end function
585 : #endif
586 : #if CK3_ENABLED
587 : module function test_setUnique_D1_CK3_1() result(assertion); logical(LK) :: assertion; end function
588 : #endif
589 : #if CK2_ENABLED
590 : module function test_setUnique_D1_CK2_1() result(assertion); logical(LK) :: assertion; end function
591 : #endif
592 : #if CK1_ENABLED
593 : module function test_setUnique_D1_CK1_1() result(assertion); logical(LK) :: assertion; end function
594 : #endif
595 :
596 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
597 :
598 : #if RK5_ENABLED
599 : module function test_setUnique_D1_RK5_1() result(assertion); logical(LK) :: assertion; end function
600 : #endif
601 : #if RK4_ENABLED
602 : module function test_setUnique_D1_RK4_1() result(assertion); logical(LK) :: assertion; end function
603 : #endif
604 : #if RK3_ENABLED
605 : module function test_setUnique_D1_RK3_1() result(assertion); logical(LK) :: assertion; end function
606 : #endif
607 : #if RK2_ENABLED
608 : module function test_setUnique_D1_RK2_1() result(assertion); logical(LK) :: assertion; end function
609 : #endif
610 : #if RK1_ENABLED
611 : module function test_setUnique_D1_RK1_1() result(assertion); logical(LK) :: assertion; end function
612 : #endif
613 :
614 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
615 :
616 : end interface
617 :
618 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619 :
620 : contains
621 :
622 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
623 :
624 1 : subroutine setTest()
625 :
626 : implicit none
627 :
628 1 : test = test_type(MODULE_NAME)
629 :
630 1 : call test%run(test_getUnique_D1_1, SK_"test_getUnique_D1_1")
631 :
632 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
633 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
634 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
635 :
636 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
637 :
638 : #if SK5_ENABLED
639 : call test%run(test_isUnique_D0_SK5_1, SK_"test_isUnique_D0_SK5_1")
640 : #endif
641 : #if SK4_ENABLED
642 : call test%run(test_isUnique_D0_SK4_1, SK_"test_isUnique_D0_SK4_1")
643 : #endif
644 : #if SK3_ENABLED
645 : call test%run(test_isUnique_D0_SK3_1, SK_"test_isUnique_D0_SK3_1")
646 : #endif
647 : #if SK2_ENABLED
648 : call test%run(test_isUnique_D0_SK2_1, SK_"test_isUnique_D0_SK2_1")
649 : #endif
650 : #if SK1_ENABLED
651 1 : call test%run(test_isUnique_D0_SK1_1, SK_"test_isUnique_D0_SK1_1")
652 : #endif
653 :
654 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
655 :
656 : #if SK5_ENABLED
657 : call test%run(test_isUnique_D1_SK5_1, SK_"test_isUnique_D1_SK5_1")
658 : #endif
659 : #if SK4_ENABLED
660 : call test%run(test_isUnique_D1_SK4_1, SK_"test_isUnique_D1_SK4_1")
661 : #endif
662 : #if SK3_ENABLED
663 : call test%run(test_isUnique_D1_SK3_1, SK_"test_isUnique_D1_SK3_1")
664 : #endif
665 : #if SK2_ENABLED
666 : call test%run(test_isUnique_D1_SK2_1, SK_"test_isUnique_D1_SK2_1")
667 : #endif
668 : #if SK1_ENABLED
669 1 : call test%run(test_isUnique_D1_SK1_1, SK_"test_isUnique_D1_SK1_1")
670 : #endif
671 :
672 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
673 :
674 : #if IK5_ENABLED
675 1 : call test%run(test_isUnique_D1_IK5_1, SK_"test_isUnique_D1_IK5_1")
676 : #endif
677 : #if IK4_ENABLED
678 1 : call test%run(test_isUnique_D1_IK4_1, SK_"test_isUnique_D1_IK4_1")
679 : #endif
680 : #if IK3_ENABLED
681 1 : call test%run(test_isUnique_D1_IK3_1, SK_"test_isUnique_D1_IK3_1")
682 : #endif
683 : #if IK2_ENABLED
684 1 : call test%run(test_isUnique_D1_IK2_1, SK_"test_isUnique_D1_IK2_1")
685 : #endif
686 : #if IK1_ENABLED
687 1 : call test%run(test_isUnique_D1_IK1_1, SK_"test_isUnique_D1_IK1_1")
688 : #endif
689 :
690 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
691 :
692 : #if LK5_ENABLED
693 1 : call test%run(test_isUnique_D1_LK5_1, SK_"test_isUnique_D1_LK5_1")
694 : #endif
695 : #if LK4_ENABLED
696 1 : call test%run(test_isUnique_D1_LK4_1, SK_"test_isUnique_D1_LK4_1")
697 : #endif
698 : #if LK3_ENABLED
699 1 : call test%run(test_isUnique_D1_LK3_1, SK_"test_isUnique_D1_LK3_1")
700 : #endif
701 : #if LK2_ENABLED
702 1 : call test%run(test_isUnique_D1_LK2_1, SK_"test_isUnique_D1_LK2_1")
703 : #endif
704 : #if LK1_ENABLED
705 1 : call test%run(test_isUnique_D1_LK1_1, SK_"test_isUnique_D1_LK1_1")
706 : #endif
707 :
708 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
709 :
710 : #if CK5_ENABLED
711 : call test%run(test_isUnique_D1_CK5_1, SK_"test_isUnique_D1_CK5_1")
712 : #endif
713 : #if CK4_ENABLED
714 1 : call test%run(test_isUnique_D1_CK4_1, SK_"test_isUnique_D1_CK4_1")
715 : #endif
716 : #if CK3_ENABLED
717 1 : call test%run(test_isUnique_D1_CK3_1, SK_"test_isUnique_D1_CK3_1")
718 : #endif
719 : #if CK2_ENABLED
720 1 : call test%run(test_isUnique_D1_CK2_1, SK_"test_isUnique_D1_CK2_1")
721 : #endif
722 : #if CK1_ENABLED
723 1 : call test%run(test_isUnique_D1_CK1_1, SK_"test_isUnique_D1_CK1_1")
724 : #endif
725 :
726 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
727 :
728 : #if RK5_ENABLED
729 : call test%run(test_isUnique_D1_RK5_1, SK_"test_isUnique_D1_RK5_1")
730 : #endif
731 : #if RK4_ENABLED
732 1 : call test%run(test_isUnique_D1_RK4_1, SK_"test_isUnique_D1_RK4_1")
733 : #endif
734 : #if RK3_ENABLED
735 1 : call test%run(test_isUnique_D1_RK3_1, SK_"test_isUnique_D1_RK3_1")
736 : #endif
737 : #if RK2_ENABLED
738 1 : call test%run(test_isUnique_D1_RK2_1, SK_"test_isUnique_D1_RK2_1")
739 : #endif
740 : #if RK1_ENABLED
741 1 : call test%run(test_isUnique_D1_RK1_1, SK_"test_isUnique_D1_RK1_1")
742 : #endif
743 :
744 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
745 :
746 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
747 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
748 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
749 :
750 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
751 :
752 : #if SK5_ENABLED
753 : call test%run(test_isUniqueAll_D0_SK5_1, SK_"test_isUniqueAll_D0_SK5_1")
754 : #endif
755 : #if SK4_ENABLED
756 : call test%run(test_isUniqueAll_D0_SK4_1, SK_"test_isUniqueAll_D0_SK4_1")
757 : #endif
758 : #if SK3_ENABLED
759 : call test%run(test_isUniqueAll_D0_SK3_1, SK_"test_isUniqueAll_D0_SK3_1")
760 : #endif
761 : #if SK2_ENABLED
762 : call test%run(test_isUniqueAll_D0_SK2_1, SK_"test_isUniqueAll_D0_SK2_1")
763 : #endif
764 : #if SK1_ENABLED
765 1 : call test%run(test_isUniqueAll_D0_SK1_1, SK_"test_isUniqueAll_D0_SK1_1")
766 : #endif
767 :
768 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
769 :
770 : #if SK5_ENABLED
771 : call test%run(test_isUniqueAll_D1_SK5_1, SK_"test_isUniqueAll_D1_SK5_1")
772 : #endif
773 : #if SK4_ENABLED
774 : call test%run(test_isUniqueAll_D1_SK4_1, SK_"test_isUniqueAll_D1_SK4_1")
775 : #endif
776 : #if SK3_ENABLED
777 : call test%run(test_isUniqueAll_D1_SK3_1, SK_"test_isUniqueAll_D1_SK3_1")
778 : #endif
779 : #if SK2_ENABLED
780 : call test%run(test_isUniqueAll_D1_SK2_1, SK_"test_isUniqueAll_D1_SK2_1")
781 : #endif
782 : #if SK1_ENABLED
783 1 : call test%run(test_isUniqueAll_D1_SK1_1, SK_"test_isUniqueAll_D1_SK1_1")
784 : #endif
785 :
786 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
787 :
788 : #if IK5_ENABLED
789 1 : call test%run(test_isUniqueAll_D1_IK5_1, SK_"test_isUniqueAll_D1_IK5_1")
790 : #endif
791 : #if IK4_ENABLED
792 1 : call test%run(test_isUniqueAll_D1_IK4_1, SK_"test_isUniqueAll_D1_IK4_1")
793 : #endif
794 : #if IK3_ENABLED
795 1 : call test%run(test_isUniqueAll_D1_IK3_1, SK_"test_isUniqueAll_D1_IK3_1")
796 : #endif
797 : #if IK2_ENABLED
798 1 : call test%run(test_isUniqueAll_D1_IK2_1, SK_"test_isUniqueAll_D1_IK2_1")
799 : #endif
800 : #if IK1_ENABLED
801 1 : call test%run(test_isUniqueAll_D1_IK1_1, SK_"test_isUniqueAll_D1_IK1_1")
802 : #endif
803 :
804 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
805 :
806 : #if LK5_ENABLED
807 1 : call test%run(test_isUniqueAll_D1_LK5_1, SK_"test_isUniqueAll_D1_LK5_1")
808 : #endif
809 : #if LK4_ENABLED
810 1 : call test%run(test_isUniqueAll_D1_LK4_1, SK_"test_isUniqueAll_D1_LK4_1")
811 : #endif
812 : #if LK3_ENABLED
813 1 : call test%run(test_isUniqueAll_D1_LK3_1, SK_"test_isUniqueAll_D1_LK3_1")
814 : #endif
815 : #if LK2_ENABLED
816 1 : call test%run(test_isUniqueAll_D1_LK2_1, SK_"test_isUniqueAll_D1_LK2_1")
817 : #endif
818 : #if LK1_ENABLED
819 1 : call test%run(test_isUniqueAll_D1_LK1_1, SK_"test_isUniqueAll_D1_LK1_1")
820 : #endif
821 :
822 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
823 :
824 : #if CK5_ENABLED
825 : call test%run(test_isUniqueAll_D1_CK5_1, SK_"test_isUniqueAll_D1_CK5_1")
826 : #endif
827 : #if CK4_ENABLED
828 1 : call test%run(test_isUniqueAll_D1_CK4_1, SK_"test_isUniqueAll_D1_CK4_1")
829 : #endif
830 : #if CK3_ENABLED
831 1 : call test%run(test_isUniqueAll_D1_CK3_1, SK_"test_isUniqueAll_D1_CK3_1")
832 : #endif
833 : #if CK2_ENABLED
834 1 : call test%run(test_isUniqueAll_D1_CK2_1, SK_"test_isUniqueAll_D1_CK2_1")
835 : #endif
836 : #if CK1_ENABLED
837 1 : call test%run(test_isUniqueAll_D1_CK1_1, SK_"test_isUniqueAll_D1_CK1_1")
838 : #endif
839 :
840 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
841 :
842 : #if RK5_ENABLED
843 : call test%run(test_isUniqueAll_D1_RK5_1, SK_"test_isUniqueAll_D1_RK5_1")
844 : #endif
845 : #if RK4_ENABLED
846 1 : call test%run(test_isUniqueAll_D1_RK4_1, SK_"test_isUniqueAll_D1_RK4_1")
847 : #endif
848 : #if RK3_ENABLED
849 1 : call test%run(test_isUniqueAll_D1_RK3_1, SK_"test_isUniqueAll_D1_RK3_1")
850 : #endif
851 : #if RK2_ENABLED
852 1 : call test%run(test_isUniqueAll_D1_RK2_1, SK_"test_isUniqueAll_D1_RK2_1")
853 : #endif
854 : #if RK1_ENABLED
855 1 : call test%run(test_isUniqueAll_D1_RK1_1, SK_"test_isUniqueAll_D1_RK1_1")
856 : #endif
857 :
858 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
859 :
860 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
861 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
862 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
863 :
864 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
865 :
866 : #if SK5_ENABLED
867 : call test%run(test_isUniqueAny_D0_SK5_1, SK_"test_isUniqueAny_D0_SK5_1")
868 : #endif
869 : #if SK4_ENABLED
870 : call test%run(test_isUniqueAny_D0_SK4_1, SK_"test_isUniqueAny_D0_SK4_1")
871 : #endif
872 : #if SK3_ENABLED
873 : call test%run(test_isUniqueAny_D0_SK3_1, SK_"test_isUniqueAny_D0_SK3_1")
874 : #endif
875 : #if SK2_ENABLED
876 : call test%run(test_isUniqueAny_D0_SK2_1, SK_"test_isUniqueAny_D0_SK2_1")
877 : #endif
878 : #if SK1_ENABLED
879 1 : call test%run(test_isUniqueAny_D0_SK1_1, SK_"test_isUniqueAny_D0_SK1_1")
880 : #endif
881 :
882 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
883 :
884 : #if SK5_ENABLED
885 : call test%run(test_isUniqueAny_D1_SK5_1, SK_"test_isUniqueAny_D1_SK5_1")
886 : #endif
887 : #if SK4_ENABLED
888 : call test%run(test_isUniqueAny_D1_SK4_1, SK_"test_isUniqueAny_D1_SK4_1")
889 : #endif
890 : #if SK3_ENABLED
891 : call test%run(test_isUniqueAny_D1_SK3_1, SK_"test_isUniqueAny_D1_SK3_1")
892 : #endif
893 : #if SK2_ENABLED
894 : call test%run(test_isUniqueAny_D1_SK2_1, SK_"test_isUniqueAny_D1_SK2_1")
895 : #endif
896 : #if SK1_ENABLED
897 1 : call test%run(test_isUniqueAny_D1_SK1_1, SK_"test_isUniqueAny_D1_SK1_1")
898 : #endif
899 :
900 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
901 :
902 : #if IK5_ENABLED
903 1 : call test%run(test_isUniqueAny_D1_IK5_1, SK_"test_isUniqueAny_D1_IK5_1")
904 : #endif
905 : #if IK4_ENABLED
906 1 : call test%run(test_isUniqueAny_D1_IK4_1, SK_"test_isUniqueAny_D1_IK4_1")
907 : #endif
908 : #if IK3_ENABLED
909 1 : call test%run(test_isUniqueAny_D1_IK3_1, SK_"test_isUniqueAny_D1_IK3_1")
910 : #endif
911 : #if IK2_ENABLED
912 1 : call test%run(test_isUniqueAny_D1_IK2_1, SK_"test_isUniqueAny_D1_IK2_1")
913 : #endif
914 : #if IK1_ENABLED
915 1 : call test%run(test_isUniqueAny_D1_IK1_1, SK_"test_isUniqueAny_D1_IK1_1")
916 : #endif
917 :
918 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
919 :
920 : #if LK5_ENABLED
921 1 : call test%run(test_isUniqueAny_D1_LK5_1, SK_"test_isUniqueAny_D1_LK5_1")
922 : #endif
923 : #if LK4_ENABLED
924 1 : call test%run(test_isUniqueAny_D1_LK4_1, SK_"test_isUniqueAny_D1_LK4_1")
925 : #endif
926 : #if LK3_ENABLED
927 1 : call test%run(test_isUniqueAny_D1_LK3_1, SK_"test_isUniqueAny_D1_LK3_1")
928 : #endif
929 : #if LK2_ENABLED
930 1 : call test%run(test_isUniqueAny_D1_LK2_1, SK_"test_isUniqueAny_D1_LK2_1")
931 : #endif
932 : #if LK1_ENABLED
933 1 : call test%run(test_isUniqueAny_D1_LK1_1, SK_"test_isUniqueAny_D1_LK1_1")
934 : #endif
935 :
936 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
937 :
938 : #if CK5_ENABLED
939 : call test%run(test_isUniqueAny_D1_CK5_1, SK_"test_isUniqueAny_D1_CK5_1")
940 : #endif
941 : #if CK4_ENABLED
942 1 : call test%run(test_isUniqueAny_D1_CK4_1, SK_"test_isUniqueAny_D1_CK4_1")
943 : #endif
944 : #if CK3_ENABLED
945 1 : call test%run(test_isUniqueAny_D1_CK3_1, SK_"test_isUniqueAny_D1_CK3_1")
946 : #endif
947 : #if CK2_ENABLED
948 1 : call test%run(test_isUniqueAny_D1_CK2_1, SK_"test_isUniqueAny_D1_CK2_1")
949 : #endif
950 : #if CK1_ENABLED
951 1 : call test%run(test_isUniqueAny_D1_CK1_1, SK_"test_isUniqueAny_D1_CK1_1")
952 : #endif
953 :
954 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
955 :
956 : #if RK5_ENABLED
957 : call test%run(test_isUniqueAny_D1_RK5_1, SK_"test_isUniqueAny_D1_RK5_1")
958 : #endif
959 : #if RK4_ENABLED
960 1 : call test%run(test_isUniqueAny_D1_RK4_1, SK_"test_isUniqueAny_D1_RK4_1")
961 : #endif
962 : #if RK3_ENABLED
963 1 : call test%run(test_isUniqueAny_D1_RK3_1, SK_"test_isUniqueAny_D1_RK3_1")
964 : #endif
965 : #if RK2_ENABLED
966 1 : call test%run(test_isUniqueAny_D1_RK2_1, SK_"test_isUniqueAny_D1_RK2_1")
967 : #endif
968 : #if RK1_ENABLED
969 1 : call test%run(test_isUniqueAny_D1_RK1_1, SK_"test_isUniqueAny_D1_RK1_1")
970 : #endif
971 :
972 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
973 :
974 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
975 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
976 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
977 :
978 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
979 :
980 : #if SK5_ENABLED
981 : call test%run(test_getUnique_D0_SK5_1, SK_"test_getUnique_D0_SK5_1")
982 : #endif
983 : #if SK4_ENABLED
984 : call test%run(test_getUnique_D0_SK4_1, SK_"test_getUnique_D0_SK4_1")
985 : #endif
986 : #if SK3_ENABLED
987 : call test%run(test_getUnique_D0_SK3_1, SK_"test_getUnique_D0_SK3_1")
988 : #endif
989 : #if SK2_ENABLED
990 : call test%run(test_getUnique_D0_SK2_1, SK_"test_getUnique_D0_SK2_1")
991 : #endif
992 : #if SK1_ENABLED
993 1 : call test%run(test_getUnique_D0_SK1_1, SK_"test_getUnique_D0_SK1_1")
994 : #endif
995 :
996 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
997 :
998 : #if SK5_ENABLED
999 : call test%run(test_getUnique_D1_SK5_1, SK_"test_getUnique_D1_SK5_1")
1000 : #endif
1001 : #if SK4_ENABLED
1002 : call test%run(test_getUnique_D1_SK4_1, SK_"test_getUnique_D1_SK4_1")
1003 : #endif
1004 : #if SK3_ENABLED
1005 : call test%run(test_getUnique_D1_SK3_1, SK_"test_getUnique_D1_SK3_1")
1006 : #endif
1007 : #if SK2_ENABLED
1008 : call test%run(test_getUnique_D1_SK2_1, SK_"test_getUnique_D1_SK2_1")
1009 : #endif
1010 : #if SK1_ENABLED
1011 1 : call test%run(test_getUnique_D1_SK1_1, SK_"test_getUnique_D1_SK1_1")
1012 : #endif
1013 :
1014 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1015 :
1016 : #if IK5_ENABLED
1017 1 : call test%run(test_getUnique_D1_IK5_1, SK_"test_getUnique_D1_IK5_1")
1018 : #endif
1019 : #if IK4_ENABLED
1020 1 : call test%run(test_getUnique_D1_IK4_1, SK_"test_getUnique_D1_IK4_1")
1021 : #endif
1022 : #if IK3_ENABLED
1023 1 : call test%run(test_getUnique_D1_IK3_1, SK_"test_getUnique_D1_IK3_1")
1024 : #endif
1025 : #if IK2_ENABLED
1026 1 : call test%run(test_getUnique_D1_IK2_1, SK_"test_getUnique_D1_IK2_1")
1027 : #endif
1028 : #if IK1_ENABLED
1029 1 : call test%run(test_getUnique_D1_IK1_1, SK_"test_getUnique_D1_IK1_1")
1030 : #endif
1031 :
1032 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1033 :
1034 : #if LK5_ENABLED
1035 1 : call test%run(test_getUnique_D1_LK5_1, SK_"test_getUnique_D1_LK5_1")
1036 : #endif
1037 : #if LK4_ENABLED
1038 1 : call test%run(test_getUnique_D1_LK4_1, SK_"test_getUnique_D1_LK4_1")
1039 : #endif
1040 : #if LK3_ENABLED
1041 1 : call test%run(test_getUnique_D1_LK3_1, SK_"test_getUnique_D1_LK3_1")
1042 : #endif
1043 : #if LK2_ENABLED
1044 1 : call test%run(test_getUnique_D1_LK2_1, SK_"test_getUnique_D1_LK2_1")
1045 : #endif
1046 : #if LK1_ENABLED
1047 1 : call test%run(test_getUnique_D1_LK1_1, SK_"test_getUnique_D1_LK1_1")
1048 : #endif
1049 :
1050 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1051 :
1052 : #if CK5_ENABLED
1053 : call test%run(test_getUnique_D1_CK5_1, SK_"test_getUnique_D1_CK5_1")
1054 : #endif
1055 : #if CK4_ENABLED
1056 1 : call test%run(test_getUnique_D1_CK4_1, SK_"test_getUnique_D1_CK4_1")
1057 : #endif
1058 : #if CK3_ENABLED
1059 1 : call test%run(test_getUnique_D1_CK3_1, SK_"test_getUnique_D1_CK3_1")
1060 : #endif
1061 : #if CK2_ENABLED
1062 1 : call test%run(test_getUnique_D1_CK2_1, SK_"test_getUnique_D1_CK2_1")
1063 : #endif
1064 : #if CK1_ENABLED
1065 1 : call test%run(test_getUnique_D1_CK1_1, SK_"test_getUnique_D1_CK1_1")
1066 : #endif
1067 :
1068 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1069 :
1070 : #if RK5_ENABLED
1071 : call test%run(test_getUnique_D1_RK5_1, SK_"test_getUnique_D1_RK5_1")
1072 : #endif
1073 : #if RK4_ENABLED
1074 1 : call test%run(test_getUnique_D1_RK4_1, SK_"test_getUnique_D1_RK4_1")
1075 : #endif
1076 : #if RK3_ENABLED
1077 1 : call test%run(test_getUnique_D1_RK3_1, SK_"test_getUnique_D1_RK3_1")
1078 : #endif
1079 : #if RK2_ENABLED
1080 1 : call test%run(test_getUnique_D1_RK2_1, SK_"test_getUnique_D1_RK2_1")
1081 : #endif
1082 : #if RK1_ENABLED
1083 1 : call test%run(test_getUnique_D1_RK1_1, SK_"test_getUnique_D1_RK1_1")
1084 : #endif
1085 :
1086 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1087 :
1088 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1089 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1090 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1091 :
1092 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1093 :
1094 : #if SK5_ENABLED
1095 : call test%run(test_setUnique_D0_SK5_1, SK_"test_setUnique_D0_SK5_1")
1096 : #endif
1097 : #if SK4_ENABLED
1098 : call test%run(test_setUnique_D0_SK4_1, SK_"test_setUnique_D0_SK4_1")
1099 : #endif
1100 : #if SK3_ENABLED
1101 : call test%run(test_setUnique_D0_SK3_1, SK_"test_setUnique_D0_SK3_1")
1102 : #endif
1103 : #if SK2_ENABLED
1104 : call test%run(test_setUnique_D0_SK2_1, SK_"test_setUnique_D0_SK2_1")
1105 : #endif
1106 : #if SK1_ENABLED
1107 1 : call test%run(test_setUnique_D0_SK1_1, SK_"test_setUnique_D0_SK1_1")
1108 : #endif
1109 :
1110 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1111 :
1112 : #if SK5_ENABLED
1113 : call test%run(test_setUnique_D1_SK5_1, SK_"test_setUnique_D1_SK5_1")
1114 : #endif
1115 : #if SK4_ENABLED
1116 : call test%run(test_setUnique_D1_SK4_1, SK_"test_setUnique_D1_SK4_1")
1117 : #endif
1118 : #if SK3_ENABLED
1119 : call test%run(test_setUnique_D1_SK3_1, SK_"test_setUnique_D1_SK3_1")
1120 : #endif
1121 : #if SK2_ENABLED
1122 : call test%run(test_setUnique_D1_SK2_1, SK_"test_setUnique_D1_SK2_1")
1123 : #endif
1124 : #if SK1_ENABLED
1125 1 : call test%run(test_setUnique_D1_SK1_1, SK_"test_setUnique_D1_SK1_1")
1126 : #endif
1127 :
1128 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1129 :
1130 : #if IK5_ENABLED
1131 1 : call test%run(test_setUnique_D1_IK5_1, SK_"test_setUnique_D1_IK5_1")
1132 : #endif
1133 : #if IK4_ENABLED
1134 1 : call test%run(test_setUnique_D1_IK4_1, SK_"test_setUnique_D1_IK4_1")
1135 : #endif
1136 : #if IK3_ENABLED
1137 1 : call test%run(test_setUnique_D1_IK3_1, SK_"test_setUnique_D1_IK3_1")
1138 : #endif
1139 : #if IK2_ENABLED
1140 1 : call test%run(test_setUnique_D1_IK2_1, SK_"test_setUnique_D1_IK2_1")
1141 : #endif
1142 : #if IK1_ENABLED
1143 1 : call test%run(test_setUnique_D1_IK1_1, SK_"test_setUnique_D1_IK1_1")
1144 : #endif
1145 :
1146 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1147 :
1148 : #if LK5_ENABLED
1149 1 : call test%run(test_setUnique_D1_LK5_1, SK_"test_setUnique_D1_LK5_1")
1150 : #endif
1151 : #if LK4_ENABLED
1152 1 : call test%run(test_setUnique_D1_LK4_1, SK_"test_setUnique_D1_LK4_1")
1153 : #endif
1154 : #if LK3_ENABLED
1155 1 : call test%run(test_setUnique_D1_LK3_1, SK_"test_setUnique_D1_LK3_1")
1156 : #endif
1157 : #if LK2_ENABLED
1158 1 : call test%run(test_setUnique_D1_LK2_1, SK_"test_setUnique_D1_LK2_1")
1159 : #endif
1160 : #if LK1_ENABLED
1161 1 : call test%run(test_setUnique_D1_LK1_1, SK_"test_setUnique_D1_LK1_1")
1162 : #endif
1163 :
1164 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1165 :
1166 : #if CK5_ENABLED
1167 : call test%run(test_setUnique_D1_CK5_1, SK_"test_setUnique_D1_CK5_1")
1168 : #endif
1169 : #if CK4_ENABLED
1170 1 : call test%run(test_setUnique_D1_CK4_1, SK_"test_setUnique_D1_CK4_1")
1171 : #endif
1172 : #if CK3_ENABLED
1173 1 : call test%run(test_setUnique_D1_CK3_1, SK_"test_setUnique_D1_CK3_1")
1174 : #endif
1175 : #if CK2_ENABLED
1176 1 : call test%run(test_setUnique_D1_CK2_1, SK_"test_setUnique_D1_CK2_1")
1177 : #endif
1178 : #if CK1_ENABLED
1179 1 : call test%run(test_setUnique_D1_CK1_1, SK_"test_setUnique_D1_CK1_1")
1180 : #endif
1181 :
1182 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1183 :
1184 : #if RK5_ENABLED
1185 : call test%run(test_setUnique_D1_RK5_1, SK_"test_setUnique_D1_RK5_1")
1186 : #endif
1187 : #if RK4_ENABLED
1188 1 : call test%run(test_setUnique_D1_RK4_1, SK_"test_setUnique_D1_RK4_1")
1189 : #endif
1190 : #if RK3_ENABLED
1191 1 : call test%run(test_setUnique_D1_RK3_1, SK_"test_setUnique_D1_RK3_1")
1192 : #endif
1193 : #if RK2_ENABLED
1194 1 : call test%run(test_setUnique_D1_RK2_1, SK_"test_setUnique_D1_RK2_1")
1195 : #endif
1196 : #if RK1_ENABLED
1197 1 : call test%run(test_setUnique_D1_RK1_1, SK_"test_setUnique_D1_RK1_1")
1198 : #endif
1199 :
1200 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1201 :
1202 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1203 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1204 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1205 :
1206 1 : call test%summarize()
1207 :
1208 1 : end subroutine setTest
1209 :
1210 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1211 :
1212 1 : function test_getUnique_D1_1() result(assertion)
1213 :
1214 : use pm_kind, only: RK, IK
1215 : use pm_container, only: IV => cvi_pdt
1216 :
1217 : implicit none
1218 : logical(LK) :: assertion
1219 : integer(IK) , parameter :: VECTOR(*) = int([1,2,1,3,5,5,2],IK)
1220 : integer(IK) , parameter :: UNIQUE_VALUE(*) = int([1,2,3,5],IK)
1221 : integer(IK) , allocatable :: Unique(:)
1222 :
1223 6 : Unique = getUnique(VECTOR)
1224 5 : assertion = all(Unique == UNIQUE_VALUE)
1225 :
1226 1 : if (test%traceable .and. .not. assertion) then
1227 : ! LCOV_EXCL_START
1228 : write(test%disp%unit,"(*(g0,:,', '))")
1229 : write(test%disp%unit,"(*(g0,:,', '))") "VECTOR", VECTOR
1230 : write(test%disp%unit,"(*(g0,:,', '))")
1231 : write(test%disp%unit,"(*(g0,:,', '))") "UNIQUE_VALUE ", UNIQUE_VALUE
1232 : write(test%disp%unit,"(*(g0,:,', '))") "Unique ", Unique
1233 : write(test%disp%unit,"(*(g0,:,', '))")
1234 : end if
1235 : ! LCOV_EXCL_STOP
1236 :
1237 1 : end function test_getUnique_D1_1
1238 :
1239 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1240 :
1241 : !function test_findUnique_1() result(assertion)
1242 : !
1243 : ! use pm_kind, only: RK, IK
1244 : ! use pm_container, only: IV => cvi_pdt
1245 : !
1246 : ! implicit none
1247 : ! logical(LK) :: assertion
1248 : ! logical(LK) :: assertionCurrent
1249 : ! integer(IK) , parameter :: VECTOR(*) = [1,2,1,3,5,5,2]
1250 : ! integer(IK) , parameter :: LEN_VECTOR = size(VECTOR)
1251 : ! integer(IK) , parameter :: UNIQUE_VALUE(*) = [1,2,3,5]
1252 : ! integer(IK) , parameter :: UNIQUE_COUNT(*) = [2,2,1,2]
1253 : ! integer(IK) , allocatable :: ZeroLenVector(:)
1254 : ! integer(IK) , allocatable :: UniqueValue(:)
1255 : ! integer(IK) , allocatable :: UniqueCount(:)
1256 : ! type(IV) , allocatable :: UniqueIndex(:)
1257 : ! type(IV) , allocatable :: UNIQUE_INDEX(:)
1258 : ! integer(IK) :: lenUnique, i
1259 : ! type(err_type) :: Err
1260 : !
1261 : ! call findUnique ( Vector = VECTOR &
1262 : ! , lenUnique = lenUnique &
1263 : ! , UniqueValue = UniqueValue &
1264 : ! , UniqueCount = UniqueCount &
1265 : ! )
1266 : !
1267 : ! assertion = all(UniqueValue(1:lenUnique)==UNIQUE_VALUE) .and. all(UniqueCount(1:lenUnique)==UNIQUE_COUNT)
1268 : !
1269 : ! if (test%traceable .and. .not. assertion) then
1270 : ! ! LCOV_EXCL_START
1271 : ! write(test%disp%unit,"(*(g0,:,', '))")
1272 : ! write(test%disp%unit,"(*(g0,:,', '))") "VECTOR", VECTOR
1273 : ! write(test%disp%unit,"(*(g0,:,', '))")
1274 : ! write(test%disp%unit,"(*(g0,:,', '))") "UNIQUE_VALUE", UNIQUE_VALUE
1275 : ! write(test%disp%unit,"(*(g0,:,', '))") "UniqueValue ", UniqueValue(1:lenUnique)
1276 : ! write(test%disp%unit,"(*(g0,:,', '))")
1277 : ! write(test%disp%unit,"(*(g0,:,', '))") "UNIQUE_COUNT", UNIQUE_COUNT
1278 : ! write(test%disp%unit,"(*(g0,:,', '))") "UniqueCount ", UniqueCount(1:lenUnique)
1279 : ! write(test%disp%unit,"(*(g0,:,', '))")
1280 : ! write(test%disp%unit,"(*(g0,:,', '))") "lenUnique", lenUnique
1281 : ! write(test%disp%unit,"(*(g0,:,', '))")
1282 : ! end if
1283 : ! ! LCOV_EXCL_STOP
1284 : !
1285 : ! call test%assert(assertion)
1286 : !
1287 : ! ! test UniqueIndex
1288 : !
1289 : ! allocate(UNIQUE_INDEX(size(UNIQUE_COUNT)))
1290 : ! UNIQUE_INDEX(1)%val = [5,6]
1291 : ! UNIQUE_INDEX(2)%val = [2,7]
1292 : ! UNIQUE_INDEX(3)%val = [1,3]
1293 : ! UNIQUE_INDEX(4)%val = [4]
1294 : !
1295 : ! call findUnique ( Vector = VECTOR &
1296 : ! , lenUnique = lenUnique &
1297 : ! , UniqueValue = UniqueValue &
1298 : ! , UniqueCount = UniqueCount &
1299 : ! , UniqueIndex = UniqueIndex &
1300 : ! , sorting = -1_IK &
1301 : ! )
1302 : !
1303 : ! assertion = assertion .and. .not. err%occurred
1304 : ! call test%assert(assertion)
1305 : !
1306 : ! do i = 1, lenUnique
1307 : !
1308 : ! assertionCurrent = all(UniqueIndex(i)%val == UNIQUE_INDEX(i)%val)
1309 : ! assertion = assertion .and. assertionCurrent
1310 : !
1311 : ! if (test%traceable .and. .not. assertionCurrent) then
1312 : ! ! LCOV_EXCL_START
1313 : ! write(test%disp%unit,"(*(g0,:,', '))")
1314 : ! write(test%disp%unit,"(*(g0,:,', '))") "UNIQUE_COUNT", UNIQUE_COUNT
1315 : ! write(test%disp%unit,"(*(g0,:,', '))") "UniqueCount ", UniqueCount
1316 : ! write(test%disp%unit,"(*(g0,:,', '))")
1317 : ! end if
1318 : ! ! LCOV_EXCL_STOP
1319 : !
1320 : ! if (i>1_IK) assertionCurrent = assertionCurrent .and. UniqueCount(i) <= UniqueCount(i-1)
1321 : ! assertion = assertion .and. assertionCurrent
1322 : !
1323 : ! if (test%traceable .and. .not. assertionCurrent) then
1324 : ! ! LCOV_EXCL_START
1325 : ! write(test%disp%unit,"(*(g0,:,', '))")
1326 : ! write(test%disp%unit,"(*(g0,:,', '))") "VECTOR", VECTOR
1327 : ! write(test%disp%unit,"(*(g0,:,', '))")
1328 : ! write(test%disp%unit,"(*(g0,:,', '))") "UNIQUE_VALUE", UNIQUE_VALUE
1329 : ! write(test%disp%unit,"(*(g0,:,', '))") "UniqueValue ", UniqueValue
1330 : ! write(test%disp%unit,"(*(g0,:,', '))")
1331 : ! write(test%disp%unit,"(*(g0,:,', '))") "UNIQUE_COUNT", UNIQUE_COUNT
1332 : ! write(test%disp%unit,"(*(g0,:,', '))") "UniqueCount ", UniqueCount
1333 : ! write(test%disp%unit,"(*(g0,:,', '))")
1334 : ! write(test%disp%unit,"(*(g0,:,', '))") "UNIQUE_INDEX(i)%val ", UNIQUE_INDEX(i)%val
1335 : ! write(test%disp%unit,"(*(g0,:,', '))") "UniqueIndex(i)%val ", UniqueIndex(i)%val
1336 : ! write(test%disp%unit,"(*(g0,:,', '))")
1337 : ! write(test%disp%unit,"(*(g0,:,', '))") "lenUnique", lenUnique
1338 : ! write(test%disp%unit,"(*(g0,:,', '))")
1339 : ! end if
1340 : ! ! LCOV_EXCL_STOP
1341 : !
1342 : ! if (.not. assertion) exit ! LCOV_EXCL_LINE
1343 : !
1344 : ! end do
1345 : ! call test%assert(assertion)
1346 : !
1347 : ! ! test with empty input vector
1348 : !
1349 : ! allocate(ZeroLenVector(0))
1350 : ! call findUnique ( Vector = ZeroLenVector & ! LCOV_EXCL_LINE
1351 : ! , UniqueValue = UniqueValue & ! LCOV_EXCL_LINE
1352 : ! , UniqueCount = UniqueCount & ! LCOV_EXCL_LINE
1353 : ! , lenUnique = lenUnique & ! LCOV_EXCL_LINE
1354 : ! )
1355 : !
1356 : ! if (test%traceable .and. .not. assertion) then
1357 : ! ! LCOV_EXCL_START
1358 : ! write(test%disp%unit,"(*(g0,:,', '))")
1359 : ! write(test%disp%unit,"(*(g0,:,', '))") "VECTOR", VECTOR
1360 : ! write(test%disp%unit,"(*(g0,:,', '))")
1361 : ! write(test%disp%unit,"(*(g0,:,', '))") "UNIQUE_VALUE", UNIQUE_VALUE
1362 : ! write(test%disp%unit,"(*(g0,:,', '))") "UniqueValue ", UniqueValue(1:lenUnique)
1363 : ! write(test%disp%unit,"(*(g0,:,', '))")
1364 : ! write(test%disp%unit,"(*(g0,:,', '))") "UNIQUE_COUNT", UNIQUE_COUNT
1365 : ! write(test%disp%unit,"(*(g0,:,', '))") "UniqueCount ", UniqueCount(1:lenUnique)
1366 : ! write(test%disp%unit,"(*(g0,:,', '))")
1367 : ! write(test%disp%unit,"(*(g0,:,', '))") "lenUnique", lenUnique
1368 : ! write(test%disp%unit,"(*(g0,:,', '))")
1369 : ! write(test%disp%unit,"(*(g0,:,', '))")
1370 : ! write(test%disp%unit,"(*(g0,:,', '))")
1371 : ! write(test%disp%unit,"(*(g0,:,', '))") "VECTOR", ZeroLenVector
1372 : ! write(test%disp%unit,"(*(g0,:,', '))")
1373 : ! write(test%disp%unit,"(*(g0,:,', '))") "UniqueValue ", UniqueValue(1:lenUnique)
1374 : ! write(test%disp%unit,"(*(g0,:,', '))")
1375 : ! write(test%disp%unit,"(*(g0,:,', '))") "UniqueCount ", UniqueCount(1:lenUnique)
1376 : ! write(test%disp%unit,"(*(g0,:,', '))")
1377 : ! write(test%disp%unit,"(*(g0,:,', '))") "lenUnique", lenUnique
1378 : ! write(test%disp%unit,"(*(g0,:,', '))")
1379 : ! end if
1380 : ! ! LCOV_EXCL_STOP
1381 : !
1382 : !end function test_findUnique_1
1383 :
1384 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1385 :
1386 : end module test_pm_arrayUnique ! LCOV_EXCL_LINE
|