Sun, 29 Dec 2019 16:04:34 +0100
adds more sstrreplace tests
test/string_tests.c | file | annotate | diff | comparison | revisions |
1.1 --- a/test/string_tests.c Sun Dec 29 13:39:36 2019 +0100 1.2 +++ b/test/string_tests.c Sun Dec 29 16:04:34 2019 +0100 1.3 @@ -482,6 +482,9 @@ 1.4 sstr_t str = ST("test ababab string aba"); 1.5 sstr_t longstr = ST("xyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacd"); 1.6 sstr_t notrail = ST("test abab"); 1.7 + sstr_t empty = ST(""); 1.8 + sstr_t astr = ST("aaaaaaaaaa"); 1.9 + sstr_t csstr = ST("test AB ab TEST xyz"); 1.10 1.11 sstr_t repl = sstrreplace(str, SC("abab"), SC("muchlonger")); 1.12 sstr_t expected = ST("test muchlongerab string aba"); 1.13 @@ -494,7 +497,35 @@ 1.14 1.15 sstr_t replnotrail = sstrreplace(notrail, SC("ab"), SC("z")); 1.16 sstr_t notrailexpect = ST("test zz"); 1.17 - 1.18 + 1.19 + sstr_t repleq = sstrreplace(str, str, SC("hello")); 1.20 + sstr_t eqexpect = ST("hello"); 1.21 + 1.22 + sstr_t replempty1 = sstrreplace(empty, SC("ab"), SC("c")); // expect: empty 1.23 + sstr_t replempty2 = sstrreplace(str, SC("abab"), empty); 1.24 + sstr_t emptyexpect2 = ST("test ab string aba"); 1.25 + 1.26 + sstr_t replpre = sstrreplace(str, SC("test "), SC("TEST ")); 1.27 + sstr_t preexpected = ST("TEST ababab string aba"); 1.28 + 1.29 + sstr_t replan1 = sstrreplacen(astr, SC("a"), SC("x"), 1); 1.30 + sstr_t an1expected = ST("xaaaaaaaaa"); 1.31 + 1.32 + sstr_t replan4 = sstrreplacen(astr, SC("a"), SC("x"), 4); 1.33 + sstr_t an4expected = ST("xxxxaaaaaa"); 1.34 + 1.35 + sstr_t replan9 = sstrreplacen(astr, SC("a"), SC("x"), 9); 1.36 + sstr_t an9expected = ST("xxxxxxxxxa"); 1.37 + 1.38 + sstr_t replan10 = sstrreplacen(astr, SC("a"), SC("x"), 10); 1.39 + sstr_t an10expected = ST("xxxxxxxxxx"); 1.40 + 1.41 + sstr_t replcs1 = sstrreplace(csstr, SC("AB"), SC("*")); 1.42 + sstr_t cs1expected = ST("test * ab TEST xyz"); 1.43 + 1.44 + sstr_t replcs2 = sstrreplace(csstr, SC("test"), SC("TEST")); 1.45 + sstr_t cs2expected = ST("TEST AB ab TEST xyz"); 1.46 + 1.47 UCX_TEST_BEGIN 1.48 1.49 UCX_TEST_ASSERT(repl.ptr != str.ptr, "result string is not fresh"); 1.50 @@ -508,9 +539,51 @@ 1.51 1.52 UCX_TEST_ASSERT(!sstrcmp(replnotrail, notrailexpect), 1.53 "no trail replacement fails"); 1.54 + 1.55 + UCX_TEST_ASSERT(!sstrcmp(repleq, eqexpect), 1.56 + "equal replacement fails"); 1.57 + 1.58 + UCX_TEST_ASSERT(!sstrcmp(replempty1, empty), 1.59 + "replacement in empty string fails"); 1.60 + 1.61 + UCX_TEST_ASSERT(!sstrcmp(replempty2, emptyexpect2), 1.62 + "empty replacement fails"); 1.63 + 1.64 + UCX_TEST_ASSERT(!sstrcmp(replpre, preexpected), 1.65 + "prefix replacement fails"); 1.66 + 1.67 + UCX_TEST_ASSERT(!sstrcmp(replan1, an1expected), 1.68 + "a1 replacement fails"); 1.69 + 1.70 + UCX_TEST_ASSERT(!sstrcmp(replan4, an4expected), 1.71 + "a4 replacement fails"); 1.72 + 1.73 + UCX_TEST_ASSERT(!sstrcmp(replan9, an9expected), 1.74 + "a9 replacement fails"); 1.75 + 1.76 + UCX_TEST_ASSERT(!sstrcmp(replan10, an10expected), 1.77 + "a10 replacement fails"); 1.78 + 1.79 + UCX_TEST_ASSERT(!sstrcmp(replcs1, cs1expected), 1.80 + "case sensitivity test1 fails"); 1.81 + 1.82 + UCX_TEST_ASSERT(!sstrcmp(replcs2, cs2expected), 1.83 + "case sensitivity test2 fails"); 1.84 1.85 UCX_TEST_END 1.86 1.87 free(repl.ptr); 1.88 free(repln.ptr); 1.89 -} 1.90 \ No newline at end of file 1.91 + free(longrepl.ptr); 1.92 + free(replnotrail.ptr); 1.93 + free(repleq.ptr); 1.94 + if(replempty1.ptr) free(replempty1.ptr); 1.95 + free(replempty2.ptr); 1.96 + free(replpre.ptr); 1.97 + free(replan1.ptr); 1.98 + free(replan4.ptr); 1.99 + free(replan9.ptr); 1.100 + free(replan10.ptr); 1.101 + free(replcs1.ptr); 1.102 + free(replcs2.ptr); 1.103 +}