Skip to content

Commit afc6604

Browse files
committed
Fixing tests.
1 parent 35f0a84 commit afc6604

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

tests/enum_ops_tests.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ enum class bitmask_flags : unsigned {
1313
flag_a = 1u << 0,
1414
flag_b = 1u << 1,
1515
flag_c = 1u << 2,
16-
all = flag_a | flag_b | flag_c
16+
flag_d = 1u << 3,
17+
all = flag_a | flag_b | flag_c | flag_d
1718
};
1819

1920
enum class permissions : unsigned {
@@ -180,20 +181,24 @@ TEST_CASE("Bitmask: assignment operators") {
180181

181182
TEST_CASE("Bitmask: clear_least_set") {
182183
auto result = bitmask_flags::flag_c | bitmask_flags::flag_b;
183-
CHECK(bitmask_flags::flag_c == clear_least_set(result));
184+
CHECK(bitmask_flags::flag_c == (result & (result - 1)));
184185

185186
auto perm_result = permissions::read | permissions::write;
186-
CHECK(permissions::write == clear_least_set(perm_result));
187+
CHECK(permissions::write == (perm_result & (perm_result - 1)));
187188
}
188189

189190
TEST_CASE("Bitmask: least_set") {
190191
auto result = bitmask_flags::flag_c | bitmask_flags::flag_b;
191-
CHECK(bitmask_flags::flag_b == least_set(result));
192+
CHECK(bitmask_flags::flag_b == (result & -result));
192193

193194
auto perm_result = permissions::read | permissions::write;
194-
CHECK(permissions::read == least_set(perm_result));
195+
CHECK(permissions::read == (perm_result & -perm_result));
195196
}
196197

198+
TEST_CASE("Bitmask: clear_trailing_set") {
199+
auto result = bitmask_flags::flag_d | bitmask_flags::flag_b | bitmask_flags::flag_a;
200+
CHECK(bitmask_flags::flag_d == (result & (result + 1)));
201+
}
197202
/**************************************************************************************************/
198203
// ARITHMETIC OPERATIONS TESTS
199204

0 commit comments

Comments
 (0)