package it.unimi.dsi.bits; import it.unimi.dsi.bits.TransformationStrategies; import junit.framework.TestCase; public class IsoTransformationStrategyTest extends TestCase { public void testGetLong() { String s = new String( new char[] { '\u0001', '\u0002' } ); assertEquals( 24, TransformationStrategies.prefixFreeIso().toBitVector( s ).length() ); assertEquals( 0x4080L, TransformationStrategies.prefixFreeIso().toBitVector( s ).getLong( 0, 16 ) ); assertEquals( 0x4080L, TransformationStrategies.prefixFreeIso().toBitVector( s ).getLong( 0, 24 ) ); s = new String( new char[] { '\u0001', '\u0002', '\u0003' } ); assertEquals( 32, TransformationStrategies.prefixFreeIso().toBitVector( s ).length() ); assertEquals( 0xC04080L, TransformationStrategies.prefixFreeIso().toBitVector( s ).getLong( 0, 24 ) ); assertEquals( 0xC04080L, TransformationStrategies.prefixFreeIso().toBitVector( s ).getLong( 0, 32 ) ); s = new String( new char[] { '\u0001', '\u0002', '\u0003', '\u0004' } ); assertEquals( 40, TransformationStrategies.prefixFreeIso().toBitVector( s ).length() ); assertEquals( 0x20C04080L, TransformationStrategies.prefixFreeIso().toBitVector( s ).getLong( 0, 32 ) ); assertEquals( 0, TransformationStrategies.prefixFreeIso().toBitVector( s ).getLong( 32, 40 ) ); //System.err.println( Long.toHexString( TransformationStrategies.prefixFreeIso().toBitVector( s ).getLong( 16, 80 ) )); assertEquals( 0x20C040L, TransformationStrategies.prefixFreeIso().toBitVector( s ).getLong( 8, 40 ) ); s = new String( new char[] { '\u0001', '\u0002' } ); assertEquals( 16, TransformationStrategies.iso().toBitVector( s ).length() ); assertEquals( 0x4080L, TransformationStrategies.iso().toBitVector( s ).getLong( 0, 16 ) ); s = new String( new char[] { '\u0001', '\u0002', '\u0003' } ); assertEquals( 24, TransformationStrategies.iso().toBitVector( s ).length() ); assertEquals( 0xC04080L, TransformationStrategies.iso().toBitVector( s ).getLong( 0, 24 ) ); s = new String( new char[] { '\u0001', '\u0002', '\u0003', '\u0004' } ); assertEquals( 32, TransformationStrategies.iso().toBitVector( s ).length() ); assertEquals( 0x20C04080L, TransformationStrategies.iso().toBitVector( s ).getLong( 0, 32 ) ); s = new String( new char[] { '\u0001', '\u00FF', '\u00FF', '\u00FF', '\u0001', '\u0001', '\u0001', '\u0001' } ); assertEquals( 64, TransformationStrategies.iso().toBitVector( s ).length() ); assertEquals( 0x80808080FFFFFF80L, TransformationStrategies.iso().toBitVector( s ).getLong( 0, 64 ) ); } }