Skip to content

Commit 9fd1ca8

Browse files
committed
Add test code for precision
1 parent 3802215 commit 9fd1ca8

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

src/test_lib_json/main.cpp

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1675,6 +1675,43 @@ JSONTEST_FIXTURE(ValueTest, specialFloats) {
16751675
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
16761676
}
16771677

1678+
JSONTEST_FIXTURE(ValueTest, precision) {
1679+
Json::StreamWriterBuilder b;
1680+
b.settings_["precision"] = 5;
1681+
1682+
Json::Value v = 100.0/3;
1683+
std::string expected = "33.333";
1684+
std::string result = Json::writeString(b, v);
1685+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1686+
1687+
v = 0.25000000;
1688+
expected = "0.25";
1689+
result = Json::writeString(b, v);
1690+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1691+
1692+
v = 0.2563456;
1693+
expected = "0.25635";
1694+
result = Json::writeString(b, v);
1695+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1696+
1697+
b.settings_["precision"] = 1;
1698+
expected = "0.3";
1699+
result = Json::writeString(b, v);
1700+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1701+
1702+
b.settings_["precision"] = 17;
1703+
v = 1234857476305.256345694873740545068;
1704+
expected = "1234857476305.2563";
1705+
result = Json::writeString(b, v);
1706+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1707+
1708+
b.settings_["precision"] = 24;
1709+
v = 0.256345694873740545068;
1710+
expected = "0.25634569487374054";
1711+
result = Json::writeString(b, v);
1712+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1713+
}
1714+
16781715
struct WriterTest : JsonTest::TestCase {};
16791716

16801717
JSONTEST_FIXTURE(WriterTest, dropNullPlaceholders) {
@@ -2489,6 +2526,7 @@ int main(int argc, const char* argv[]) {
24892526
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, zeroes);
24902527
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, zeroesInKeys);
24912528
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, specialFloats);
2529+
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, precision);
24922530

24932531
JSONTEST_REGISTER_FIXTURE(runner, WriterTest, dropNullPlaceholders);
24942532
JSONTEST_REGISTER_FIXTURE(runner, StreamWriterTest, dropNullPlaceholders);

0 commit comments

Comments
 (0)