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"); }
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); }
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); }
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); }
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); }
void testValueCheck() { CHECK(3 == CHECKEQ(1 + 2, 3)); string* s = new string("wefpok"); CHECK(s == NOTNULL(s)); }
void testReverse3() { vector<int> v1; vector<int> v2; CHECKEQ(reverse2(v1), v2); }
void testReverse2() { vector<int> v1 {1}; vector<int> v2 {1}; CHECKEQ(reverse2(v1), v2); }
void testReverse() { vector<int> v1 {1, 2, 3, 4}; vector<int> v2 {4, 3, 2, 1}; CHECKEQ(reverse2(v1), v2); }
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"); }