| 221 | } |
| 222 | |
| 223 | void test_U() |
| 224 | { |
| 225 | String8 e; |
| 226 | String8 s = "abcdABCDАБВГДабвгд"; |
| 227 | |
| 228 | EXPECT_EQ(s.Size(), 28U); |
| 229 | EXPECT_TRUE(!s.IsEmpty()); |
| 230 | EXPECT_EQ(e.Size(), 0U); |
| 231 | EXPECT_TRUE(e.IsEmpty()); |
| 232 | |
| 233 | e = s; |
| 234 | s.Clear(); |
| 235 | |
| 236 | EXPECT_EQ(s.Size(), 0U); |
| 237 | EXPECT_TRUE(s.IsEmpty()); |
| 238 | EXPECT_EQ(e.Size(), 28U); |
| 239 | EXPECT_TRUE(!e.IsEmpty()); |
| 240 | |
| 241 | EXPECT_EQ(e[1], 'b'); |
| 242 | EXPECT_EQ(e[9], '\x90'); |
| 243 | |
| 244 | s = "acdABCАВГДабвгд"; |
| 245 | s = "abcdABCDАБВГДабвгд"; |
| 246 | |
| 247 | EXPECT_EQ(s[3], 'd'); |
| 248 | EXPECT_EQ(s[11], '\x91'); |
| 249 | |
| 250 | s = '0'; |
| 251 | |
| 252 | EXPECT_EQ(s.Size(), 1U); |
| 253 | |
| 254 | String8 ss = "abcd"; |
| 255 | ss += "efgh"; |
| 256 | EXPECT_EQ(strcmp(ss.c_str(), "abcdefgh"), 0); |
| 257 | |
| 258 | String8 sum1 = "ab1" + String8("cd2"); |
| 259 | String8 sum2 = sum1 + "cd2" + "апр"; |
| 260 | |
| 261 | EXPECT_TRUE(sum2 == "ab1cd2cd2апр"); |
| 262 | EXPECT_TRUE(sum2 != "ab1cd2cd2апР"); |
| 263 | |
| 264 | sum1 = "_ab1" + String8("cd2"); |
| 265 | sum2 = sum1 + "cd2" + "апр"; |
| 266 | |
| 267 | EXPECT_TRUE(sum2 == "_ab1cd2cd2апр"); |
| 268 | EXPECT_TRUE(sum2 != "_ab1cd2cd2апР"); |
| 269 | |
| 270 | String8 mt = "0123456789"; |
| 271 | |
| 272 | EXPECT_TRUE(String8("").IsEmpty()); |
| 273 | |
| 274 | EXPECT_EQ(mt.Mid(0, 4), "0123"); |
| 275 | EXPECT_EQ(mt.Mid(6, 4), "6789"); |
| 276 | EXPECT_EQ(mt.Mid(6, 5), "6789"); |
| 277 | EXPECT_EQ(mt.Mid(10, 1), ""); |
| 278 | EXPECT_EQ(mt.Mid(0, 0), ""); |
| 279 | |
| 280 | EXPECT_EQ(mt.Left(2), "01"); |