@Test public void testPrimitiveArray() { long[] values = new long[]{0, 0}; ArrayTable.BitSlicedPrimitiveArray.orLong(4, values, 0, 0x0F); assertEquals(0x0F, values[0]); ArrayTable.BitSlicedPrimitiveArray.orLong(4, values, 2, 0x0F); assertEquals(0xF0F, values[0]); values = new long[]{ 0x1213141516171819L, 0x232425262728292AL, 0x3435363738393A3BL}; assertEquals( 0x324, ArrayTable.BitSlicedPrimitiveArray.getLong(12, values, 9)); assertEquals( 0xa3b, ArrayTable.BitSlicedPrimitiveArray.getLong(12, values, 10)); Arrays.fill(values, 0); for (int i = 0; i < 10; i++) { ArrayTable.BitSlicedPrimitiveArray.orLong(10, values, i, i); } for (int i = 0; i < 10; i++) { assertEquals( i, ArrayTable.BitSlicedPrimitiveArray.getLong(10, values, i)); } }
return new ArrayTable.BitSlicedPrimitiveArray( ordinal, bitCount, p, signed);
assertEquals(0, representation.getInt(pair.dataSet, 0)); assertEquals(1, representation.getInt(pair.dataSet, 1)); assertEquals(10, representation.getInt(pair.dataSet, 2)); assertEquals(10, representation.getObject(pair.dataSet, 2)); assertEquals(6, representation.bitCount); assertTrue(representation.signed); assertEquals(10, representation.getInt(pair.dataSet, 2)); assertEquals(10, representation.getObject(pair.dataSet, 2)); assertEquals(-32, representation.getInt(pair.dataSet, 3)); assertEquals(-32, representation.getObject(pair.dataSet, 3));
assertEquals(0, representation.getInt(pair.dataSet, 0)); assertEquals(1, representation.getInt(pair.dataSet, 1)); assertEquals(10, representation.getInt(pair.dataSet, 2)); assertEquals(10, representation.getObject(pair.dataSet, 2)); assertEquals(6, representation.bitCount); assertTrue(representation.signed); assertEquals(10, representation.getInt(pair.dataSet, 2)); assertEquals(10, representation.getObject(pair.dataSet, 2)); assertEquals(-32, representation.getInt(pair.dataSet, 3)); assertEquals(-32, representation.getObject(pair.dataSet, 3));
return new ArrayTable.BitSlicedPrimitiveArray( ordinal, bitCount, p, signed);
@Test public void testPrimitiveArray() { long[] values = new long[]{0, 0}; ArrayTable.BitSlicedPrimitiveArray.orLong(4, values, 0, 0x0F); assertEquals(0x0F, values[0]); ArrayTable.BitSlicedPrimitiveArray.orLong(4, values, 2, 0x0F); assertEquals(0xF0F, values[0]); values = new long[]{ 0x1213141516171819L, 0x232425262728292AL, 0x3435363738393A3BL}; assertEquals( 0x324, ArrayTable.BitSlicedPrimitiveArray.getLong(12, values, 9)); assertEquals( 0xa3b, ArrayTable.BitSlicedPrimitiveArray.getLong(12, values, 10)); Arrays.fill(values, 0); for (int i = 0; i < 10; i++) { ArrayTable.BitSlicedPrimitiveArray.orLong(10, values, i, i); } for (int i = 0; i < 10; i++) { assertEquals( i, ArrayTable.BitSlicedPrimitiveArray.getLong(10, values, i)); } }
@Test public void testValueSetBoolean() { final ColumnLoader.ValueSet valueSet = new ColumnLoader.ValueSet(boolean.class); valueSet.add(0); valueSet.add(1); valueSet.add(1); valueSet.add(0); final ArrayTable.Column pair = valueSet.freeze(0, null); assertTrue( pair.representation instanceof ArrayTable.BitSlicedPrimitiveArray); final ArrayTable.BitSlicedPrimitiveArray representation = (ArrayTable.BitSlicedPrimitiveArray) pair.representation; assertEquals(1, representation.bitCount); assertEquals(0, representation.getInt(pair.dataSet, 0)); assertEquals(1, representation.getInt(pair.dataSet, 1)); assertEquals(1, representation.getInt(pair.dataSet, 2)); assertEquals(0, representation.getInt(pair.dataSet, 3)); }
@Test public void testValueSetBoolean() { final ColumnLoader.ValueSet valueSet = new ColumnLoader.ValueSet(boolean.class); valueSet.add(0); valueSet.add(1); valueSet.add(1); valueSet.add(0); final ArrayTable.Column pair = valueSet.freeze(0, null); assertTrue( pair.representation instanceof ArrayTable.BitSlicedPrimitiveArray); final ArrayTable.BitSlicedPrimitiveArray representation = (ArrayTable.BitSlicedPrimitiveArray) pair.representation; assertEquals(1, representation.bitCount); assertEquals(0, representation.getInt(pair.dataSet, 0)); assertEquals(1, representation.getInt(pair.dataSet, 1)); assertEquals(1, representation.getInt(pair.dataSet, 2)); assertEquals(0, representation.getInt(pair.dataSet, 3)); }
public static void orLong( int bitCount, long[] values, int ordinal, long value) { orLong(bitCount, 64 / bitCount, values, ordinal, value); }
public static void orLong( int bitCount, long[] values, int ordinal, long value) { orLong(bitCount, 64 / bitCount, values, ordinal, value); }
public static long getLong( int bitCount, int chunksPerWord, long mask, long[] values, int ordinal) { final int word = ordinal / chunksPerWord; final int chunk = ordinal % chunksPerWord; final long value = values[word]; final int shift = chunk * bitCount; return (value >> shift) & mask; }
public static long getLong( int bitCount, int chunksPerWord, long mask, long[] values, int ordinal) { final int word = ordinal / chunksPerWord; final int chunk = ordinal % chunksPerWord; final long value = values[word]; final int shift = chunk * bitCount; return (value >> shift) & mask; }