File: erase_if_test.cc

package info (click to toggle)
parallel-hashmap 1.4.1%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,872 kB
  • sloc: cpp: 20,492; ansic: 1,114; python: 492; makefile: 85; haskell: 56; perl: 43; sh: 23
file content (52 lines) | stat: -rw-r--r-- 1,523 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <vector>

#include "gtest/gtest.h"

#include "parallel_hashmap/phmap.h"

namespace phmap {
namespace priv {
namespace {

TEST(EraseIf, FlatHashSet_uint32) {
    phmap::flat_hash_set<uint32_t> st1 = { 3, 6, 7, 9 };
    auto num_erased = erase_if(st1, [](const uint32_t& v) { return v >= 7; });
    EXPECT_TRUE(num_erased == 2);

    phmap::flat_hash_set<uint32_t> st2 = { 0, 2, 3, 6 };
    num_erased = erase_if(st2, [](const uint32_t& v) { return v <= 2; });
    EXPECT_TRUE(num_erased == 2);

    EXPECT_TRUE(st1 == st2);
}

TEST(EraseIf, FlatHashMap_uint64_uint32) {
    using map = phmap::flat_hash_map<uint32_t, uint32_t>;
    map st1 = { {3, 0}, {6, 0}, {7, 0}, {9, 0} };
    auto num_erased = erase_if(st1, [](const map::value_type& v) { return v.first >= 7; });
    EXPECT_TRUE(num_erased == 2);

    map st2 = { {0, 0}, {2, 0}, {3, 0}, {6, 0} };
    num_erased = erase_if(st2, [](const map::value_type& v) { return v.first <= 2; });
    EXPECT_TRUE(num_erased == 2);

    EXPECT_TRUE(st1 == st2);
}

TEST(EraseIf, ParallelFlatHashMap_uint64_uint32) {
    using map = phmap::parallel_flat_hash_map<uint32_t, uint32_t>;
    map st1 = { {3, 0}, {6, 0}, {7, 0}, {9, 0} };
    auto num_erased = erase_if(st1, [](const map::value_type& v) { return v.first >= 7; });
    EXPECT_TRUE(num_erased == 2);

    map st2 = { {0, 0}, {2, 0}, {3, 0}, {6, 0} };
    num_erased = erase_if(st2, [](const map::value_type& v) { return v.first <= 2; });
    EXPECT_TRUE(num_erased == 2);

    EXPECT_TRUE(st1 == st2);
}

}
}
}