1
1
/* *
2
2
* @file
3
- * @brief Iterative implementation of [Factorial](https://en.wikipedia.org/wiki/Factorial)
3
+ * @brief Iterative implementation of
4
+ * [Factorial](https://en.wikipedia.org/wiki/Factorial)
4
5
*
5
6
* @author [Renjian-buchai](https://github.com/Renjian-buchai)
6
7
*
25
26
*/
26
27
27
28
#include < cassert> // / for assert
29
+ #include < cstdint> // / for integral types
28
30
#include < exception> // / for std::invalid_argument
29
31
#include < iostream> // / for std::cout
30
32
@@ -68,31 +70,31 @@ static void test() {
68
70
// Special case test
69
71
std::cout << " Exception case test \n "
70
72
" Input: 0 \n "
71
- " Expected output: 1 \n " ;
73
+ " Expected output: 1 \n\n " ;
72
74
assert (math::iterativeFactorial (0 ) == 1 );
73
75
74
76
// Base case
75
77
std::cout << " Base case test \n "
76
78
" Input: 1 \n "
77
- " Expected output: 1 \n " ;
79
+ " Expected output: 1 \n\n " ;
78
80
assert (math::iterativeFactorial (1 ) == 1 );
79
81
80
82
// Small case
81
83
std::cout << " Small number case test \n "
82
84
" Input: 5 \n "
83
- " Expected output: 120 \n " ;
85
+ " Expected output: 120 \n\n " ;
84
86
assert (math::iterativeFactorial (5 ) == 120 );
85
87
86
88
// Medium case
87
89
std::cout << " Medium number case test \n "
88
90
" Input: 10 \n "
89
- " Expected output: 3628800 \n " ;
91
+ " Expected output: 3628800 \n\n " ;
90
92
assert (math::iterativeFactorial (10 ) == 3628800 );
91
93
92
94
// Maximum case
93
95
std::cout << " Maximum case test \n "
94
96
" Input: 20 \n "
95
- " Expected output: 2432902008176640000\n " ;
97
+ " Expected output: 2432902008176640000\n\n " ;
96
98
assert (math::iterativeFactorial (20 ) == 2432902008176640000 );
97
99
98
100
// Exception test
@@ -101,9 +103,12 @@ static void test() {
101
103
" Expected output: Exception thrown \n " ;
102
104
try {
103
105
math::iterativeFactorial (21 );
104
- } catch (std::invalid_argument& e) {
105
- std::cout << " Exception thrown successfully \n " ;
106
+ } catch (std::invalid_argument* e) {
107
+ std::cout << " Exception thrown successfully \n Content: " << e->what ()
108
+ << " \n\n " ;
106
109
}
110
+
111
+ std::cout << " All tests success.\n " ;
107
112
}
108
113
109
114
/* *
0 commit comments