package com.limegroup.bittorrent.disk; import junit.framework.Assert; import junit.framework.Test; import org.limewire.collection.BitField; import org.limewire.collection.IntervalSet; import org.limewire.util.BaseTestCase; import com.limegroup.bittorrent.BTInterval; public class BlockRangeMapTest extends BaseTestCase { public BlockRangeMapTest(String name) { super(name); } public static Test suite() { return buildTestSuite(BlockRangeMapTest.class); } public void testBasic() { BlockRangeMap blockRangeMap = new BlockRangeMap(10); BitField bitField = blockRangeMap.getBitField(); assertBitField(bitField, false, false, false, false, false); BTInterval btInterval1 = new BTInterval(0, 3, 1); BTInterval btInterval2 = new BTInterval(5, 6, 4); BTInterval btInterval3 = new BTInterval(7, 8, 4); blockRangeMap.addInterval(btInterval1); blockRangeMap.addInterval(btInterval2); Assert.assertEquals(new IntervalSet(btInterval1), blockRangeMap.get(1)); Assert.assertEquals(new IntervalSet(btInterval2), blockRangeMap.get(4)); assertBitField(bitField, false, true, false, false, true); blockRangeMap.remove(1); Assert.assertNull(blockRangeMap.get(1)); assertBitField(bitField, false, false, false, false, true); blockRangeMap.removeInterval(btInterval2); assertBitField(bitField, false, false, false, false, false); blockRangeMap.addInterval(btInterval1); blockRangeMap.addInterval(btInterval2); blockRangeMap.addInterval(btInterval3); Assert.assertEquals(new IntervalSet(btInterval1), blockRangeMap.get(1)); IntervalSet superSet = new IntervalSet(); superSet.add(btInterval2); superSet.add(btInterval3); Assert.assertEquals(superSet, blockRangeMap.get(4)); assertBitField(bitField, false, true, false, false, true); blockRangeMap.removeInterval(btInterval3); assertBitField(bitField, false, true, false, false, true); blockRangeMap.clear(); assertBitField(bitField, false, false, false, false, false); } private void assertBitField(BitField bitField, boolean... fields) { for (int i = 0; i < fields.length; i++) { Assert.assertEquals(fields[i], bitField.get(i)); } } }