Skip to content

Commit f68b769

Browse files
committed
test: Add E2E tests for array functions
1 parent e100648 commit f68b769

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

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

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,4 +142,38 @@ public void testArrayUnion()
142142
// Union array of arrays.
143143
assertQuery("SELECT array_union(ARRAY[ARRAY[linenumber], ARRAY[suppkey, orderkey]], ARRAY[ARRAY[linenumber], ARRAY[partkey, partkey, null, orderkey], ARRAY[suppkey, orderkey]]) FROM lineitem");
144144
}
145+
146+
@Test
147+
public void testArrayMaxBy()
148+
{
149+
assertQuery("SELECT array_max_by(ARRAY['a', 'bbb', 'cc'], x -> length(x))");
150+
assertQuery("SELECT array_max_by(ARRAY['aa', 'bb', 'c'], x -> length(x))");
151+
assertQuery("SELECT array_max_by(ARRAY['a', NULL, 'bbb'], x -> length(x))");
152+
assertQuery("SELECT array_max_by(ARRAY[NULL, NULL], x -> length(x))");
153+
assertQuery("SELECT array_max_by(ARRAY[], x -> x)");
154+
assertQuery("SELECT array_max_by(ARRAY[-10, 5, 7], x -> abs(x))");
155+
assertQuery("SELECT array_max_by(ARRAY[1, 2, 3], x -> IF(x = 2, NULL, x))");
156+
}
157+
158+
@Test
159+
public void testArrayMinBy()
160+
{
161+
assertQuery("SELECT array_min_by(ARRAY['a', 'bbb', 'cc'], x -> length(x))");
162+
assertQuery("SELECT array_min_by(ARRAY['aa', 'bb', 'c'], x -> length(x))");
163+
assertQuery("SELECT array_min_by(ARRAY['a', NULL, 'bbb'], x -> length(x))");
164+
assertQuery("SELECT array_min_by(ARRAY[NULL, NULL], x -> length(x))");
165+
assertQuery("SELECT array_min_by(ARRAY[], x -> x)");
166+
assertQuery("SELECT array_min_by(ARRAY[-10, 5, 7], x -> abs(x))");
167+
assertQuery("SELECT array_min_by(ARRAY[1, 2, 3], x -> IF(x = 2, NULL, x))");
168+
}
169+
170+
@Test
171+
public void testArrayTopN()
172+
{
173+
assertQuery("SELECT array_top_n(ARRAY[1, 5, 3, 9, 2], 3)");
174+
assertQuery("SELECT array_top_n(ARRAY[1, 2], 5)");
175+
assertQuery("SELECT array_top_n(ARRAY[5, 1, 5, 3], 2)");
176+
assertQuery("SELECT array_top_n(ARRAY[1, NULL, 3, 2], 2)");
177+
assertQuery("SELECT array_top_n(ARRAY[1, 2, 3], 0)");
178+
}
145179
}

0 commit comments

Comments
 (0)