susumu.yata
null+****@clear*****
Tue Apr 16 18:55:30 JST 2013
susumu.yata 2013-04-16 18:55:30 +0900 (Tue, 16 Apr 2013) New Revision: 93a176b8762d262d555ed1a37aaa055bb5ab21d0 https://github.com/groonga/grnxx/commit/93a176b8762d262d555ed1a37aaa055bb5ab21d0 Message: Add tests for next_key_id(), num_keys(), and get_next(). Modified files: test/test_alpha_map.cpp Modified: test/test_alpha_map.cpp (+27 -10) =================================================================== --- test/test_alpha_map.cpp 2013-04-16 18:54:34 +0900 (8606623) +++ test/test_alpha_map.cpp 2013-04-16 18:55:30 +0900 (171d27c) @@ -311,12 +311,16 @@ void test_map_array() { generate_key(&key); auto pair = hash_map.insert(std::make_pair(key, hash_map.size())); - const int64_t key_id = pair.first->second; + const std::int64_t key_id = pair.first->second; const bool is_new = pair.second; + const std::int64_t next_key_id = map->next_key_id(); std::int64_t stored_key_id; assert(map->insert(key, &stored_key_id) == is_new); assert(stored_key_id == key_id); + if (is_new) { + assert(next_key_id == key_id); + } assert(!map->insert(key, &stored_key_id)); T stored_key; @@ -325,6 +329,19 @@ void test_map_array() { assert(map->find(key, &stored_key_id)); assert(stored_key_id == key_id); + + assert(map->num_keys() == hash_map.size()); + } + + { + std::int64_t key_id = -1; + for (std::size_t i = 0; i < MAP_SIZE; ++i) { + T key; + assert(map->get_next(key_id, &key_id, &key)); + assert(key_id == static_cast<std::int64_t>(i)); + assert(key_id == hash_map[key]); + } + assert(!map->get_next(key_id)); } compare_maps(map, hash_map); @@ -452,7 +469,7 @@ void test_map_double_array() { generate_key(&key); auto pair = hash_map.insert(std::make_pair(key, hash_map.size())); - const int64_t key_id = pair.first->second; + const std::int64_t key_id = pair.first->second; const bool is_new = pair.second; std::int64_t stored_key_id; @@ -547,14 +564,14 @@ int main() { grnxx::LOGGER_ENABLE_COUT); grnxx::Logger::set_max_level(grnxx::NOTICE_LOGGER); - test_map_array<int8_t>(); - test_map_array<int16_t>(); - test_map_array<int32_t>(); - test_map_array<int64_t>(); - test_map_array<uint8_t>(); - test_map_array<uint16_t>(); - test_map_array<uint32_t>(); - test_map_array<uint64_t>(); + test_map_array<std::int8_t>(); + test_map_array<std::int16_t>(); + test_map_array<std::int32_t>(); + test_map_array<std::int64_t>(); + test_map_array<std::uint8_t>(); + test_map_array<std::uint16_t>(); + test_map_array<std::uint32_t>(); + test_map_array<std::uint64_t>(); test_map_array<double>(); test_map_array<grnxx::alpha::GeoPoint>(); test_map_array<grnxx::Slice>(); -------------- next part -------------- HTML����������������������������... Download