620 cxstring empty = CX_STR(""); |
620 cxstring empty = CX_STR(""); |
621 cxstring astr = CX_STR("aaaaaaaaaa"); |
621 cxstring astr = CX_STR("aaaaaaaaaa"); |
622 cxstring csstr = CX_STR("test AB ab TEST xyz"); |
622 cxstring csstr = CX_STR("test AB ab TEST xyz"); |
623 |
623 |
624 cxmutstr repl = cx_strreplace(str, CX_STR("abab"), CX_STR("muchlonger")); |
624 cxmutstr repl = cx_strreplace(str, CX_STR("abab"), CX_STR("muchlonger")); |
625 char const *expected = "test muchlongerab string aba"; |
625 const char *expected = "test muchlongerab string aba"; |
626 |
626 |
627 cxmutstr repln = cx_strreplacen(str, CX_STR("ab"), CX_STR("c"), 2); |
627 cxmutstr repln = cx_strreplacen(str, CX_STR("ab"), CX_STR("c"), 2); |
628 char const *expectedn = "test ccab string aba"; |
628 const char *expectedn = "test ccab string aba"; |
629 |
629 |
630 cxmutstr longrepl = cx_strreplace(longstr, CX_STR("a"), CX_STR("z")); |
630 cxmutstr longrepl = cx_strreplace(longstr, CX_STR("a"), CX_STR("z")); |
631 char const *longexpect = "xyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzcd"; |
631 const char *longexpect = "xyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzcd"; |
632 |
632 |
633 cxmutstr replnotrail = cx_strreplace(notrail, CX_STR("ab"), CX_STR("z")); |
633 cxmutstr replnotrail = cx_strreplace(notrail, CX_STR("ab"), CX_STR("z")); |
634 char const *notrailexpect = "test zz"; |
634 const char *notrailexpect = "test zz"; |
635 |
635 |
636 cxmutstr repleq = cx_strreplace(str, str, CX_STR("hello")); |
636 cxmutstr repleq = cx_strreplace(str, str, CX_STR("hello")); |
637 char const *eqexpect = "hello"; |
637 const char *eqexpect = "hello"; |
638 |
638 |
639 cxmutstr replempty1 = cx_strreplace(empty, CX_STR("ab"), CX_STR("c")); // expect: empty |
639 cxmutstr replempty1 = cx_strreplace(empty, CX_STR("ab"), CX_STR("c")); // expect: empty |
640 cxmutstr replempty2 = cx_strreplace(str, CX_STR("abab"), empty); |
640 cxmutstr replempty2 = cx_strreplace(str, CX_STR("abab"), empty); |
641 char const *emptyexpect2 = "test ab string aba"; |
641 const char *emptyexpect2 = "test ab string aba"; |
642 |
642 |
643 cxmutstr replpre = cx_strreplace(str, CX_STR("test "), CX_STR("TEST ")); |
643 cxmutstr replpre = cx_strreplace(str, CX_STR("test "), CX_STR("TEST ")); |
644 char const *preexpected = "TEST ababab string aba"; |
644 const char *preexpected = "TEST ababab string aba"; |
645 |
645 |
646 cxmutstr replan1 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 1); |
646 cxmutstr replan1 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 1); |
647 char const *an1expected = "xaaaaaaaaa"; |
647 const char *an1expected = "xaaaaaaaaa"; |
648 |
648 |
649 cxmutstr replan4 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 4); |
649 cxmutstr replan4 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 4); |
650 char const *an4expected = "xxxxaaaaaa"; |
650 const char *an4expected = "xxxxaaaaaa"; |
651 |
651 |
652 cxmutstr replan9 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 9); |
652 cxmutstr replan9 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 9); |
653 char const *an9expected = "xxxxxxxxxa"; |
653 const char *an9expected = "xxxxxxxxxa"; |
654 |
654 |
655 cxmutstr replan10 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 10); |
655 cxmutstr replan10 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 10); |
656 char const *an10expected = "xxxxxxxxxx"; |
656 const char *an10expected = "xxxxxxxxxx"; |
657 |
657 |
658 CX_TEST_DO { |
658 CX_TEST_DO { |
659 cxmutstr repl1_a = cx_strreplace_a(alloc, csstr, CX_STR("AB"), CX_STR("*")); |
659 cxmutstr repl1_a = cx_strreplace_a(alloc, csstr, CX_STR("AB"), CX_STR("*")); |
660 char const *expeced1_a = "test * ab TEST xyz"; |
660 const char *expeced1_a = "test * ab TEST xyz"; |
661 |
661 |
662 cxmutstr repl2_a = cx_strreplace_a(alloc, csstr, CX_STR("test"), CX_STR("TEST")); |
662 cxmutstr repl2_a = cx_strreplace_a(alloc, csstr, CX_STR("test"), CX_STR("TEST")); |
663 char const *expected2_a = "TEST AB ab TEST xyz"; |
663 const char *expected2_a = "TEST AB ab TEST xyz"; |
664 |
664 |
665 CX_TEST_ASSERT(repl.ptr != str.ptr); |
665 CX_TEST_ASSERT(repl.ptr != str.ptr); |
666 ASSERT_ZERO_TERMINATED(repl); |
666 ASSERT_ZERO_TERMINATED(repl); |
667 CX_TEST_ASSERT(0 == strcmp(repl.ptr, expected)); |
667 CX_TEST_ASSERT(0 == strcmp(repl.ptr, expected)); |
668 ASSERT_ZERO_TERMINATED(repln); |
668 ASSERT_ZERO_TERMINATED(repln); |