public static Block createBooleansBlock(Boolean value, int count) { return createBooleansBlock(Collections.nCopies(count, value)); }
public static Block createBooleansBlock(Boolean... values) { requireNonNull(values, "varargs 'values' is null"); return createBooleansBlock(Arrays.asList(values)); }
@Test public void testMaxBooleanLongArray() { InternalAggregationFunction function = METADATA.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("max_by", AGGREGATE, parseTypeSignature("array(bigint)"), parseTypeSignature("array(bigint)"), parseTypeSignature(StandardTypes.BOOLEAN))); assertAggregation( function, asList(2L, 2L), createArrayBigintBlock(asList(asList(3L, 4L), null, asList(2L, 2L))), createBooleansBlock(false, false, true)); }
@Test public void testBoolean() { InternalAggregationFunction booleanAgg = metadata.getFunctionRegistry().getAggregateFunctionImplementation( new Signature("array_agg", AGGREGATE, parseTypeSignature("array(boolean)"), parseTypeSignature(StandardTypes.BOOLEAN))); assertAggregation( booleanAgg, Arrays.asList(true, false), createBooleansBlock(new Boolean[] {true, false})); }
@Test public void testMinBooleanLongArray() { InternalAggregationFunction function = METADATA.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("min_by", AGGREGATE, parseTypeSignature("array(bigint)"), parseTypeSignature("array(bigint)"), parseTypeSignature(StandardTypes.BOOLEAN))); assertAggregation( function, null, createArrayBigintBlock(asList(asList(3L, 4L), null, null)), createBooleansBlock(true, false, true)); }
@Test public void testValidBoolean() { InternalAggregationFunction booleanAgg = metadata.getFunctionRegistry().getAggregateFunctionImplementation( new Signature("arbitrary", AGGREGATE, parseTypeSignature(StandardTypes.BOOLEAN), parseTypeSignature(StandardTypes.BOOLEAN))); assertAggregation( booleanAgg, true, createBooleansBlock(true, true)); }
@Test public void testNullBoolean() { InternalAggregationFunction booleanAgg = metadata.getFunctionRegistry().getAggregateFunctionImplementation( new Signature("arbitrary", AGGREGATE, parseTypeSignature(StandardTypes.BOOLEAN), parseTypeSignature(StandardTypes.BOOLEAN))); assertAggregation( booleanAgg, null, createBooleansBlock((Boolean) null)); }
@Test public void testEmpty() { InternalAggregationFunction booleanAgg = metadata.getFunctionRegistry().getAggregateFunctionImplementation( new Signature("checksum", AGGREGATE, parseTypeSignature(VARBINARY), parseTypeSignature(BOOLEAN))); assertAggregation(booleanAgg, null, createBooleansBlock()); }
@Test public void testBoolean() { InternalAggregationFunction booleanAgg = metadata.getFunctionRegistry().getAggregateFunctionImplementation( new Signature("checksum", AGGREGATE, parseTypeSignature(VARBINARY), parseTypeSignature(BOOLEAN))); Block block = createBooleansBlock(null, null, true, false, false); assertAggregation(booleanAgg, expectedChecksum(BooleanType.BOOLEAN, block), block); }
@Test public void testMinBooleanVarchar() { InternalAggregationFunction function = METADATA.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("min_by", AGGREGATE, parseTypeSignature(StandardTypes.VARCHAR), parseTypeSignature(StandardTypes.VARCHAR), parseTypeSignature(StandardTypes.BOOLEAN))); assertAggregation( function, "b", createStringsBlock("a", "b", "c"), createBooleansBlock(true, false, true)); }
@Test public void testMaxBooleanVarchar() { InternalAggregationFunction function = METADATA.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("max_by", AGGREGATE, parseTypeSignature(StandardTypes.VARCHAR), parseTypeSignature(StandardTypes.VARCHAR), parseTypeSignature(StandardTypes.BOOLEAN))); assertAggregation( function, "c", createStringsBlock("a", "b", "c"), createBooleansBlock(false, false, true)); }
@Test public void testMaxUnknown() { InternalAggregationFunction unknownKey = METADATA.getFunctionRegistry().getAggregateFunctionImplementation( new Signature("max_by", AGGREGATE, parseTypeSignature(UnknownType.NAME), parseTypeSignature(UnknownType.NAME), parseTypeSignature(StandardTypes.DOUBLE))); assertAggregation( unknownKey, null, createBooleansBlock(null, null), createDoublesBlock(1.0, 2.0)); InternalAggregationFunction unknownValue = METADATA.getFunctionRegistry().getAggregateFunctionImplementation( new Signature("max_by", AGGREGATE, parseTypeSignature(StandardTypes.DOUBLE), parseTypeSignature(StandardTypes.DOUBLE), parseTypeSignature(UnknownType.NAME))); assertAggregation( unknownKey, null, createDoublesBlock(1.0, 2.0), createBooleansBlock(null, null)); }
@Test public void testMinUnknown() { InternalAggregationFunction unknownKey = METADATA.getFunctionRegistry().getAggregateFunctionImplementation( new Signature("min_by", AGGREGATE, parseTypeSignature(UnknownType.NAME), parseTypeSignature(UnknownType.NAME), parseTypeSignature(StandardTypes.DOUBLE))); assertAggregation( unknownKey, null, createBooleansBlock(null, null), createDoublesBlock(1.0, 2.0)); InternalAggregationFunction unknownValue = METADATA.getFunctionRegistry().getAggregateFunctionImplementation( new Signature("min_by", AGGREGATE, parseTypeSignature(StandardTypes.DOUBLE), parseTypeSignature(StandardTypes.DOUBLE), parseTypeSignature(UnknownType.NAME))); assertAggregation( unknownKey, null, createDoublesBlock(1.0, 2.0), createBooleansBlock(null, null)); }
@Test public void testSharedGroupBy() { MapType mapType = mapType(VARCHAR, BIGINT); InternalAggregationFunction aggregationFunction = getAggregation(mapType.getTypeSignature(), parseTypeSignature(StandardTypes.VARCHAR)); assertAggregation( aggregationFunction, ImmutableMap.of("a", 1L, "b", 1L, "c", 1L), createStringsBlock("a", "b", "c")); mapType = mapType(BIGINT, BIGINT); aggregationFunction = getAggregation(mapType.getTypeSignature(), parseTypeSignature(StandardTypes.BIGINT)); assertAggregation( aggregationFunction, ImmutableMap.of(100L, 1L, 200L, 1L, 300L, 1L), createLongsBlock(100L, 200L, 300L)); mapType = mapType(DOUBLE, BIGINT); aggregationFunction = getAggregation(mapType.getTypeSignature(), parseTypeSignature(StandardTypes.DOUBLE)); assertAggregation( aggregationFunction, ImmutableMap.of(0.1, 1L, 0.3, 1L, 0.2, 1L), createDoublesBlock(0.1, 0.3, 0.2)); mapType = mapType(BOOLEAN, BIGINT); aggregationFunction = getAggregation(mapType.getTypeSignature(), parseTypeSignature(StandardTypes.BOOLEAN)); assertAggregation( aggregationFunction, ImmutableMap.of(true, 1L, false, 1L), createBooleansBlock(true, false)); }
ImmutableMap.of(1.0, true, 2.0, false, 3.0, false), createDoublesBlock(1.0, 2.0, 3.0), createBooleansBlock(true, false, false));
aggregationFunction, ImmutableMap.of(true, 1L, false, 1L), createBooleansBlock(true, false));
public static Block createBooleansBlock(Boolean... values) { requireNonNull(values, "varargs 'values' is null"); return createBooleansBlock(Arrays.asList(values)); }
@Test public void testBoolean() throws Exception { InternalAggregationFunction booleanAgg = metadata.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("array_agg", AGGREGATE, "array(boolean)", "boolean")); assertAggregation( booleanAgg, 1.0, Arrays.asList(true, false), createBooleansBlock(new Boolean[] {true, false})); }
@Test public void testNullBoolean() throws Exception { InternalAggregationFunction booleanAgg = metadata.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("arbitrary", AGGREGATE, StandardTypes.BOOLEAN, StandardTypes.BOOLEAN)); assertAggregation( booleanAgg, 1.0, null, createBooleansBlock((Boolean) null)); }
@Test public void testValidBoolean() throws Exception { InternalAggregationFunction booleanAgg = metadata.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("arbitrary", AGGREGATE, StandardTypes.BOOLEAN, StandardTypes.BOOLEAN)); assertAggregation( booleanAgg, 1.0, true, createBooleansBlock(true, true)); }