public void shouldReturnUnitializedValues() { CircularBitSet bs = new CircularBitSet(100, null); for (int i = 0; i < 100; i++) { assertEquals(bs.setNext(true), -1); } assertEquals(bs.setNext(true), 1); assertEquals(bs.setNext(true), 1); }
public void testCopyBitsToLargerSet() { CircularBitSet left = new CircularBitSet(5, null); setBits(left, true, 2); setBits(left, false, 3); left.nextIndex = 0; CircularBitSet right = new CircularBitSet(6, left); assertValues(right, true, true, false, false, false); left.nextIndex = 2; right = new CircularBitSet(6, left); assertValues(right, false, false, false, true, true); left.nextIndex = 4; right = new CircularBitSet(6, left); assertValues(right, false, true, true, false, false); }
public void testCopyBitsToSmallerSet() { CircularBitSet left = new CircularBitSet(10, null); setBits(left, true, 5); setBits(left, false, 5); left.nextIndex = 0; CircularBitSet right = new CircularBitSet(4, left); assertValues(right, false, false, false, false); left.nextIndex = 2; right = new CircularBitSet(4, left); assertValues(right, false, false, true, true); left.nextIndex = 7; right = new CircularBitSet(4, left); assertValues(right, true, true, false, false); }
public void testRatios() { CircularBitSet bs = new CircularBitSet(100, null); for (int i = 0; i < 50; i++) bs.setNext(i % 3 == 0); assertEquals(bs.positiveRatio(), .34); assertEquals(bs.negativeRatio(), .66); for (int i = 0; i < 100; i++) bs.setNext(true); assertEquals(bs.positiveRatio(), 1.0); assertEquals(bs.negativeRatio(), 0.0); }
private void setBits(CircularBitSet bs, boolean value, int count) { for (int i = 0; i < count; i++) bs.setNext(value); }
private boolean[] valuesFor(CircularBitSet bs) { boolean[] values = new boolean[bs.occupiedBits()]; for (int i = 0; i < values.length; i++) values[i] = bs.bitSet.get(i); return values; }