You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

This page shows a variation of the Calculator project called AdvancedCalculator.This is a more extensive version of the same design. Contains new functionality in operation.cpp and therefore has more test cases.


Note

This project can be run in the same way as shown in basic use, please check this section: 2. Build the project  - CMake

1. 1. Zero Division Error - Testing Exceptions

This section is basically the same in terms of test suites as in the Calculator project, but was not covered on the previous page.

Inside the tst directory in test_operation.cpp the following test suites can be found:

TEST(DivideOperation, PositiveInput)
TEST(DivideOperation, PositiveInput) {
    // Integer arguments
    ASSERT_EQ(divide(10, 5), 2);
    ASSERT_FLOAT_EQ(divide(5, 10), 0.5);
    // Floating-point arguments
    ASSERT_FLOAT_EQ(divide(10.0f, 5.0f), 2.0f);
    ASSERT_FLOAT_EQ(divide(5.0f, 10.0f), 0.5f);
}
TEST(DivideOperation, NegitiveInput)
TEST(DivideOperation, NegitiveInput) {
    ASSERT_EQ(divide(-10, -5), 2);
    ASSERT_FLOAT_EQ(divide(-5, -10), 0.5);
    // Floating-point arguments
    ASSERT_FLOAT_EQ(divide(-10.0f, -5.0f), 2.0f);
    ASSERT_FLOAT_EQ(divide(-5.0f, -10.0f), 0.5f);
}

TEST(DivideOperation, ZerioInput)
TEST(DivideOperation, ZerioInput) {
    EXPECT_THROW(divide(10, 0), std::overflow_error);
    EXPECT_THROW(divide(10.0f, 0.0f), std::overflow_error);
}


2. 2. Testing whether the result is within range


3. 3. Testing boundary conditions


  • No labels