Skip to content

Commit 41860e7

Browse files
committed
#173-Test CppStringT::substr() with char and wchar_t
Completed. Validated.
1 parent 6575060 commit 41860e7

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

cpp-strings-tests/cpp-strings-tests.cpp

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3764,5 +3764,84 @@ namespace cppstringstests
37643764
Assert::AreEqual(L"abcdefedcbaea", wtext.strip(L"ghijZ").c_str());
37653765
Assert::AreEqual(L"abcdefedcbaea", wtext.strip(L"ABc").c_str());
37663766
}
3767+
3768+
TEST_METHOD(substr)
3769+
{
3770+
CppString text("AbcDefGhi");
3771+
3772+
Assert::AreEqual("AbcDefGhi", text.substr(0, 9).c_str());
3773+
Assert::AreEqual("bcDefGhi", text.substr(1, 8).c_str());
3774+
Assert::AreEqual("cDefGhi", text.substr(2, 7).c_str());
3775+
Assert::AreEqual("DefGhi", text.substr(3, 6).c_str());
3776+
Assert::AreEqual("efGhi", text.substr(4, 5).c_str());
3777+
Assert::AreEqual("fGhi", text.substr(5, 4).c_str());
3778+
Assert::AreEqual("Ghi", text.substr(6, 3).c_str());
3779+
Assert::AreEqual("hi", text.substr(7, 2).c_str());
3780+
Assert::AreEqual("i", text.substr(8, 1).c_str());
3781+
Assert::AreEqual("", text.substr(9, 0).c_str());
3782+
3783+
Assert::AreEqual("AbcDefGhi", text.substr(0).c_str());
3784+
Assert::AreEqual("bcDefGhi", text.substr(1).c_str());
3785+
Assert::AreEqual("cDefGhi", text.substr(2).c_str());
3786+
Assert::AreEqual("DefGhi", text.substr(3).c_str());
3787+
Assert::AreEqual("efGhi", text.substr(4).c_str());
3788+
Assert::AreEqual("fGhi", text.substr(5).c_str());
3789+
Assert::AreEqual("Ghi", text.substr(6).c_str());
3790+
Assert::AreEqual("hi", text.substr(7).c_str());
3791+
Assert::AreEqual("i", text.substr(8).c_str());
3792+
Assert::AreEqual("", text.substr(9).c_str());
3793+
3794+
Assert::AreEqual("AbcDefGh", text.substr(0, 8).c_str());
3795+
Assert::AreEqual("bcDefGh", text.substr(1, 7).c_str());
3796+
Assert::AreEqual("cDefG", text.substr(2, 5).c_str());
3797+
Assert::AreEqual("DefGh", text.substr(3, 5).c_str());
3798+
Assert::AreEqual("efGh", text.substr(4, 4).c_str());
3799+
Assert::AreEqual("fG", text.substr(5, 2).c_str());
3800+
Assert::AreEqual("G", text.substr(6, 1).c_str());
3801+
Assert::AreEqual("h", text.substr(7, 1).c_str());
3802+
Assert::AreEqual("i", text.substr(8, 3).c_str());
3803+
Assert::AreEqual("", text.substr(9, 0).c_str());
3804+
3805+
Assert::AreEqual("", text.substr(10, 15).c_str());
3806+
Assert::AreEqual("", text.substr(21).c_str());
3807+
3808+
CppWString wtext(L"AbcDefGhi");
3809+
3810+
Assert::AreEqual(L"AbcDefGhi", wtext.substr(0, 9).c_str());
3811+
Assert::AreEqual(L"bcDefGhi", wtext.substr(1, 8).c_str());
3812+
Assert::AreEqual(L"cDefGhi", wtext.substr(2, 7).c_str());
3813+
Assert::AreEqual(L"DefGhi", wtext.substr(3, 6).c_str());
3814+
Assert::AreEqual(L"efGhi", wtext.substr(4, 5).c_str());
3815+
Assert::AreEqual(L"fGhi", wtext.substr(5, 4).c_str());
3816+
Assert::AreEqual(L"Ghi", wtext.substr(6, 3).c_str());
3817+
Assert::AreEqual(L"hi", wtext.substr(7, 2).c_str());
3818+
Assert::AreEqual(L"i", wtext.substr(8, 1).c_str());
3819+
Assert::AreEqual(L"", wtext.substr(9, 0).c_str());
3820+
3821+
Assert::AreEqual(L"AbcDefGhi", wtext.substr(0).c_str());
3822+
Assert::AreEqual(L"bcDefGhi", wtext.substr(1).c_str());
3823+
Assert::AreEqual(L"cDefGhi", wtext.substr(2).c_str());
3824+
Assert::AreEqual(L"DefGhi", wtext.substr(3).c_str());
3825+
Assert::AreEqual(L"efGhi", wtext.substr(4).c_str());
3826+
Assert::AreEqual(L"fGhi", wtext.substr(5).c_str());
3827+
Assert::AreEqual(L"Ghi", wtext.substr(6).c_str());
3828+
Assert::AreEqual(L"hi", wtext.substr(7).c_str());
3829+
Assert::AreEqual(L"i", wtext.substr(8).c_str());
3830+
Assert::AreEqual(L"", wtext.substr(9).c_str());
3831+
3832+
Assert::AreEqual(L"AbcDefGh", wtext.substr(0, 8).c_str());
3833+
Assert::AreEqual(L"bcDefGh", wtext.substr(1, 7).c_str());
3834+
Assert::AreEqual(L"cDefG", wtext.substr(2, 5).c_str());
3835+
Assert::AreEqual(L"DefGh", wtext.substr(3, 5).c_str());
3836+
Assert::AreEqual(L"efGh", wtext.substr(4, 4).c_str());
3837+
Assert::AreEqual(L"fG", wtext.substr(5, 2).c_str());
3838+
Assert::AreEqual(L"G", wtext.substr(6, 1).c_str());
3839+
Assert::AreEqual(L"h", wtext.substr(7, 1).c_str());
3840+
Assert::AreEqual(L"i", wtext.substr(8, 3).c_str());
3841+
Assert::AreEqual(L"", wtext.substr(9, 0).c_str());
3842+
3843+
Assert::AreEqual(L"", wtext.substr(10, 15).c_str());
3844+
Assert::AreEqual(L"", wtext.substr(21).c_str());
3845+
}
37673846
};
37683847
}

0 commit comments

Comments
 (0)