Skip to content

Commit 0fc5112

Browse files
bknechtcdunn2001
authored andcommitted
Add test code for precision
Conflicts: src/test_lib_json/main.cpp
1 parent 4a984c2 commit 0fc5112

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
@@ -1656,6 +1656,43 @@ JSONTEST_FIXTURE(ValueTest, specialFloats) {
16561656
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
16571657
}
16581658

1659+
JSONTEST_FIXTURE(ValueTest, precision) {
1660+
Json::StreamWriterBuilder b;
1661+
b.settings_["precision"] = 5;
1662+
1663+
Json::Value v = 100.0/3;
1664+
std::string expected = "33.333";
1665+
std::string result = Json::writeString(b, v);
1666+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1667+
1668+
v = 0.25000000;
1669+
expected = "0.25";
1670+
result = Json::writeString(b, v);
1671+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1672+
1673+
v = 0.2563456;
1674+
expected = "0.25635";
1675+
result = Json::writeString(b, v);
1676+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1677+
1678+
b.settings_["precision"] = 1;
1679+
expected = "0.3";
1680+
result = Json::writeString(b, v);
1681+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1682+
1683+
b.settings_["precision"] = 17;
1684+
v = 1234857476305.256345694873740545068;
1685+
expected = "1234857476305.2563";
1686+
result = Json::writeString(b, v);
1687+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1688+
1689+
b.settings_["precision"] = 24;
1690+
v = 0.256345694873740545068;
1691+
expected = "0.25634569487374054";
1692+
result = Json::writeString(b, v);
1693+
JSONTEST_ASSERT_STRING_EQUAL(expected, result);
1694+
}
1695+
16591696
struct StreamWriterTest : JsonTest::TestCase {};
16601697

16611698
JSONTEST_FIXTURE(StreamWriterTest, dropNullPlaceholders) {
@@ -2391,6 +2428,7 @@ int main(int argc, const char* argv[]) {
23912428
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, zeroes);
23922429
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, zeroesInKeys);
23932430
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, specialFloats);
2431+
JSONTEST_REGISTER_FIXTURE(runner, ValueTest, precision);
23942432

23952433
JSONTEST_REGISTER_FIXTURE(runner, StreamWriterTest, dropNullPlaceholders);
23962434
JSONTEST_REGISTER_FIXTURE(runner, StreamWriterTest, writeZeroes);

0 commit comments

Comments
 (0)