Do one map lookup instead of two.
[oota-llvm.git] / unittests / ADT / SmallBitVectorTest.cpp
index 8048b61d388dd054ecfb62be3b7f2b6169bdf114..9c69aad5a9730d56b7b52fed796bb911e0049b37 100644 (file)
@@ -55,7 +55,7 @@ TEST(SmallBitVectorTest, TrivialOperation) {
   Vec.resize(26, true);
   Vec.resize(29, false);
   Vec.resize(33, true);
-  Vec.resize(61, false);
+  Vec.resize(57, false);
   unsigned Count = 0;
   for (unsigned i = Vec.find_first(); i != -1u; i = Vec.find_next(i)) {
     ++Count;
@@ -66,7 +66,8 @@ TEST(SmallBitVectorTest, TrivialOperation) {
   EXPECT_EQ(Count, 23u);
   EXPECT_FALSE(Vec[0]);
   EXPECT_TRUE(Vec[32]);
-  EXPECT_FALSE(Vec[60]);
+  EXPECT_FALSE(Vec[56]);
+  Vec.resize(61, false);
 
   SmallBitVector Copy = Vec;
   SmallBitVector Alt(3, false);
@@ -153,8 +154,8 @@ TEST(SmallBitVectorTest, CompoundAssignment) {
   EXPECT_TRUE(A.test(5));
   EXPECT_TRUE(A.test(7));
   EXPECT_TRUE(A.test(18));
-  EXPECT_EQ(A.count(), 4);
-  EXPECT_EQ(A.size(), 50);
+  EXPECT_EQ(4U, A.count());
+  EXPECT_EQ(50U, A.size());
 
   B.resize(10);
   B.set();
@@ -163,8 +164,8 @@ TEST(SmallBitVectorTest, CompoundAssignment) {
   A &= B;
   EXPECT_FALSE(A.test(2));
   EXPECT_FALSE(A.test(7));
-  EXPECT_EQ(A.size(), 50);
-  EXPECT_EQ(A.count(), 2);
+  EXPECT_EQ(2U, A.count());
+  EXPECT_EQ(50U, A.size());
 
   B.resize(100);
   B.set();
@@ -172,8 +173,17 @@ TEST(SmallBitVectorTest, CompoundAssignment) {
   A ^= B;
   EXPECT_TRUE(A.test(2));
   EXPECT_TRUE(A.test(7));
-  EXPECT_EQ(A.size(), 100);
-  EXPECT_EQ(A.count(), 98);
+  EXPECT_EQ(98U, A.count());
+  EXPECT_EQ(100U, A.size());
+}
+
+TEST(SmallBitVectorTest, ProxyIndex) {
+  SmallBitVector Vec(3);
+  EXPECT_TRUE(Vec.none());
+  Vec[0] = Vec[1] = Vec[2] = true;
+  EXPECT_EQ(Vec.size(), Vec.count());
+  Vec[2] = Vec[1] = Vec[0] = false;
+  EXPECT_TRUE(Vec.none());
 }
 
 }