#include #include #include "bigNat.h" using namespace std; void copytest( BigNat totest, string compare ); int main () { char hold; cout <<"Welcome to my test code... here goes nothing.\n" <<" And I mean it -absolutely *nothing*\n\n" <<"PreConditions : The only method that I have to verify your code is the\n" <<" toString() function - if that doesn't work, you're going\n" <<" to fail all my tests no matter what. Keep that in mind.\n\n" //-----------------TEST 1------------------------------------- <<"Test 1: Constructor\n" <<" Default constructor..............................."; BigNat test1a; if (test1a.toString() == "0") { cout <<"PASS\n";} else { cout <<"FAIL****\n";} cout <<" Single digit constructor.........................."; BigNat test1b(9); if (test1b.toString() == "9") { cout <<"PASS\n";} else { cout <<"FAIL****\n";} cout <<" Multiple digit constructor........................"; BigNat test1c(5670945); if (test1c.toString() == "5670945") { cout <<"PASS\n";} else { cout <<"FAIL****\n";} cout <<" Failing precondition.............................."; BigNat test1d(-5); if (test1d.getStatus() == 1) { cout <<"PASS\n";} else { cout <<"FAIL****\n";} cout <<"\nPress enter to continue\n\n"; cin.get(hold); //-----------------TEST 2------------------------------------- cout <<"Test 2: Copy Constructor\n" <<" Passing 0........................................"; copytest( test1a, test1a.toString() ); cout <<" Passing Single digit............................."; copytest (test1b, test1b.toString() ); cout <<" Passing Multiple digit..........................."; copytest (test1c, test1c.toString() ); cout <<"\nPress enter to continue\n\n"; cin.get(hold); //-----------------TEST 3------------------------------------- cout <<"Test 3 : operator=\n" <<" format is \"value of left\" = \"value of right\"\n" <<" I'm testing to make sure that after, the left gets the\n" <<" value of the right\n" <<" 0 = 0 ..........................................."; BigNat test3a; test3a = test1a; if (test3a.toString() == "0") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 0 = 9 ..........................................."; BigNat test3b; test3b = test1b; if (test3b.toString() == "9") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 0 = 5670945 ....................................."; BigNat test3c; test3c = test1c; if (test3c.toString() == "5670945") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 5 = 0............................................"; BigNat test3d(5); test3d = test1a; if (test3d.toString() == "0") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 5 = 9............................................"; BigNat test3e(5); test3e = test1b; if (test3e.toString() == "9") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 5 = 5670945......................................"; BigNat test3f(5); test3f = test1c; if (test3f.toString() == "5670945") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 6784865 = 0......................................"; BigNat test3g(6784865); test3g = test1a; if (test3g.toString() == "0") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 6784865 = 9......................................"; BigNat test3h(6784865); test3h = test1b; if (test3h.toString() == "9") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 6784865 = 5670945................................"; BigNat test3i(6784865); test3i = test1c; if (test3i.toString() == "5670945") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<"\nPress enter to continue\n\n"; cin.get(hold); //-----------------TEST 4------------------------------------- cout <<"Test 4 : operator+=( const BigNat& r) \n" <<" format is \"value of left\" += \"value of right\"\n" <<" I'm testing to make sure that after, the left gets the\n" <<" correct value\n" <<" 0 += 0 ..........................................."; BigNat test4a; test4a += test1a; if (test4a.toString() == "0") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 0 += 9 ..........................................."; BigNat test4b; test4b += test1b; if (test4b.toString() == "9") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 0 += 5670945 ....................................."; BigNat test4c; test4c += test1c; if (test4c.toString() == "5670945") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 5 += 0............................................"; BigNat test4d(5); test4d += test1a; if (test4d.toString() == "0") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 5 += 9............................................"; BigNat test4e(5); test4e += test1b; if (test4e.toString() == "14") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 5 += 5670945......................................"; BigNat test4f(5); test4f += test1c; if (test4f.toString() == "5670950") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 1 += 9999999......................................"; BigNat test41(1); BigNat testdumb(9999999); test41 += testdumb; if (test41.toString() == "10000000") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 6784865 += 0......................................"; BigNat test4g(6784865); test4g += test1a; if (test4g.toString() == "6784865") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 6784865 += 9......................................"; BigNat test4h(6784865); test4h += test1b; if (test4h.toString() == "6784874") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 6784865 += 5670945................................"; BigNat test4i(6784865); test4i += test1c; if (test4i.toString() == "12455810") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 9999999 += 1......................................"; BigNat test4j(9999999); BigNat testsilly(1); test4j += testsilly; if (test4j.toString() == "10000000") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<"\nPress enter to continue\n\n"; cin.get(hold); //-----------------TEST 5------------------------------------- cout <<"Test 5 : operator+=( int r ) \n" <<" format is \"value of left\" += \"value of right\"\n" <<" I'm testing to make sure that after, the left gets the\n" <<" correct value\n" <<" 0 += 0 ..........................................."; BigNat test5a; test5a += 0; if (test5a.toString() == "0") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 0 += 9 ..........................................."; BigNat test5b; test5b += 9; if (test5b.toString() == "9") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 0 += 5670945 ....................................."; BigNat test5c; test5c += 5670945; if (test5c.toString() == "5670945") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 5 += 0............................................"; BigNat test5d(5); test5d += 0; if (test5d.toString() == "0") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 5 += 9............................................"; BigNat test5e(5); test5e += 9; if (test5e.toString() == "14") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 5 += 5670945......................................"; BigNat test5f(5); test5f += 5670945; if (test5f.toString() == "5670950") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 1 += 9999999......................................"; BigNat test51(1); test51 += 9999999; if (test51.toString() == "10000000") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 6784865 += 0......................................"; BigNat test5g(6784865); test5g += 0; if (test5g.toString() == "6784865") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 6784865 += 9......................................"; BigNat test5h(6784865); test5h += 9; if (test5h.toString() == "6784874") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 6784865 += 5670945................................"; BigNat test5i(6784865); test5i += 5670945; if (test5i.toString() == "12455810") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 9999999 += 1......................................"; BigNat test5j(9999999); test5j += 1; if (test5j.toString() == "10000000") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<"\nPress enter to continue\n\n"; cin.get(hold); //-----------------TEST 6------------------------------------- cout <<"Test 6 : operator*=( int r ) \n" <<" format is \"value of left\" *= \"value of right\"\n" <<" I'm testing to make sure that after, the left gets the\n" <<" correct value\n" <<" 0 *= 0 ..........................................."; BigNat test6a; test6a *= 0; if (test6a.toString() == "0") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 0 *= 9 ..........................................."; BigNat test6b; test6b *= 9; if (test6b.toString() == "0") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 5 *= 9............................................"; BigNat test6e(5); test6e *= 9; if (test6e.toString() == "45") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" 6784865 *= 9......................................"; BigNat test6h(6784865); test6h *= 9; if (test6h.toString() == "61063785") { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } //-----------------TEST 7------------------------------------- cout <<"\nPress enter to continue\n\n"; cin.get(hold); cout <<"Test 7 : PreFail conditions \n" <<" Constructor PreFail....................................."; BigNat test7h(-2); if (test7h.getStatus() == 1) { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" operator += ( int r ) PreFail..........................."; BigNat test7i(46); test7i += -2; if (test7i.getStatus() == 1) { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<" operator *= ( int r ) PreFail..........................."; BigNat test7j(46); test7j *= -2; if (test7j.getStatus() == 1) { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } cout <<"\n\n"; return 0; } void copytest( BigNat totest, string compare ) { if ( totest.toString() == compare ) { cout <<"PASS\n"; } else { cout <<"FAIL****\n"; } }