ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
test_pm_mathFactorial.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
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#if IK5_ENABLED
42 module function test_getFactorial_IK5_1() result(assertion); logical(LK) :: assertion; end function
43#endif
44#if IK4_ENABLED
45 module function test_getFactorial_IK4_1() result(assertion); logical(LK) :: assertion; end function
46#endif
47#if IK3_ENABLED
48 module function test_getFactorial_IK3_1() result(assertion); logical(LK) :: assertion; end function
49#endif
50#if IK2_ENABLED
51 module function test_getFactorial_IK2_1() result(assertion); logical(LK) :: assertion; end function
52#endif
53#if IK1_ENABLED
54 module function test_getFactorial_IK1_1() result(assertion); logical(LK) :: assertion; end function
55#endif
56 end interface
57
58!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59
60 interface
61#if RK5_ENABLED
62 module function test_getLogFactorial_RK5_1() result(assertion); logical(LK) :: assertion; end function
63#endif
64#if RK4_ENABLED
65 module function test_getLogFactorial_RK4_1() result(assertion); logical(LK) :: assertion; end function
66#endif
67#if RK3_ENABLED
68 module function test_getLogFactorial_RK3_1() result(assertion); logical(LK) :: assertion; end function
69#endif
70#if RK2_ENABLED
71 module function test_getLogFactorial_RK2_1() result(assertion); logical(LK) :: assertion; end function
72#endif
73#if RK1_ENABLED
74 module function test_getLogFactorial_RK1_1() result(assertion); logical(LK) :: assertion; end function
75#endif
76 end interface
77
78!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
79
80contains
81
82!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
83
84 subroutine setTest()
85
86 implicit none
88
89 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
90
91#if IK5_ENABLED
92 call test%run(test_getFactorial_IK5_1, SK_"test_getFactorial_IK5_1")
93#endif
94#if IK4_ENABLED
95 call test%run(test_getFactorial_IK4_1, SK_"test_getFactorial_IK4_1")
96#endif
97#if IK3_ENABLED
98 call test%run(test_getFactorial_IK3_1, SK_"test_getFactorial_IK3_1")
99#endif
100#if IK2_ENABLED
101 call test%run(test_getFactorial_IK2_1, SK_"test_getFactorial_IK2_1")
102#endif
103#if IK1_ENABLED
104 call test%run(test_getFactorial_IK1_1, SK_"test_getFactorial_IK1_1")
105#endif
106
107 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
108
109#if RK5_ENABLED
110 call test%run(test_getLogFactorial_RK5_1, SK_"test_getLogFactorial_RK5_1")
111#endif
112#if RK4_ENABLED
113 call test%run(test_getLogFactorial_RK4_1, SK_"test_getLogFactorial_RK4_1")
114#endif
115#if RK3_ENABLED
116 call test%run(test_getLogFactorial_RK3_1, SK_"test_getLogFactorial_RK3_1")
117#endif
118#if RK2_ENABLED
119 call test%run(test_getLogFactorial_RK2_1, SK_"test_getLogFactorial_RK2_1")
120#endif
121#if RK1_ENABLED
122 call test%run(test_getLogFactorial_RK1_1, SK_"test_getLogFactorial_RK1_1")
123#endif
124
125 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
126
127 call test%summarize()
128
129 end subroutine setTest
130
131!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
132
133end module test_pm_mathFactorial ! LCOV_EXCL_LINE
This module contains classes and procedures for reporting and handling errors.
Definition: pm_err.F90:52
character(*, SK), parameter MODULE_NAME
Definition: pm_err.F90:58
This module contains procedures and generic interfaces for the Factorial function.
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_mathFactorial.
This is the derived type for generating objects to gracefully and verbosely handle runtime unexpected...
Definition: pm_err.F90:157
This is the derived type test_type for generating objects that facilitate testing of a series of proc...
Definition: pm_test.F90:209