| 68 | } |
| 69 | |
| 70 | void test_trim() |
| 71 | { |
| 72 | std::string s; |
| 73 | std::string_view sv; |
| 74 | |
| 75 | // ltrim |
| 76 | ds::ltrim(s = " foo"); CHECK(s == "foo"); |
| 77 | ds::ltrim(s = " \f\n\r\t\vfoo"); CHECK(s == "foo"); |
| 78 | |
| 79 | ds::ltrim(sv = " foo"); CHECK(sv == "foo"); |
| 80 | ds::ltrim(sv = " \f\n\r\t\vfoo"); CHECK(sv == "foo"); |
| 81 | |
| 82 | // rtrim |
| 83 | ds::rtrim(s = "foo "); CHECK(s == "foo"); |
| 84 | ds::rtrim(s = "foo \f\n\r\t\v"); CHECK(s == "foo"); |
| 85 | |
| 86 | ds::rtrim(sv = "foo "); CHECK(sv == "foo"); |
| 87 | ds::rtrim(sv = "foo \f\n\r\t\v"); CHECK(sv == "foo"); |
| 88 | |
| 89 | // trim |
| 90 | ds::trim(s = "foo"); CHECK(s == "foo"); |
| 91 | ds::trim(s = " \f\n\r\t\vfoo \f\n\r\t\v"); CHECK(s == "foo"); |
| 92 | |
| 93 | ds::trim(sv = "foo"); CHECK(sv == "foo"); |
| 94 | ds::trim(sv = " \f\n\r\t\vfoo \f\n\r\t\v"); CHECK(sv == "foo"); |
| 95 | |
| 96 | ds::trim(s = "\"hello\" \"world\"", '"'); CHECK(s == "hello\" \"world"); |
| 97 | ds::trim(sv = "\"hello\" \"world\"", '"'); CHECK(sv == "hello\" \"world"); |
| 98 | |
| 99 | ds::trim(s = " \t \n "); CHECK(s.empty()); |
| 100 | ds::trim(sv = " \t \n "); CHECK(sv.empty()); |
| 101 | } |
| 102 | |
| 103 | void test_tolower() |
| 104 | { |