RankedBitVectorImpl implements RankedBitVector, Iterable<Boolean> { @Override public long size() { return this.bitVector.size(); } RankedBitVectorImpl();  RankedBitVectorImpl(BitVector bitVector);  RankedBitVectorImpl(long initialSize);  RankedBitVectorImpl(long initialSize, int countBlockSize,
			int findPositionBlockSize); @Override boolean addBit(boolean bit); @Override long countBits(boolean bit, long position); @Override boolean equals(Object obj); @Override long findPosition(boolean bit, long nOccurrence); @Override boolean getBit(long position); @Override int hashCode(); @Override Iterator<Boolean> iterator(); @Override void setBit(long position, boolean bit); @Override long size(); @Override String toString();  }
@Test public void testEmptyBitVector() { RankedBitVectorImpl bv0 = new RankedBitVectorImpl(); Assert.assertEquals(0, bv0.size()); assertCorrectCount(bv0); assertCorrectFindPosition(bv0); Assert.assertNotEquals(bv0, new Object()); Assert.assertEquals(bv0, new BitVectorImpl()); RankedBitVector bv1 = new RankedBitVectorImpl(); RankedBitVectorImpl bv2 = new RankedBitVectorImpl(0); assertEqualsForBitVector(bv1, bv2); assertCorrectCount(bv2); assertCorrectFindPosition(bv2); }