From a69877005dc0346470bde00fe13350e6f05a533d Mon Sep 17 00:00:00 2001 From: ToruNiina Date: Sun, 14 Jul 2024 15:14:01 +0900 Subject: [PATCH] test: check if uppercase is parsed --- tests/test_format_integer.cpp | 34 ++++++++++++++++++++++++++++------ tests/test_parse_integer.cpp | 26 ++++++++++++++++---------- 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/tests/test_format_integer.cpp b/tests/test_format_integer.cpp index 5ea915a..a2b5b13 100644 --- a/tests/test_format_integer.cpp +++ b/tests/test_format_integer.cpp @@ -4,6 +4,7 @@ #include #include #include +#include TEST_CASE("testing decimal") { @@ -25,19 +26,40 @@ TEST_CASE("testing decimal") TEST_CASE("testing hex") { - const auto hex_fmt = [](std::size_t w, std::size_t s) { + const auto hex_fmt = [](bool u, std::size_t w, std::size_t s) { toml::integer_format_info fmt; fmt.fmt = toml::integer_format::hex; + fmt.uppercase = u; fmt.width = w; fmt.spacer = s; return fmt; }; - CHECK_EQ("0xdeadbeef", toml::format(toml::value(0xDEADBEEF, hex_fmt(8, 0)))); - CHECK_EQ("0xdead_beef", toml::format(toml::value(0xDEADBEEF, hex_fmt(8, 4)))); - CHECK_EQ("0xff", toml::format(toml::value(0xFF, hex_fmt(2, 0)))); - CHECK_EQ("0x00ff", toml::format(toml::value(0xFF, hex_fmt(4, 0)))); - CHECK_EQ("0x0000ff", toml::format(toml::value(0xFF, hex_fmt(6, 0)))); + CHECK_EQ("0xdeadbeef", toml::format(toml::value(0xDEADBEEF, hex_fmt(false, 8, 0)))); + CHECK_EQ("0xdead_beef", toml::format(toml::value(0xDEADBEEF, hex_fmt(false, 8, 4)))); + CHECK_EQ("0xff", toml::format(toml::value(0xFF, hex_fmt(false, 2, 0)))); + CHECK_EQ("0x00ff", toml::format(toml::value(0xFF, hex_fmt(false, 4, 0)))); + CHECK_EQ("0x0000ff", toml::format(toml::value(0xFF, hex_fmt(false, 6, 0)))); + + CHECK_EQ("0xDEADBEEF", toml::format(toml::value(0xDEADBEEF, hex_fmt(true, 8, 0)))); + CHECK_EQ("0xDEAD_BEEF", toml::format(toml::value(0xDEADBEEF, hex_fmt(true, 8, 4)))); + CHECK_EQ("0xFF", toml::format(toml::value(0xFF, hex_fmt(true, 2, 0)))); + CHECK_EQ("0x00FF", toml::format(toml::value(0xFF, hex_fmt(true, 4, 0)))); + CHECK_EQ("0x0000FF", toml::format(toml::value(0xFF, hex_fmt(true, 6, 0)))); + + using namespace toml::literals::toml_literals; + + CHECK_EQ("0xdeadbeef", toml::format("0xdeadbeef"_toml )); + CHECK_EQ("0xdead_beef", toml::format("0xdead_beef"_toml)); + CHECK_EQ("0xff", toml::format("0xff"_toml )); + CHECK_EQ("0x00ff", toml::format("0x00ff"_toml )); + CHECK_EQ("0x0000ff", toml::format("0x0000ff"_toml )); + + CHECK_EQ("0xDEADBEEF", toml::format("0xDEADBEEF"_toml )); + CHECK_EQ("0xDEAD_BEEF", toml::format("0xDEAD_BEEF"_toml)); + CHECK_EQ("0xFF", toml::format("0xFF"_toml )); + CHECK_EQ("0x00FF", toml::format("0x00FF"_toml )); + CHECK_EQ("0x0000FF", toml::format("0x0000FF"_toml )); } TEST_CASE("testing oct") diff --git a/tests/test_parse_integer.cpp b/tests/test_parse_integer.cpp index da510da..2dbbfdd 100644 --- a/tests/test_parse_integer.cpp +++ b/tests/test_parse_integer.cpp @@ -34,23 +34,29 @@ TEST_CASE("testing decimal_value") TEST_CASE("testing hex_value") { toml::detail::context ctx(toml::spec::v(1,0,0)); - const auto hex_fmt = [](std::size_t w, std::size_t s) { + const auto hex_fmt = [](bool u, std::size_t w, std::size_t s) { toml::integer_format_info fmt; fmt.fmt = toml::integer_format::hex; + fmt.uppercase = u; fmt.width = w; fmt.spacer = s; return fmt; }; - toml11_test_parse_success("0xDEADBEEF", 0xDEADBEEF, comments(), hex_fmt(8, 0), ctx); - toml11_test_parse_success("0xdeadbeef", 0xDEADBEEF, comments(), hex_fmt(8, 0), ctx); - toml11_test_parse_success("0xDEADbeef", 0xDEADBEEF, comments(), hex_fmt(8, 0), ctx); - toml11_test_parse_success("0xDEAD_BEEF", 0xDEADBEEF, comments(), hex_fmt(8, 4), ctx); - toml11_test_parse_success("0xdead_beef", 0xDEADBEEF, comments(), hex_fmt(8, 4), ctx); - toml11_test_parse_success("0xdead_BEEF", 0xDEADBEEF, comments(), hex_fmt(8, 4), ctx); - toml11_test_parse_success("0xFF", 0xFF, comments(), hex_fmt(2, 0), ctx); - toml11_test_parse_success("0x00FF", 0xFF, comments(), hex_fmt(4, 0), ctx); - toml11_test_parse_success("0x0000FF", 0xFF, comments(), hex_fmt(6, 0), ctx); + toml11_test_parse_success("0xDEADBEEF", 0xDEADBEEF, comments(), hex_fmt(true, 8, 0), ctx); + toml11_test_parse_success("0xdeadbeef", 0xDEADBEEF, comments(), hex_fmt(false, 8, 0), ctx); + toml11_test_parse_success("0xDEADbeef", 0xDEADBEEF, comments(), hex_fmt(true, 8, 0), ctx); + toml11_test_parse_success("0xDEAD_BEEF", 0xDEADBEEF, comments(), hex_fmt(true, 8, 4), ctx); + toml11_test_parse_success("0xdead_beef", 0xDEADBEEF, comments(), hex_fmt(false, 8, 4), ctx); + toml11_test_parse_success("0xdead_BEEF", 0xDEADBEEF, comments(), hex_fmt(true, 8, 4), ctx); + toml11_test_parse_success("0xFF", 0xFF, comments(), hex_fmt(true, 2, 0), ctx); + toml11_test_parse_success("0x00FF", 0xFF, comments(), hex_fmt(true, 4, 0), ctx); + toml11_test_parse_success("0x0000FF", 0xFF, comments(), hex_fmt(true, 6, 0), ctx); + toml11_test_parse_success("0xff", 0xFF, comments(), hex_fmt(false, 2, 0), ctx); + toml11_test_parse_success("0x00ff", 0xFF, comments(), hex_fmt(false, 4, 0), ctx); + toml11_test_parse_success("0x0000ff", 0xFF, comments(), hex_fmt(false, 6, 0), ctx); + toml11_test_parse_success("0x00", 0, comments(), hex_fmt(true, 2, 0), ctx); + toml11_test_parse_success("0x12345", 0x12345, comments(), hex_fmt(true, 5, 0), ctx); } TEST_CASE("testing oct_value")