/************************************************************************ * Memorial University of Newfoundland * Faculty of Engineering and Applied Sciences * Engineering 4892 : Advanced Programming * * Assignment 6 Test Code * * Author: Daniel Mastropietro * Student ID: 9419268 Date: 29.07.2001 *************************************************************************/ #include #include #include "assign6.h" #include "assign6_impl.h" using namespace std; /************************************************************************ * * * ************************************************************************/ class student_File { public: student_File (int r = 0, string x = "", string y = "") : student_ID (r), given (x), surname (y) { } student_File& operator= (const student_File& rhs); bool operator== ( const student_File& x ) const { return (student_ID == x.student_ID); } int operator% (int r) const{ return student_ID % r; } void setID ( int r ) { student_ID = r; } void setlast ( string r ) { surname = r; } void setGiven ( string r ) { given = r; } int getID () { return student_ID; } string getFull () { return (given + ' ' + surname); } string getLast () { return surname; } string getFirst () { return given; } private: int student_ID; string given; string surname; }; student_File& student_File::operator= (const student_File& rhs) { student_ID = rhs.student_ID; given = rhs.given; surname = rhs.surname; return *this; } int main () { char pause; HashTable::Status errOk = HashTable::Ok; HashTable::Status errNo = HashTable::NoSuchElement; HashTable::Status errDup = HashTable::DuplicateElement; cout <<"\nTest code Assignment 6\n" <<"Engr 4892 : Data Structures\n\n"; cout <<"Inserting\n"; HashTable test1; student_File Dan ( 940, "Daniel", "Mastropietro"); student_File Stephen ( 931, "Stephen", "Smith" ); student_File Chris ( 982, "Chris", "O'Keefe"); student_File Melanie ( 983, "Melanie", "McCarthy"); student_File Kelly ( 984, "Kelly", "O'Keefe"); cout <<"\tElement 0 ............................................."; if ( test1.insert(Dan) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Dan) == 1 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 1 ............................................."; if ( test1.insert(Stephen) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Stephen) == 1 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 2 ............................................."; if ( test1.insert(Chris) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Chris) == 1 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 3 ............................................."; if ( test1.insert(Melanie) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Melanie) == 1 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 4 ............................................."; if ( test1.insert(Kelly) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Kelly) == 1 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\nHit Enter to continue\n"; cin.get(pause); cout <<"Inserting again\n"; student_File Keith ( 840, "Keith", "O'Rielly"); student_File Trevor ( 831, "Trevor", "Blackler" ); student_File Pouria ( 882, "Pouria", "Shaker" ); student_File Puneet ( 883, "Puneet" , "Kushwaha"); student_File Phillip ( 884, "Phillip", "Jewer"); cout <<"\tElement 0 ............................................."; if ( test1.insert(Keith) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Keith) == 2 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 1 ............................................."; if ( test1.insert(Trevor) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Trevor) == 2 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 2 ............................................."; if ( test1.insert(Pouria) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Pouria) == 2 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 3 ............................................."; if ( test1.insert(Puneet) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Puneet) == 2 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 4 ............................................."; if ( test1.insert(Phillip) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Phillip) == 2 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\nHit Enter to continue\n"; cin.get(pause); cout <<"Inserting again\n"; student_File Krista ( 740, "Krista", "King"); student_File Steve ( 731, "Steve", "Edwards" ); student_File Rob ( 782, "Rob", "Collett" ); student_File Daryl ( 783, "Daryl" , "Martin"); student_File Jeff ( 784, "Jeff", "Card"); cout <<"\tElement 0 ............................................."; if ( test1.insert(Krista) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Krista) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 1 ............................................."; if ( test1.insert(Steve) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Steve) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 2 ............................................."; if ( test1.insert(Rob) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Rob) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 3 ............................................."; if ( test1.insert(Daryl) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Daryl) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tElement 4 ............................................."; if ( test1.insert(Jeff) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(Jeff) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\nHit Enter to continue\n"; cin.get(pause); cout <<"Inserting Duplicates\n"; cout <<"\tSame as first element in list ........................."; if ( test1.insert(Krista) == errDup && test1.getStatus() == errDup ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize unchanged................................."; if ( test1.getSize(Krista) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; test1.resetErr(); cout <<"\tSame as second element in list ........................"; if ( test1.insert(Keith) == errDup && test1.getStatus() == errDup ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize unchanged................................."; if ( test1.getSize(Keith) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; test1.resetErr(); cout <<"\tSame as third element in list ........................."; if ( test1.insert(Dan) == errDup && test1.getStatus() == errDup ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize unchanged................................."; if ( test1.getSize(Dan) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; test1.resetErr(); cout <<"\nHit Enter to continue\n"; cin.get(pause); cout <<"\nRetrieve\n"; cout <<"\tRetrieve first element\n"; cout <<"\t\terr is ........................................"; student_File tester1 (940); if ( test1.retrieve(tester1) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tValues retrieved..............................."; if ( tester1.getID() == 940 && tester1.getFull() == "Daniel Mastropietro" ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize unchanged................................."; if ( test1.getSize(tester1) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tRetrieve second element\n"; cout <<"\t\terr is ........................................"; student_File tester2 (840); if ( test1.retrieve(tester2) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tValues retrieved..............................."; if ( tester2.getID() == 840 && tester2.getFull() == "Keith O'Rielly" ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize unchanged................................."; if ( test1.getSize(tester2) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tRetrieve third element\n"; cout <<"\t\terr is ........................................"; student_File tester3 (740); if ( test1.retrieve(tester3) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tValues retrieved..............................."; if ( tester3.getID() == 740 && tester3.getFull() == "Krista King" ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize unchanged................................."; if ( test1.getSize(tester3) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\nHit Enter to continue\n"; cin.get(pause); cout <<"\tRetrieve first element again\n"; cout <<"\t\terr is ........................................"; if ( test1.retrieve(tester1) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tValues retrieved..............................."; if ( tester1.getID() == 940 && tester1.getFull() == "Daniel Mastropietro" ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize unchanged................................."; if ( test1.getSize(tester1) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tRetrieve second element again\n"; cout <<"\t\terr is ........................................"; if ( test1.retrieve(tester2) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tValues retrieved..............................."; if ( tester2.getID() == 840 && tester2.getFull() == "Keith O'Rielly" ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize unchanged................................."; if ( test1.getSize(tester2) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tRetrieve third element again\n"; cout <<"\t\terr is ........................................"; if ( test1.retrieve(tester3) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tValues retrieved..............................."; if ( tester3.getID() == 740 && tester3.getFull() == "Krista King" ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize unchanged................................."; if ( test1.getSize(tester3) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\tRetrieving a Non-existent element......................"; student_File tester4 (999); if ( test1.retrieve(tester4) == errNo && test1.getStatus() == errNo ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize unchanged................................."; if ( test1.getSize(tester4) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; test1.resetErr(); cout <<"\nHit Enter to continue\n"; cin.get(pause); cout <<"\nRemove\n"; cout <<"\tRemove first element\n"; cout <<"\t\terr is ........................................"; if ( test1.remove(tester1) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(tester1) == 2 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tValue removed.................................."; if ( test1.retrieve(tester1) == 1 ) cout <<"Pass\n"; else cout <<"Fail\n"; test1.resetErr(); cout <<"\tRemove second element\n"; cout <<"\t\terr is ........................................"; if ( test1.remove(tester2) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(tester2) == 1 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tValue removed.................................."; if ( test1.retrieve(tester2) == 1 ) cout <<"Pass\n"; else cout <<"Fail\n"; test1.resetErr(); cout <<"\tRemove third element\n"; cout <<"\t\terr is ........................................"; if ( test1.remove(tester3) == errOk && test1.getStatus() == errOk ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(tester3) == 0 ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tValue removed.................................."; if ( test1.retrieve(tester3) == 1 ) cout <<"Pass\n"; else cout <<"Fail\n"; test1.resetErr(); cout <<"\tRemove Non-existent element\n"; cout <<"\t\terr is ........................................"; if ( test1.remove(tester4) == errNo && test1.getStatus() == errNo ) cout <<"Pass\n"; else cout <<"Fail\n"; cout <<"\t\tSize correct..................................."; if ( test1.getSize(tester4) == 3 ) cout <<"Pass\n"; else cout <<"Fail\n"; return 0; }