diff --git a/tests/test_parse_file.cpp b/tests/test_parse_file.cpp index fa03d55..27281cf 100644 --- a/tests/test_parse_file.cpp +++ b/tests/test_parse_file.cpp @@ -124,7 +124,32 @@ BOOST_AUTO_TEST_CASE(test_hard_example) expected_multi_line_array); } -// BOOST_AUTO_TEST_CASE(test_hard_example_unicode) -// { -// ; -// } +BOOST_AUTO_TEST_CASE(test_hard_example_unicode) +{ + const auto data = toml::parse("toml/tests/hard_example_unicode.toml"); + + const auto the = toml::get(data.at("the")); + BOOST_CHECK_EQUAL(toml::get(the.at("test_string")), + u8"Ýôú'ℓℓ λáƭè ₥è áƒƭèř ƭλïƨ - #"); + + const auto hard = toml::get(the.at("hard")); + const std::vector expected_the_hard_test_array{"] ", " # "}; + BOOST_CHECK(toml::get>(hard.at("test_array")) == + expected_the_hard_test_array); + const std::vector expected_the_hard_test_array2{ + u8"Tèƨƭ #11 ]ƥřôƲèδ ƭλáƭ", u8"Éжƥèřï₥èñƭ #9 ωáƨ á ƨúççèƨƨ"}; + BOOST_CHECK(toml::get>(hard.at("test_array2")) == + expected_the_hard_test_array2); + BOOST_CHECK_EQUAL(toml::get(hard.at("another_test_string")), + u8"§á₥è ƭλïñϱ, βúƭ ωïƭλ á ƨƭřïñϱ #"); + BOOST_CHECK_EQUAL(toml::get(hard.at("harder_test_string")), + u8" Âñδ ωλèñ \"'ƨ ářè ïñ ƭλè ƨƭřïñϱ, áℓôñϱ ωïƭλ # \""); + + const auto bit = toml::get(hard.at(std::string(u8"βïƭ#"))); + BOOST_CHECK_EQUAL(toml::get(bit.at(std::string(u8"ωλáƭ?"))), + u8"Ýôú δôñ'ƭ ƭλïñƙ ƨô₥è úƨèř ωôñ'ƭ δô ƭλáƭ?"); + const std::vector expected_multi_line_array{"]"}; + BOOST_CHECK(toml::get>(bit.at("multi_line_array")) == + expected_multi_line_array); + +}