basedOpinionated utility library |
git clone git://git.dimitrijedobrota.com/based.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
string_literal_test.cpp (895B)
0 #include <catch2/catch_test_macros.hpp>
2 #include "based/string/literal.hpp"
4 TEST_CASE("empty", "[string/string_literal]")
5 {
6 const based::string_literal sltr = "";
8 REQUIRE(sltr.size() == 1);
9 REQUIRE(std::memcmp(sltr.data(), "", sltr.size()) == 0);
10 }
12 TEST_CASE("nonempty", "[string/string_literal]")
13 {
14 const based::string_literal sltr = "nonempty";
16 REQUIRE(sltr.size() == 9);
17 REQUIRE(std::memcmp(sltr.data(), "nonempty", sltr.size()) == 0);
18 }
20 TEST_CASE("template", "[string/string_literal]")
21 {
22 const auto data = []<based::string_literal l>()
23 {
24 return l.data();
25 };
27 const auto size = []<based::string_literal l>()
28 {
29 return l.size();
30 };
32 REQUIRE(size.operator()<"">() == 1);
33 REQUIRE(size.operator()<"nonempty">() == 9);
35 REQUIRE(std::memcmp(data.operator()<"">(), "", 1) == 0);
36 REQUIRE(std::memcmp(data.operator()<"nonempty">(), "nonempty", 9) == 0);
37 }