public static Object max(List<Number> list) { return maxFunction.invoke(list).cata(e -> null, Function.identity()); }
@Before public void setUp() { maxFunction = new NNMaxFunction(); }
public FEELFnResult<Object> invoke(@ParameterName("c") Object[] list) { if ( list == null || list.length == 0 ) { return FEELFnResult.ofResult( null ); } return invoke( Arrays.asList( list ) ); }
@Test public void invokeArrayOfStrings() { FunctionTestUtil.assertResult(maxFunction.invoke(new Object[]{"a"}), "a"); FunctionTestUtil.assertResult(maxFunction.invoke(new Object[]{null, "a", "b", "c"}), "c"); FunctionTestUtil.assertResult(maxFunction.invoke(new Object[]{"a", null, "c", "b"}), "c"); FunctionTestUtil.assertResult(maxFunction.invoke(new Object[]{"c", "a", "b", null}), "c"); } }
@Test public void invokeListOfStrings() { FunctionTestUtil.assertResult(maxFunction.invoke(Collections.singletonList("a")), "a"); FunctionTestUtil.assertResult(maxFunction.invoke(Arrays.asList("a", "b", "c")), "c"); FunctionTestUtil.assertResult(maxFunction.invoke(Arrays.asList("a", "c", "b")), "c"); FunctionTestUtil.assertResult(maxFunction.invoke(Arrays.asList("c", "a", "b")), "c"); }
@Test public void invokeListOfIntegers() { FunctionTestUtil.assertResult(maxFunction.invoke(Collections.singletonList(1)), 1); FunctionTestUtil.assertResult(maxFunction.invoke(Arrays.asList(1, 2, 3)), 3); FunctionTestUtil.assertResult(maxFunction.invoke(Arrays.asList(1, 3, 2)), 3); FunctionTestUtil.assertResult(maxFunction.invoke(Arrays.asList(3, 1, 2)), 3); }
@Test public void invokeArrayOfIntegers() { FunctionTestUtil.assertResult(maxFunction.invoke(new Object[]{1}), 1); FunctionTestUtil.assertResult(maxFunction.invoke(new Object[]{null, 1, 2, 3}), 3); FunctionTestUtil.assertResult(maxFunction.invoke(new Object[]{1, 3, null, 2}), 3); FunctionTestUtil.assertResult(maxFunction.invoke(new Object[]{3, 1, 2, null}), 3); }
@Test public void invokeEmptyList() { FunctionTestUtil.assertResult(maxFunction.invoke(Collections.emptyList()), null); }
@Test public void invokeListWithHeterogenousTypes() { FunctionTestUtil.assertResultError(maxFunction.invoke(Arrays.asList(1, "test", BigDecimal.valueOf(10.2))), InvalidParametersEvent.class); }
@Test public void invokeArrayWithHeterogenousTypes() { FunctionTestUtil.assertResultError(maxFunction.invoke(new Object[]{1, "test", BigDecimal.valueOf(10.2)}), InvalidParametersEvent.class); }
@Test public void invokeEmptyArray() { FunctionTestUtil.assertResult(maxFunction.invoke(new Object[]{}), null); }
@Test public void invokeNullArray() { FunctionTestUtil.assertResult(maxFunction.invoke((Object[]) null), null); }
@Test public void invokeNullList() { FunctionTestUtil.assertResult(maxFunction.invoke((List) null), null); }