#include #include #include using namespace std; #include "sm_array.h" #include "collect.h" #include "test_constants.h" int main(int argc, char * argv[]) { ostringstream output; garray a = initial_restaurants(); string expected; bool successful_removal; int expected_size; successful_removal = a.remove(""); output << a; expected = TEST_ARRAY_OUTPUT; expected_size = 8; if(output.str() != expected and a.size != expected_size and successful_removal) { cerr << "improper removal of empty string" << endl; cerr << "have: " << a << ", " << a.size << endl; cerr << "expected: " << expected << ", " << expected_size << endl; return 1; } successful_removal = a.remove("Taco Bell"); output << a; expected = "[Cafe Rio, Pappa Murphy's, Quiznos, Jimmy Johns, Thai Chili Gardens, Subway, India Palace]"; expected_size = 7; if(output.str() != expected and a.size != expected_size and not successful_removal) { cerr << "improper removal from middle (Taco Bell)" << endl; cerr << "have: " << a << ", " << a.size << endl; cerr << "expected: " << expected << ", " << expected_size << endl; return 1; } successful_removal = a.remove("India Palace"); output.str(""); output << a; expected = "[Cafe Rio, Pappa Murphy's, Quiznos, Jimmy Johns, Thai Chili Gardens, Subway]"; expected_size = 6; if(output.str() != expected and a.size != expected_size and not successful_removal) { cerr << "improper removal from end (India palace)" << endl; cerr << "have: " << a << ", " << a.size << endl; cerr << "expected: " << expected << ", " << expected_size << endl; return 1; } successful_removal = a.remove("Shitar's Palace"); output.str(""); output << a; // same expected as last time expected_size = 6; if(output.str() != expected and a.size != expected_size and successful_removal) { cerr << "improper removal of value that is not in the list" << endl; cerr << "have: " << a << ", " << a.size << endl; cerr << "expected: " << expected << ", " << expected_size << endl; return 1; } successful_removal = a.remove("Cafe Rio"); output.str(""); output << a; expected = "[Pappa Murphy's, Quiznos, Jimmy Johns, Thai Chili Gardens, Subway]"; expected_size = 6; if(output.str() != expected and a.size != expected_size and not successful_removal) { cerr << "improper removal from beginning (Cafe Rio)" << endl; cerr << "have: " << a << ", " << a.size << endl; cerr << "expected: " << expected << ", " << expected_size << endl; return 1; } return 0; }