Serenity Operating System
at hosted 121 lines 3.3 kB view raw
1#include <AK/StringUtils.h> 2#include <AK/TestSuite.h> 3 4TEST_CASE(matches_null) 5{ 6 EXPECT(AK::StringUtils::matches(StringView(), StringView())); 7 8 EXPECT(!AK::StringUtils::matches(StringView(), "")); 9 EXPECT(!AK::StringUtils::matches(StringView(), "*")); 10 EXPECT(!AK::StringUtils::matches(StringView(), "?")); 11 EXPECT(!AK::StringUtils::matches(StringView(), "a")); 12 13 EXPECT(!AK::StringUtils::matches("", StringView())); 14 EXPECT(!AK::StringUtils::matches("a", StringView())); 15} 16 17TEST_CASE(matches_empty) 18{ 19 EXPECT(AK::StringUtils::matches("", "")); 20 21 EXPECT(AK::StringUtils::matches("", "*")); 22 EXPECT(!AK::StringUtils::matches("", "?")); 23 EXPECT(!AK::StringUtils::matches("", "a")); 24 25 EXPECT(!AK::StringUtils::matches("a", "")); 26} 27 28TEST_CASE(matches_case_sensitive) 29{ 30 EXPECT(AK::StringUtils::matches("a", "a", CaseSensitivity::CaseSensitive)); 31 EXPECT(!AK::StringUtils::matches("a", "A", CaseSensitivity::CaseSensitive)); 32 EXPECT(!AK::StringUtils::matches("A", "a", CaseSensitivity::CaseSensitive)); 33} 34 35TEST_CASE(matches_case_insensitive) 36{ 37 EXPECT(!AK::StringUtils::matches("aa", "a")); 38 EXPECT(AK::StringUtils::matches("aa", "*")); 39 EXPECT(!AK::StringUtils::matches("cb", "?a")); 40 EXPECT(AK::StringUtils::matches("adceb", "a*b")); 41 EXPECT(!AK::StringUtils::matches("acdcb", "a*c?b")); 42} 43 44TEST_CASE(convert_to_int) 45{ 46 bool ok = false; 47 AK::StringUtils::convert_to_int(StringView(), ok); 48 EXPECT(!ok); 49 50 AK::StringUtils::convert_to_int("", ok); 51 EXPECT(!ok); 52 53 AK::StringUtils::convert_to_int("a", ok); 54 EXPECT(!ok); 55 56 AK::StringUtils::convert_to_int("+", ok); 57 EXPECT(!ok); 58 59 AK::StringUtils::convert_to_int("-", ok); 60 EXPECT(!ok); 61 62 int actual = AK::StringUtils::convert_to_int("0", ok); 63 EXPECT(ok && actual == 0); 64 65 actual = AK::StringUtils::convert_to_int("1", ok); 66 EXPECT(ok && actual == 1); 67 68 actual = AK::StringUtils::convert_to_int("+1", ok); 69 EXPECT(ok && actual == 1); 70 71 actual = AK::StringUtils::convert_to_int("-1", ok); 72 EXPECT(ok && actual == -1); 73 74 actual = AK::StringUtils::convert_to_int("01", ok); 75 EXPECT(ok && actual == 1); 76 77 actual = AK::StringUtils::convert_to_int("12345", ok); 78 EXPECT(ok && actual == 12345); 79 80 actual = AK::StringUtils::convert_to_int("-12345", ok); 81 EXPECT(ok && actual == -12345); 82} 83 84TEST_CASE(convert_to_uint) 85{ 86 bool ok = false; 87 AK::StringUtils::convert_to_uint(StringView(), ok); 88 EXPECT(!ok); 89 90 AK::StringUtils::convert_to_uint("", ok); 91 EXPECT(!ok); 92 93 AK::StringUtils::convert_to_uint("a", ok); 94 EXPECT(!ok); 95 96 AK::StringUtils::convert_to_uint("+", ok); 97 EXPECT(!ok); 98 99 AK::StringUtils::convert_to_uint("-", ok); 100 EXPECT(!ok); 101 102 AK::StringUtils::convert_to_uint("+1", ok); 103 EXPECT(!ok); 104 105 AK::StringUtils::convert_to_uint("-1", ok); 106 EXPECT(!ok); 107 108 uint actual = AK::StringUtils::convert_to_uint("0", ok); 109 EXPECT(ok && actual == 0u); 110 111 actual = AK::StringUtils::convert_to_uint("1", ok); 112 EXPECT(ok && actual == 1u); 113 114 actual = AK::StringUtils::convert_to_uint("01", ok); 115 EXPECT(ok && actual == 1u); 116 117 actual = AK::StringUtils::convert_to_uint("12345", ok); 118 EXPECT(ok && actual == 12345u); 119} 120 121TEST_MAIN(StringUtils)