/** * conduct automated self test for this class * * @param * @return */ int _TestDeque::Test() { /* the old deque should have failed a bunch of these tests */ int results=0; results+=OriginalTest(); results+=OriginalFlaw(); results+=AssignFlaw(); results+=TestRemove(); results+=TestPushFront(); results+=TestEmpty(); return results; }
int main() { try { TestPushFront(); } catch (...) { std::cout << "***TestPushFront revealed something bad in the List class" << std::endl; } try { TestPushBack(); } catch (...) { std::cout << "***TestPushBack revealed something bad in the List class" << std::endl; } try { TestPushFrontBack(); } catch (...) { std::cout << "***TestPushFrontBack revealed something bad in the List class" << std::endl; } try { TestPopFront(); } catch (...) { std::cout << "***TestPopFront revealed something bad in the List class" << std::endl; } try { TestArray1(); } catch (...) { std::cout << "***TestArray1 revealed something bad in the List class" << std::endl; } try { TestArray2(); } catch (...) { std::cout << "***TestArray2 revealed something bad in the List class" << std::endl; } try { TestCopyConstructor1(); } catch (...) { std::cout << "***TestCopyConstructor1 revealed something bad in the List class" << std::endl; } try { TestCopyConstructor2(); } catch (...) { std::cout << "***TestCopyConstructor2 revealed something bad in the List class" << std::endl; } try { TestAssignment1(); } catch (...) { std::cout << "***TestAssignment1 revealed something bad in the List class" << std::endl; } try { TestAssignment2(); } catch (...) { std::cout << "***TestAssignment2 revealed something bad in the List class" << std::endl; } try { TestAddAssign1(); } catch (...) { std::cout << "***TestAddAssign1 revealed something bad in the List class" << std::endl; } try { TestAddAssign2(); } catch (...) { std::cout << "***TestAddAssign2 revealed something bad in the List class" << std::endl; } try { TestAddAssign3(); } catch (...) { std::cout << "***TestAddAssign3 revealed something bad in the List class" << std::endl; } try { TestAddAssign4(); } catch (...) { std::cout << "***TestAddAssign4 revealed something bad in the List class" << std::endl; } try { TestSubscript1(); } catch (...) { std::cout << "***TestSubscript1 revealed something bad in the List class" << std::endl; } try { TestSubscript2(); } catch (...) { std::cout << "***TestSubscript2 revealed something bad in the List class" << std::endl; } std::cout << "============================================\n"; std::cout << "Total number of Lists created: "; std::cout << CS170::List::list_count(); std::cout << std::endl; std::cout << "============================================\n"; std::cout << std::endl; try { TestAddition1(); } catch (...) { std::cout << "***TestAddition1 revealed something bad in the List class" << std::endl; } try { TestAddition2(); } catch (...) { std::cout << "***TestAddition2 revealed something bad in the List class" << std::endl; } std::cout << "============================================\n"; std::cout << "Total number of Lists created: "; std::cout << CS170::List::list_count(); std::cout << std::endl; std::cout << "============================================\n"; std::cout << std::endl; std::cout << "============================================\n"; std::cout << "Total number of nodes alive: "; std::cout << CS170::List::node_count(); std::cout << std::endl; std::cout << "============================================\n"; std::cout << std::endl; return 0; }