#ifndef STACKTESTER_H_ #define STACKTESTER_H_ #include #include "Stack.h" class StackTester : public CxxTest::TestSuite { public: void testConstructor() { Stack aStack; TS_ASSERT( aStack.isEmpty() ); TS_ASSERT( !aStack.isFull() ); } /* void testPushAndGetTop() { Stack aStack; // empty case try { aStack.getTop(); std::cerr << "getTop(): Stack is empty"; exit(1); } catch ( std::underflow_error ) { // execution SHOULD get here } aStack.push(11); // 1 Item case TS_ASSERT( aStack.getTop() == 11 ); TS_ASSERT( !aStack.isEmpty() ); TS_ASSERT( !aStack.isFull() ); aStack.push(22); // multiple Items TS_ASSERT( aStack.getTop() == 22 ); TS_ASSERT( !aStack.isEmpty() ); TS_ASSERT( !aStack.isFull() ); aStack.push(33); TS_ASSERT( aStack.getTop() == 33 ); TS_ASSERT( !aStack.isEmpty() ); TS_ASSERT( !aStack.isFull() ); } void testPop() { Stack aStack; try { // 0 items aStack.pop(); std::cerr << "pop() worked on empty Stack"; exit(1); } catch ( std::underflow_error ) { // execution SHOULD get here } aStack.push(11); // 1 item TS_ASSERT( aStack.getTop() == 11 ); TS_ASSERT( aStack.pop() == 11 ); TS_ASSERT( aStack.isEmpty() ); TS_ASSERT( !aStack.isFull() ); aStack.push(22); // multiple items TS_ASSERT( aStack.getTop() == 22 ); aStack.push(33); TS_ASSERT( aStack.pop() == 33 ); TS_ASSERT( !aStack.isEmpty() ); TS_ASSERT( !aStack.isFull() ); TS_ASSERT( aStack.getTop() == 22 ); TS_ASSERT( aStack.pop() == 22 ); TS_ASSERT( aStack.isEmpty() ); TS_ASSERT( !aStack.isFull() ); } */ }; #endif /*STACKTESTER_H_*/