adds more sstrreplace tests

Sun, 29 Dec 2019 16:04:34 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 29 Dec 2019 16:04:34 +0100
changeset 382
d746888af4e5
parent 381
f5421bb2c8d1
child 383
db4c6b94939b

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 +}

mercurial