@Test public void invokeListParamSupportedTypesWithNull() { FunctionTestUtil.assertResult(modeFunction.invoke(Arrays.asList(20, 30, null, (long) 20, null, BigDecimal.TEN)), Arrays.asList( BigDecimal.valueOf(20) )); FunctionTestUtil.assertResult(modeFunction.invoke(Arrays.asList(20, 30, null, (long) 20, 30, BigDecimal.TEN)), Arrays.asList( BigDecimal.valueOf(20), BigDecimal.valueOf(30) )); FunctionTestUtil.assertResult(modeFunction.invoke(Arrays.asList(null, null, null)), null); }
@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 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 invokeListParamReturnTrue() { FunctionTestUtil.assertResult(anyFunction.invoke(Arrays.asList(Boolean.TRUE, Boolean.TRUE)), true); FunctionTestUtil.assertResult(anyFunction.invoke(Arrays.asList(Boolean.TRUE, Boolean.FALSE)), true); FunctionTestUtil.assertResult(anyFunction.invoke(Arrays.asList(Boolean.TRUE, null)), true); FunctionTestUtil.assertResult(anyFunction.invoke(Arrays.asList(Boolean.TRUE, null, Boolean.FALSE)), true); }
@Test public void invokeContainsNull() { FunctionTestUtil.assertResult(listContainsFunction.invoke(Collections.singletonList(null), null), true); FunctionTestUtil.assertResult(listContainsFunction.invoke(Arrays.asList(1, null), null), true); FunctionTestUtil.assertResult(listContainsFunction.invoke(Arrays.asList(null, 1), null), true); }
@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 invokeListWithDoubles() { FunctionTestUtil.assertResult(meanFunction.invoke(Arrays.asList(10.0d, 20.0d, 30.0d)), BigDecimal.valueOf(20)); FunctionTestUtil.assertResult(meanFunction.invoke(Arrays.asList(10.2d, 20.2d, 30.2d)), BigDecimal.valueOf(20.2)); }
@Test public void invokeNotEndsWith() { FunctionTestUtil.assertResult(endsWithFunction.invoke("test", "es"), false); FunctionTestUtil.assertResult(endsWithFunction.invoke("test", "ttttt"), false); FunctionTestUtil.assertResult(endsWithFunction.invoke("test", "estt"), false); FunctionTestUtil.assertResult(endsWithFunction.invoke("test", "tt"), false); } }
@Test public void invokeListNonEmpty() { final List<Object> values = new ArrayList<>(); values.add(1); values.add(BigDecimal.valueOf(10.5)); values.add("test"); FunctionTestUtil.assertResult(codeFunction.invoke(values), "[ 1, 10.5, \"test\" ]"); }
@Test public void invokeContains() { FunctionTestUtil.assertResult(listContainsFunction.invoke(Arrays.asList(1, 2, "test", BigDecimal.ONE), "test"), true); FunctionTestUtil.assertResult(listContainsFunction.invoke(Arrays.asList(1, 2, "test", BigDecimal.ONE), BigDecimal.ONE), true); }
@Test public void invokeNotStartsWith() { FunctionTestUtil.assertResult(startsWithFunction.invoke("test", "tte"), false); FunctionTestUtil.assertResult(startsWithFunction.invoke("test", "tt"), false); FunctionTestUtil.assertResult(startsWithFunction.invoke("test", "ttest"), false); } }
@Test public void invokeArrayWithDoubles() { FunctionTestUtil.assertResult(meanFunction.invoke(new Object[]{10.0d, 20.0d, 30.0d}), BigDecimal.valueOf(20)); FunctionTestUtil.assertResult(meanFunction.invoke(new Object[]{10.2d, 20.2d, 30.2d}), BigDecimal.valueOf(20.2)); } }
@Test public void invokeLocalDateTime() { final LocalDateTime localDateTime = LocalDateTime.now(); FunctionTestUtil.assertResult(stringFunction.invoke(localDateTime), DateAndTimeFunction.FEEL_DATE_TIME.format(localDateTime)); }
@Test public void invokeDurationNanosMillis() { FunctionTestUtil.assertResult(codeFunction.invoke(Duration.ofNanos(25)), "duration( \"PT0.000000025S\" )"); FunctionTestUtil.assertResult(codeFunction.invoke(Duration.ofNanos(10000)), "duration( \"PT0.00001S\" )"); FunctionTestUtil.assertResult(codeFunction.invoke(Duration.ofNanos(10025)), "duration( \"PT0.000010025S\" )"); FunctionTestUtil.assertResult(codeFunction.invoke(Duration.ofMillis(1500)), "duration( \"PT1.5S\" )"); FunctionTestUtil.assertResult(codeFunction.invoke(Duration.ofMillis(90061025)), "duration( \"P1DT1H1M1.025S\" )"); FunctionTestUtil.assertResult(codeFunction.invoke(Duration.ofMillis(-90061025)), "duration( \"-P1DT1H1M1.025S\" )"); }
@Test public void invokeArrayParamSupportedTypesWithNull() { FunctionTestUtil.assertResult(stddevFunction.invoke(new Object[]{20, 30, null, (long) 40, null, BigDecimal.TEN}), new BigDecimal("12.90994448735805628393088466594133", MathContext.DECIMAL128)); }
@Test public void invokeWithAllFlags() { FunctionTestUtil.assertResult(replaceFunction.invoke("fo\nbar", "O.^b", "ttt", "smi"), "ftttar"); } }
@Test public void invokeLocalDate() { final LocalDate localDate = LocalDate.now(); FunctionTestUtil.assertResult(stringFunction.invoke(localDate), localDate.toString()); }
@Test public void invokeRangeOpenOpen() { FunctionTestUtil.assertResult( codeFunction.invoke(new RangeImpl(Range.RangeBoundary.OPEN, 12, 15, Range.RangeBoundary.OPEN)), "( 12 .. 15 )"); }
@Test public void invokeStringParamWithOffset() { FunctionTestUtil.assertResult(timeFunction.invoke("10:15:06+01:00"), OffsetTime.of(10,15,6, 0, ZoneOffset.ofHours(1))); FunctionTestUtil.assertResult(timeFunction.invoke("10:15:06-01:00"), OffsetTime.of(10,15,6, 0, ZoneOffset.ofHours(-1))); }
@Test public void invokeTimeUnitsParamsWithOffset() { FunctionTestUtil.assertResult(timeFunction.invoke(10, 43, 15, Duration.ofHours(1)), OffsetTime.of(10, 43, 15, 0, ZoneOffset.ofHours(1))); FunctionTestUtil.assertResult(timeFunction.invoke(10, 43, 15, Duration.ofHours(-1)), OffsetTime.of(10, 43, 15, 0, ZoneOffset.ofHours(-1))); }