Пример #1
0
void testCombine() {
  vector<string> words { "pok", "pak", "pik", "puk" };
  CHECKEQ(combine(words), "pok, pak, pik and puk");
  words = { "pok" };
  CHECKEQ(combine(words), "pok");
  words = { "pok", "pik" };
  CHECKEQ(combine(words), "pok and pik");
}
Пример #2
0
void testRange() {
  vector<int> a;
  vector<int> b {0,1,2,3,4,5,6};
  for (int x : Range(7))
    a.push_back(x);
  CHECKEQ(a, b);
  a.clear();
  for (int x : Range(2, 6))
    a.push_back(x);
  CHECKEQ(getSubsequence(b, 2, 4), a);
  a.clear();
  for (int x : All(b))
    a.push_back(x);
  CHECKEQ(a, b);
}
Пример #3
0
void testTransform2() {
  vector<int> v { 5, 4, 3, 2, 1};
  vector<string> s { "s5", "s4", "s3", "s2", "s1" };
  function<string(const int&)> func = [](const int& a) { return "s" + toString(a); };
  vector<string> res = transform2<string>(v, func);
  CHECKEQ(res, s);
}
Пример #4
0
void testRange2() {
  vector<int> a;
  const vector<int> b {6,5,4,3,2,1,0};
  for (int x : Range(6, -1))
    a.push_back(x);
  CHECKEQ(a, b);
  a.clear();
  for (int x : Range(4, 0))
    a.push_back(x);
  CHECKEQ(getSubsequence(b, 2, 4), a);
  a.clear();
  for (int x : All(b)) {
    a.push_back(b[x]);
  }
  CHECKEQ(a, b);
  a.clear();
  for (int x : Range(4, 4))
    a.push_back(x);
  a.clear();
  for (int x : Range(4, 3))
    a.push_back(x);
  CHECK(getOnlyElement(a) == 4);
}
Пример #5
0
int main()
{
    struct memio_buffer mb;
    char buf[100];
    int i;

    memio_buffer_new(&mb, TEST_BUFLEN);

    CHECKEQ(memio_buffer_unused_contiguous(&mb), TEST_BUFLEN-1);
    CHECKEQ(memio_buffer_used_contiguous(&mb), 0);

    CHECKEQ(memio_buffer_put(&mb, "howdy", 5), 5);

    CHECKEQ(memio_buffer_unused_contiguous(&mb), TEST_BUFLEN-1-5);
    CHECKEQ(memio_buffer_used_contiguous(&mb), 5);
    CHECKEQ(memio_buffer_wrapped_bytes(&mb), 0);

    CHECKEQ(memio_buffer_put(&mb, "!", 1), 1);

    CHECKEQ(memio_buffer_unused_contiguous(&mb), 0);
    CHECKEQ(memio_buffer_used_contiguous(&mb), 6);
    CHECKEQ(memio_buffer_wrapped_bytes(&mb), 0);

    CHECKEQ(memio_buffer_get(&mb, buf, 6), 6);
    CHECKEQ(memcmp(buf, "howdy!", 6), 0);

    CHECKEQ(memio_buffer_unused_contiguous(&mb), 1);
    CHECKEQ(memio_buffer_used_contiguous(&mb), 0);

    CHECKEQ(memio_buffer_put(&mb, "01234", 5), 5);

    CHECKEQ(memio_buffer_used_contiguous(&mb), 1);
    CHECKEQ(memio_buffer_wrapped_bytes(&mb), 4);
    CHECKEQ(memio_buffer_unused_contiguous(&mb), TEST_BUFLEN-1-5);

    CHECKEQ(memio_buffer_put(&mb, "5", 1), 1);

    CHECKEQ(memio_buffer_unused_contiguous(&mb), 0);
    CHECKEQ(memio_buffer_used_contiguous(&mb), 1);

    /* TODO: add more cases */

    printf("Test passed\n");
    exit(0);
}
Пример #6
0
void testValueCheck() {
  CHECK(3 == CHECKEQ(1 + 2, 3));
  string* s = new string("wefpok");
  CHECK(s == NOTNULL(s));
}
Пример #7
0
void testReverse3() {
  vector<int> v1;
  vector<int> v2;
  CHECKEQ(reverse2(v1), v2);
}
Пример #8
0
void testReverse2() {
  vector<int> v1 {1};
  vector<int> v2 {1};
  CHECKEQ(reverse2(v1), v2);
}
Пример #9
0
void testReverse() {
  vector<int> v1 {1, 2, 3, 4};
  vector<int> v2 {4, 3, 2, 1};
  CHECKEQ(reverse2(v1), v2);
}
Пример #10
0
void testVec2() {
  CHECK(Vec2(5, 0).shorten() == Vec2(1, 0));
  CHECK(Vec2(-7, 0).shorten() == Vec2(-1, 0));
  CHECK(Vec2(0, 4).shorten() == Vec2(0, 1));
  CHECK(Vec2(0, -3).shorten() == Vec2(0, -1));
  CHECK(Vec2(5, 5).shorten() == Vec2(1, 1));
  CHECK(Vec2(-7, -7).shorten() == Vec2(-1, -1));
  CHECK(Vec2(-3, 3).shorten() == Vec2(-1, 1));
  CHECK(Vec2(4, -4).shorten() == Vec2(1, -1));

  checkEqual(Vec2(3, 0).approxL1(), make_pair(Vec2(1, 0), Vec2(1, 0)));
  checkEqual(Vec2(3, -1).approxL1(), make_pair(Vec2(1, 0), Vec2(1, -1)));
  checkEqual(Vec2(3, -3).approxL1(), make_pair(Vec2(1, -1), Vec2(1, -1)));
  checkEqual(Vec2(1, -3).approxL1(), make_pair(Vec2(0, -1), Vec2(1, -1)));
  checkEqual(Vec2(0, -3).approxL1(), make_pair(Vec2(0, -1), Vec2(0, -1)));
  checkEqual(Vec2(-1, -3).approxL1(), make_pair(Vec2(0, -1), Vec2(-1, -1)));
  checkEqual(Vec2(-3, -3).approxL1(), make_pair(Vec2(-1, -1), Vec2(-1, -1)));
  checkEqual(Vec2(-3, -1).approxL1(), make_pair(Vec2(-1, 0), Vec2(-1, -1)));
  checkEqual(Vec2(-3, 0).approxL1(), make_pair(Vec2(-1, 0), Vec2(-1, 0)));
  checkEqual(Vec2(-3, 1).approxL1(), make_pair(Vec2(-1, 0), Vec2(-1, 1)));
  checkEqual(Vec2(-3, 3).approxL1(), make_pair(Vec2(-1, 1), Vec2(-1, 1)));
  checkEqual(Vec2(-1, 3).approxL1(), make_pair(Vec2(0, 1), Vec2(-1, 1)));
  checkEqual(Vec2(0, 3).approxL1(), make_pair(Vec2(0, 1), Vec2(0, 1)));
  checkEqual(Vec2(1, 3).approxL1(), make_pair(Vec2(0, 1), Vec2(1, 1)));
  checkEqual(Vec2(3, 3).approxL1(), make_pair(Vec2(1, 1), Vec2(1, 1)));
  checkEqual(Vec2(3, 1).approxL1(), make_pair(Vec2(1, 1), Vec2(1, 0)));

  CHECKEQ(getCardinalName(Vec2(1, 0).getBearing().getCardinalDir()), "east");
  CHECKEQ(getCardinalName(Vec2(3, 1).getBearing().getCardinalDir()), "east");
  CHECKEQ(getCardinalName(Vec2(1, 1).getBearing().getCardinalDir()), "south-east");
  CHECKEQ(getCardinalName(Vec2(2, 1).getBearing().getCardinalDir()), "south-east");
  CHECKEQ(getCardinalName(Vec2(0, 1).getBearing().getCardinalDir()), "south");
  CHECKEQ(getCardinalName(Vec2(-1, 3).getBearing().getCardinalDir()), "south");
  CHECKEQ(getCardinalName(Vec2(-1, 1).getBearing().getCardinalDir()), "south-west");
  CHECKEQ(getCardinalName(Vec2(-1, 0).getBearing().getCardinalDir()), "west");
  CHECKEQ(getCardinalName(Vec2(-1, -1).getBearing().getCardinalDir()), "north-west");
  CHECKEQ(getCardinalName(Vec2(0, -1).getBearing().getCardinalDir()), "north");
  CHECKEQ(getCardinalName(Vec2(1, -1).getBearing().getCardinalDir()), "north-east");
}