| 1189 | */ |
| 1190 | template <typename string_type> |
| 1191 | void 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 | |
| 1241 | inline void expect_equality(char const *a, char const *b, std::size_t size) { |
| 1242 | if (std::memcmp(a, b, size) == 0) return; |
nothing calls this directly
no test coverage detected
searching dependent graphs…