Line data Source code
1 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3 : !!!!
4 : !!!! MIT License
5 : !!!!
6 : !!!! ParaMonte: plain powerful parallel Monte Carlo library.
7 : !!!!
8 : !!!! Copyright (C) 2012-present, The Computational Data Science Lab
9 : !!!!
10 : !!!! This file is part of the ParaMonte library.
11 : !!!!
12 : !!!! Permission is hereby granted, free of charge, to any person obtaining a
13 : !!!! copy of this software and associated documentation files (the "Software"),
14 : !!!! to deal in the Software without restriction, including without limitation
15 : !!!! the rights to use, copy, modify, merge, publish, distribute, sublicense,
16 : !!!! and/or sell copies of the Software, and to permit persons to whom the
17 : !!!! Software is furnished to do so, subject to the following conditions:
18 : !!!!
19 : !!!! The above copyright notice and this permission notice shall be
20 : !!!! included in all copies or substantial portions of the Software.
21 : !!!!
22 : !!!! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 : !!!! EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 : !!!! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25 : !!!! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
26 : !!!! DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27 : !!!! OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
28 : !!!! OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 : !!!!
30 : !!!! ACKNOWLEDGMENT
31 : !!!!
32 : !!!! ParaMonte is an honor-ware and its currency is acknowledgment and citations.
33 : !!!! As per the ParaMonte library license agreement terms, if you use any parts of
34 : !!!! this library for any purposes, kindly acknowledge the use of ParaMonte in your
35 : !!!! work (education/research/industry/development/...) by citing the ParaMonte
36 : !!!! library as described on this page:
37 : !!!!
38 : !!!! https://github.com/cdslaborg/paramonte/blob/main/ACKNOWLEDGMENT.md
39 : !!!!
40 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
41 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
42 :
43 : !> \brief This include file contains the body of the submodules
44 : !> [ParaDRAM_mod@Test_SpecDRAM_smod](@ref paradram_mod@test_specdram_smod) and
45 : !> [ParaDISE_mod@@Test_SpecDRAM_smod](@ref paradise_mod@@test_specdram_smod).
46 : !> \author Amir Shahmoradi
47 :
48 : contains
49 :
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 :
52 : !> \brief
53 : !> Test the ParaDXXX sampler with a wrong input value for `daptiveUpdateCount < 0`.
54 12 : module function test_SpecDRAM_AdaptiveUpdateCount_type_1() result(assertion)
55 : use Constants_mod, only: IK, RK
56 : implicit none
57 : logical :: assertion
58 6 : type(ParaDXXX_type) :: PD
59 6 : assertion = .true.
60 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
61 : call PD%runSampler ( ndim = 1_IK &
62 : , getLogFunc = getLogFuncMVN &
63 : , mpiFinalizeRequested = .false. &
64 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_AdaptiveUpdateCount_type_1" &
65 : , adaptiveUpdateCount = -1_IK &
66 6 : )
67 6 : assertion = assertion .and. PD%Err%occurred
68 : #endif
69 14 : end function test_SpecDRAM_AdaptiveUpdateCount_type_1
70 :
71 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
72 :
73 : !> \brief
74 : !> Test the ParaDXXX sampler with a valid input value for `daptiveUpdateCount`.
75 6 : module function test_SpecDRAM_AdaptiveUpdateCount_type_2() result(assertion)
76 6 : use Constants_mod, only: IK, RK
77 : implicit none
78 : logical :: assertion
79 6 : type(ParaDXXX_type) :: PD
80 6 : assertion = .true.
81 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
82 : call PD%runSampler ( ndim = 1_IK &
83 : , getLogFunc = getLogFuncMVN &
84 : , mpiFinalizeRequested = .false. &
85 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_AdaptiveUpdateCount_type_2" &
86 : , adaptiveUpdateCount = 0_IK &
87 6 : )
88 6 : assertion = assertion .and. .not. PD%Err%occurred
89 : #endif
90 66 : end function test_SpecDRAM_AdaptiveUpdateCount_type_2
91 :
92 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
93 :
94 : !> \brief
95 : !> Test the ParaDXXX sampler with a valid input value for `daptiveUpdateCount`.
96 6 : module function test_SpecDRAM_AdaptiveUpdateCount_type_3() result(assertion)
97 6 : use Constants_mod, only: IK, RK
98 : implicit none
99 : logical :: assertion
100 6 : type(ParaDXXX_type) :: PD
101 6 : assertion = .true.
102 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
103 : call PD%runSampler ( ndim = 1_IK &
104 : , getLogFunc = getLogFuncMVN &
105 : , mpiFinalizeRequested = .false. &
106 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_AdaptiveUpdateCount_type_3" &
107 : , inputFile = ParaDXXX_NML//" adaptiveUpdateCount = 0 /" &
108 6 : )
109 6 : assertion = assertion .and. .not. PD%Err%occurred
110 : #endif
111 66 : end function test_SpecDRAM_AdaptiveUpdateCount_type_3
112 :
113 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
114 :
115 : !> \brief
116 : !> Test the ParaDXXX sampler with a wrong input value for `adaptiveUpdatePeriod < 0`.
117 6 : module function test_SpecDRAM_AdaptiveUpdatePeriod_type_1() result(assertion)
118 6 : use Constants_mod, only: IK, RK
119 : implicit none
120 : logical :: assertion
121 6 : type(ParaDXXX_type) :: PD
122 6 : assertion = .true.
123 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
124 : call PD%runSampler ( ndim = 1_IK &
125 : , getLogFunc = getLogFuncMVN &
126 : , mpiFinalizeRequested = .false. &
127 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_AdaptiveUpdatePeriod_type_1" &
128 : , adaptiveUpdatePeriod = 0_IK &
129 6 : )
130 6 : assertion = assertion .and. PD%Err%occurred
131 : #endif
132 14 : end function test_SpecDRAM_AdaptiveUpdatePeriod_type_1
133 :
134 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
135 :
136 : !> \brief
137 : !> Test the ParaDXXX sampler with a valid input value for `adaptiveUpdatePeriod`.
138 6 : module function test_SpecDRAM_AdaptiveUpdatePeriod_type_2() result(assertion)
139 6 : use Constants_mod, only: IK, RK
140 : implicit none
141 : logical :: assertion
142 6 : type(ParaDXXX_type) :: PD
143 6 : assertion = .true.
144 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
145 : call PD%runSampler ( ndim = 1_IK &
146 : , getLogFunc = getLogFuncMVN &
147 : , mpiFinalizeRequested = .false. &
148 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_AdaptiveUpdatePeriod_type_2" &
149 : , adaptiveUpdatePeriod = 1_IK &
150 6 : )
151 6 : assertion = assertion .and. .not. PD%Err%occurred
152 : #endif
153 66 : end function test_SpecDRAM_AdaptiveUpdatePeriod_type_2
154 :
155 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
156 :
157 : !> \brief
158 : !> Test the ParaDXXX sampler with a valid input value for `adaptiveUpdatePeriod`.
159 6 : module function test_SpecDRAM_AdaptiveUpdatePeriod_type_3() result(assertion)
160 6 : use Constants_mod, only: IK, RK
161 : implicit none
162 : logical :: assertion
163 6 : type(ParaDXXX_type) :: PD
164 6 : assertion = .true.
165 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
166 : call PD%runSampler ( ndim = 1_IK &
167 : , getLogFunc = getLogFuncMVN &
168 : , mpiFinalizeRequested = .false. &
169 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_AdaptiveUpdatePeriod_type_3" &
170 : , inputFile = ParaDXXX_NML//" adaptiveUpdatePeriod = 1 /" &
171 6 : )
172 6 : assertion = assertion .and. .not. PD%Err%occurred
173 : #endif
174 66 : end function test_SpecDRAM_AdaptiveUpdatePeriod_type_3
175 :
176 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
177 :
178 : !> \brief
179 : !> Test the ParaDXXX sampler with a wrong input value for `burninAdaptationMeasure < 0.`.
180 6 : module function test_SpecDRAM_BurninAdaptationMeasure_type_1() result(assertion)
181 6 : use Constants_mod, only: IK, RK
182 : implicit none
183 : logical :: assertion
184 6 : type(ParaDXXX_type) :: PD
185 6 : assertion = .true.
186 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
187 : call PD%runSampler ( ndim = 1_IK &
188 : , getLogFunc = getLogFuncMVN &
189 : , mpiFinalizeRequested = .false. &
190 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_BurninAdaptationMeasure_type_1" &
191 : , burninAdaptationMeasure = -0.1_RK &
192 6 : )
193 6 : assertion = assertion .and. PD%Err%occurred
194 : #endif
195 14 : end function test_SpecDRAM_BurninAdaptationMeasure_type_1
196 :
197 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
198 :
199 : !> \brief
200 : !> Test the ParaDXXX sampler with a wrong input value for `burninAdaptationMeasure > 1.`.
201 6 : module function test_SpecDRAM_BurninAdaptationMeasure_type_2() result(assertion)
202 6 : use Constants_mod, only: IK, RK
203 : implicit none
204 : logical :: assertion
205 6 : type(ParaDXXX_type) :: PD
206 6 : assertion = .true.
207 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
208 : call PD%runSampler ( ndim = 1_IK &
209 : , getLogFunc = getLogFuncMVN &
210 : , mpiFinalizeRequested = .false. &
211 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_BurninAdaptationMeasure_type_2" &
212 : , burninAdaptationMeasure = 1.1_RK &
213 6 : )
214 6 : assertion = assertion .and. PD%Err%occurred
215 : #endif
216 14 : end function test_SpecDRAM_BurninAdaptationMeasure_type_2
217 :
218 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
219 :
220 : !> \brief
221 : !> Test the ParaDXXX sampler with a valid input value for `adaptiveUpdatePeriod`.
222 6 : module function test_SpecDRAM_BurninAdaptationMeasure_type_3() result(assertion)
223 6 : use Constants_mod, only: IK, RK
224 : implicit none
225 : logical :: assertion
226 6 : type(ParaDXXX_type) :: PD
227 6 : assertion = .true.
228 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
229 : call PD%runSampler ( ndim = 1_IK &
230 : , getLogFunc = getLogFuncMVN &
231 : , mpiFinalizeRequested = .false. &
232 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_BurninAdaptationMeasure_type_3" &
233 : , burninAdaptationMeasure = 1._RK &
234 6 : )
235 6 : assertion = assertion .and. .not. PD%Err%occurred
236 : #endif
237 66 : end function test_SpecDRAM_BurninAdaptationMeasure_type_3
238 :
239 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
240 :
241 : !> \brief
242 : !> Test the ParaDXXX sampler with a valid input value for `adaptiveUpdatePeriod`.
243 6 : module function test_SpecDRAM_BurninAdaptationMeasure_type_4() result(assertion)
244 6 : use Constants_mod, only: IK, RK
245 : implicit none
246 : logical :: assertion
247 6 : type(ParaDXXX_type) :: PD
248 6 : assertion = .true.
249 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
250 : call PD%runSampler ( ndim = 1_IK &
251 : , getLogFunc = getLogFuncMVN &
252 : , mpiFinalizeRequested = .false. &
253 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_BurninAdaptationMeasure_type_4" &
254 : , inputFile = ParaDXXX_NML//" burninAdaptationMeasure = 0.5 /" &
255 6 : )
256 6 : assertion = assertion .and. .not. PD%Err%occurred
257 : #endif
258 66 : end function test_SpecDRAM_BurninAdaptationMeasure_type_4
259 :
260 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
261 :
262 : !> \brief
263 : !> Test the ParaDXXX sampler with a wrong input value for `burninAdaptationMeasure < 0.`.
264 6 : module function test_SpecDRAM_DelayedRejectionCount_type_1() result(assertion)
265 6 : use SpecDRAM_DelayedRejectionCount_mod, only: MIN_DELAYED_REJECTION_COUNT
266 : use Constants_mod, only: IK, RK
267 : implicit none
268 : logical :: assertion
269 6 : type(ParaDXXX_type) :: PD
270 6 : assertion = .true.
271 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
272 : call PD%runSampler ( ndim = 1_IK &
273 : , getLogFunc = getLogFuncMVN &
274 : , mpiFinalizeRequested = .false. &
275 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_DelayedRejectionCount_type_1" &
276 : , delayedRejectionCount = MIN_DELAYED_REJECTION_COUNT - 1_IK &
277 6 : )
278 6 : assertion = assertion .and. PD%Err%occurred
279 : #endif
280 14 : end function test_SpecDRAM_DelayedRejectionCount_type_1
281 :
282 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
283 :
284 : !> \brief
285 : !> Test the ParaDXXX sampler with a wrong input value for `DelayedRejectionCount > 1.`.
286 6 : module function test_SpecDRAM_DelayedRejectionCount_type_2() result(assertion)
287 6 : use Constants_mod, only: IK, RK
288 : use SpecDRAM_DelayedRejectionCount_mod, only: MAX_DELAYED_REJECTION_COUNT
289 : implicit none
290 : logical :: assertion
291 6 : type(ParaDXXX_type) :: PD
292 6 : assertion = .true.
293 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
294 : call PD%runSampler ( ndim = 1_IK &
295 : , getLogFunc = getLogFuncMVN &
296 : , mpiFinalizeRequested = .false. &
297 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_DelayedRejectionCount_type_2" &
298 : , delayedRejectionCount = MAX_DELAYED_REJECTION_COUNT + 1_IK &
299 6 : )
300 6 : assertion = assertion .and. PD%Err%occurred
301 : #endif
302 14 : end function test_SpecDRAM_DelayedRejectionCount_type_2
303 :
304 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
305 :
306 : !> \brief
307 : !> Test the ParaDXXX sampler with a valid input value for `adaptiveUpdatePeriod`.
308 6 : module function test_SpecDRAM_DelayedRejectionCount_type_3() result(assertion)
309 6 : use Constants_mod, only: IK, RK
310 : implicit none
311 : logical :: assertion
312 6 : type(ParaDXXX_type) :: PD
313 6 : assertion = .true.
314 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
315 : call PD%runSampler ( ndim = 1_IK &
316 : , getLogFunc = getLogFuncMVN &
317 : , mpiFinalizeRequested = .false. &
318 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_DelayedRejectionCount_type_3" &
319 : , delayedRejectionCount = 0_IK &
320 6 : )
321 6 : assertion = assertion .and. .not. PD%Err%occurred
322 : #endif
323 66 : end function test_SpecDRAM_DelayedRejectionCount_type_3
324 :
325 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
326 :
327 : !> \brief
328 : !> Test the ParaDXXX sampler with a valid input value for `adaptiveUpdatePeriod`.
329 6 : module function test_SpecDRAM_DelayedRejectionCount_type_4() result(assertion)
330 6 : use Constants_mod, only: IK, RK
331 : implicit none
332 : logical :: assertion
333 6 : type(ParaDXXX_type) :: PD
334 6 : assertion = .true.
335 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
336 : call PD%runSampler ( ndim = 1_IK &
337 : , getLogFunc = getLogFuncMVN &
338 : , mpiFinalizeRequested = .false. &
339 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_DelayedRejectionCount_type_4" &
340 : , inputFile = ParaDXXX_NML//" delayedRejectionCount = 3 /" &
341 6 : )
342 6 : assertion = assertion .and. .not. PD%Err%occurred
343 : #endif
344 66 : end function test_SpecDRAM_DelayedRejectionCount_type_4
345 :
346 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
347 :
348 : !> \brief
349 : !> Test the ParaDXXX sampler with a valid input value for `DelayedRejectionScaleFactorVec`.
350 6 : module function test_SpecDRAM_DelayedRejectionScaleFactorVec_type_1() result(assertion)
351 6 : use Constants_mod, only: IK, RK
352 : implicit none
353 : logical :: assertion
354 6 : type(ParaDXXX_type) :: PD
355 6 : assertion = .true.
356 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
357 : call PD%runSampler ( ndim = 1_IK &
358 : , getLogFunc = getLogFuncMVN &
359 : , mpiFinalizeRequested = .false. &
360 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_DelayedRejectionScaleFactorVec_type_1" &
361 : , delayedRejectionCount = 3_IK &
362 : , inputFile = ParaDXXX_NML//" DelayedRejectionScaleFactorVec = 3., 2., 1., /" &
363 6 : )
364 6 : assertion = assertion .and. .not. PD%Err%occurred
365 : #endif
366 66 : end function test_SpecDRAM_DelayedRejectionScaleFactorVec_type_1
367 :
368 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
369 :
370 : !> \brief
371 : !> Test the ParaDXXX sampler with a valid input value for `delayedRejectionCount`, which should lead to default values for
372 : !> the vector `DelayedRejectionScaleFactorVec`.
373 6 : module function test_SpecDRAM_DelayedRejectionScaleFactorVec_type_2() result(assertion)
374 6 : use Constants_mod, only: IK, RK
375 : implicit none
376 : logical :: assertion
377 6 : type(ParaDXXX_type) :: PD
378 : integer(IK), parameter :: NDIM = 2_IK
379 6 : assertion = .true.
380 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
381 : call PD%runSampler ( ndim = 2_IK &
382 : , getLogFunc = getLogFuncMVN &
383 : , mpiFinalizeRequested = .false. &
384 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_DelayedRejectionScaleFactorVec_type_2" &
385 : , inputFile = ParaDXXX_NML//" delayedRejectionCount = 3 /" &
386 6 : )
387 24 : assertion = assertion .and. .not. PD%Err%occurred .and. all(abs(PD%SpecDRAM%DelayedRejectionScaleFactorVec%Val-0.5_RK**(1._RK/real(NDIM,kind=RK)))<1.e-12_RK)
388 : #endif
389 74 : end function test_SpecDRAM_DelayedRejectionScaleFactorVec_type_2
390 :
391 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
392 :
393 : !> \brief
394 : !> Test the ParaDXXX sampler with a valid input value for `DelayedRejectionScaleFactorVec`.
395 6 : module function test_SpecDRAM_DelayedRejectionScaleFactorVec_type_3() result(assertion)
396 6 : use Constants_mod, only: IK, RK
397 : use String_mod, only: num2str
398 : implicit none
399 : logical :: assertion
400 6 : type(ParaDXXX_type) :: PD
401 : real(RK), parameter :: DelayedRejectionScaleFactorVec(*) = [3._RK, 2._RK]
402 : integer(IK), parameter :: delayedRejectionCount = 2_IK
403 6 : assertion = .true.
404 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
405 : call PD%runSampler ( ndim = 1_IK &
406 : , getLogFunc = getLogFuncMVN &
407 : , mpiFinalizeRequested = .false. &
408 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_DelayedRejectionScaleFactorVec_type_3" &
409 : , DelayedRejectionScaleFactorVec = DelayedRejectionScaleFactorVec &
410 : , inputFile = ParaDXXX_NML//" delayedRejectionCount = "//num2str(delayedRejectionCount)//" /" &
411 6 : )
412 18 : assertion = assertion .and. .not. PD%Err%occurred .and. all(PD%SpecDRAM%DelayedRejectionScaleFactorVec%Val==DelayedRejectionScaleFactorVec(1:delayedRejectionCount))
413 : #endif
414 66 : end function test_SpecDRAM_DelayedRejectionScaleFactorVec_type_3
415 :
416 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
417 :
418 : !> \brief
419 : !> Test the ParaDXXX sampler with a valid input value for `DelayedRejectionScaleFactorVec`.
420 6 : module function test_SpecDRAM_DelayedRejectionScaleFactorVec_type_4() result(assertion)
421 6 : use Constants_mod, only: IK, RK
422 : implicit none
423 : logical :: assertion
424 6 : type(ParaDXXX_type) :: PD
425 : real(RK), parameter :: DelayedRejectionScaleFactorVec(*) = [-1._RK, 2._RK]
426 6 : assertion = .true.
427 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
428 : call PD%runSampler ( ndim = 1_IK &
429 : , getLogFunc = getLogFuncMVN &
430 : , mpiFinalizeRequested = .false. &
431 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_DelayedRejectionScaleFactorVec_type_4" &
432 : , DelayedRejectionScaleFactorVec = DelayedRejectionScaleFactorVec &
433 : , inputFile = ParaDXXX_NML//" delayedRejectionCount = 2 /" &
434 6 : )
435 6 : assertion = assertion .and. PD%Err%occurred
436 : #endif
437 14 : end function test_SpecDRAM_DelayedRejectionScaleFactorVec_type_4
438 :
439 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
440 :
441 : !> \brief
442 : !> Test the ParaDXXX sampler with a valid input value for `DelayedRejectionScaleFactorVec`.
443 6 : module function test_SpecDRAM_DelayedRejectionScaleFactorVec_type_5() result(assertion)
444 6 : use Constants_mod, only: IK, RK
445 : implicit none
446 : logical :: assertion
447 6 : type(ParaDXXX_type) :: PD
448 : real(RK), parameter :: DelayedRejectionScaleFactorVec(*) = [2._RK, 0._RK, 1._RK]
449 6 : assertion = .true.
450 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
451 : call PD%runSampler ( ndim = 1_IK &
452 : , getLogFunc = getLogFuncMVN &
453 : , mpiFinalizeRequested = .false. &
454 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_DelayedRejectionScaleFactorVec_type_5" &
455 : , DelayedRejectionScaleFactorVec = DelayedRejectionScaleFactorVec &
456 : , inputFile = ParaDXXX_NML//" delayedRejectionCount = 2 /" &
457 6 : )
458 6 : assertion = assertion .and. PD%Err%occurred
459 : #endif
460 14 : end function test_SpecDRAM_DelayedRejectionScaleFactorVec_type_5
461 :
462 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
463 :
464 : !> \brief
465 : !> Test the ParaDXXX sampler with a valid input value for `greedyAdaptationCount >= 0`.
466 6 : module function test_SpecDRAM_GreedyAdaptationCount_type_1() result(assertion)
467 6 : use Constants_mod, only: IK, RK
468 : implicit none
469 : logical :: assertion
470 6 : type(ParaDXXX_type) :: PD
471 : integer(IK), parameter :: greedyAdaptationCount = 10_IK
472 6 : assertion = .true.
473 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
474 : call PD%runSampler ( ndim = 1_IK &
475 : , getLogFunc = getLogFuncMVN &
476 : , mpiFinalizeRequested = .false. &
477 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_GreedyAdaptationCount_type_1" &
478 : , greedyAdaptationCount = greedyAdaptationCount &
479 6 : )
480 6 : assertion = assertion .and. .not. PD%Err%occurred .and. PD%SpecDRAM%greedyAdaptationCount%val==greedyAdaptationCount
481 : #endif
482 66 : end function test_SpecDRAM_GreedyAdaptationCount_type_1
483 :
484 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
485 :
486 : !> \brief
487 : !> Test the ParaDXXX sampler with a valid input value for `greedyAdaptationCount >= 0`.
488 6 : module function test_SpecDRAM_GreedyAdaptationCount_type_2() result(assertion)
489 6 : use Constants_mod, only: IK, RK
490 : use String_mod, only: num2str
491 : implicit none
492 : logical :: assertion
493 6 : type(ParaDXXX_type) :: PD
494 : integer(IK), parameter :: greedyAdaptationCount = 0_IK
495 6 : assertion = .true.
496 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
497 : call PD%runSampler ( ndim = 1_IK &
498 : , getLogFunc = getLogFuncMVN &
499 : , mpiFinalizeRequested = .false. &
500 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_GreedyAdaptationCount_type_2" &
501 : , inputFile = ParaDXXX_NML//" greedyAdaptationCount = "//num2str(greedyAdaptationCount)//" /" &
502 6 : )
503 6 : assertion = assertion .and. .not. PD%Err%occurred .and. PD%SpecDRAM%greedyAdaptationCount%val==greedyAdaptationCount
504 : #endif
505 66 : end function test_SpecDRAM_GreedyAdaptationCount_type_2
506 :
507 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
508 :
509 : !> \brief
510 : !> Test the ParaDXXX sampler with an invalid input value for `greedyAdaptationCount >= 0`.
511 6 : module function test_SpecDRAM_GreedyAdaptationCount_type_3() result(assertion)
512 6 : use Constants_mod, only: IK, RK
513 : use String_mod, only: num2str
514 : implicit none
515 : logical :: assertion
516 6 : type(ParaDXXX_type) :: PD
517 : integer(IK), parameter :: greedyAdaptationCount = -1_IK
518 6 : assertion = .true.
519 : #if defined CODECOV_ENABLED || defined SAMPLER_TEST_ENABLED
520 : call PD%runSampler ( ndim = 1_IK &
521 : , getLogFunc = getLogFuncMVN &
522 : , mpiFinalizeRequested = .false. &
523 : , outputFileName = Test%outDir//"/"//MODULE_NAME//"@SpecDRAM/test_SpecDRAM_GreedyAdaptationCount_type_3" &
524 : , inputFile = ParaDXXX_NML//" greedyAdaptationCount = "//num2str(greedyAdaptationCount)//" /" &
525 6 : )
526 6 : assertion = assertion .and. PD%Err%occurred
527 : #endif
528 14 : end function test_SpecDRAM_GreedyAdaptationCount_type_3
529 :
530 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|