susumu.yata
null+****@clear*****
Wed Apr 17 16:55:07 JST 2013
susumu.yata 2013-04-17 16:55:07 +0900 (Wed, 17 Apr 2013) New Revision: 884ac6e576708bb5ff2f00bb66d5b7062243d152 https://github.com/groonga/grnxx/commit/884ac6e576708bb5ff2f00bb66d5b7062243d152 Message: Add tests for grnxx::alpha::map::DoubleArray. Modified files: test/test_alpha_map.cpp Modified: test/test_alpha_map.cpp (+53 -3) =================================================================== --- test/test_alpha_map.cpp 2013-04-17 16:54:43 +0900 (a822f4e) +++ test/test_alpha_map.cpp 2013-04-17 16:55:07 +0900 (c6f3cb0) @@ -414,7 +414,7 @@ void test_map_array() { } } -void test_nan() { +void test_map_array_nan() { grnxx::io::Pool pool; pool.open(grnxx::io::POOL_ANONYMOUS); @@ -576,6 +576,44 @@ void test_map_double_array() { } } +void test_map_double_array_nan() { + grnxx::io::Pool pool; + pool.open(grnxx::io::POOL_ANONYMOUS); + + std::unique_ptr<Map<double>> map; + map.reset(map->create(grnxx::alpha::MAP_DOUBLE_ARRAY, pool)); + + const double nan = std::numeric_limits<double>::quiet_NaN(); + + std::int64_t key_id; + assert(map->insert(nan, &key_id)); + assert(key_id == 0); + assert(!map->insert(nan)); + + double key; + assert(map->get(key_id, &key)); + assert(std::isnan(key)); + assert(map->find(nan, &key_id)); + assert(key_id == 0); + + assert(map->unset(key_id)); + assert(!map->unset(key_id)); + + assert(map->insert(nan)); + assert(map->remove(nan)); + assert(!map->remove(nan)); + + assert(!map->reset(nan, nan)); + assert(map->insert(nan, &key_id)); + assert(!map->reset(key_id, nan)); + assert(map->reset(key_id, 0.0)); + assert(map->reset(key_id, nan)); + + assert(!map->update(nan, nan)); + assert(map->update(nan, 0.0)); + assert(map->update(0.0, nan)); +} + int main() { grnxx::Logger::set_flags(grnxx::LOGGER_WITH_ALL | grnxx::LOGGER_ENABLE_COUT); @@ -593,9 +631,21 @@ int main() { test_map_array<grnxx::alpha::GeoPoint>(); test_map_array<grnxx::Slice>(); - test_nan(); - + test_map_array_nan(); + + test_map_double_array<int8_t>(); + test_map_double_array<std::int16_t>(); + test_map_double_array<std::int32_t>(); + test_map_double_array<std::int64_t>(); + test_map_double_array<std::uint8_t>(); + test_map_double_array<std::uint16_t>(); + test_map_double_array<std::uint32_t>(); + test_map_double_array<std::uint64_t>(); + test_map_double_array<double>(); + test_map_double_array<grnxx::alpha::GeoPoint>(); test_map_double_array<grnxx::Slice>(); + test_map_double_array_nan(); + return 0; } -------------- next part -------------- HTML����������������������������... Download