// ComplexTest.h -- test cases for the Complex class #include // needed for helper macros // in ComplexNumberTest class #include "Complex.h" #include using namespace std; // Test Fixture for complex number test cases class ComplexNumberTest : public CppUnit::TestFixture { // helper macros CPPUNIT_TEST_SUITE( ComplexNumberTest ); CPPUNIT_TEST( testEquality1 ); CPPUNIT_TEST( testEquality2 ); CPPUNIT_TEST( testEquality3 ); CPPUNIT_TEST( testAddition ); CPPUNIT_TEST( testSubraction ); CPPUNIT_TEST( testAssignment ); CPPUNIT_TEST_SUITE_END(); private: Complex *m_10_1, *m_1_1, *m_11_2; public: // allocate complex number objects for test cases void setUp() { m_10_1 = new Complex( 10, 1 ); m_1_1 = new Complex( 1, 1 ); m_11_2 = new Complex( 11, 2 ); } // deallocate complex number objects for test cases void tearDown() { delete m_10_1; delete m_1_1; delete m_11_2; } // 1st equality test case void testEquality1() { CPPUNIT_ASSERT( *m_10_1 == *m_10_1 ); CPPUNIT_ASSERT( !(*m_10_1 == *m_11_2) ); } // 2nd equality test case void testEquality2() { CPPUNIT_ASSERT( *m_1_1 == *m_1_1 ); CPPUNIT_ASSERT( !(*m_1_1 == *m_11_2) ); } // 3rd equality test case void testEquality3() { CPPUNIT_ASSERT( *m_11_2 == *m_11_2 ); CPPUNIT_ASSERT( !(*m_10_1 == *m_1_1) ); } // addition test case void testAddition() { CPPUNIT_ASSERT( *m_11_2 == (*m_10_1 + *m_1_1) ); CPPUNIT_ASSERT( !(*m_10_1 == (*m_11_2 + *m_1_1)) ); } // subtraction test case void testSubraction() { CPPUNIT_ASSERT( *m_10_1 == (*m_11_2 - *m_1_1) ); CPPUNIT_ASSERT( !(*m_11_2 == (*m_10_1 - *m_1_1)) ); } // assignment test case (copy constructor) void testAssignment() { *m_10_1 = *m_1_1; CPPUNIT_ASSERT( *m_10_1 == *m_1_1 ); } };