Skip to content

Commit

Permalink
fix: remove memory leak iterative_factorial.cpp (#2535)
Browse files Browse the repository at this point in the history
* fix: remove memory leak

* tests: check properly if `math::iterativeFactorial` throws
  • Loading branch information
vil02 authored Aug 30, 2024
1 parent 2dadbf7 commit 8a36824
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions math/iterative_factorial.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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";
}
Expand Down

0 comments on commit 8a36824

Please sign in to comment.