Mercurial > code
annotate C++/tests/Flags/main.cpp @ 334:0b576ee64d45
* Create brand new hierarchy
* Rename DynLib to Dynlib
* Remove some warnings
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 08 Mar 2015 14:26:33 +0100 |
parents | C++/Tests/Flags/main.cpp@0c7bc55e0d36 |
children | d5ec1174b707 |
rev | line source |
---|---|
261
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * main.cpp -- main test file for Flags |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2013, 2014 David Demelier <markand@malikania.fr> |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <cstdint> |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <gtest/gtest.h> |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #include <Flags.h> |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 enum Standard : uint8_t { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 Fullscreen = (1 << 0), |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 Audio = (1 << 1) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 }; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 enum class Strong : uint8_t { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 NoLog = (1 << 0), |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 NoCheck = (1 << 1) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 }; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 /* -------------------------------------------------------- |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 * Global operators on standard enum |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 * -------------------------------------------------------- */ |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 TEST(OperatorsStandard, opand) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 Standard s(Fullscreen | Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 ASSERT_EQ(Fullscreen, (s & Fullscreen)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 ASSERT_EQ(Audio, (s & Audio)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 TEST(OperatorsStandard, opor) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 Standard s(Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 ASSERT_EQ(3, (s | Audio)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 TEST(OperatorsStandard, opxor) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 Standard s(Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 ASSERT_EQ(3, (s ^ Audio)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 TEST(OperatorsStandard, opnot) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 Standard s(Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 ASSERT_EQ(254, ~s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 /* -------------------------------------------------------- |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 * Global operators on strong enum |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 * -------------------------------------------------------- */ |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 TEST(OperatorsStrong, opand) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 Strong s(Strong::NoLog | Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 ASSERT_EQ(Strong::NoLog, (s & Strong::NoLog)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 ASSERT_EQ(Strong::NoCheck, (s & Strong::NoCheck)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 TEST(OperatorsStrong, opor) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 Strong s(Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 ASSERT_EQ(3, static_cast<int>((s | Strong::NoCheck))); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 TEST(OperatorsStrong, opxor) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 Strong s(Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 ASSERT_EQ(3, static_cast<int>((s ^ Strong::NoCheck))); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 TEST(OperatorsStrong, opnot) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 Strong s(Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 ASSERT_EQ(254, static_cast<int>(~s)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 /* -------------------------------------------------------- |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 * Flags with standard enums |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 * -------------------------------------------------------- */ |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 TEST(Standard, construct) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 Flags<Standard> s; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 ASSERT_FALSE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 ASSERT_TRUE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 Flags <Standard> s2(Fullscreen | Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 ASSERT_TRUE(s2); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 ASSERT_FALSE(!s2); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 ASSERT_TRUE(s2 & Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 ASSERT_TRUE(s2 & Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 ASSERT_TRUE((s2 & Fullscreen) == Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 ASSERT_TRUE((s2 & Audio) == Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 ASSERT_TRUE(s2 == (Audio | Fullscreen)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 TEST(Standard, addByOne) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 Flags<Standard> s; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 ASSERT_FALSE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 ASSERT_TRUE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 ASSERT_TRUE(!(s & Fullscreen)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 ASSERT_TRUE(!(s & Audio)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 s |= Fullscreen; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 ASSERT_TRUE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 ASSERT_FALSE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 ASSERT_TRUE(s & Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 ASSERT_TRUE((s & Fullscreen) == Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 ASSERT_FALSE(s & Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 ASSERT_FALSE((s & Audio) == Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 ASSERT_TRUE(s == Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 s |= Audio; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 ASSERT_TRUE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 ASSERT_FALSE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 ASSERT_TRUE(s & Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 ASSERT_TRUE((s & Fullscreen) == Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 ASSERT_TRUE(s & Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 ASSERT_TRUE((s & Audio) == Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 ASSERT_TRUE(s == (Fullscreen | Audio)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 TEST(Standard, add) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 Flags<Standard> s; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 s |= Fullscreen | Audio; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 ASSERT_TRUE(s & (Fullscreen | Audio)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 ASSERT_TRUE((s & (Fullscreen | Audio)) == (Fullscreen | Audio)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
160 TEST(Standard, removeByOne) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 Flags<Standard> s(Fullscreen | Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 s &= ~(Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 ASSERT_TRUE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
166 ASSERT_FALSE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 ASSERT_FALSE(s & Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
168 ASSERT_FALSE((s & Fullscreen) == Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 ASSERT_TRUE(s & Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 ASSERT_TRUE((s & Audio) == Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 s &= ~(Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 ASSERT_FALSE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 ASSERT_TRUE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
176 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 TEST(Standard, remove) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
179 Flags<Standard> s(Fullscreen | Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
181 s &= ~(Fullscreen | Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
182 ASSERT_FALSE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 ASSERT_TRUE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
184 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
185 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
186 TEST(Standard, xorAdd) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 Flags<Standard> s(Fullscreen | Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
190 s ^= Audio; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 ASSERT_TRUE(s & Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
192 ASSERT_TRUE((s & Fullscreen) == Fullscreen); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
193 ASSERT_FALSE(s & Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
194 ASSERT_FALSE((s & Audio) == Audio); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
195 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
196 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
197 /* -------------------------------------------------------- |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
198 * Flags with strong enums |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
199 * -------------------------------------------------------- */ |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
200 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
201 TEST(Strong, construct) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
202 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
203 Flags<Strong> s; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
204 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
205 ASSERT_FALSE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
206 ASSERT_TRUE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
207 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
208 Flags <Strong> s2(Strong::NoLog | Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
209 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
210 ASSERT_TRUE(s2); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
211 ASSERT_FALSE(!s2); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
212 ASSERT_TRUE(s2 & Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
213 ASSERT_TRUE(s2 & Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
214 ASSERT_TRUE((s2 & Strong::NoLog) == Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
215 ASSERT_TRUE((s2 & Strong::NoCheck) == Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
216 ASSERT_TRUE(s2 == (Strong::NoLog | Strong::NoCheck)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
217 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
218 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
219 TEST(Strong, addByOne) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
220 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
221 Flags<Strong> s; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
222 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
223 ASSERT_FALSE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
224 ASSERT_TRUE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
225 ASSERT_TRUE(!(s & Strong::NoLog)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
226 ASSERT_TRUE(!(s & Strong::NoCheck)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
227 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
228 s |= Strong::NoLog; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
229 ASSERT_TRUE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
230 ASSERT_FALSE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
231 ASSERT_TRUE(s & Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
232 ASSERT_TRUE((s & Strong::NoLog) == Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
233 ASSERT_FALSE(s & Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
234 ASSERT_FALSE((s & Strong::NoCheck) == Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
235 ASSERT_TRUE(s == Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
236 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
237 s |= Strong::NoCheck; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
238 ASSERT_TRUE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
239 ASSERT_FALSE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
240 ASSERT_TRUE(s & Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
241 ASSERT_TRUE((s & Strong::NoLog) == Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
242 ASSERT_TRUE(s & Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
243 ASSERT_TRUE((s & Strong::NoCheck) == Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
244 ASSERT_TRUE(s == (Strong::NoLog | Strong::NoCheck)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
245 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
246 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
247 TEST(Strong, add) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
248 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
249 Flags<Strong> s; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
250 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
251 s |= Strong::NoLog | Strong::NoCheck; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
252 ASSERT_TRUE(s & (Strong::NoLog | Strong::NoCheck)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
253 ASSERT_TRUE((s & (Strong::NoLog | Strong::NoCheck)) == (Strong::NoLog | Strong::NoCheck)); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
254 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
255 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
256 TEST(Strong, removeByOne) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
257 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
258 Flags<Strong> s(Strong::NoLog | Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
259 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
260 s &= ~(Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
261 ASSERT_TRUE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
262 ASSERT_FALSE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
263 ASSERT_FALSE(s & Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
264 ASSERT_FALSE((s & Strong::NoLog) == Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
265 ASSERT_TRUE(s & Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
266 ASSERT_TRUE((s & Strong::NoCheck) == Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
267 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
268 s &= ~(Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
269 ASSERT_FALSE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
270 ASSERT_TRUE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
271 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
272 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
273 TEST(Strong, remove) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
274 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
275 Flags<Strong> s(Strong::NoLog | Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
276 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
277 s &= ~(Strong::NoLog | Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
278 ASSERT_FALSE(s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
279 ASSERT_TRUE(!s); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
280 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
281 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
282 TEST(Strong, xorAdd) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
283 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
284 Flags<Strong> s(Strong::NoLog | Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
285 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
286 s ^= Strong::NoCheck; |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
287 ASSERT_TRUE(s & Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
288 ASSERT_TRUE((s & Strong::NoLog) == Strong::NoLog); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
289 ASSERT_FALSE(s & Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
290 ASSERT_FALSE((s & Strong::NoCheck) == Strong::NoCheck); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
291 } |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
292 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
293 int main(int argc, char **argv) |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
294 { |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
295 testing::InitGoogleTest(&argc, argv); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
296 |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
297 return RUN_ALL_TESTS(); |
0c7bc55e0d36
Add Flags, a small wrapper for creating enum flags
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
298 } |