Browse Source

[2992] Added integer conversion tests (LONG_MAX, -LONG_MAX, LONG_MIN)
Added floating underflow test

Kazunori Fujiwara 12 years ago
parent
commit
a786fa02df
1 changed files with 18 additions and 0 deletions
  1. 18 0
      src/lib/cc/tests/data_unittests.cc

+ 18 - 0
src/lib/cc/tests/data_unittests.cc

@@ -146,6 +146,22 @@ TEST(Element, from_and_to_json) {
     EXPECT_EQ("100", Element::fromJSON("1e2")->str());
     EXPECT_EQ("100", Element::fromJSON("+1e2")->str());
     EXPECT_EQ("-100", Element::fromJSON("-1e2")->str());
+
+    // LONG_MAX, -LONG_MAX, LONG_MIN test
+    std::ostringstream longmax, minus_longmax, longmin;
+    longmax << LONG_MAX;
+    minus_longmax << -LONG_MAX;
+    longmin << LONG_MIN;
+    EXPECT_NO_THROW( {
+       EXPECT_EQ(longmax.str(), Element::fromJSON(longmax.str())->str());
+    });
+    EXPECT_NO_THROW( {
+       EXPECT_EQ(minus_longmax.str(), Element::fromJSON(minus_longmax.str())->str());
+    });
+    EXPECT_NO_THROW( {
+       EXPECT_EQ(longmin.str(), Element::fromJSON(longmin.str())->str());
+    });
+
     EXPECT_EQ("0.01", Element::fromJSON("1e-2")->str());
     EXPECT_EQ("0.01", Element::fromJSON(".01")->str());
     EXPECT_EQ("-0.01", Element::fromJSON("-1e-2")->str());
@@ -173,6 +189,8 @@ TEST(Element, from_and_to_json) {
     EXPECT_THROW(Element::fromJSON("-1.1e12345678901234567890")->str(), JSONError);
     EXPECT_THROW(Element::fromJSON("1e12345678901234567890")->str(), JSONError);
     EXPECT_THROW(Element::fromJSON("1e50000")->str(), JSONError);
+    // number underflow
+    EXPECT_THROW(Element::fromJSON("1.1e-12345678901234567890")->str(), JSONError);
 
 }