#include "kblib/convert.h" #include "catch.hpp" TEST_CASE("bases") { REQUIRE(kblib::to_string<62>(0) == "0"); REQUIRE(kblib::to_string<62>(1) == "1"); REQUIRE(kblib::to_string<62>(-1) == "-1"); REQUIRE(kblib::to_string<62>(10) == "A"); REQUIRE(kblib::to_string<62>(26) == "Q"); REQUIRE(kblib::to_string<62>(35) == "Z"); REQUIRE(kblib::to_string<62>(36) == "a"); REQUIRE(kblib::to_string<62>(61) == "z"); REQUIRE(kblib::to_string<62>(62) == "10"); REQUIRE(kblib::to_string<62>(63) == "11"); REQUIRE(kblib::to_string<62>(630) == "AA"); REQUIRE(kblib::to_string<2>(65536) == "1'0000'0000'0000'0000"); using namespace kblib::literals; } using namespace std::literals; TEST_CASE("fromStr") { using namespace std::literals; const std::string str = "100"; REQUIRE(kblib::fromStr(str) == str); REQUIRE(kblib::fromStr(str) == 100); REQUIRE(kblib::fromStr("1") == true); REQUIRE(kblib::fromStr("true") == true); REQUIRE(kblib::fromStr("0") == false); REQUIRE(kblib::fromStr("false") == false); #if KBLIB_USE_STRING_VIEW const std::string_view strv = str; REQUIRE(kblib::fromStr(strv) == strv); REQUIRE(kblib::fromStr(strv) == 100); REQUIRE(kblib::fromStr("1"sv) == true); REQUIRE(kblib::fromStr("true"sv) == true); REQUIRE(kblib::fromStr("0"sv) == false); REQUIRE(kblib::fromStr("false"sv) == false); #endif }