Skip to content

Commit 2e2c031

Browse files
committed
Add end-to-end tests for numeric_histogram aggregate function
1 parent ac765b9 commit 2e2c031

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

presto-native-execution/src/test/java/com/facebook/presto/nativeworker/AbstractTestNativeAggregations.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,27 @@ public void testMultiMapAgg()
354354
assertQuery("SELECT orderkey, multimap_agg(linenumber % 3, discount) FROM lineitem GROUP BY 1");
355355
}
356356

357+
@Test
358+
public void testNumericHistogram()
359+
{
360+
assertQuery("SELECT numeric_histogram(2, v) FROM (VALUES (1.0), (2.0), (1000.0)) AS t(v)");
361+
assertQuery("SELECT numeric_histogram(2, v) FROM (VALUES (1.0), (2.0), (1000.0), (1001.0)) AS t(v)");
362+
assertQuery("SELECT numeric_histogram(5, v) FROM (VALUES (1.0), (2.0), (3.0)) AS t(v)");
363+
364+
assertQuery("SELECT numeric_histogram(2, v, w) FROM (VALUES (0.0, 1.0), (10.0, 3.0), (10000.0, 1.0)) AS t(v, w)");
365+
assertQuery("SELECT numeric_histogram(3, v, w) FROM (VALUES (1.0, 2.0), (2.0, 3.0), (3.0, 1.5)) AS t(v, w)");
366+
367+
assertQuery("SELECT numeric_histogram(3, v) FROM (VALUES (1.0), (null), (2.0), (null), (1000.0)) AS t(v)");
368+
369+
// numeric_histogram is approximate; results may differ between Java and C++ on large datasets,
370+
// consistent with other approximate aggregates (approx_percentile, approx_distinct, etc.).
371+
assertQuerySucceeds("SELECT numeric_histogram(5, quantity) FROM lineitem");
372+
assertQuerySucceeds("SELECT numeric_histogram(10, extendedprice, quantity) FROM lineitem");
373+
374+
assertQuery("SELECT cardinality(numeric_histogram(3, quantity)) <= 3 FROM lineitem", "SELECT true");
375+
assertQuery("SELECT reduce(map_values(numeric_histogram(3, v)), 0.0, (s, x) -> s + x, s -> s) FROM (VALUES (1.0), (2.0), (1000.0), (1001.0), (2000.0)) AS t(v)");
376+
}
377+
357378
@Test(dataProvider = "exchangeEncodingProvider")
358379
public void testMarkDistinct(String exchangeEncoding)
359380
{

0 commit comments

Comments
 (0)