/** Collect documents from a bitset. */ private List<Document> collectDocuments(List<Document> l, BitSet bitset) { if (l == null) { l = Lists.newArrayListWithCapacity((int) bitset.cardinality()); } final BitSetIterator i = bitset.iterator(); for (int d = i.nextSetBit(); d >= 0; d = i.nextSetBit()) { l.add(documents.get(d)); } return l; }
@Test public void testCardinality() { BitSet bitSet = new BitSet(NUM_BITS); assertEquals(0, bitSet.cardinality()); bitSet.set(0); assertEquals(1, bitSet.cardinality()); bitSet.set(0); assertEquals(1, bitSet.cardinality()); bitSet.set(1); assertEquals(2, bitSet.cardinality()); bitSet.set(63); assertEquals(3, bitSet.cardinality()); bitSet.set(64); assertEquals(4, bitSet.cardinality()); bitSet.set(NUM_BITS - 1); assertEquals(5, bitSet.cardinality()); bitSet.clear(0); assertEquals(4, bitSet.cardinality()); }