package it.unimi.dsi.bits;
import it.unimi.dsi.bits.BitVector;
import it.unimi.dsi.bits.LongArrayBitVector;
import it.unimi.dsi.bits.TransformationStrategies;
import it.unimi.dsi.bits.TransformationStrategy;
import junit.framework.TestCase;
public class PrefixFreeTransformationStrategyTest extends TestCase {
public void testGetBoolean() {
LongArrayBitVector v = LongArrayBitVector.of( 0, 1, 0 );
TransformationStrategy<BitVector> prefixFree = TransformationStrategies.prefixFree();
BitVector p = prefixFree.toBitVector( v );
assertTrue( p.getBoolean( 0 ) );
assertFalse( p.getBoolean( 1 ) );
assertTrue( p.getBoolean( 2 ) );
assertTrue( p.getBoolean( 3 ) );
assertTrue( p.getBoolean( 4 ) );
assertFalse( p.getBoolean( 5 ) );
assertFalse( p.getBoolean( 6 ) );
assertEquals( LongArrayBitVector.of( 1, 0, 1, 1, 1, 0, 0 ), p );
}
public void testGetLong() {
LongArrayBitVector v = LongArrayBitVector.getInstance();
v.append( 0xFFFFFFFFL, 32 );
TransformationStrategy<BitVector> prefixFree = TransformationStrategies.prefixFree();
BitVector p = prefixFree.toBitVector( v );
assertEquals( 0xFFFFFFFFFFFFFFFFL, p.getLong( 0, 64 ) );
assertFalse( p.getBoolean( 64 ) );
v.clear();
v.append( 0x0, 32 );
assertEquals( 0x5555555555555555L, p.getLong( 0, 64 ) );
assertFalse( p.getBoolean( 64 ) );
v.clear();
v.append( 0x3, 32 );
assertEquals( 0x555555555555555FL, p.getLong( 0, 64 ) );
assertEquals( 0x5FL, p.getLong( 0, 7 ) );
}
}