From 219785639595d5f0276df1b9e21d14956233c3da Mon Sep 17 00:00:00 2001 From: Alex Astashyn Date: Sun, 4 Dec 2016 01:38:23 -0500 Subject: [PATCH] Fixed suffixing .0 and modified the unit tests accordingly --- src/json.hpp | 5 +++-- src/json.hpp.re2c | 5 +++-- test/src/unit-regression.cpp | 6 +++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index a4f28e03f..a886c4369 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -6520,8 +6520,9 @@ class basic_json const bool value_is_int_like = std::find_if(m_buf.begin(), data_end, [](const char c) - { return (c >= '0' and c <= '9') - or c == '-'; }) + { return c == '.' + or c == 'e' + or c == 'E'; }) == data_end; assert(data_end + 2 < m_buf.end()); diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index b9716c9e3..dd7af5dde 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -6520,8 +6520,9 @@ class basic_json const bool value_is_int_like = std::find_if(m_buf.begin(), data_end, [](const char c) - { return (c >= '0' and c <= '9') - or c == '-'; }) + { return c == '.' + or c == 'e' + or c == 'E'; }) == data_end; assert(data_end + 2 < m_buf.end()); diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp index e04513caf..ada1e1042 100644 --- a/test/src/unit-regression.cpp +++ b/test/src/unit-regression.cpp @@ -394,9 +394,9 @@ TEST_CASE("regression tests") //issue #230 //CHECK(j2b.dump() == "23.42"); - CHECK(j3a.dump() == "10000"); - CHECK(j3b.dump() == "10000"); - CHECK(j3c.dump() == "10000"); + CHECK(j3a.dump() == "10000.0"); + CHECK(j3b.dump() == "10000.0"); + CHECK(j3c.dump() == "10000.0"); //CHECK(j3b.dump() == "1E04"); // roundtrip error //CHECK(j3c.dump() == "1e04"); // roundtrip error }