#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);