mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-20 10:24:12 +00:00
Add range-based set()/reset() to BitVector. These allow fast setting/resetting of ranges of bits, particularly useful when dealing with very large BitVector's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165984 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -281,5 +281,47 @@ TYPED_TEST(BitVectorTest, BinOps) {
|
||||
EXPECT_FALSE(A.anyCommon(B));
|
||||
EXPECT_FALSE(B.anyCommon(A));
|
||||
}
|
||||
|
||||
TYPED_TEST(BitVectorTest, RangeOps) {
|
||||
TypeParam A;
|
||||
A.resize(256);
|
||||
A.reset();
|
||||
A.set(1, 255);
|
||||
|
||||
EXPECT_FALSE(A.test(0));
|
||||
EXPECT_TRUE( A.test(1));
|
||||
EXPECT_TRUE( A.test(23));
|
||||
EXPECT_TRUE( A.test(254));
|
||||
EXPECT_FALSE(A.test(255));
|
||||
|
||||
TypeParam B;
|
||||
B.resize(256);
|
||||
B.set();
|
||||
B.reset(1, 255);
|
||||
|
||||
EXPECT_TRUE( B.test(0));
|
||||
EXPECT_FALSE(B.test(1));
|
||||
EXPECT_FALSE(B.test(23));
|
||||
EXPECT_FALSE(B.test(254));
|
||||
EXPECT_TRUE( B.test(255));
|
||||
|
||||
TypeParam C;
|
||||
C.resize(3);
|
||||
C.reset();
|
||||
C.set(0, 1);
|
||||
|
||||
EXPECT_TRUE(C.test(0));
|
||||
EXPECT_FALSE( C.test(1));
|
||||
EXPECT_FALSE( C.test(2));
|
||||
|
||||
TypeParam D;
|
||||
D.resize(3);
|
||||
D.set();
|
||||
D.reset(0, 1);
|
||||
|
||||
EXPECT_FALSE(D.test(0));
|
||||
EXPECT_TRUE( D.test(1));
|
||||
EXPECT_TRUE( D.test(2));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user