Skip to content

Commit c7a867b

Browse files
committed
#155 - Test CppStringT::lstrip() with char and wchar_t
Completed. Fixed a bug.
1 parent 78c5ebc commit c7a867b

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -788,6 +788,7 @@ namespace cppstringstests
788788
s.lower();
789789
for (int i=0; i < N; ++i)
790790
Assert::AreEqual(pcs::to_lower(ch), s[i]);
791+
Assert::AreEqual(char(std::tolower(ch)), pcs::CppString::lower(ch));
791792
}
792793

793794
for (int c = 0; c <= 0xffff; ++c) {
@@ -797,9 +798,36 @@ namespace cppstringstests
797798
ws.lower();
798799
for (int i = 0; i < N; ++i)
799800
Assert::AreEqual(pcs::to_lower(wch), ws[i]);
801+
Assert::AreEqual(wchar_t(std::tolower(wch)), pcs::CppWString::lower(wch));
800802
}
801803
}
802804

805+
TEST_METHOD(lstrip)
806+
{
807+
pcs::CppString s("abcd");
808+
Assert::AreEqual("cd", s.lstrip("baCD").c_str());
809+
Assert::AreEqual("abcd", s.lstrip("xyz").c_str());
810+
Assert::AreEqual("abcd", s.lstrip("").c_str());
811+
Assert::AreEqual("cd", "abbabaabcd"cs.lstrip("baCD").c_str());
812+
Assert::AreEqual("cdab", "abbabaabcdab"cs.lstrip("baCD").c_str());
813+
Assert::AreEqual("abcd", " abcd"cs.lstrip().c_str());
814+
Assert::AreEqual("abcd", " abcd"cs.lstrip().c_str());
815+
Assert::AreEqual("abcd", " abcd"cs.lstrip().c_str());
816+
Assert::AreEqual("a bcd", " a bcd"cs.lstrip().c_str());
817+
Assert::AreEqual("a bcd ", " a bcd "cs.lstrip().c_str());
818+
819+
pcs::CppWString ws(L"abcd");
820+
Assert::AreEqual(L"cd", ws.lstrip(L"baCD").c_str());
821+
Assert::AreEqual(L"abcd", ws.lstrip(L"xyz").c_str());
822+
Assert::AreEqual(L"abcd", ws.lstrip(L"").c_str());
823+
Assert::AreEqual(L"cd", L"abbabaabcd"cs.lstrip(L"baCD").c_str());
824+
Assert::AreEqual(L"cdab", L"abbabaabcdab"cs.lstrip(L"baCD").c_str());
825+
Assert::AreEqual(L"abcd", L" abcd"cs.lstrip().c_str());
826+
Assert::AreEqual(L"abcd", L" abcd"cs.lstrip().c_str());
827+
Assert::AreEqual(L"abcd", L" abcd"cs.lstrip().c_str());
828+
Assert::AreEqual(L"a bcd", L" a bcd"cs.lstrip().c_str());
829+
Assert::AreEqual(L"a bcd ", L" a bcd "cs.lstrip().c_str());
830+
}
803831

804832
};
805833
}

cpp-strings/cppstrings.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1119,7 +1119,7 @@ namespace pcs // i.e. "pythonic c++ strings"
11191119
inline CppStringT lstrip(const CppStringT& prefix) const noexcept
11201120
{
11211121
for (auto it = this->cbegin(); it != this->cend(); ++it)
1122-
if (std::none_of(prefix.cbegin(), prefix.cend(), [it](const value_type ch) { *it == ch; }))
1122+
if (std::none_of(prefix.cbegin(), prefix.cend(), [it](const value_type ch) { return *it == ch; }))
11231123
return CppStringT(it, this->cend());
11241124
return CppStringT();
11251125
}

0 commit comments

Comments
 (0)