private static OffsetBitVector makeBigTestOffsetVector() { OffsetBitVector v1 = new OffsetBitVector(50000096, 1024); v1.set(50000101); v1.set(50000103); v1.set(50000112); v1.set(50000114); v1.set(50000116); v1.set(50000126); v1.set(50000128); v1.set(50000129); v1.set(50000135); v1.set(50000137); v1.set(50000143); v1.set(50000148); v1.set(50000151); v1.set(50000158); v1.set(50000163); v1.set(50000167); v1.set(50000170); v1.set(50000173); v1.set(50000180); v1.set(50000182); v1.set(50000185); v1.set(50000187); v1.set(50000190); v1.set(50000194); v1.set(50000199); v1.set(50000201); v1.set(50000204); v1.set(50000206);
@Test public void testSpecificBugsInOffsetBitVectors() { OffsetBitVector v1 = makeBigTestOffsetVector(); System.err.println(v1); OffsetBitVector v2 = new OffsetBitVector(50000128, 512); v2.set(50000137); v2.set(50000204); v2.set(50000278); v2.set(50000315); v2.set(50000362); v2.set(50000450); v2.set(50000455); v2.set(50000471); System.err.println(v2); v1.andNot(v2); System.err.println(v1); Assert.assertTrue(v1.intersectionEmpty(v2)); v1 = makeBigTestOffsetVector(); v1.and(v2); System.err.println(v1); Assert.assertTrue(v1.sameBits(v2)); Assert.assertTrue(v1.isSubset(v2)); Assert.assertTrue(v2.isSubset(v1)); }
/** * Add an integer value to this set. * * @param i integer to add * @return true iff the value of this changes. */ @Override public boolean add(int i) { if (densePart != null && inDenseRange(i)) { if (!densePart.get(i)) { densePart.set(i); assert assertDisjoint() : this.toString(); return true; } } else if (!sparsePart.contains(i)) { sparsePart.add(i); assert assertDisjoint() : this.toString(); fixAfterSparseInsert(); return true; } return false; }
/** * Add an integer value to this set. * * @param i integer to add * @return true iff the value of this changes. */ @Override public boolean add(int i) { if (densePart != null && inDenseRange(i)) { if (!densePart.get(i)) { densePart.set(i); assert assertDisjoint() : this.toString(); return true; } } else if (!sparsePart.contains(i)) { sparsePart.add(i); assert assertDisjoint() : this.toString(); fixAfterSparseInsert(); return true; } return false; }
/** * Add an integer value to this set. * * @param i integer to add * @return true iff the value of this changes. */ @Override public boolean add(int i) { if (densePart != null && inDenseRange(i)) { if (!densePart.get(i)) { densePart.set(i); assert assertDisjoint() : this.toString(); return true; } } else if (!sparsePart.contains(i)) { sparsePart.add(i); assert assertDisjoint() : this.toString(); fixAfterSparseInsert(); return true; } return false; }