Skip to content

Commit dbd46e9

Browse files
committed
optHex option
1 parent ec01679 commit dbd46e9

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

test/main.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,19 @@ TEST(num, int)
6060
EXPECT_THROW(json.parse("-1").as_int().get_u32(), ujson::ErrBadIntRange);
6161
}
6262

63+
TEST(num, hex)
64+
{
65+
ujson::Json json;
66+
EXPECT_EQ (json.parse(" 0xab", 0, ujson::optHex).as_int().get(), 0xAB);
67+
EXPECT_EQ (json.parse(" 0XAB", 0, ujson::optHex).as_int().get(), 0xAB);
68+
EXPECT_EQ (json.parse("-0xAB", 0, ujson::optHex).as_int().get(), -0xAB);
69+
EXPECT_EQ (json.parse(" 0x0123456701234567", 0, ujson::optHex).as_int().get(), 0x0123456701234567);
70+
EXPECT_EQ (json.parse("-0x0123456701234567", 0, ujson::optHex).as_int().get(), -0x0123456701234567);
71+
EXPECT_EQ (json.parse(" 0xFFFFFFFFFFFFFFFF", 0, ujson::optHex).as_int().get(), -1);
72+
EXPECT_EQ (json.parse("-0xFFFFFFFFFFFFFFFF", 0, ujson::optHex).as_int().get(), 1);
73+
EXPECT_THROW(json.parse("0x10000000000000000", 0, ujson::optHex), ujson::ErrSyntax); // doesn't fit in 64 bit
74+
}
75+
6376
TEST(num, f64)
6477
{
6578
ujson::Json json;

ujson

0 commit comments

Comments
 (0)