-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest_key_value.cpp
More file actions
96 lines (83 loc) · 2.27 KB
/
Copy pathtest_key_value.cpp
File metadata and controls
96 lines (83 loc) · 2.27 KB
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <limits>
#include <sstream>
#include "catch2/catch_all.hpp"
#include "kmm/utils/key_value.hpp"
using namespace kmm;
TEST_CASE("KeyValue") {
SECTION("int") {
KeyValue<int> a {1, 123};
KeyValue<int> b {2, 123};
KeyValue<int> c {2, 456};
REQUIRE(a.key == 1);
REQUIRE(b.key == 2);
REQUIRE(c.key == 2);
REQUIRE(a.value == 123);
REQUIRE(b.value == 123);
REQUIRE(c.value == 456);
REQUIRE(a == a);
REQUIRE(a != b);
REQUIRE(a != c);
REQUIRE(b != a);
REQUIRE(b == b);
REQUIRE(b != c);
REQUIRE(c != a);
REQUIRE(c != b);
REQUIRE(c == c);
REQUIRE_FALSE(a < a);
REQUIRE(a < b);
REQUIRE(a < c);
REQUIRE_FALSE(b < a);
REQUIRE_FALSE(b < b);
REQUIRE(b < c);
REQUIRE_FALSE(c < a);
REQUIRE_FALSE(c < b);
REQUIRE_FALSE(c < c);
REQUIRE(a <= a);
REQUIRE(a <= b);
REQUIRE(a <= c);
REQUIRE_FALSE(b <= a);
REQUIRE(b <= b);
REQUIRE(b <= c);
REQUIRE_FALSE(c <= a);
REQUIRE_FALSE(c <= b);
REQUIRE(c <= c);
}
SECTION("float") {
KeyValue<float> a {1, 123.0f};
KeyValue<float> b {2, 123.0f};
KeyValue<float> c {3, std::numeric_limits<float>::quiet_NaN()};
REQUIRE(a.key == 1);
REQUIRE(b.key == 2);
REQUIRE(c.key == 3);
REQUIRE(a.value == 123.0f);
REQUIRE(b.value == 123.0f);
REQUIRE(std::isnan(c.value));
REQUIRE(a == a);
REQUIRE(a != b);
REQUIRE(a != c);
REQUIRE(b != a);
REQUIRE(b == b);
REQUIRE_FALSE(b == c);
REQUIRE(c != a);
REQUIRE(c != b);
REQUIRE(c != c); // because of NaN
REQUIRE_FALSE(a < a);
REQUIRE(a < b);
REQUIRE(a < c);
REQUIRE_FALSE(b < a);
REQUIRE_FALSE(b < b);
REQUIRE(b < c);
REQUIRE_FALSE(c < a);
REQUIRE_FALSE(c < b);
REQUIRE_FALSE(c < c);
REQUIRE(a <= a);
REQUIRE(a <= b);
REQUIRE(a <= c);
REQUIRE_FALSE(b <= a);
REQUIRE(b <= b);
REQUIRE(b <= c);
REQUIRE_FALSE(c <= a);
REQUIRE_FALSE(c <= b);
REQUIRE(c <= c);
}
}