mirror of
https://github.com/greg7mdp/parallel-hashmap.git
synced 2026-08-29 16:40:39 +08:00
added tests
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
#include <vector>
|
||||
|
||||
#include "gmock/gmock.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#include "parallel_hashmap/phmap.h"
|
||||
|
||||
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;
|
||||
using ::phmap::OutputArchiveWrapper;
|
||||
using ::phmap::InputArchiveWrapper;
|
||||
|
||||
TEST(DumpLoad, FlatHashSet_string) {
|
||||
flat_hash_set<std::string> st1;
|
||||
BinaryOutputArchive ar_out("./dump.data");
|
||||
|
||||
st1.insert("hello");
|
||||
st1.insert("world");
|
||||
|
||||
EXPECT_TRUE(st1.dump(ar_out));
|
||||
flat_hash_set<std::string> st2;
|
||||
BinaryInputArchive ar_in("./dump.data");
|
||||
|
||||
EXPECT_TRUE(st2.load(ar_in));
|
||||
|
||||
EXPECT_EQ(2, st2.size());
|
||||
EXPECT_TRUE(st2.count("hello"));
|
||||
EXPECT_TRUE(st2.count("world"));
|
||||
}
|
||||
|
||||
TEST(DumpLoad, FlatHashMap_string_uint32) {
|
||||
flat_hash_map<std::string, uint32_t> mp1;
|
||||
BinaryOutputArchive ar_out("./dump.data");
|
||||
|
||||
mp1["key-1"] = 99;
|
||||
mp1["key-2"] = 299;
|
||||
|
||||
EXPECT_TRUE(mp1.dump(ar_out));
|
||||
flat_hash_map<std::string, uint32_t> mp2;
|
||||
BinaryInputArchive ar_in("./dump.data");
|
||||
|
||||
EXPECT_TRUE(mp2.load(ar_in));
|
||||
|
||||
EXPECT_EQ(2, mp2.size());
|
||||
|
||||
EXPECT_TRUE(mp2.count("key-1"));
|
||||
EXPECT_TRUE(mp2.count("key-2"));
|
||||
EXPECT_EQ(99, mp2.at("key-1"));
|
||||
EXPECT_EQ(299, mp2.at("key-2"));
|
||||
}
|
||||
|
||||
TEST(DumpLoad, FlatHashMap_uint64_uint32) {
|
||||
flat_hash_map<uint64_t, uint32_t> mp1;
|
||||
BinaryOutputArchive ar_out("./dump.data");
|
||||
|
||||
mp1[78731] = 99;
|
||||
mp1[13141] = 299;
|
||||
mp1[2651] = 101;
|
||||
|
||||
EXPECT_TRUE(mp1.dump(ar_out));
|
||||
flat_hash_map<uint64_t, uint32_t> mp2;
|
||||
BinaryInputArchive ar_in("./dump.data");
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
TEST(DumpLoad, ParallelFlatHashMap_uint64_uint32) {
|
||||
parallel_flat_hash_map<uint64_t, uint32_t> mp1;
|
||||
OutputArchiveWrapper<BinaryOutputArchive> w_out("./");
|
||||
|
||||
mp1[100] = 99;
|
||||
mp1[300] = 299;
|
||||
mp1[101] = 992;
|
||||
mp1[1300] = 2991;
|
||||
mp1[1130] = 299;
|
||||
mp1[2130] = 1299;
|
||||
|
||||
EXPECT_TRUE(mp1.dump(w_out));
|
||||
parallel_flat_hash_map<uint64_t, uint32_t> mp2;
|
||||
InputArchiveWrapper<BinaryInputArchive> w_in("./");
|
||||
|
||||
EXPECT_TRUE(mp2.load(w_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]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user