|
|
@@ -103,6 +103,32 @@ TEST_CASE("parseFloat<float>()") {
|
|
|
check<float>("false", 0.0f);
|
|
|
check<float>("true", 1.0f);
|
|
|
}
|
|
|
+
|
|
|
+ SECTION("Overflow exponent with decimal part") { // Issue #2220
|
|
|
+ checkNaN<float>(
|
|
|
+ "0.000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000001");
|
|
|
+ }
|
|
|
+
|
|
|
+ SECTION("Overflow exponent with integral part") {
|
|
|
+ checkNaN<float>(
|
|
|
+ "10000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
TEST_CASE("parseFloat<double>()") {
|
|
|
@@ -174,4 +200,34 @@ TEST_CASE("parseFloat<double>()") {
|
|
|
check<double>("false", 0.0);
|
|
|
check<double>("true", 1.0);
|
|
|
}
|
|
|
+
|
|
|
+ SECTION("Overflow exponent with decimal part") { // Issue #2220
|
|
|
+ checkNaN<double>(
|
|
|
+ "0.000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000001");
|
|
|
+ }
|
|
|
+
|
|
|
+ SECTION("Overflow exponent with integral part") {
|
|
|
+ checkNaN<double>(
|
|
|
+ "10000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000"
|
|
|
+ "00000000000000000000000000000000000000000000000000");
|
|
|
+ }
|
|
|
}
|