[Groonga-commit] groonga/grnxx at 1d17e86 [new_data_types] Add a test for Bool. (#99)

Back to archive index

susumu.yata null+****@clear*****
Thu Nov 6 11:41:51 JST 2014


susumu.yata	2014-11-06 11:41:51 +0900 (Thu, 06 Nov 2014)

  New Revision: 1d17e86a7c5fdab0d2f4f6c44c79fe36144f706f
  https://github.com/groonga/grnxx/commit/1d17e86a7c5fdab0d2f4f6c44c79fe36144f706f

  Message:
    Add a test for Bool. (#99)

  Modified files:
    test/test_data_types.cpp

  Modified: test/test_data_types.cpp (+106 -0)
===================================================================
--- test/test_data_types.cpp    2014-11-06 11:24:14 +0900 (b4af4c6)
+++ test/test_data_types.cpp    2014-11-06 11:41:51 +0900 (807b7bb)
@@ -20,6 +20,112 @@
 
 #include "grnxx/data_types.hpp"
 
+void test_bool() {
+  grnxx::Bool true_object(true);
+  grnxx::Bool false_object(false);
+  grnxx::Bool na_object((grnxx::NA()));
+
+  assert(true_object.type() == grnxx::BOOL_DATA);
+  assert(false_object.type() == grnxx::BOOL_DATA);
+  assert(na_object.type() == grnxx::BOOL_DATA);
+
+  assert(true_object.value() == grnxx::Bool::true_value());
+  assert(false_object.value() == grnxx::Bool::false_value());
+  assert(na_object.value() == grnxx::Bool::na_value());
+
+  assert(true_object.is_true());
+  assert(!true_object.is_false());
+  assert(!true_object.is_na());
+
+  assert(!false_object.is_true());
+  assert(false_object.is_false());
+  assert(!false_object.is_na());
+
+  assert(!na_object.is_true());
+  assert(!na_object.is_false());
+  assert(na_object.is_na());
+
+  assert(static_cast<bool>(true_object));
+  assert(!static_cast<bool>(false_object));
+  assert(!static_cast<bool>(na_object));
+
+  assert(!true_object == false_object);
+  assert(!false_object == true_object);
+  assert((!na_object).is_na());
+
+  assert(~true_object == false_object);
+  assert(~false_object == true_object);
+  assert((~na_object).is_na());
+
+  assert((true_object & true_object) == true_object);
+  assert((true_object & false_object) == false_object);
+  assert((true_object & na_object).is_na());
+  assert((false_object & true_object) == false_object);
+  assert((false_object & false_object) == false_object);
+  assert((false_object & na_object) == false_object);
+  assert((na_object & true_object).is_na());
+  assert((na_object & false_object) == false_object);
+  assert((na_object & na_object).is_na());
+
+  assert((true_object | true_object) == true_object);
+  assert((true_object | false_object) == true_object);
+  assert((true_object | na_object) == true_object);
+  assert((false_object | true_object) == true_object);
+  assert((false_object | false_object) == false_object);
+  assert((false_object | na_object).is_na());
+  assert((na_object | true_object) == true_object);
+  assert((na_object | false_object).is_na());
+  assert((na_object | na_object).is_na());
+
+  assert((true_object ^ true_object) == false_object);
+  assert((true_object ^ false_object) == true_object);
+  assert((true_object ^ na_object).is_na());
+  assert((false_object ^ true_object) == true_object);
+  assert((false_object ^ false_object) == false_object);
+  assert((false_object ^ na_object).is_na());
+  assert((na_object ^ true_object).is_na());
+  assert((na_object ^ false_object).is_na());
+  assert((na_object ^ na_object).is_na());
+
+  assert((true_object == true_object) == true_object);
+  assert((true_object == false_object) == false_object);
+  assert((true_object == na_object).is_na());
+  assert((false_object == true_object) == false_object);
+  assert((false_object == false_object) == true_object);
+  assert((false_object == na_object).is_na());
+  assert((na_object == true_object).is_na());
+  assert((na_object == false_object).is_na());
+  assert((na_object == na_object).is_na());
+
+  assert((true_object != true_object) == false_object);
+  assert((true_object != false_object) == true_object);
+  assert((true_object != na_object).is_na());
+  assert((false_object != true_object) == true_object);
+  assert((false_object != false_object) == false_object);
+  assert((false_object != na_object).is_na());
+  assert((na_object != true_object).is_na());
+  assert((na_object != false_object).is_na());
+  assert((na_object != na_object).is_na());
+
+  assert(grnxx::Bool::na().is_na());
+}
+
+void test_int() {
+  // TODO
+}
+
+void test_float() {
+  // TODO
+}
+
+void test_geo_point() {
+  // TODO
+}
+
 int main() {
+  test_bool();
+  test_int();
+  test_float();
+  test_geo_point();
   return 0;
 }
-------------- next part --------------
HTML����������������������������...
下載 



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