TEST(TStr, SplitOnChN) { const TStr Str = "abcde"; const TStr EmptyStr = ""; TStr LStr, RStr; Str.SplitOnChN(LStr, 2, RStr); // basic ASSERT_EQ(LStr, "ab"); ASSERT_EQ(RStr, "de"); // edge cases Str.SplitOnChN(LStr, 0, RStr); ASSERT_EQ(LStr, ""); ASSERT_EQ(RStr, "bcde"); Str.SplitOnChN(LStr, Str.Len()-1, RStr); ASSERT_EQ(LStr, "abcd"); ASSERT_EQ(RStr, ""); // exceptions ASSERT_ANY_THROW(Str.SplitOnChN(LStr, -1, RStr)); ASSERT_ANY_THROW(Str.SplitOnChN(LStr, Str.Len(), RStr)); ASSERT_ANY_THROW(EmptyStr.SplitOnChN(LStr, 0, RStr)); }