Example #1
0
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);
}
Example #5
0
 void ExternalConfig_Test::Test_RunTests()
 {
   TestBasic();
 }