void test_all(void) { // print_test(); // jitoa_test(); // jatoi_test(); str_test(); mem_test(); return; }
int main(int argc, char *argv[]) { plan_lazy(); scheme_find_test(); parser_test(); str_test(); return 0; }
void test_lazy_string_empty() { #define CMP_STR_EMPTY (str_ref.empty() == str_test.empty()) std::string str_ref(""); lazy::lazy_string str_test(""); test("lazy_string empty() is valid on empty string", CMP_STR_EMPTY); str_ref = "1"; str_test = "1"; test("lazy_string empty() is valid on 1 char string after assignment", CMP_STR_EMPTY); str_ref = "12345"; str_test = "12345"; test("lazy_string empty() is valid on non-empty string after assignment", CMP_STR_EMPTY); #undef CMP_STR_SIZES }
void test_lazy_string_ix_operator() { std::string str_ref("test assignmnet operator using me"); lazy::lazy_string str_test(str_ref.c_str()); lazy::lazy_string str_test_lazy_cp(str_test); test("[] operator get right value", str_ref[10] == str_test_lazy_cp[10]); str_ref[10] = 'f'; str_test_lazy_cp[10] = 'f'; test("[] operator assigns value", str_ref[10] == str_test_lazy_cp[10]); test("[] operator doesn't change original string", str_test[10] != str_test_lazy_cp[10]); auto str_test_5th_element = str_test[5]; test("proxy modifier casts to right value", str_test_5th_element == str_test.get_at(5)); auto str_test_5th_element_copy = str_test_5th_element; test("proxy modifier copy returns the same value", str_test_5th_element == str_test_5th_element_copy); }
int main(int argc, const char *argv[]) { str_test(); return 0; }