[Groonga-commit] groonga/grnxx [master] Add tests for next_key_id(), num_keys(), and get_next().

Back to archive index

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 



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