Skip to content

Commit 73154fb

Browse files
author
Billy Donahue
committed
expanded Infinity test
1 parent 63c7472 commit 73154fb

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
@@ -2301,6 +2301,44 @@ JSONTEST_FIXTURE(CharReaderAllowSpecialFloatsTest, issue209) {
23012301
JSONTEST_ASSERT_EQUAL(std::numeric_limits<double>::infinity(), root.get("b", 0.0));
23022302
JSONTEST_ASSERT_EQUAL(-std::numeric_limits<double>::infinity(), root.get("c", 0.0));
23032303
}
2304+
2305+
struct TestData {
2306+
int line;
2307+
bool ok_expected;
2308+
std::string in;
2309+
std::string out;
2310+
};
2311+
const TestData test_data[] = {
2312+
{ __LINE__, 1, "9"},
2313+
{ __LINE__, 0, "0Infinity"},
2314+
{ __LINE__, 0, "1Infinity"},
2315+
{ __LINE__, 0, "9Infinity"},
2316+
2317+
{ __LINE__, 0, "0nfinity"},
2318+
{ __LINE__, 0, "1nfinity"},
2319+
{ __LINE__, 0, "9nfinity"},
2320+
2321+
{ __LINE__, 0, "nfinity"},
2322+
{ __LINE__, 0, ".nfinity"},
2323+
{ __LINE__, 0, "9nfinity"},
2324+
{ __LINE__, 0, "-nfinity"},
2325+
{ __LINE__, 1, "Infinity"},
2326+
{ __LINE__, 0, ".Infinity"},
2327+
{ __LINE__, 0, "_Infinity"},
2328+
{ __LINE__, 0, "_nfinity"},
2329+
{ __LINE__, 1, "-Infinity"},
2330+
};
2331+
for (size_t tdi = 0; tdi < sizeof(test_data) / sizeof(*test_data); ++tdi) {
2332+
const TestData& td = test_data[tdi];
2333+
std::string s = std::string("{\"a\":") + td.in + std::string("}");
2334+
bool ok = reader->parse(&*s.begin(),
2335+
&*s.begin() + s.size(),
2336+
&root, &errs);
2337+
JSONTEST_ASSERT_EQUAL(td.ok_expected, ok)
2338+
<< " s:{" << s << "}, "
2339+
<< "line:" << td.line << "\n";
2340+
}
2341+
23042342
{
23052343
char const doc[] = "{\"posInf\": Infinity, \"NegInf\": -Infinity}";
23062344
bool ok = reader->parse(

0 commit comments

Comments
 (0)