@@ -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