[Groonga-commit] groonga/grnxx at 2837732 [new_data_types] Update tests for Float.

Back to archive index

susumu.yata null+****@clear*****
Wed Nov 19 13:23:18 JST 2014


susumu.yata	2014-11-19 13:23:18 +0900 (Wed, 19 Nov 2014)

  New Revision: 28377328bded02e1a5b06bf5f919aca3caca6ea0
  https://github.com/groonga/grnxx/commit/28377328bded02e1a5b06bf5f919aca3caca6ea0

  Message:
    Update tests for Float.

  Modified files:
    test/test_data_types.cpp

  Modified: test/test_data_types.cpp (+58 -15)
===================================================================
--- test/test_data_types.cpp    2014-11-19 13:14:43 +0900 (4d1f8a8)
+++ test/test_data_types.cpp    2014-11-19 13:23:18 +0900 (6266cc8)
@@ -503,13 +503,14 @@ void test_float() {
   assert(grnxx::Float::na().type() == grnxx::FLOAT_DATA);
 
   assert(grnxx::Float(0.0).value() == 0.0);
-  assert(grnxx::Float::min().value() == grnxx::Float::min_value());
-  assert(grnxx::Float::max().value() == grnxx::Float::max_value());
+  assert(grnxx::Float::min().is_min());
+  assert(grnxx::Float::max().is_max());
   assert(grnxx::Float::normal_min().value() ==
          grnxx::Float::normal_min_value());
   assert(grnxx::Float::subnormal_min().value() ==
          grnxx::Float::subnormal_min_value());
-  assert(grnxx::Float::infinity().value() == grnxx::Float::infinity_value());
+  assert(grnxx::Float::infinity().value() ==
+         grnxx::Float::infinity_value());
   assert(std::isnan(grnxx::Float::na().value()));
 
   assert(!grnxx::Float(0.0).is_min());
@@ -544,38 +545,43 @@ void test_float() {
 
   assert((+grnxx::Float(0.0)).value() == 0.0);
   assert((+grnxx::Float(1.0)).value() == 1.0);
-  assert((+grnxx::Float::min()).value() == grnxx::Float::min_value());
-  assert((+grnxx::Float::max()).value() == grnxx::Float::max_value());
+  assert((+grnxx::Float::min()).is_min());
+  assert((+grnxx::Float::max()).is_max());
   assert((+grnxx::Float::infinity()).value() ==
          grnxx::Float::infinity_value());
   assert((+grnxx::Float::na()).is_na());
 
   assert((-grnxx::Float(0.0)).value() == 0.0);
   assert((-grnxx::Float(1.0)).value() == -1.0);
-  assert((-grnxx::Float::min()).value() == grnxx::Float::max_value());
-  assert((-grnxx::Float::max()).value() == grnxx::Float::min_value());
+  assert((-grnxx::Float::min()).is_max());
+  assert((-grnxx::Float::max()).is_min());
   assert((-grnxx::Float::infinity()).value() ==
          -grnxx::Float::infinity_value());
   assert((-grnxx::Float::na()).is_na());
 
   assert((grnxx::Float(1.0) + grnxx::Float(1.0)).value() == 2.0);
-  assert((grnxx::Float::max() + grnxx::Float::max()).is_infinite());
-  assert((grnxx::Float::infinity() + grnxx::Float::min()).is_infinite());
+  assert((grnxx::Float::max() + grnxx::Float::max()).value() ==
+         grnxx::Float::infinity_value());
+  assert((grnxx::Float::infinity() + grnxx::Float::min()).value() ==
+         grnxx::Float::infinity_value());
   assert((grnxx::Float::infinity() + -grnxx::Float::infinity()).is_na());
   assert((grnxx::Float(1.0) + grnxx::Float::na()).is_na());
   assert((grnxx::Float::na() + grnxx::Float(1.0)).is_na());
   assert((grnxx::Float::na() + grnxx::Float::na()).is_na());
 
   assert((grnxx::Float(1.0) - grnxx::Float(1.0)).value() == 0.0);
-  assert((grnxx::Float::max() - -grnxx::Float::max()).is_infinite());
-  assert((grnxx::Float::infinity() - grnxx::Float::max()).is_infinite());
+  assert((grnxx::Float::max() - -grnxx::Float::max()).value() ==
+         grnxx::Float::infinity_value());
+  assert((grnxx::Float::infinity() - grnxx::Float::max()).value() ==
+         grnxx::Float::infinity_value());
   assert((grnxx::Float::infinity() - grnxx::Float::infinity()).is_na());
   assert((grnxx::Float(1.0) - grnxx::Float::na()).is_na());
   assert((grnxx::Float::na() - grnxx::Float(1.0)).is_na());
   assert((grnxx::Float::na() - grnxx::Float::na()).is_na());
 
   assert((grnxx::Float(2.0) * grnxx::Float(0.5)).value() == 1.0);
-  assert((grnxx::Float::max() * grnxx::Float::max()).is_infinite());
+  assert((grnxx::Float::max() * grnxx::Float::max()).value() ==
+         grnxx::Float::infinity_value());
   assert((grnxx::Float::infinity() * grnxx::Float::subnormal_min()).value()
          == grnxx::Float::infinity_value());
   assert((grnxx::Float::infinity() * grnxx::Float(0.0)).is_na());
@@ -614,10 +620,13 @@ void test_float() {
   assert(object.is_na());
 
   assert((grnxx::Float(1.0) / grnxx::Float(2.0)).value() == 0.5);
-  assert((grnxx::Float(1.0) / grnxx::Float(0.0)).is_infinite());
+  assert((grnxx::Float(1.0) / grnxx::Float(0.0)).value() ==
+         grnxx::Float::infinity_value());
   assert((grnxx::Float(1.0) / grnxx::Float::infinity()).value() == 0.0);
-  assert((grnxx::Float::max() / grnxx::Float::subnormal_min()).is_infinite());
-  assert((grnxx::Float::infinity() / grnxx::Float::max()).is_infinite());
+  assert((grnxx::Float::max() / grnxx::Float::subnormal_min()).value() ==
+         grnxx::Float::infinity_value());
+  assert((grnxx::Float::infinity() / grnxx::Float::max()).value() ==
+         grnxx::Float::infinity_value());
   assert((grnxx::Float::infinity() / grnxx::Float::infinity()).is_na());
   assert((grnxx::Float(0.0) / grnxx::Float(0.0)).is_na());
   assert((grnxx::Float(1.0) / grnxx::Float::na()).is_na());
@@ -759,6 +768,40 @@ void test_float() {
   assert((grnxx::Float::na() >= grnxx::Float::infinity()).is_na());
   assert((grnxx::Float::na() >= grnxx::Float::na()).is_na());
 
+  assert(grnxx::Float::min().match(grnxx::Float::min()));
+  assert(!grnxx::Float::min().match(grnxx::Float::max()));
+  assert(!grnxx::Float::min().match(grnxx::Float::infinity()));
+  assert(!grnxx::Float::min().match(grnxx::Float::na()));
+  assert(!grnxx::Float::max().match(grnxx::Float::min()));
+  assert(grnxx::Float::max().match(grnxx::Float::max()));
+  assert(!grnxx::Float::max().match(grnxx::Float::infinity()));
+  assert(!grnxx::Float::max().match(grnxx::Float::na()));
+  assert(!grnxx::Float::infinity().match(grnxx::Float::min()));
+  assert(!grnxx::Float::infinity().match(grnxx::Float::max()));
+  assert(grnxx::Float::infinity().match(grnxx::Float::infinity()));
+  assert(!grnxx::Float::infinity().match(grnxx::Float::na()));
+  assert(!grnxx::Float::na().match(grnxx::Float::min()));
+  assert(!grnxx::Float::na().match(grnxx::Float::max()));
+  assert(!grnxx::Float::na().match(grnxx::Float::infinity()));
+  assert(grnxx::Float::na().match(grnxx::Float::na()));
+
+  assert(!grnxx::Float::min().unmatch(grnxx::Float::min()));
+  assert(grnxx::Float::min().unmatch(grnxx::Float::max()));
+  assert(grnxx::Float::min().unmatch(grnxx::Float::infinity()));
+  assert(grnxx::Float::min().unmatch(grnxx::Float::na()));
+  assert(grnxx::Float::max().unmatch(grnxx::Float::min()));
+  assert(!grnxx::Float::max().unmatch(grnxx::Float::max()));
+  assert(grnxx::Float::max().unmatch(grnxx::Float::infinity()));
+  assert(grnxx::Float::max().unmatch(grnxx::Float::na()));
+  assert(grnxx::Float::infinity().unmatch(grnxx::Float::min()));
+  assert(grnxx::Float::infinity().unmatch(grnxx::Float::max()));
+  assert(!grnxx::Float::infinity().unmatch(grnxx::Float::infinity()));
+  assert(grnxx::Float::infinity().unmatch(grnxx::Float::na()));
+  assert(grnxx::Float::na().unmatch(grnxx::Float::min()));
+  assert(grnxx::Float::na().unmatch(grnxx::Float::max()));
+  assert(grnxx::Float::na().unmatch(grnxx::Float::infinity()));
+  assert(!grnxx::Float::na().unmatch(grnxx::Float::na()));
+
   assert((grnxx::Float(0.0).next_toward(grnxx::Float::max())).value() ==
          grnxx::Float::subnormal_min_value());
   assert((grnxx::Float(0.0).next_toward(-grnxx::Float::max())).value() ==
-------------- next part --------------
HTML����������������������������...
下載 



More information about the Groonga-commit mailing list
Back to archive index