// test_class_SSArray_default_ctor // Test suite for class template SSArray, default ctor // Pre: None. // Post: // Pass/fail status of tests have been registered with t. // Appropriate have been messages printed to cout. // Does not throw (No-Throw Guarantee) void test_class_SSArray_default_ctor(Tester & t) { std::cout << "Test Suite: class template SSArray - default ctor" << std::endl; const SSArray<int> tai1; t.test(tai1.size() == 10, "default ctor, size"); }
// test_class_SSArray_size_and_ctor_from_size // Test suite for class template SSArray, function size and ctor from size // Pre: None. // Post: // Pass/fail status of tests have been registered with t. // Appropriate messages have been printed to cout. // Does not throw (No-Throw Guarantee) void test_class_SSArray_size_and_ctor_from_size(Tester & t) { std::cout << "Test Suite: class template SSArray - " << "function size, ctor from size" << std::endl; bool correctType; // result of type checking const SSArray<int> tai1(1); correctType = TypeCheck<SSArray<int>::size_type>::check(tai1.size()); t.test(correctType, "size, return type"); t.test(tai1.size() == 1, "ctor from size (const) #1, check size"); const SSArray<int> tai2(10); t.test(tai2.size() == 10, "ctor from size (const) #2, check size"); const SSArray<double> tad(100); t.test(tad.size() == 100, "ctor from size (const) #3, check size"); SSArray<int> tai3(20); t.test(tai3.size() == 20, "ctor from size (non-const), check size"); const SSArray<int> tai4(0); t.test(tai4.size() == 0, "ctor from size (size 0), check size"); }
// test_class_SSArray_size_and_ctor_from_size // Test suite for class SSArray, function size and ctor from size // Pre: None. // Post: // Pass/fail status of tests have been registered with t. // Appropriate have been messages printed to cout. void test_class_SSArray_size_and_ctor_from_size(Tester & t) { std::cout << "Test Suite: class SSArray - function size, ctor from size" << std::endl; const SSArray<int> ssai(10); t.test(ssai.size() == 10, "size, ctor from size (const) #1"); const SSArray<double> ssad(100); t.test(ssad.size() == 100, "size, ctor from size (const) #2)"); SSArray<int> ssai2(20); t.test(ssai2.size() == 20, "size, ctor from size (non-const)"); }
// test_class_SSArray_begin_end // Test suite for class template SSArray, functions begin & end // Pre: None. // Post: // Pass/fail status of tests have been registered with t. // Appropriate messages have been printed to cout. // Does not throw (No-Throw Guarantee) void test_class_SSArray_begin_end(Tester & t) { std::cout << "Test Suite: class template SSArray - " << "functions begin & end" << std::endl; bool correctType; // result of type checking const int theSize = 10; bool noErrors; // True if no errors encountered int i; // Counter int * iter; // iterator const int * citer; // const_iterator SSArray<int> tai(theSize); for (iter = tai.begin(), i = 0; iter != tai.end(); ++iter, ++i) *iter = 15 - i * i; // Non-const test SSArray<double> tad1; correctType = TypeCheck<SSArray<double>::value_type *>::check(tad1.begin()); t.test(correctType, "begin (non-const), return type"); correctType = TypeCheck<SSArray<double>::value_type *>::check(tad1.end()); t.test(correctType, "end (non-const), return type"); t.test(tai.begin() != tai.end(), "begin/end - inequality (non-const)"); t.test (tai.end() - tai.begin() == theSize, "begin/end - check difference (non-const)"); noErrors = true; for (iter = tai.begin(), i = 0; iter != tai.end(); ++iter, ++i) { if (*iter != 15 - i * i) noErrors = false; } t.test(noErrors, "begin/end - check values (non-const)"); // Make const version, no copy const SSArray<int> & taiRef = tai; // Const test const SSArray<double> tad2; correctType = TypeCheck<const SSArray<double>::value_type *>::check(tad2.begin()); t.test(correctType, "begin (const), return type"); correctType = TypeCheck<const SSArray<double>::value_type *>::check(tad2.end()); t.test(correctType, "end (const), return type"); t.test(taiRef.end() - taiRef.begin() == theSize, "begin/end - check difference (const)"); noErrors = true; for (citer = taiRef.begin(), i = 0; citer != taiRef.end(); ++citer, ++i) { if (*citer != 15 - i * i) noErrors = false; } t.test(noErrors, "begin/end - check values (const)"); }