From 2ff7c0fce7246e10b98cc9e3b9b27836af52c2fc Mon Sep 17 00:00:00 2001 From: greg Date: Sun, 25 Aug 2019 10:22:44 -0400 Subject: [PATCH] cleanup example and test program. bracket load/dump calls so that file is closed. --- examples/dump_load.cc | 53 ++++++++++++------------- tests/dump_load_test.cc | 87 +++++++++++++++++------------------------ 2 files changed, 59 insertions(+), 81 deletions(-) diff --git a/examples/dump_load.cc b/examples/dump_load.cc index 81fff62..7f461db 100644 --- a/examples/dump_load.cc +++ b/examples/dump_load.cc @@ -1,50 +1,45 @@ #include -#include #include -using phmap::flat_hash_map; -using phmap::parallel_flat_hash_map; - void dump_load_uint64_uint32() { - flat_hash_map mp1; - phmap::BinaryOutputArchive ar_out("./dump.data"); - // Add a new entry - mp1[100] = 99; - mp1[300] = 299; + phmap::flat_hash_map mp1 = { {100, 99}, {300, 299} }; - // Iterate and print keys and values for (const auto& n : mp1) std::cout << n.first << "'s value is: " << n.second << "\n"; - mp1.dump(ar_out); - flat_hash_map mp2; - phmap::BinaryInputArchive ar_in("./dump.data"); - mp2.load(ar_in); - // Iterate and print keys and values g|++ + { + phmap::BinaryOutputArchive ar_out("./dump.data"); + mp1.dump(ar_out); + } + + phmap::flat_hash_map mp2; + { + phmap::BinaryInputArchive ar_in("./dump.data"); + mp2.load(ar_in); + } + for (const auto& n : mp2) std::cout << n.first << "'s value is: " << n.second << "\n"; } void dump_load_parallel_flat_hash_map() { - parallel_flat_hash_map mp1; - phmap::BinaryOutputArchive ar_out("./dump.data"); + phmap::parallel_flat_hash_map mp1 = { + {100, 99}, {300, 299}, {101, 992} }; - // Add a new entry - mp1[100] = 99; - mp1[300] = 299; - mp1[101] = 992; - mp1[1300] = 2991; - mp1[1130] = 299; - mp1[2130] = 1299; - // Iterate and print for (const auto& n : mp1) std::cout << "key: " << n.first << ", value: " << n.second << "\n"; - mp1.dump(ar_out); - parallel_flat_hash_map mp2; - phmap::BinaryInputArchive ar_in("./dump.data"); + { + phmap::BinaryOutputArchive ar_out("./dump.data"); + mp1.dump(ar_out); + } + + phmap::parallel_flat_hash_map mp2; + { + phmap::BinaryInputArchive ar_in("./dump.data"); + mp2.load(ar_in); + } - mp2.load(ar_in); for (const auto& n : mp2) std::cout << "key: " << n.first << ", value: " << n.second << "\n"; } diff --git a/tests/dump_load_test.cc b/tests/dump_load_test.cc index 4933406..579a7b6 100644 --- a/tests/dump_load_test.cc +++ b/tests/dump_load_test.cc @@ -8,72 +8,55 @@ namespace phmap { namespace container_internal { namespace { -using ::phmap::flat_hash_set; -using ::phmap::flat_hash_map; -using ::phmap::parallel_flat_hash_map; -using ::phmap::BinaryOutputArchive; -using ::phmap::BinaryInputArchive; - TEST(DumpLoad, FlatHashSet_uin32) { - flat_hash_set st1; - BinaryOutputArchive ar_out("./dump.data"); + phmap::flat_hash_set st1 = { 1991, 1202 }; - st1.insert(1991); - st1.insert(1202); + { + phmap::BinaryOutputArchive ar_out("./dump.data"); + EXPECT_TRUE(st1.dump(ar_out)); + } - EXPECT_TRUE(st1.dump(ar_out)); - flat_hash_set st2; - BinaryInputArchive ar_in("./dump.data"); - - EXPECT_TRUE(st2.load(ar_in)); - - EXPECT_EQ(2, st2.size()); - EXPECT_TRUE(st2.count(1991)); - EXPECT_TRUE(st2.count(1202)); + phmap::flat_hash_set st2; + { + phmap::BinaryInputArchive ar_in("./dump.data"); + EXPECT_TRUE(st2.load(ar_in)); + } + EXPECT_TRUE(st1 == st2); } TEST(DumpLoad, FlatHashMap_uint64_uint32) { - flat_hash_map mp1; - BinaryOutputArchive ar_out("./dump.data"); + phmap::flat_hash_map mp1 = { + { 78731, 99}, {13141, 299}, {2651, 101} }; - mp1[78731] = 99; - mp1[13141] = 299; - mp1[2651] = 101; + { + phmap::BinaryOutputArchive ar_out("./dump.data"); + EXPECT_TRUE(mp1.dump(ar_out)); + } - EXPECT_TRUE(mp1.dump(ar_out)); - flat_hash_map mp2; - BinaryInputArchive ar_in("./dump.data"); + phmap::flat_hash_map mp2; + { + phmap::BinaryInputArchive ar_in("./dump.data"); + EXPECT_TRUE(mp2.load(ar_in)); + } - EXPECT_TRUE(mp2.load(ar_in)); - - EXPECT_EQ(3, mp2.size()); - EXPECT_TRUE(mp2.count(78731)); - EXPECT_TRUE(mp2.count(13141)); - EXPECT_EQ(99, mp2.at(78731)); - EXPECT_EQ(101, mp2.at(2651)); + EXPECT_TRUE(mp1 == mp2); } TEST(DumpLoad, ParallelFlatHashMap_uint64_uint32) { - parallel_flat_hash_map mp1; - BinaryOutputArchive ar_out("./dump.data"); + phmap::parallel_flat_hash_map mp1 = { + {99, 299}, {992, 2991}, {299, 1299} }; - mp1[100] = 99; - mp1[300] = 299; - mp1[101] = 992; - mp1[1300] = 2991; - mp1[1130] = 299; - mp1[2130] = 1299; + { + phmap::BinaryOutputArchive ar_out("./dump.data"); + EXPECT_TRUE(mp1.dump(ar_out)); + } - EXPECT_TRUE(mp1.dump(ar_out)); - parallel_flat_hash_map mp2; - BinaryInputArchive ar_in("./dump.data"); - - EXPECT_TRUE(mp2.load(ar_in)); - EXPECT_EQ(6, mp2.size()); - EXPECT_EQ(99, mp2[100]); - EXPECT_EQ(299, mp2[300]); - EXPECT_EQ(299, mp2[1130]); - EXPECT_EQ(1299, mp2[2130]); + phmap::parallel_flat_hash_map mp2; + { + phmap::BinaryInputArchive ar_in("./dump.data"); + EXPECT_TRUE(mp2.load(ar_in)); + } + EXPECT_TRUE(mp1 == mp2); } }