MCPcopy Create free account
hub / github.com/ashvardanian/StringZilla / test_ascii_utilities

Function test_ascii_utilities

scripts/test_stringzilla.cpp:1191–1239  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1189 */
1190template <typename string_type>
1191void test_ascii_utilities() {
1192
1193 using str = string_type;
1194
1195 assert("aaa"_bs.size() == 1ull);
1196 assert("\0\0"_bs.size() == 1ull);
1197 assert("abc"_bs.size() == 3ull);
1198 assert("a\0bc"_bs.size() == 4ull);
1199
1200 assert(!"abc"_bs.contains('\0'));
1201 assert(str("bca").contains_only("abc"_bs));
1202
1203 assert(!str("").is_alpha());
1204 assert(str("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ").is_alpha());
1205 assert(!str("abc9").is_alpha());
1206
1207 assert(!str("").is_alnum());
1208 assert(str("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789").is_alnum());
1209 assert(!str("abc!").is_alnum());
1210
1211 assert(str("").is_ascii());
1212 assert(str("\x00x7F").is_ascii());
1213 assert(!str("abc123🔥").is_ascii());
1214
1215 assert(!str("").is_digit());
1216 assert(str("0123456789").is_digit());
1217 assert(!str("012a").is_digit());
1218
1219 assert(!str("").is_lower());
1220 assert(str("abcdefghijklmnopqrstuvwxyz").is_lower());
1221 assert(!str("abcA").is_lower());
1222 assert(!str("abc\n").is_lower());
1223
1224 assert(!str("").is_space());
1225 assert(str(" \t\n\r\f\v").is_space());
1226 assert(!str(" \t\r\na").is_space());
1227
1228 assert(!str("").is_upper());
1229 assert(str("ABCDEFGHIJKLMNOPQRSTUVWXYZ").is_upper());
1230 assert(!str("ABCa").is_upper());
1231
1232 assert(str("").is_printable());
1233 assert(str("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+").is_printable());
1234 assert(!str("012🔥").is_printable());
1235
1236 assert(str("").contains_only("abc"_bs));
1237 assert(str("abc").contains_only("abc"_bs));
1238 assert(!str("abcd").contains_only("abc"_bs));
1239}
1240
1241inline void expect_equality(char const *a, char const *b, std::size_t size) {
1242 if (std::memcmp(a, b, size) == 0) return;

Callers

nothing calls this directly

Calls 11

sizeMethod · 0.45
containsMethod · 0.45
contains_onlyMethod · 0.45
is_alphaMethod · 0.45
is_alnumMethod · 0.45
is_asciiMethod · 0.45
is_digitMethod · 0.45
is_lowerMethod · 0.45
is_spaceMethod · 0.45
is_upperMethod · 0.45
is_printableMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…