fix: remove memory leak iterative_factorial.cpp (#2535)

* fix: remove memory leak

* tests: check properly if `math::iterativeFactorial` throws
This commit is contained in:
Piotr Idzik
2024-08-30 19:20:08 +02:00
committed by GitHub
parent 2dadbf73f4
commit 8a368240e2

View File

@@ -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";
}