12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #include "util.h"
- #include <library/cpp/testing/unittest/registar.h>
- class TStrUtilTest: public TTestBase {
- UNIT_TEST_SUITE(TStrUtilTest);
- UNIT_TEST(TestSpn);
- UNIT_TEST(TestRemoveAll);
- UNIT_TEST_SUITE_END();
- public:
- void TestSpn() {
- str_spn rul("a-z", true);
- char s[] = "!@#$ab%^&c+-";
- UNIT_ASSERT_EQUAL(rul.brk(s), s + 4);
- UNIT_ASSERT_EQUAL(rul.brk(s + 4), s + 4);
- UNIT_ASSERT_EQUAL(rul.brk(s + 10), s + 12);
- char* s1 = s;
- UNIT_ASSERT_EQUAL(strcmp(rul.sep(s1), "!@#$"), 0);
- UNIT_ASSERT_EQUAL(strcmp(rul.sep(s1), ""), 0);
- UNIT_ASSERT_EQUAL(strcmp(rul.sep(s1), "%^&"), 0);
- UNIT_ASSERT_EQUAL(strcmp(rul.sep(s1), "+-"), 0);
- UNIT_ASSERT_EQUAL(rul.sep(s1), nullptr);
- }
- void TestRemoveAll() {
- static const struct T {
- const char* Str;
- char Ch;
- const char* Result;
- } tests[] = {
- {"", 'x', ""},
- {"hello world", 'h', "ello world"},
- {"hello world", 'l', "heo word"},
- {"hello world", 'x', "hello world"},
- };
- for (const T* t = tests; t != std::end(tests); ++t) {
- TString str(t->Str);
- RemoveAll(str, t->Ch);
- UNIT_ASSERT_EQUAL(t->Result, str);
- }
- }
- };
- UNIT_TEST_SUITE_REGISTRATION(TStrUtilTest);
|