diff options
| author | Tyge Løvset <[email protected]> | 2023-01-27 17:42:20 +0100 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2023-01-27 17:42:20 +0100 |
| commit | c0c6b17afa97dff6eb498cb177a9dfc88669aa35 (patch) | |
| tree | d9512fdb14fa46ca6a1d50289cf680c8386458d0 /misc | |
| parent | e1c95c261e973b97620ec15b3dfb3cb25f6df916 (diff) | |
| parent | e19a681a1df63cb8af5dc5605b8a6626969032fe (diff) | |
| download | STC-modified-c0c6b17afa97dff6eb498cb177a9dfc88669aa35.tar.gz STC-modified-c0c6b17afa97dff6eb498cb177a9dfc88669aa35.zip | |
add cspan_test.c
Diffstat (limited to 'misc')
| -rw-r--r-- | misc/tests/cregex_test.c | 108 | ||||
| -rw-r--r-- | misc/tests/cspan_test.c | 21 |
2 files changed, 75 insertions, 54 deletions
diff --git a/misc/tests/cregex_test.c b/misc/tests/cregex_test.c index bd13d16a..24c39950 100644 --- a/misc/tests/cregex_test.c +++ b/misc/tests/cregex_test.c @@ -10,7 +10,7 @@ CTEST(cregex, compile_match_char) { const char* inp; - cregex re = cregex_from("äsdf", 0); + cregex re = cregex_from("äsdf"); ASSERT_EQ(re.error, 0); csview match; @@ -18,7 +18,7 @@ CTEST(cregex, compile_match_char) ASSERT_EQ(M_START(match), 0); ASSERT_EQ(M_END(match), 5); // ä is two bytes wide - ASSERT_EQ(cregex_find(&re, inp="zäsdf", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, inp="zäsdf", &match), CREG_OK); ASSERT_EQ(M_START(match), 1); ASSERT_EQ(M_END(match), 6); @@ -28,11 +28,11 @@ CTEST(cregex, compile_match_char) CTEST(cregex, compile_match_anchors) { const char* inp; - cregex re = cregex_from(inp="^äs.f$", 0); + cregex re = cregex_from(inp="^äs.f$"); ASSERT_EQ(re.error, 0); csview match; - ASSERT_EQ(cregex_find(&re, inp="äsdf", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, inp="äsdf", &match), CREG_OK); ASSERT_EQ(M_START(match), 0); ASSERT_EQ(M_END(match), 5); @@ -46,19 +46,19 @@ CTEST(cregex, compile_match_quantifiers1) { const char* inp; c_AUTO (cregex, re) { - re = cregex_from("ä+", 0); + re = cregex_from("ä+"); ASSERT_EQ(re.error, 0); csview match; - ASSERT_EQ(cregex_find(&re, inp="ääb", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, inp="ääb", &match), CREG_OK); ASSERT_EQ(M_START(match), 0); ASSERT_EQ(M_END(match), 4); - ASSERT_EQ(cregex_find(&re, inp="bäbb", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, inp="bäbb", &match), CREG_OK); ASSERT_EQ(M_START(match), 1); ASSERT_EQ(M_END(match), 3); - ASSERT_EQ(cregex_find(&re, "bbb", &match, 0), CREG_NOMATCH); + ASSERT_EQ(cregex_find(&re, "bbb", &match), CREG_NOMATCH); } } @@ -66,19 +66,19 @@ CTEST(cregex, compile_match_quantifiers2) { const char* inp; c_AUTO (cregex, re) { - re = cregex_from("bä*", 0); + re = cregex_from("bä*"); ASSERT_EQ(re.error, 0); csview match; - ASSERT_EQ(cregex_find(&re, inp="bääb", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, inp="bääb", &match), CREG_OK); ASSERT_EQ(M_START(match), 0); ASSERT_EQ(M_END(match), 5); - ASSERT_EQ(cregex_find(&re, inp="bäbb", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, inp="bäbb", &match), CREG_OK); ASSERT_EQ(M_START(match), 0); ASSERT_EQ(M_END(match), 3); - ASSERT_EQ(cregex_find(&re, inp="bbb", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, inp="bbb", &match), CREG_OK); ASSERT_EQ(M_START(match), 0); ASSERT_EQ(M_END(match), 1); } @@ -86,12 +86,12 @@ CTEST(cregex, compile_match_quantifiers2) CTEST(cregex, compile_match_escaped_chars) { - cregex re = cregex_from("\\n\\r\\t\\{", 0); + cregex re = cregex_from("\\n\\r\\t\\{"); ASSERT_EQ(re.error, 0); csview match; - ASSERT_EQ(cregex_find(&re, "\n\r\t{", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "\n\r\t", &match, 0), CREG_NOMATCH); + ASSERT_EQ(cregex_find(&re, "\n\r\t{", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "\n\r\t", &match), CREG_NOMATCH); cregex_drop(&re); } @@ -100,24 +100,24 @@ CTEST(cregex, compile_match_class_simple) { c_AUTO (cregex, re1, re2, re3) { - re1 = cregex_from("\\s", 0); + re1 = cregex_from("\\s"); ASSERT_EQ(re1.error, 0); - re2 = cregex_from("\\w", 0); + re2 = cregex_from("\\w"); ASSERT_EQ(re2.error, 0); - re3 = cregex_from("\\D", 0); + re3 = cregex_from("\\D"); ASSERT_EQ(re3.error, 0); csview match; - ASSERT_EQ(cregex_find(&re1, " " , &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re1, "\r", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re1, "\n", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re1, " " , &match), CREG_OK); + ASSERT_EQ(cregex_find(&re1, "\r", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re1, "\n", &match), CREG_OK); - ASSERT_EQ(cregex_find(&re2, "a", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re2, "0", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re2, "_", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re2, "a", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re2, "0", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re2, "_", &match), CREG_OK); - ASSERT_EQ(cregex_find(&re3, "k", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re3, "0", &match, 0), CREG_NOMATCH); + ASSERT_EQ(cregex_find(&re3, "k", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re3, "0", &match), CREG_NOMATCH); } } @@ -125,59 +125,59 @@ CTEST(cregex, compile_match_or) { c_AUTO (cregex, re, re2) { - re = cregex_from("as|df", 0); + re = cregex_from("as|df"); ASSERT_EQ(re.error, 0); csview match[4]; - ASSERT_EQ(cregex_find(&re, "as", match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "df", match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, "as", match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "df", match), CREG_OK); - re2 = cregex_from("(as|df)", 0); + re2 = cregex_from("(as|df)"); ASSERT_EQ(re2.error, 0); - ASSERT_EQ(cregex_find(&re2, "as", match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re2, "df", match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re2, "as", match), CREG_OK); + ASSERT_EQ(cregex_find(&re2, "df", match), CREG_OK); } } CTEST(cregex, compile_match_class_complex_0) { - cregex re = cregex_from("[asdf]", 0); + cregex re = cregex_from("[asdf]"); ASSERT_EQ(re.error, 0); csview match; - ASSERT_EQ(cregex_find(&re, "a", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "s", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "d", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "f", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, "a", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "s", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "d", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "f", &match), CREG_OK); cregex_drop(&re); } CTEST(cregex, compile_match_class_complex_1) { - cregex re = cregex_from("[a-zä0-9öA-Z]", 0); + cregex re = cregex_from("[a-zä0-9öA-Z]"); ASSERT_EQ(re.error, 0); csview match; - ASSERT_EQ(cregex_find(&re, "a", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "5", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "A", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "ä", &match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "ö", &match, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, "a", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "5", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "A", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "ä", &match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "ö", &match), CREG_OK); cregex_drop(&re); } CTEST(cregex, compile_match_cap) { - cregex re = cregex_from("(abc)d", 0); + cregex re = cregex_from("(abc)d"); ASSERT_EQ(re.error, 0); csview match[4]; - ASSERT_EQ(cregex_find(&re, "abcd", match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "llljabcdkk", match, 0), CREG_OK); - ASSERT_EQ(cregex_find(&re, "abc", match, 0), CREG_NOMATCH); + ASSERT_EQ(cregex_find(&re, "abcd", match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "llljabcdkk", match), CREG_OK); + ASSERT_EQ(cregex_find(&re, "abc", match), CREG_NOMATCH); cregex_drop(&re); } @@ -187,7 +187,7 @@ CTEST(cregex, search_all) const char* inp; c_AUTO (cregex, re) { - re = cregex_from("ab", 0); + re = cregex_from("ab"); csview m = {0}; int res; ASSERT_EQ(re.error, CREG_OK); @@ -207,7 +207,7 @@ CTEST(cregex, search_all) CTEST(cregex, captures_len) { c_AUTO (cregex, re) { - cregex re = cregex_from("(ab(cd))(ef)", 0); + cregex re = cregex_from("(ab(cd))(ef)"); ASSERT_EQ(cregex_captures(&re), 4); } } @@ -216,11 +216,11 @@ CTEST(cregex, captures_cap) { const char* inp; c_AUTO (cregex, re) { - re = cregex_from("(ab)((cd)+)", 0); + re = cregex_from("(ab)((cd)+)"); ASSERT_EQ(cregex_captures(&re), 4); csview cap[5]; - ASSERT_EQ(cregex_find(&re, inp="xxabcdcde", cap, 0), CREG_OK); + ASSERT_EQ(cregex_find(&re, inp="xxabcdcde", cap), CREG_OK); ASSERT_TRUE(csview_equals(cap[0], "abcdcd")); ASSERT_EQ(M_END(cap[0]), 8); @@ -255,11 +255,11 @@ CTEST(cregex, replace) ASSERT_TRUE(cstr_equals(&str, "start date: YYYY-MM-DD, end date: YYYY-MM-DD")); /* US date format, and add 10 years to dates: */ - cstr_take(&str, cregex_replace_pattern_ex(pattern, input, "$1/$3/$2", 0, add_10_years, CREG_DEFAULT)); + cstr_take(&str, cregex_replace_pattern(pattern, input, "$1/$3/$2", 0, add_10_years, CREG_DEFAULT)); ASSERT_TRUE(cstr_equals(&str, "start date: 2025/31/12, end date: 2032/28/02")); /* Wrap first date inside []: */ - cstr_take(&str, cregex_replace_pattern_ex(pattern, input, "[$0]", 1, NULL, CREG_DEFAULT)); + cstr_take(&str, cregex_replace_pattern(pattern, input, "[$0]", 1)); ASSERT_TRUE(cstr_equals(&str, "start date: [2015-12-31], end date: 2022-02-28")); /* Wrap all words in ${} */ @@ -267,7 +267,7 @@ CTEST(cregex, replace) ASSERT_TRUE(cstr_equals(&str, "52 ${apples} ${and} 31 ${mangoes}")); /* Compile RE separately */ - c_WITH (cregex re = cregex_from(pattern, CREG_DEFAULT), cregex_drop(&re)) { + c_WITH (cregex re = cregex_from(pattern), cregex_drop(&re)) { ASSERT_EQ(cregex_captures(&re), 4); /* European date format. */ diff --git a/misc/tests/cspan_test.c b/misc/tests/cspan_test.c new file mode 100644 index 00000000..8d6d47c2 --- /dev/null +++ b/misc/tests/cspan_test.c @@ -0,0 +1,21 @@ +#include <stdio.h> +#include <stc/cspan.h> +#include "ctest.h" + +using_cspan3(intspan, int); + + +CTEST(cspan, subdim) { + int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; + intspan3 m = cspan_multidim(array, 2, 2, 3); + + for (size_t i = 0; i < m.dim[0]; ++i) { + intspan2 sub_i = cspan_at3(&m, i); + for (size_t j = 0; j < m.dim[1]; ++j) { + intspan sub_i_j = cspan_at2(&sub_i, j); + for (size_t k = 0; k < m.dim[2]; ++k) { + ASSERT_EQ(*cspan_at(&sub_i_j, k), *cspan_at(&m, i, j, k)); + } + } + } +} |
