package com.kuxhausen.huemore; import android.support.test.runner.AndroidJUnit4; import com.kuxhausen.huemore.persistence.ManagedBitSet; import org.junit.Test; import org.junit.runner.RunWith; import static org.junit.Assert.assertEquals; @RunWith(AndroidJUnit4.class) public class ManagedBitSetTest { @Test public void testIncrementing() { boolean[] set = new boolean[1000]; for (int i = 0; i < set.length; i++) { if (Math.random() < .5) { set[i] = true; } } ManagedBitSet input = new ManagedBitSet(); for (int i = 0; i < set.length; i++) { input.incrementingSet(set[i]); } String intermediate = input.getBase64Encoding(); ManagedBitSet output = new ManagedBitSet(intermediate); for (int i = 0; i < set.length; i++) { assertEquals(set[i], output.incrementingGet()); } } @Test public void testNumber() { ManagedBitSet input = new ManagedBitSet(); input.addNumber(0, 16); input.addNumber(1, 1); input.addNumber(2, 3); input.addNumber(3, 9); input.addNumber(1023, 10); String intermediate = input.getBase64Encoding(); ManagedBitSet output = new ManagedBitSet(intermediate); assertEquals(0, output.extractNumber(16)); assertEquals(1, output.extractNumber(1)); assertEquals(2, output.extractNumber(3)); assertEquals(3, output.extractNumber(9)); assertEquals(1023, output.extractNumber(10)); ManagedBitSet littleEndianOuput = new ManagedBitSet(intermediate); littleEndianOuput.useLittleEndianEncoding(true); assertEquals(0, littleEndianOuput.extractNumber(16)); assertEquals(1, littleEndianOuput.extractNumber(1)); assertEquals(2, littleEndianOuput.extractNumber(3)); assertEquals(384, littleEndianOuput.extractNumber(9)); assertEquals(1023, littleEndianOuput.extractNumber(10)); } }