mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-02-13 15:37:06 +08:00
fix: remove memory leak iterative_factorial.cpp (#2535)
* fix: remove memory leak * tests: check properly if `math::iterativeFactorial` throws
This commit is contained in:
@@ -46,7 +46,7 @@ namespace math {
|
||||
*/
|
||||
uint64_t iterativeFactorial(uint8_t n) {
|
||||
if (n > 20) {
|
||||
throw new std::invalid_argument("Maximum n value is 20");
|
||||
throw std::invalid_argument("Maximum n value is 20");
|
||||
}
|
||||
|
||||
// 1 because it is the identity number of multiplication.
|
||||
@@ -101,12 +101,14 @@ static void test() {
|
||||
std::cout << "Exception test \n"
|
||||
"Input: 21 \n"
|
||||
"Expected output: Exception thrown \n";
|
||||
|
||||
bool wasExceptionThrown = false;
|
||||
try {
|
||||
math::iterativeFactorial(21);
|
||||
} catch (std::invalid_argument* e) {
|
||||
std::cout << "Exception thrown successfully \nContent: " << e->what()
|
||||
<< "\n";
|
||||
} catch (const std::invalid_argument&) {
|
||||
wasExceptionThrown = true;
|
||||
}
|
||||
assert(wasExceptionThrown);
|
||||
|
||||
std::cout << "All tests have passed successfully.\n";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user