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); }
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); }
? (Class) pair.e : Object.class; ValueSet valueSet = new ValueSet(clazz); for (Object o : list2) { valueSet.add((Comparable) o);
? (Class) pair.e : Object.class; ValueSet valueSet = new ValueSet(clazz); for (Object o : list2) { valueSet.add((Comparable) o);
new ColumnLoader.ValueSet(int.class); valueSet.add(0); valueSet.add(1);
new ColumnLoader.ValueSet(int.class); valueSet.add(0); valueSet.add(1);
new ColumnLoader.ValueSet(String.class); valueSet.add("foo"); valueSet.add("foo");
new ColumnLoader.ValueSet(String.class); valueSet.add("foo"); valueSet.add("foo");
@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); }
@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 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)); }
@Test public void testValueSetZero() { final ColumnLoader.ValueSet valueSet = new ColumnLoader.ValueSet(boolean.class); valueSet.add(0); final ArrayTable.Column pair = valueSet.freeze(0, null); assertTrue(pair.representation instanceof ArrayTable.Constant); final ArrayTable.Constant representation = (ArrayTable.Constant) pair.representation; assertEquals(0, representation.getInt(pair.dataSet, 0)); assertEquals(1, pair.cardinality); }
@Test public void testValueSetZero() { final ColumnLoader.ValueSet valueSet = new ColumnLoader.ValueSet(boolean.class); valueSet.add(0); final ArrayTable.Column pair = valueSet.freeze(0, null); assertTrue(pair.representation instanceof ArrayTable.Constant); final ArrayTable.Constant representation = (ArrayTable.Constant) pair.representation; assertEquals(0, representation.getInt(pair.dataSet, 0)); assertEquals(1, pair.cardinality); }