|
11 | 11 | using namespace Microsoft::VisualStudio::CppUnitTestFramework; |
12 | 12 | using namespace YY; |
13 | 13 |
|
| 14 | +namespace Microsoft::VisualStudio::CppUnitTestFramework |
| 15 | +{ |
| 16 | + template<> |
| 17 | + inline std::wstring ToString<YY::uString>(const YY::uString& _oValue) |
| 18 | + { |
| 19 | + std::wstring _szResult; |
| 20 | + _szResult += L'{'; |
| 21 | + |
| 22 | + _szResult.append(_oValue.GetData(), _oValue.GetLength()); |
| 23 | + |
| 24 | + _szResult += L'}'; |
| 25 | + |
| 26 | + return _szResult; |
| 27 | + } |
| 28 | + |
| 29 | + template<> |
| 30 | + inline std::wstring ToString<YY::uStringView>(const YY::uStringView& _oValue) |
| 31 | + { |
| 32 | + std::wstring _szResult; |
| 33 | + _szResult += L'{'; |
| 34 | + |
| 35 | + _szResult.append(_oValue.GetData(), _oValue.GetLength()); |
| 36 | + |
| 37 | + _szResult += L'}'; |
| 38 | + |
| 39 | + return _szResult; |
| 40 | + } |
| 41 | +} |
| 42 | + |
14 | 43 | namespace UnitTest |
15 | 44 | { |
16 | 45 | TEST_CLASS(StringUnitTest) |
@@ -157,6 +186,119 @@ namespace UnitTest |
157 | 186 | } |
158 | 187 | } |
159 | 188 |
|
160 | | - |
| 189 | + TEST_METHOD(Remove) |
| 190 | + { |
| 191 | + YY::uString _szTemp(_S("0123456789")); |
| 192 | + |
| 193 | + _szTemp.Remove(0, 2); |
| 194 | + Assert::AreEqual(_szTemp, _S("23456789")); |
| 195 | + |
| 196 | + _szTemp.Remove(2, 2); |
| 197 | + Assert::AreEqual(_szTemp, _S("236789")); |
| 198 | + |
| 199 | + _szTemp.Remove(5, 2); |
| 200 | + Assert::AreEqual(_szTemp, _S("23678")); |
| 201 | + |
| 202 | + _szTemp.Remove(5, 2); |
| 203 | + Assert::AreEqual(_szTemp, _S("23678")); |
| 204 | + |
| 205 | + _szTemp.Remove(0); |
| 206 | + Assert::AreEqual(_szTemp, _S("")); |
| 207 | + } |
| 208 | + |
| 209 | + TEST_METHOD(Substring) |
| 210 | + { |
| 211 | + YY::uString _szTemp(_S("0123456789")); |
| 212 | + |
| 213 | + Assert::AreEqual(_szTemp.Substring(0, 2), _S("01")); |
| 214 | + Assert::AreEqual(_szTemp.Substring(1, 2), _S("12")); |
| 215 | + Assert::AreEqual(_szTemp.Substring(8, 2), _S("89")); |
| 216 | + Assert::AreEqual(_szTemp.Substring(9, 2), _S("9")); |
| 217 | + Assert::AreEqual(_szTemp.Substring(10, 2), _S("")); |
| 218 | + } |
| 219 | + |
| 220 | + TEST_METHOD(SplitAndTakeFirst) |
| 221 | + { |
| 222 | + YY::uString _szTemp(_S("01|34|6789")); |
| 223 | + |
| 224 | + size_t _uNextIndex = 0; |
| 225 | + Assert::AreEqual(_szTemp.SplitAndTakeFirst(YY::uString::char_t('|'), _uNextIndex, &_uNextIndex), _S("01")); |
| 226 | + Assert::AreEqual(_uNextIndex, size_t(3)); |
| 227 | + |
| 228 | + Assert::AreEqual(_szTemp.SplitAndTakeFirst(YY::uString::char_t('|'), _uNextIndex, &_uNextIndex), _S("34")); |
| 229 | + Assert::AreEqual(_uNextIndex, size_t(6)); |
| 230 | + |
| 231 | + Assert::AreEqual(_szTemp.SplitAndTakeFirst(YY::uString::char_t('|'), _uNextIndex, &_uNextIndex), _S("6789")); |
| 232 | + Assert::AreEqual(_uNextIndex, size_t(10)); |
| 233 | + } |
161 | 234 | }; |
| 235 | + |
| 236 | + TEST_CLASS(StringView) |
| 237 | + { |
| 238 | + public: |
| 239 | + |
| 240 | + TEST_METHOD(IndexOf) |
| 241 | + { |
| 242 | + YY::uStringView _sTest(_S("0123456789")); |
| 243 | + { |
| 244 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('0')), size_t(0)); |
| 245 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('7')), size_t(7)); |
| 246 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('9')), size_t(9)); |
| 247 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('a')), YY::kuInvalidIndex); |
| 248 | + |
| 249 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('0'), 1), YY::kuInvalidIndex); |
| 250 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('7'), 1), size_t(7)); |
| 251 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('9'), 1), size_t(9)); |
| 252 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('a'), 1), YY::kuInvalidIndex); |
| 253 | + |
| 254 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('0'), 1, 7), YY::kuInvalidIndex); |
| 255 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('7'), 1, 6), YY::kuInvalidIndex); |
| 256 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('7'), 1, 7), size_t(7)); |
| 257 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('9'), 1, 8), YY::kuInvalidIndex); |
| 258 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('9'), 1, 9), size_t(9)); |
| 259 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('9'), 1, 10), size_t(9)); |
| 260 | + Assert::AreEqual(_sTest.IndexOf(YY::uStringView::char_t('a'), 1), YY::kuInvalidIndex); |
| 261 | + |
| 262 | + } |
| 263 | + |
| 264 | + { |
| 265 | + Assert::AreEqual(_sTest.IndexOf(_S("012")), size_t(0)); |
| 266 | + Assert::AreEqual(_sTest.IndexOf(_S("123")), size_t(1)); |
| 267 | + Assert::AreEqual(_sTest.IndexOf(_S("789")), size_t(7)); |
| 268 | + Assert::AreEqual(_sTest.IndexOf(_S("890")), YY::kuInvalidIndex); |
| 269 | + |
| 270 | + |
| 271 | + Assert::AreEqual(_sTest.IndexOf(_S("12"), 0, 2), YY::kuInvalidIndex); |
| 272 | + Assert::AreEqual(_sTest.IndexOf(_S("12"), 0, 3), size_t(1)); |
| 273 | + Assert::AreEqual(_sTest.IndexOf(_S("12"), 1, 3), size_t(1)); |
| 274 | + } |
| 275 | + } |
| 276 | + |
| 277 | + TEST_METHOD(IndexOfAny) |
| 278 | + { |
| 279 | + YY::uStringView _sTest(_S("0123456789")); |
| 280 | + |
| 281 | + { |
| 282 | + Assert::AreEqual(_sTest.IndexOfAny(YY::uStringView::FromStaticString(_S("0123456789"))), size_t(0)); |
| 283 | + Assert::AreEqual(_sTest.IndexOfAny(YY::uStringView::FromStaticString(_S("123456789"))), size_t(1)); |
| 284 | + Assert::AreEqual(_sTest.IndexOfAny(YY::uStringView::FromStaticString(_S("9"))), size_t(9)); |
| 285 | + Assert::AreEqual(_sTest.IndexOfAny(YY::uStringView::FromStaticString(_S("abcd"))), YY::kuInvalidIndex); |
| 286 | + } |
| 287 | + } |
| 288 | + |
| 289 | + TEST_METHOD(SplitAndTakeFirst) |
| 290 | + { |
| 291 | + YY::uStringView _szTemp(_S("01|34|6789")); |
| 292 | + |
| 293 | + size_t _uNextIndex = 0; |
| 294 | + Assert::AreEqual(_szTemp.SplitAndTakeFirst(YY::uStringView::char_t('|'), _uNextIndex, &_uNextIndex), YY::uStringView::FromStaticString(_S("01"))); |
| 295 | + Assert::AreEqual(_uNextIndex, size_t(3)); |
| 296 | + |
| 297 | + Assert::AreEqual(_szTemp.SplitAndTakeFirst(YY::uStringView::char_t('|'), _uNextIndex, &_uNextIndex), YY::uStringView::FromStaticString(_S("34"))); |
| 298 | + Assert::AreEqual(_uNextIndex, size_t(6)); |
| 299 | + |
| 300 | + Assert::AreEqual(_szTemp.SplitAndTakeFirst(YY::uStringView::char_t('|'), _uNextIndex, &_uNextIndex), YY::uStringView::FromStaticString(_S("6789"))); |
| 301 | + Assert::AreEqual(_uNextIndex, size_t(10)); |
| 302 | + } |
| 303 | + }; |
162 | 304 | } |
0 commit comments