based

Opinionated utility library
git clone git://git.dimitrijedobrota.com/based.git
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING

literal_test.cpp (870B)


0 #include "based/string/literal.hpp"
2 #include <catch2/catch_test_macros.hpp>
4 TEST_CASE("empty", "[string/literal]")
5 {
6 const based::StringLiteral sltr = "";
8 REQUIRE(sltr.size() == 0);
9 REQUIRE(std::memcmp(sltr.data(), "", sltr.size()) == 0);
10 }
12 TEST_CASE("nonempty", "[string/literal]")
13 {
14 const based::StringLiteral sltr = "nonempty";
16 REQUIRE(sltr.size() == 8);
17 REQUIRE(std::memcmp(sltr.data(), "nonempty", sltr.size()) == 0);
18 }
20 TEST_CASE("template", "[string/literal]")
21 {
22 const auto data = []<based::StringLiteral l>()
23 {
24 return l.data();
25 };
27 const auto size = []<based::StringLiteral l>()
28 {
29 return l.size();
30 };
32 REQUIRE(size.operator()<"">() == 0);
33 REQUIRE(size.operator()<"nonempty">() == 8);
35 REQUIRE(std::memcmp(data.operator()<"">(), "", 0) == 0);
36 REQUIRE(std::memcmp(data.operator()<"nonempty">(), "nonempty", 8) == 0);
37 }