some unicode magic
This commit is contained in:
parent
3e885c8328
commit
f1f72403cd
3 changed files with 96 additions and 21 deletions
|
@ -5645,6 +5645,9 @@ TEST_CASE("parser class")
|
|||
CHECK(json::parser("\"\\u2000\"").parse().get<json::string_t>() == " ");
|
||||
CHECK(json::parser("\"\\uFFFF\"").parse().get<json::string_t>() == "");
|
||||
CHECK(json::parser("\"\\u20AC\"").parse().get<json::string_t>() == "€");
|
||||
|
||||
CHECK(json::parse("\"\\ud80c\\udc60\"").get<json::string_t>() == u8"\U00013060");
|
||||
CHECK(json::parse("\"\\ud83c\\udf1e\"").get<json::string_t>() == "🌞");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5893,10 +5896,12 @@ TEST_CASE("parser class")
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// missing part of a surrogate pair
|
||||
CHECK_THROWS_AS(json::parse("\"\\uD80C\""), std::invalid_argument);
|
||||
// invalid surrogate pair
|
||||
CHECK_THROWS_AS(json::parse("\"\\uD80C\\uD80C\""), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parse("\"\\uD80C\\u0000\""), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parse("\"\\uD80C\\uFFFF\""), std::invalid_argument);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE()
|
||||
{
|
||||
CHECK(json::parser("\"\\u0049\\u004e\"").parse().get<json::string_t>() == "IN");
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue