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����������������������������...ダウンロード