diff options
author | vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-07-02 01:26:37 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-07-02 01:26:37 +0000 |
commit | d3a8c94dfdabb333b12da3ff796d1f558cb06fba (patch) | |
tree | 3a6047b0b1446e755b9208e58e42c98c3fbde11b /tests | |
parent | fc899274d96cdc7d4302f48fbcf61e3376288bc0 (diff) |
A bit set class. Will be used for font subsetting.
Committed on behalf of arthurhsu@chromium.org with a few final nits.
Original CL: http://codereview.appspot.com/4627077
Review URL: http://codereview.appspot.com/4657070
git-svn-id: http://skia.googlecode.com/svn/trunk@1788 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests')
-rw-r--r-- | tests/BitSetTest.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/BitSetTest.cpp b/tests/BitSetTest.cpp new file mode 100644 index 0000000000..96bf80f9b1 --- /dev/null +++ b/tests/BitSetTest.cpp @@ -0,0 +1,66 @@ +#include "Test.h" +#include "SkBitSet.h" + +static void TestBitSet(skiatest::Reporter* reporter) { + SkBitSet set0(65536); + REPORTER_ASSERT(reporter, set0.isBitSet(0) == false); + REPORTER_ASSERT(reporter, set0.isBitSet(32767) == false); + REPORTER_ASSERT(reporter, set0.isBitSet(65535) == false); + + SkBitSet set1(65536); + REPORTER_ASSERT(reporter, set0 == set1); + + set0.setBit(22, true); + REPORTER_ASSERT(reporter, set0.isBitSet(22) == true); + set0.setBit(24, true); + REPORTER_ASSERT(reporter, set0.isBitSet(24) == true); + set0.setBit(35, true); // on a different DWORD + REPORTER_ASSERT(reporter, set0.isBitSet(35) == true); + set0.setBit(22, false); + REPORTER_ASSERT(reporter, set0.isBitSet(22) == false); + REPORTER_ASSERT(reporter, set0.isBitSet(24) == true); + REPORTER_ASSERT(reporter, set0.isBitSet(35) == true); + + set1.setBit(12345, true); + set1.orBits(set0); + REPORTER_ASSERT(reporter, set0.isBitSet(12345) == false); + REPORTER_ASSERT(reporter, set1.isBitSet(12345) == true); + REPORTER_ASSERT(reporter, set1.isBitSet(22) == false); + REPORTER_ASSERT(reporter, set1.isBitSet(24) == true); + REPORTER_ASSERT(reporter, set0.isBitSet(35) == true); + REPORTER_ASSERT(reporter, set1 != set0); + + set1.clearAll(); + REPORTER_ASSERT(reporter, set0.isBitSet(12345) == false); + REPORTER_ASSERT(reporter, set1.isBitSet(12345) == false); + REPORTER_ASSERT(reporter, set1.isBitSet(22) == false); + REPORTER_ASSERT(reporter, set1.isBitSet(24) == false); + REPORTER_ASSERT(reporter, set1.isBitSet(35) == false); + + set1.orBits(set0); + REPORTER_ASSERT(reporter, set1 == set0); + + SkBitSet set2(1); + SkBitSet set3(1); + SkBitSet set4(4); + SkBitSet set5(33); + + REPORTER_ASSERT(reporter, set2 == set3); + REPORTER_ASSERT(reporter, set2 != set4); + REPORTER_ASSERT(reporter, set2 != set5); + + set2.setBit(0, true); + REPORTER_ASSERT(reporter, set2 != set5); + set5.setBit(0, true); + REPORTER_ASSERT(reporter, set2 != set5); + REPORTER_ASSERT(reporter, set2 != set3); + set3.setBit(0, true); + REPORTER_ASSERT(reporter, set2 == set3); + set3.clearAll(); + set3 = set2; + set2 = set2; + REPORTER_ASSERT(reporter, set2 == set3); +} + +#include "TestClassDef.h" +DEFINE_TESTCLASS("BitSet", BitSetTest, TestBitSet) |