Skip to content

Commit a48b8e6

Browse files
Fea, String函数添加IndexOf、IndexOfAny、LastIndexOf、LastIndexOfAny、GetData
1 parent 2f09024 commit a48b8e6

File tree

4 files changed

+1156
-105
lines changed

4 files changed

+1156
-105
lines changed

UnitTest/StringUnitTest.cpp

Lines changed: 114 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,119 @@ namespace UnitTest
157157
}
158158
}
159159

160-
160+
TEST_METHOD(Remove)
161+
{
162+
YY::uString _szTemp(_S("0123456789"));
163+
164+
_szTemp.Remove(0, 2);
165+
Assert::AreEqual(_szTemp.GetConstString(), _S("23456789"));
166+
167+
_szTemp.Remove(2, 2);
168+
Assert::AreEqual(_szTemp.GetConstString(), _S("236789"));
169+
170+
_szTemp.Remove(5, 2);
171+
Assert::AreEqual(_szTemp.GetConstString(), _S("23678"));
172+
173+
_szTemp.Remove(5, 2);
174+
Assert::AreEqual(_szTemp.GetConstString(), _S("23678"));
175+
176+
_szTemp.Remove(0);
177+
Assert::AreEqual(_szTemp.GetConstString(), _S(""));
178+
}
179+
180+
TEST_METHOD(Substring)
181+
{
182+
YY::uString _szTemp(_S("0123456789"));
183+
184+
Assert::AreEqual(_szTemp.Substring(0, 2).GetConstString(), _S("01"));
185+
Assert::AreEqual(_szTemp.Substring(1, 2).GetConstString(), _S("12"));
186+
Assert::AreEqual(_szTemp.Substring(8, 2).GetConstString(), _S("89"));
187+
Assert::AreEqual(_szTemp.Substring(9, 2).GetConstString(), _S("9"));
188+
Assert::AreEqual(_szTemp.Substring(10, 2).GetConstString(), _S(""));
189+
}
190+
191+
TEST_METHOD(SplitAndTakeFirst)
192+
{
193+
YY::uString _szTemp(_S("01|34|6789"));
194+
195+
size_t _uNextIndex = 0;
196+
Assert::AreEqual(_szTemp.SplitAndTakeFirst(YY::uString::char_t('|'), _uNextIndex, &_uNextIndex).GetConstString(), _S("01"));
197+
Assert::AreEqual(_uNextIndex, size_t(3));
198+
199+
Assert::AreEqual(_szTemp.SplitAndTakeFirst(YY::uString::char_t('|'), _uNextIndex, &_uNextIndex).GetConstString(), _S("34"));
200+
Assert::AreEqual(_uNextIndex, size_t(6));
201+
202+
Assert::AreEqual(_szTemp.SplitAndTakeFirst(YY::uString::char_t('|'), _uNextIndex, &_uNextIndex).GetConstString(), _S("6789"));
203+
Assert::AreEqual(_uNextIndex, size_t(10));
204+
}
161205
};
206+
207+
TEST_CLASS(StringView)
208+
{
209+
public:
210+
211+
TEST_METHOD(IndexOf)
212+
{
213+
YY::uStringView _sTest(_S("0123456789"));
214+
{
215+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('0')), size_t(0));
216+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('7')), size_t(7));
217+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('9')), size_t(9));
218+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('a')), YY::kuInvalidIndex);
219+
220+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('0'), 1), YY::kuInvalidIndex);
221+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('7'), 1), size_t(7));
222+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('9'), 1), size_t(9));
223+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('a'), 1), YY::kuInvalidIndex);
224+
225+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('0'), 1, 7), YY::kuInvalidIndex);
226+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('7'), 1, 6), YY::kuInvalidIndex);
227+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('7'), 1, 7), size_t(7));
228+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('9'), 1, 8), YY::kuInvalidIndex);
229+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('9'), 1, 9), size_t(9));
230+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('9'), 1, 10), size_t(9));
231+
Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('a'), 1), YY::kuInvalidIndex);
232+
233+
}
234+
235+
{
236+
Assert::AreEqual(_sTest.IndexOf(_S("012")), size_t(0));
237+
Assert::AreEqual(_sTest.IndexOf(_S("123")), size_t(1));
238+
Assert::AreEqual(_sTest.IndexOf(_S("789")), size_t(7));
239+
Assert::AreEqual(_sTest.IndexOf(_S("890")), YY::kuInvalidIndex);
240+
241+
242+
Assert::AreEqual(_sTest.IndexOf(_S("12"), 0, 2), YY::kuInvalidIndex);
243+
Assert::AreEqual(_sTest.IndexOf(_S("12"), 0, 3), size_t(1));
244+
Assert::AreEqual(_sTest.IndexOf(_S("12"), 1, 3), size_t(1));
245+
}
246+
}
247+
248+
TEST_METHOD(IndexOfAny)
249+
{
250+
YY::uStringView _sTest(_S("0123456789"));
251+
252+
{
253+
Assert::AreEqual(_sTest.IndexOfAny(YY::uStringView::FromStaticString(_S("0123456789"))), size_t(0));
254+
Assert::AreEqual(_sTest.IndexOfAny(YY::uStringView::FromStaticString(_S("123456789"))), size_t(1));
255+
Assert::AreEqual(_sTest.IndexOfAny(YY::uStringView::FromStaticString(_S("9"))), size_t(9));
256+
Assert::AreEqual(_sTest.IndexOfAny(YY::uStringView::FromStaticString(_S("abcd"))), YY::kuInvalidIndex);
257+
}
258+
}
259+
260+
TEST_METHOD(SplitAndTakeFirst)
261+
{
262+
YY::uStringView _szTemp(_S("01|34|6789"));
263+
264+
size_t _uNextIndex = 0;
265+
Assert::AreEqual(YY::uString(_szTemp.SplitAndTakeFirst(YY::uStringView::char_t('|'), _uNextIndex, &_uNextIndex)).GetConstString(), _S("01"));
266+
Assert::AreEqual(_uNextIndex, size_t(3));
267+
268+
Assert::AreEqual(YY::uString(_szTemp.SplitAndTakeFirst(YY::uStringView::char_t('|'), _uNextIndex, &_uNextIndex)).GetConstString(), _S("34"));
269+
Assert::AreEqual(_uNextIndex, size_t(6));
270+
271+
Assert::AreEqual(YY::uString(_szTemp.SplitAndTakeFirst(YY::uStringView::char_t('|'), _uNextIndex, &_uNextIndex)).GetConstString(), _S("6789"));
272+
Assert::AreEqual(_uNextIndex, size_t(10));
273+
}
274+
};
162275
}

0 commit comments

Comments
 (0)