Skip to content

Commit 0af73bc

Browse files
authored
Merge pull request #3 from bugparty/codex/add-more-unit-test-cases
Add additional bitvector unit tests
2 parents b404ec0 + ec46ac7 commit 0af73bc

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

bitvector_test.cpp

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,68 @@ TEST(BitvectorTest, IncrementUntilZero) {
2828
bv.incrementUntilZero(pos);
2929
EXPECT_EQ(pos, 8u);
3030
}
31+
32+
TEST(BitvectorTest, ConstructWithValue) {
33+
bowen::bitvector<> bv(10, true);
34+
ASSERT_EQ(bv.size(), 10u);
35+
for (size_t i = 0; i < bv.size(); ++i) {
36+
EXPECT_TRUE(bv[i]);
37+
}
38+
}
39+
40+
TEST(BitvectorTest, OutOfRangeThrows) {
41+
bowen::bitvector<> bv(5);
42+
EXPECT_THROW(bv[5], std::out_of_range);
43+
EXPECT_THROW(bv.set_bit(5, true), std::out_of_range);
44+
}
45+
46+
TEST(BitvectorTest, CopyAndAssignment) {
47+
bowen::bitvector<> bv1;
48+
bv1.push_back(false);
49+
bv1.push_back(true);
50+
51+
bowen::bitvector<> bv2(bv1);
52+
ASSERT_EQ(bv2.size(), bv1.size());
53+
EXPECT_FALSE(bv2[0]);
54+
EXPECT_TRUE(bv2[1]);
55+
56+
bv1.set_bit(0, true);
57+
EXPECT_TRUE(bv1[0]);
58+
EXPECT_FALSE(bv2[0]);
59+
60+
bowen::bitvector<> bv3;
61+
bv3 = bv1;
62+
ASSERT_EQ(bv3.size(), bv1.size());
63+
EXPECT_TRUE(bv3[0]);
64+
EXPECT_TRUE(bv3[1]);
65+
}
66+
67+
TEST(BitvectorTest, AssignResizesAndSets) {
68+
bowen::bitvector<> bv;
69+
bv.assign(12, true);
70+
ASSERT_EQ(bv.size(), 12u);
71+
for (size_t i = 0; i < bv.size(); ++i)
72+
EXPECT_TRUE(bv[i]);
73+
74+
bv.assign(4, false);
75+
ASSERT_EQ(bv.size(), 4u);
76+
for (size_t i = 0; i < bv.size(); ++i)
77+
EXPECT_FALSE(bv[i]);
78+
}
79+
80+
TEST(BitvectorTest, IteratorTraversal) {
81+
bowen::bitvector<> bv;
82+
bv.push_back(true);
83+
bv.push_back(false);
84+
bv.push_back(true);
85+
86+
std::vector<bool> values;
87+
auto it = bv.begin();
88+
for (size_t i = 0; i < bv.size(); ++i, ++it) {
89+
values.push_back(*it);
90+
}
91+
ASSERT_EQ(values.size(), 3u);
92+
EXPECT_TRUE(values[0]);
93+
EXPECT_FALSE(values[1]);
94+
EXPECT_TRUE(values[2]);
95+
}

0 commit comments

Comments
 (0)