Aleph-w
3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
dyn_treap_test.cc
Go to the documentation of this file.
1
#include <gtest/gtest.h>
2
#include <
tpl_dynTreap.H
>
3
4
using namespace
Aleph
;
5
6
class
DynTreapTest
:
public
::testing::Test
7
{
8
protected
:
9
void
SetUp
()
override
{}
10
void
TearDown
()
override
{}
11
};
12
13
TEST_F
(
DynTreapTest
,
DefaultConstructor
)
14
{
15
DynTreapTree<int, int>
treap
;
16
EXPECT_TRUE
(
treap
.is_empty());
17
}
18
19
TEST_F
(
DynTreapTest
,
InsertAndFind
)
20
{
21
DynTreapTree<int, std::string>
treap
;
22
23
treap
.
insert
(5,
"five"
);
24
treap
.insert(3,
"three"
);
25
treap
.insert(7,
"seven"
);
26
27
EXPECT_FALSE
(
treap
.is_empty());
28
EXPECT_EQ
(
treap
.size(), 3u);
29
}
30
31
TEST_F
(
DynTreapTest
,
BracketOperator
)
32
{
33
DynTreapTree<std::string, int>
treap
;
34
35
treap
[
"one"
] = 1;
36
treap
[
"two"
] = 2;
37
treap
[
"three"
] = 3;
38
39
EXPECT_EQ
(
treap
[
"one"
], 1);
40
EXPECT_EQ
(
treap
[
"two"
], 2);
41
EXPECT_EQ
(
treap
[
"three"
], 3);
42
}
43
44
TEST_F
(
DynTreapTest
,
UpdateValue
)
45
{
46
DynTreapTree<int, int>
treap
;
47
48
treap
[10] = 100;
49
EXPECT_EQ
(
treap
[10], 100);
50
51
treap
[10] = 200;
52
EXPECT_EQ
(
treap
[10], 200);
53
}
54
55
TEST_F
(
DynTreapTest
,
Has
)
56
{
57
DynTreapTree<int, int>
treap
;
58
59
treap
.
insert
(5, 50);
60
61
EXPECT_TRUE
(
treap
.has(5));
62
EXPECT_FALSE
(
treap
.has(10));
63
}
64
65
TEST_F
(
DynTreapTest
,
Remove
)
66
{
67
DynTreapTree<int, int>
treap
;
68
69
treap
.
insert
(1, 10);
70
treap
.insert(2, 20);
71
treap
.insert(3, 30);
72
73
EXPECT_TRUE
(
treap
.remove(2));
74
EXPECT_FALSE
(
treap
.has(2));
75
EXPECT_TRUE
(
treap
.has(1));
76
EXPECT_TRUE
(
treap
.has(3));
77
}
78
79
TEST_F
(
DynTreapTest
,
StringKeys
)
80
{
81
DynTreapTree<std::string, int>
treap
;
82
83
treap
[
"apple"
] = 1;
84
treap
[
"banana"
] = 2;
85
86
EXPECT_EQ
(
treap
[
"apple"
], 1);
87
EXPECT_EQ
(
treap
[
"banana"
], 2);
88
}
89
90
TEST_F
(
DynTreapTest
,
NegativeKeys
)
91
{
92
DynTreapTree<int, int>
treap
;
93
94
treap
[-5] = 50;
95
treap
[-1] = 10;
96
treap
[0] = 0;
97
98
EXPECT_EQ
(
treap
[-5], 50);
99
EXPECT_EQ
(
treap
[0], 0);
100
}
101
102
TEST_F
(
DynTreapTest
,
ManyInsertions
)
103
{
104
DynTreapTree<int, int>
treap
;
105
106
for
(
int
i = 0; i < 100; ++i)
107
treap
[i] = i * 2;
108
109
EXPECT_EQ
(
treap
.size(), 100u);
110
111
for
(
int
i = 0; i < 100; i += 10)
112
EXPECT_EQ
(
treap
[i], i * 2);
113
}
114
115
TEST_F
(
DynTreapTest
,
ManyRemovals
)
116
{
117
DynTreapTree<int, int>
treap
;
118
119
for
(
int
i = 0; i < 50; ++i)
120
treap
.
insert
(i, i);
121
122
EXPECT_EQ
(
treap
.size(), 50u);
123
124
for
(
int
i = 0; i < 50; i += 2)
125
treap
.remove(i);
126
127
// After removing evens, only odds remain
128
EXPECT_EQ
(
treap
.size(), 25u);
129
130
for
(
int
i = 1; i < 50; i += 2)
131
EXPECT_TRUE
(
treap
.has(i));
132
}
133
134
TEST_F
(
DynTreapTest
,
CopyConstructor
)
135
{
136
DynTreapTree<int, std::string>
treap1
;
137
treap1
[1] =
"one"
;
138
treap1
[2] =
"two"
;
139
140
DynTreapTree<int, std::string>
treap2
(
treap1
);
141
142
EXPECT_EQ
(
treap2
.size(), 2u);
143
EXPECT_EQ
(
treap2
[1],
"one"
);
144
EXPECT_EQ
(
treap2
[2],
"two"
);
145
}
Aleph::DynMapTree::insert
Pair * insert(const Key &key, const Data &data)
Insert a key-value pair.
Definition
tpl_dynMapTree.H:146
DynTreapTest
Definition
dyn_treap_test.cc:7
DynTreapTest::TearDown
void TearDown() override
Definition
dyn_treap_test.cc:10
DynTreapTest::SetUp
void SetUp() override
Definition
dyn_treap_test.cc:9
TEST_F
TEST_F(DynTreapTest, DefaultConstructor)
Definition
dyn_treap_test.cc:13
Aleph::blossom_maximum_cardinality_matching
size_t blossom_maximum_cardinality_matching(const GT &g, DynDlist< typename GT::Arc * > &matching, SA sa=SA())
Alias of compute_maximum_cardinality_general_matching().
Definition
Blossom.H:466
Aleph
Main namespace for Aleph-w library functions.
Definition
ah-arena.H:89
Aleph::DynTreapTree
Dynamic mapping implemented with treap trees.
Definition
tpl_dynTreap.H:57
tpl_dynTreap.H
Dynamic treap alias.
Tests
dyn_treap_test.cc
Generated by
1.9.8