Пример #1
0
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));
}