2
3
4
5
8#include <gmock/gmock.h>
9#include <Core/Container/LinkedUnorderedMap.h>
15
16
17
23
24
27 c0.push_back(
"aaa",
"aaa");
28 c0.push_back(
"bbb",
"bbb");
29 c0.push_back(
"ccc",
"ccc");
35 c2.push_back(1.0f,
"1.0");
36 c2.push_back(2.0f,
"2.0");
37 c2.push_back(3.0f,
"3.0");
41
42
51
52
58
59
60 EXPECT_EQ(c0.size(), 3);
61 EXPECT_EQ(c1.size(), 3);
62 EXPECT_EQ(c2.size(), 3);
65
66
67 EXPECT_EQ(c0.has_equal_size(),
true);
68 EXPECT_EQ(c1.has_equal_size(),
true);
69 EXPECT_EQ(c2.has_equal_size(),
true);
73
74
80
81
83 EXPECT_EQ(c0.size(), 0);
86
87
89 EXPECT_EQ(c1.size(), 2);
93 EXPECT_EQ(c2.size(), 1);
96
97
99 EXPECT_EQ(c1.size(), 2);
102
103
104 EXPECT_EQ(c0.has_equal_size(),
true);
105 EXPECT_EQ(c1.has_equal_size(),
true);
106 EXPECT_EQ(c2.has_equal_size(),
true);
110
111
117
118
119 auto v = c0.find_value(
"aaa");
120 EXPECT_EQ(*v,
"aaa");
123
124
125 const bool isHasValue = c1.has_key(10);
126 EXPECT_EQ(isHasValue,
false);
129
130
131 v = c2.find_value(10.0);
132 EXPECT_EQ(v,
nullptr);
135
136
137 EXPECT_EQ(c0.has_equal_size(),
true);
138 EXPECT_EQ(c1.has_equal_size(),
true);
139 EXPECT_EQ(c2.has_equal_size(),
true);
143
144
150
151
152 c0.push_back(
"ddd",
"ddd");
153 EXPECT_EQ(c0.size(), 4);
156
157
158 c1.push_back(1,
"1");
159 EXPECT_EQ(c1.size(), 3);
162
163
164 auto v = c2.find_value(1.0f);
165 EXPECT_EQ(*v,
"1.0");
166 c2.push_back(1.0f,
"10.0");
167 v = c2.find_value(1.0f);
168 EXPECT_EQ(*v,
"10.0");
171
172
173 EXPECT_EQ(c0.has_equal_size(),
true);
174 EXPECT_EQ(c1.has_equal_size(),
true);
175 EXPECT_EQ(c2.has_equal_size(),
true);
179
180
186
187
188 std::vector<std::string> iterOrder0;
189 c0.for_each([&](
const std::string& k,
const std::string& v) {
190 iterOrder0.push_back(k);
193 EXPECT_EQ(iterOrder0[0],
"aaa");
194 EXPECT_EQ(iterOrder0[1],
"bbb");
195 EXPECT_EQ(iterOrder0[2],
"ccc");
198
199
200 std::vector<
int> iterOrder1;
202 c1.for_each([&](
const int& k,
const std::string& v) {
203 iterOrder1.push_back(k);
206 EXPECT_EQ(iterOrder1[0], 1);
207 EXPECT_EQ(iterOrder1[1], 3);
210
211
212 std::vector<
float> iterOrder2;
213 c2.push_back(0.5f,
"0.5");
214 c2.for_each([&](
const float& k,
const std::string& v) {
215 iterOrder2.push_back(k);
218 EXPECT_EQ(iterOrder2[0], 1.0f);
219 EXPECT_EQ(iterOrder2[1], 2.0f);
220 EXPECT_EQ(iterOrder2[2], 3.0f);
221 EXPECT_EQ(iterOrder2[3], 0.5f);
224
225
226 EXPECT_EQ(c0.has_equal_size(),
true);
227 EXPECT_EQ(c1.has_equal_size(),
true);
228 EXPECT_EQ(c2.has_equal_size(),
true);
232
233
239
240
241 EXPECT_EQ(c0.prev_value(
"aaa"),
nullptr);
242 EXPECT_EQ(*c0.prev_value(
"bbb"),
"aaa");
243 EXPECT_EQ(*c0.prev_value(
"ccc"),
"bbb");
246
247
248 EXPECT_EQ(*c0.next_value(
"aaa"),
"bbb");
249 EXPECT_EQ(*c0.next_value(
"bbb"),
"ccc");
250 EXPECT_EQ(c0.next_value(
"ccc"),
nullptr);
253
254
257 EXPECT_EQ(*c0.first(),
"aaa");
258 EXPECT_EQ(*c1.first(),
"1");
259 EXPECT_EQ(*c2.first(),
"1.0");
260 EXPECT_EQ(c3.first(),
nullptr);
263
264
265 EXPECT_EQ(*c0.end(),
"ccc");
266 EXPECT_EQ(*c1.end(),
"3");
267 EXPECT_EQ(*c2.end(),
"3.0");
268 EXPECT_EQ(c3.end(),
nullptr);
271
272
273 EXPECT_EQ(*c0.end_k(),
"ccc");
274 EXPECT_EQ(*c1.end_k(), 3);
275 EXPECT_EQ(*c2.end_k(), 3.0);
276 EXPECT_EQ(c3.end_k(),
nullptr);
279
280
281 EXPECT_EQ(c0.has_equal_size(),
true);
282 EXPECT_EQ(c1.has_equal_size(),
true);
283 EXPECT_EQ(c2.has_equal_size(),
true);
284 EXPECT_EQ(c3.has_equal_size(),
true);
#define SPICESTEST_PROFILE_SCOPE_LINE2(name, line)
#define SPICESTEST_PROFILE_SCOPE(name)
#define SPICESTEST_PROFILE_END_SESSION()
#define SPICESTEST_PROFILE_BEGIN_SESSION(name, filepath)
#define SPICESTEST_PROFILE_SCOPE_LINE(name, line)
#define SPICESTEST_PROFILE_FUNCTION()
InstrumentationTimer(const char *name)
std::chrono::time_point< std::chrono::steady_clock > m_StartTimepoint
Instrumentor(Instrumentor &&)=delete
static Instrumentor & Get()
void BeginSession(const std::string &name, const std::string &filepath="results.json")
void WriteProfile(const ProfileResult &result)
InstrumentationSession * m_CurrentSession
std::ofstream m_OutputStream
Instrumentor(const Instrumentor &)=delete
void InternalEndSession()
void Test(float f)
Basic Override Class Function.
static void Test1()
Static Class Function.
void Test()
Basic Override Class Function.
void TearDown() override
Testing class TearDown function.
std::vector< scl::directed_acyclic_node > m_Nodes
void SetUp() override
Testing class initialize function.
scl::directed_acyclic_graph m_DAG
The interface is inherited from testing::Test. Registy on Initialize.
scl::kd_tree< 2 > m_KDTree
Create a KDTree with 2 dimensions.
void TearDown() override
Testing class TearDown function.
void SetUp() override
Testing class initialize function.
The interface is inherited from testing::Test. Registry on Initialize.
scl::linked_unordered_map< int, std::string > c1
scl::linked_unordered_map< float, std::string > c2
scl::linked_unordered_map< std::string, std::string > c0
void SetUp() override
Testing class initialize function.
void TearDown() override
Testing class TearDown function.
The interface is inherited from testing::Test. Registry on Initialize.
The kd_tree with K dimensions container Class. K the number of dimensions. Every node in the tree is ...
The container combines hashmap and list together. Used in the case that we want iter a hashmap in ord...
int main(int argc, char **argv)
The Entry of SpicesTest.
constexpr auto CleanupOutputString(const char(&expr)[N], const char(&remove)[K])
TEST_F(directed_acyclic_graph_test, Addnode)
Testing if add node successfully.
TEST_F(linked_unordered_map_test, Initialize)
Testing if initialize successfully.
TEST_F(kd_tree_test, Insert)
Testing if Insert successfully.
std::chrono::microseconds ElapsedTime
FloatingPointMicroseconds Start