int main(int argc, char **argv) { unsigned num_tests = 19 + 9 + PolarStore::Count(); // NOTE: Plausibility tests disabled for now since many fail if (0) num_tests += ARRAY_SIZE(performanceData) * 5; plan_tests(num_tests); TestBasic(); TestFileImport(); TestBuiltInPolars(); // NOTE: Plausibility tests disabled for now since many fail if (0) TestBuiltInPolarsPlausibility(); return exit_status(); }
void Chapter1Test::Test1_5() { ofstream fout; OpenLogFile(fout,"test1_5.html","Problem 1.5: compress a string by counting consecutive chars"); string expected(""); TestBasic(fout, "", sol.prob1_5(""), expected); expected = "a4b2d2e"; TestBasic(fout, "aaaabbdde", sol.prob1_5("aaaabbdde"), expected); expected = "a10"; TestBasic(fout, "aaaaaaaaaa", sol.prob1_5("aaaaaaaaaa"), expected); expected = "abcdfefe"; TestBasic(fout, "abcdfefe", sol.prob1_5("abcdfefe"), expected); expected = "a"; TestBasic(fout, "a", sol.prob1_5("a"), expected); expected = "ab"; TestBasic(fout, "ab", sol.prob1_5("ab"), expected); CloseLogFile(fout); }
void Chapter2Test::Test2_7() { ofstream fout; OpenLogFile(fout,"test2_7.html","Problem 2.7: check if a list is a palindrome."); ListNode *head(nullptr); bool output(false), expected(false); string input; stringstream ss; input = ""; expected = true; ListNode::GenerateListNode({}, 0, head); output = sol.prob2_7(head); TestBasic(fout, input, output, expected); ss.str(""); expected = true; int A0[] = {1}; ListNode::GenerateListNode(A0, 1, head); ListNode::PrintListNode(head, ss); input = ss.str(); output = sol.prob2_7(head); TestBasic(fout, input, output, expected); ss.str(""); expected = false; int A1[] = {1,2}; ListNode::GenerateListNode(A1, 2, head); ListNode::PrintListNode(head, ss); input = ss.str(); output = sol.prob2_7(head); TestBasic(fout, input, output, expected); ss.str(""); expected = true; int A2[] = {2,2}; ListNode::GenerateListNode(A2, 2, head); ListNode::PrintListNode(head, ss); input = ss.str(); output = sol.prob2_7(head); TestBasic(fout, input, output, expected); ss.str(""); expected = false; int A3[] = {1,2,2}; ListNode::GenerateListNode(A3, 3, head); ListNode::PrintListNode(head, ss); input = ss.str(); output = sol.prob2_7(head); TestBasic(fout, input, output, expected); ss.str(""); expected = true; int A4[] = {1,2,1}; ListNode::GenerateListNode(A4, 3, head); ListNode::PrintListNode(head, ss); input = ss.str(); output = sol.prob2_7(head); TestBasic(fout, input, output, expected); ss.str(""); expected = true; int A5[] = {1,2,1,2,1,2,1}; ListNode::GenerateListNode(A5, 7, head); ListNode::PrintListNode(head, ss); input = ss.str(); output = sol.prob2_7(head); TestBasic(fout, input, output, expected); ss.str(""); expected = true; int A6[] = {1,2,1,1,1,2,1}; ListNode::GenerateListNode(A6, 7, head); ListNode::PrintListNode(head, ss); input = ss.str(); output = sol.prob2_7(head); TestBasic(fout, input, output, expected); ss.str(""); expected = false; int A7[] = {1,2,2,1,1,2,1}; ListNode::GenerateListNode(A7, 7, head); ListNode::PrintListNode(head, ss); input = ss.str(); output = sol.prob2_7(head); TestBasic(fout, input, output, expected); CloseLogFile(fout); }
void Chapter2Test::Test2_6() { ofstream fout; OpenLogFile(fout,"test2_6.html","Problem 2.6: return the first emlement that causes circle loop"); unsigned long output_1(0), output_2(0), expected(0); string input; ListNode *head(nullptr), *tail(nullptr), *loopNd(nullptr); int A[] = {1,2,3,4,5}; int loopPos(0), count(0); ListNode::GenerateListNode(A, 5, head); tail = head; while (tail->next != nullptr) { if (count == loopPos) loopNd = tail; tail = tail->next; count++; } tail->next = loopNd; expected = reinterpret_cast<unsigned long>(loopNd); input = "1->2->3->4->5->1->loop..."; output_1 = reinterpret_cast<unsigned long>(sol.prob2_6_1(head)); TestBasic(fout, input, output_1, expected); output_2 = reinterpret_cast<unsigned long>(sol.prob2_6_2(head)); TestBasic(fout, input, output_2, expected); count = 0, loopPos = 3; ListNode::GenerateListNode(A, 5, head); tail = head; while (tail->next != nullptr) { if (count == loopPos) loopNd = tail; tail = tail->next; count++; } tail->next = loopNd; expected = reinterpret_cast<unsigned long>(loopNd); input = "1->2->3->4->5->4->loop..."; output_1 = reinterpret_cast<unsigned long>(sol.prob2_6_1(head)); TestBasic(fout, input, output_1, expected); output_2 = reinterpret_cast<unsigned long>(sol.prob2_6_2(head)); TestBasic(fout, input, output_2, expected); count = 0; ListNode::GenerateListNode(A, 5, head); tail = head; while (tail->next != nullptr) { tail = tail->next; count++; } tail->next = tail; expected = reinterpret_cast<unsigned long>(tail); input = "1->2->3->4->5->5->loop..."; output_1 = reinterpret_cast<unsigned long>(sol.prob2_6_1(head)); TestBasic(fout, input, output_1, expected); output_2 = reinterpret_cast<unsigned long>(sol.prob2_6_2(head)); TestBasic(fout, input, output_2, expected); count = 0, loopPos = 2; ListNode::GenerateListNode(A, 5, head); tail = head; while (tail->next != nullptr) { if (count == loopPos) loopNd = tail; tail = tail->next; count++; } tail->next = loopNd; expected = reinterpret_cast<unsigned long>(loopNd); input = "1->2->3->4->5->3->loop..."; output_1 = reinterpret_cast<unsigned long>(sol.prob2_6_1(head)); TestBasic(fout, input, output_1, expected); output_2 = reinterpret_cast<unsigned long>(sol.prob2_6_2(head)); TestBasic(fout, input, output_2, expected); count = 0, loopPos = 1000; loopNd = nullptr; ListNode::GenerateListNode(A, 5, head); tail = head; while (tail->next != nullptr) { if (count == loopPos) loopNd = tail; tail = tail->next; count++; } tail->next = loopNd; expected = reinterpret_cast<unsigned long>(loopNd); input = "1->2->3->4->5->#"; output_1 = reinterpret_cast<unsigned long>(sol.prob2_6_1(head)); TestBasic(fout, input, output_1, expected); output_2 = reinterpret_cast<unsigned long>(sol.prob2_6_2(head)); TestBasic(fout, input, output_2, expected); CloseLogFile(fout); }
void ExternalConfig_Test::Test_RunTests() { TestBasic(); }