throw new AssertionError("wtf?!"); if (canBeLong(min) && canBeLong(max)) { return chooseFixedRep( ordinal, p, toLong(min), toLong(max)); if (codeBitCount < 10 && values.size() > 2000) { final ArrayTable.Representation representation = chooseFixedRep(-1, Primitive.INT, 0, codeCount - 1); return new ArrayTable.ObjectDictionary(ordinal, representation);
/** Freezes the contents of this value set into a column, optionally * re-ordering if {@code sources} is specified. */ ArrayTable.Column freeze(int ordinal, int[] sources) { ArrayTable.Representation representation = chooseRep(ordinal); final int cardinality = map.size() + (containsNull ? 1 : 0); final Object data = representation.freeze(this, sources); return new ArrayTable.Column(representation, data, cardinality); }
new ColumnLoader.ValueSet(int.class); valueSet.add(0); valueSet.add(1); valueSet.add(10); pair = valueSet.freeze(0, null); assertTrue( pair.representation instanceof ArrayTable.BitSlicedPrimitiveArray); valueSet.add(-32); pair = valueSet.freeze(0, null); assertTrue( pair.representation instanceof ArrayTable.BitSlicedPrimitiveArray); valueSet.add(63); pair = valueSet.freeze(0, null); assertTrue( pair.representation instanceof ArrayTable.BitSlicedPrimitiveArray); valueSet.add(64); pair = valueSet.freeze(0, null); assertTrue(pair.representation instanceof ArrayTable.PrimitiveArray); ArrayTable.PrimitiveArray representation2 =
new ColumnLoader.ValueSet(int.class); valueSet.add(0); valueSet.add(1); valueSet.add(10); pair = valueSet.freeze(0, null); assertTrue( pair.representation instanceof ArrayTable.BitSlicedPrimitiveArray); valueSet.add(-32); pair = valueSet.freeze(0, null); assertTrue( pair.representation instanceof ArrayTable.BitSlicedPrimitiveArray); valueSet.add(63); pair = valueSet.freeze(0, null); assertTrue( pair.representation instanceof ArrayTable.BitSlicedPrimitiveArray); valueSet.add(64); pair = valueSet.freeze(0, null); assertTrue(pair.representation instanceof ArrayTable.PrimitiveArray); ArrayTable.PrimitiveArray representation2 =
new ColumnLoader.ValueSet(String.class); valueSet.add("foo"); valueSet.add("foo"); pair = valueSet.freeze(0, null); assertTrue(pair.representation instanceof ArrayTable.ObjectArray); final ArrayTable.ObjectArray representation = valueSet.add("foo"); pair = valueSet.freeze(0, null); final ArrayTable.ObjectDictionary representation2 = (ArrayTable.ObjectDictionary) pair.representation; valueSet.add("bar"); pair = valueSet.freeze(0, null); final ArrayTable.ObjectDictionary representation3 = (ArrayTable.ObjectDictionary) pair.representation;
new ColumnLoader.ValueSet(String.class); valueSet.add("foo"); valueSet.add("foo"); pair = valueSet.freeze(0, null); assertTrue(pair.representation instanceof ArrayTable.ObjectArray); final ArrayTable.ObjectArray representation = valueSet.add("foo"); pair = valueSet.freeze(0, null); final ArrayTable.ObjectDictionary representation2 = (ArrayTable.ObjectDictionary) pair.representation; valueSet.add("bar"); pair = valueSet.freeze(0, null); final ArrayTable.ObjectDictionary representation3 = (ArrayTable.ObjectDictionary) pair.representation;
throw new AssertionError("wtf?!"); if (canBeLong(min) && canBeLong(max)) { return chooseFixedRep( ordinal, p, toLong(min), toLong(max)); if (codeBitCount < 10 && values.size() > 2000) { final ArrayTable.Representation representation = chooseFixedRep(-1, Primitive.INT, 0, codeCount - 1); return new ArrayTable.ObjectDictionary(ordinal, representation);
@Test public void testOneValueOneNull() { ArrayTable.Column pair; final ColumnLoader.ValueSet valueSet = new ColumnLoader.ValueSet(String.class); valueSet.add(null); valueSet.add("foo"); pair = valueSet.freeze(0, null); assertTrue(pair.representation instanceof ArrayTable.ObjectArray); final ArrayTable.ObjectArray representation = (ArrayTable.ObjectArray) pair.representation; assertNull(representation.getObject(pair.dataSet, 0)); assertEquals(2, pair.cardinality); for (int i = 0; i < 3000; i++) { valueSet.add(null); } pair = valueSet.freeze(0, null); final ArrayTable.ObjectDictionary representation2 = (ArrayTable.ObjectDictionary) pair.representation; assertEquals( 1, ((ArrayTable.BitSlicedPrimitiveArray) representation2.representation).bitCount); assertEquals("foo", representation2.getObject(pair.dataSet, 1)); assertNull(representation2.getObject(pair.dataSet, 10)); assertEquals(2, pair.cardinality); }
@Test public void testOneValueOneNull() { ArrayTable.Column pair; final ColumnLoader.ValueSet valueSet = new ColumnLoader.ValueSet(String.class); valueSet.add(null); valueSet.add("foo"); pair = valueSet.freeze(0, null); assertTrue(pair.representation instanceof ArrayTable.ObjectArray); final ArrayTable.ObjectArray representation = (ArrayTable.ObjectArray) pair.representation; assertNull(representation.getObject(pair.dataSet, 0)); assertEquals(2, pair.cardinality); for (int i = 0; i < 3000; i++) { valueSet.add(null); } pair = valueSet.freeze(0, null); final ArrayTable.ObjectDictionary representation2 = (ArrayTable.ObjectDictionary) pair.representation; assertEquals( 1, ((ArrayTable.BitSlicedPrimitiveArray) representation2.representation).bitCount); assertEquals("foo", representation2.getObject(pair.dataSet, 1)); assertNull(representation2.getObject(pair.dataSet, 10)); assertEquals(2, pair.cardinality); }
public Object freeze(ColumnLoader.ValueSet valueSet, int[] sources) { final int n = valueSet.map.keySet().size(); int extra = valueSet.containsNull ? 1 : 0; Comparable[] codeValues = valueSet.map.keySet().toArray(new Comparable[n + extra]); Arrays.sort(codeValues, 0, n); ColumnLoader.ValueSet codeValueSet = new ColumnLoader.ValueSet(int.class); final List<Comparable> list = permuteList(valueSet.values, sources); for (Comparable value : list) { int code; if (value == null) { code = n; } else { code = Arrays.binarySearch(codeValues, value); assert code >= 0 : code + ", " + value; } codeValueSet.add(code); } Object codes = representation.freeze(codeValueSet, null); return Pair.of(codes, codeValues); }
@Test public void testAllNull() { ArrayTable.Column pair; final ColumnLoader.ValueSet valueSet = new ColumnLoader.ValueSet(String.class); valueSet.add(null); pair = valueSet.freeze(0, null); assertTrue(pair.representation instanceof ArrayTable.ObjectArray); final ArrayTable.ObjectArray representation = (ArrayTable.ObjectArray) pair.representation; assertNull(representation.getObject(pair.dataSet, 0)); assertEquals(1, pair.cardinality); for (int i = 0; i < 3000; i++) { valueSet.add(null); } pair = valueSet.freeze(0, null); final ArrayTable.ObjectDictionary representation2 = (ArrayTable.ObjectDictionary) pair.representation; assertTrue( representation2.representation instanceof ArrayTable.Constant); assertEquals(1, pair.cardinality); }
public Object freeze(ColumnLoader.ValueSet valueSet, int[] sources) { final int n = valueSet.map.keySet().size(); int extra = valueSet.containsNull ? 1 : 0; Comparable[] codeValues = valueSet.map.keySet().toArray(new Comparable[n + extra]); Arrays.sort(codeValues, 0, n); ColumnLoader.ValueSet codeValueSet = new ColumnLoader.ValueSet(int.class); final List<Comparable> list = permuteList(valueSet.values, sources); for (Comparable value : list) { int code; if (value == null) { code = n; } else { code = Arrays.binarySearch(codeValues, value); assert code >= 0 : code + ", " + value; } codeValueSet.add(code); } Object codes = representation.freeze(codeValueSet, null); return Pair.of(codes, codeValues); }
@Test public void testAllNull() { ArrayTable.Column pair; final ColumnLoader.ValueSet valueSet = new ColumnLoader.ValueSet(String.class); valueSet.add(null); pair = valueSet.freeze(0, null); assertTrue(pair.representation instanceof ArrayTable.ObjectArray); final ArrayTable.ObjectArray representation = (ArrayTable.ObjectArray) pair.representation; assertNull(representation.getObject(pair.dataSet, 0)); assertEquals(1, pair.cardinality); for (int i = 0; i < 3000; i++) { valueSet.add(null); } pair = valueSet.freeze(0, null); final ArrayTable.ObjectDictionary representation2 = (ArrayTable.ObjectDictionary) pair.representation; assertTrue( representation2.representation instanceof ArrayTable.Constant); assertEquals(1, pair.cardinality); }
@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)); }
/** Freezes the contents of this value set into a column, optionally * re-ordering if {@code sources} is specified. */ ArrayTable.Column freeze(int ordinal, int[] sources) { ArrayTable.Representation representation = chooseRep(ordinal); final int cardinality = map.size() + (containsNull ? 1 : 0); final Object data = representation.freeze(this, sources); return new ArrayTable.Column(representation, data, cardinality); }