ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
test_pm_mathExp.F90
Go to the documentation of this file.
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
24
25!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26
28
29 use pm_test, only: test_type
30 use pm_mathExp
31 implicit none
32
33 private
34 public :: setTest
35 type(test_type) :: test
36
37!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
38
39 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40
41 interface
42#if IK5_ENABLED
43 module function test_getExpNext_IK5() result(assertion); logical(LK) :: assertion; end function
44#endif
45#if IK4_ENABLED
46 module function test_getExpNext_IK4() result(assertion); logical(LK) :: assertion; end function
47#endif
48#if IK3_ENABLED
49 module function test_getExpNext_IK3() result(assertion); logical(LK) :: assertion; end function
50#endif
51#if IK2_ENABLED
52 module function test_getExpNext_IK2() result(assertion); logical(LK) :: assertion; end function
53#endif
54#if IK1_ENABLED
55 module function test_getExpNext_IK1() result(assertion); logical(LK) :: assertion; end function
56#endif
57 end interface
58
59 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
60
61 interface
62#if RK5_ENABLED
63 module function test_getExpNext_RK5() result(assertion); logical(LK) :: assertion; end function
64#endif
65#if RK4_ENABLED
66 module function test_getExpNext_RK4() result(assertion); logical(LK) :: assertion; end function
67#endif
68#if RK3_ENABLED
69 module function test_getExpNext_RK3() result(assertion); logical(LK) :: assertion; end function
70#endif
71#if RK2_ENABLED
72 module function test_getExpNext_RK2() result(assertion); logical(LK) :: assertion; end function
73#endif
74#if RK1_ENABLED
75 module function test_getExpNext_RK1() result(assertion); logical(LK) :: assertion; end function
76#endif
77 end interface
78
79 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
80
81!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
82
83 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
84
85 interface
86#if IK5_ENABLED
87 module function test_getExpPrev_IK5() result(assertion); logical(LK) :: assertion; end function
88#endif
89#if IK4_ENABLED
90 module function test_getExpPrev_IK4() result(assertion); logical(LK) :: assertion; end function
91#endif
92#if IK3_ENABLED
93 module function test_getExpPrev_IK3() result(assertion); logical(LK) :: assertion; end function
94#endif
95#if IK2_ENABLED
96 module function test_getExpPrev_IK2() result(assertion); logical(LK) :: assertion; end function
97#endif
98#if IK1_ENABLED
99 module function test_getExpPrev_IK1() result(assertion); logical(LK) :: assertion; end function
100#endif
101 end interface
102
103 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
104
105 interface
106#if RK5_ENABLED
107 module function test_getExpPrev_RK5() result(assertion); logical(LK) :: assertion; end function
108#endif
109#if RK4_ENABLED
110 module function test_getExpPrev_RK4() result(assertion); logical(LK) :: assertion; end function
111#endif
112#if RK3_ENABLED
113 module function test_getExpPrev_RK3() result(assertion); logical(LK) :: assertion; end function
114#endif
115#if RK2_ENABLED
116 module function test_getExpPrev_RK2() result(assertion); logical(LK) :: assertion; end function
117#endif
118#if RK1_ENABLED
119 module function test_getExpPrev_RK1() result(assertion); logical(LK) :: assertion; end function
120#endif
121 end interface
122
123 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124
125!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
126
127contains
128
129!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
130
131 subroutine setTest()
132
133 implicit none
135
136 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
137
138 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
139
140#if IK5_ENABLED
141 call test%run(test_getExpNext_IK5, SK_"test_getExpNext_IK5")
142#endif
143#if IK4_ENABLED
144 call test%run(test_getExpNext_IK4, SK_"test_getExpNext_IK4")
145#endif
146#if IK3_ENABLED
147 call test%run(test_getExpNext_IK3, SK_"test_getExpNext_IK3")
148#endif
149#if IK2_ENABLED
150 call test%run(test_getExpNext_IK2, SK_"test_getExpNext_IK2")
151#endif
152#if IK1_ENABLED
153 call test%run(test_getExpNext_IK1, SK_"test_getExpNext_IK1")
154#endif
155
156 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
157
158#if RK5_ENABLED
159 call test%run(test_getExpNext_RK5, SK_"test_getExpNext_RK5")
160#endif
161#if RK4_ENABLED
162 call test%run(test_getExpNext_RK4, SK_"test_getExpNext_RK4")
163#endif
164#if RK3_ENABLED
165 call test%run(test_getExpNext_RK3, SK_"test_getExpNext_RK3")
166#endif
167#if RK2_ENABLED
168 call test%run(test_getExpNext_RK2, SK_"test_getExpNext_RK2")
169#endif
170#if RK1_ENABLED
171 call test%run(test_getExpNext_RK1, SK_"test_getExpNext_RK1")
172#endif
173
174 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
175
176 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
177
178 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
179
180#if IK5_ENABLED
181 call test%run(test_getExpPrev_IK5, SK_"test_getExpPrev_IK5")
182#endif
183#if IK4_ENABLED
184 call test%run(test_getExpPrev_IK4, SK_"test_getExpPrev_IK4")
185#endif
186#if IK3_ENABLED
187 call test%run(test_getExpPrev_IK3, SK_"test_getExpPrev_IK3")
188#endif
189#if IK2_ENABLED
190 call test%run(test_getExpPrev_IK2, SK_"test_getExpPrev_IK2")
191#endif
192#if IK1_ENABLED
193 call test%run(test_getExpPrev_IK1, SK_"test_getExpPrev_IK1")
194#endif
195
196 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
197
198#if RK5_ENABLED
199 call test%run(test_getExpPrev_RK5, SK_"test_getExpPrev_RK5")
200#endif
201#if RK4_ENABLED
202 call test%run(test_getExpPrev_RK4, SK_"test_getExpPrev_RK4")
203#endif
204#if RK3_ENABLED
205 call test%run(test_getExpPrev_RK3, SK_"test_getExpPrev_RK3")
206#endif
207#if RK2_ENABLED
208 call test%run(test_getExpPrev_RK2, SK_"test_getExpPrev_RK2")
209#endif
210#if RK1_ENABLED
211 call test%run(test_getExpPrev_RK1, SK_"test_getExpPrev_RK1")
212#endif
213
214 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
215
216 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
217
218 call test%summarize()
219
220 end subroutine setTest
221
222!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
223
224end module test_pm_mathExp ! LCOV_EXCL_LINE
This module contains procedures and generic interfaces for computing the previous/next integer expone...
Definition: pm_mathExp.F90:44
character(*, SK), parameter MODULE_NAME
Definition: pm_mathExp.F90:50
This module contains a simple unit-testing framework for the Fortran libraries, including the ParaMon...
Definition: pm_test.F90:42
This module contains tests of the module pm_mathExp.
subroutine setTest()
type(test_type) test
This is the derived type test_type for generating objects that facilitate testing of a series of proc...
Definition: pm_test.F90:209