feat(lsm): write str tests; start trie tests
This commit is contained in:
parent
87000e8f73
commit
ef8129b8eb
7 changed files with 441 additions and 52 deletions
91
lsm/test/str/str.c
Normal file
91
lsm/test/str/str.c
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
#include "test.h"
|
||||
#include "lsm/str_internal.h"
|
||||
|
||||
void test_cmp() {
|
||||
lsm_str s1, s2, s3;
|
||||
lsm_str_overwrite_copy(&s1, "some_string");
|
||||
lsm_str_overwrite_copy(&s2, "some");
|
||||
lsm_str_overwrite_copy(&s3, "some_string_extra");
|
||||
|
||||
TEST_CHECK(lsm_str_cmp(&s1, 0, &s2, 0) == 4);
|
||||
TEST_CHECK(lsm_str_cmp(&s1, 0, &s2, 1) == 0);
|
||||
TEST_CHECK(lsm_str_cmp(&s1, 1, &s2, 1) == 3);
|
||||
TEST_CHECK(lsm_str_cmp(&s1, 1, &s2, 0) == 0);
|
||||
|
||||
TEST_CHECK(lsm_str_cmp(&s1, 0, &s3, 0) == lsm_str_len(&s1));
|
||||
}
|
||||
|
||||
void test_eq() {
|
||||
lsm_str s1, s2;
|
||||
lsm_str_overwrite_copy(&s1, "longerthan8");
|
||||
lsm_str_overwrite_copy(&s2, "longerthan8");
|
||||
|
||||
TEST_CHECK(lsm_str_eq(&s1, &s2));
|
||||
|
||||
lsm_str_overwrite_copy(&s1, "longerthan8");
|
||||
lsm_str_overwrite_copy(&s2, "lmaolongerthan8");
|
||||
|
||||
TEST_CHECK(!lsm_str_eq(&s1, &s2));
|
||||
|
||||
lsm_str_overwrite_copy(&s1, "short");
|
||||
lsm_str_overwrite_copy(&s2, "short");
|
||||
|
||||
TEST_CHECK(lsm_str_eq(&s1, &s2));
|
||||
|
||||
lsm_str_overwrite_copy(&s1, "short");
|
||||
lsm_str_overwrite_copy(&s1, "shorte");
|
||||
|
||||
TEST_CHECK(!lsm_str_eq(&s1, &s2));
|
||||
|
||||
lsm_str_overwrite_copy(&s1, "longerthan8");
|
||||
lsm_str_overwrite_copy(&s2, "short");
|
||||
|
||||
TEST_CHECK(!lsm_str_eq(&s1, &s2));
|
||||
}
|
||||
|
||||
void test_substr() {
|
||||
lsm_str s1, s2, s3;
|
||||
lsm_str_overwrite_copy(&s1, "some_string");
|
||||
lsm_str_overwrite_copy(&s3, "string");
|
||||
lsm_str_substr(&s2, &s1, 5, lsm_str_len(&s1));
|
||||
|
||||
TEST_CHECK(lsm_str_eq(&s2, &s3));
|
||||
|
||||
lsm_str_zero(&s2);
|
||||
lsm_str_substr(&s2, &s1, 25, lsm_str_len(&s1));
|
||||
|
||||
TEST_CHECK(lsm_str_len(&s2) == 0);
|
||||
}
|
||||
|
||||
void test_truncate() {
|
||||
lsm_str s1, s2, s3;
|
||||
lsm_str_overwrite_copy(&s1, "some_longer_string_thing");
|
||||
lsm_str_overwrite_copy(&s2, "some_longer_string");
|
||||
lsm_str_overwrite_copy(&s3, "some");
|
||||
|
||||
lsm_str_truncate(&s1, 18);
|
||||
TEST_CHECK(lsm_str_eq(&s1, &s2));
|
||||
|
||||
lsm_str_truncate(&s1, 4);
|
||||
TEST_CHECK(lsm_str_eq(&s1, &s3));
|
||||
}
|
||||
|
||||
void test_init_copy() {
|
||||
char orig[] = "some_string";
|
||||
lsm_str *s;
|
||||
lsm_str_init_copy(&s, orig);
|
||||
|
||||
TEST_CHECK(s->data.ptr != orig);
|
||||
TEST_CHECK(strcmp(s->data.ptr, orig) == 0);
|
||||
|
||||
lsm_str_free(s);
|
||||
}
|
||||
|
||||
TEST_LIST = {
|
||||
{ "str init_copy", test_init_copy },
|
||||
{ "str cmp", test_cmp },
|
||||
{ "str eq", test_eq },
|
||||
{ "str substr", test_substr },
|
||||
{ "str truncate", test_truncate },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue