public FEELFnResult<List<BigDecimal>> invoke(@ParameterName( "list" ) List list, @ParameterName( "match" ) Object match) {
        if ( list == null ) {
            return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "list", "cannot be null"));
        }

        final List<BigDecimal> result = new ArrayList<>();
        for( int i = 0; i < list.size(); i++ ) {
            Object o = list.get( i );
            if ( o == null && match == null) {
                result.add( BigDecimal.valueOf( i+1L ) );
            } else if ( o != null && match != null ) {
                if ( equalsAsBigDecimals(o, match) || o.equals(match) ) {
                    result.add( BigDecimal.valueOf( i+1L ) );
                }
            }
        }
        return FEELFnResult.ofResult( result );
    }
@Test
    void invokeBigDecimal() {
        FunctionTestUtil.assertResult(indexOfFunction.invoke(Arrays.asList("test", null, 12), BigDecimal.valueOf(12))
                , Collections.emptyList());
        FunctionTestUtil.assertResult(
                indexOfFunction.invoke(Arrays.asList("test", null, BigDecimal.valueOf(12)), BigDecimal.valueOf(12)),
                Collections.singletonList(BigDecimal.valueOf(3)));
        FunctionTestUtil.assertResult(
                indexOfFunction.invoke(
                        Arrays.asList("test", null, BigDecimal.valueOf(12)),
                        BigDecimal.valueOf(12).setScale(4, BigDecimal.ROUND_HALF_UP)),
                Collections.singletonList(BigDecimal.valueOf(3)));
        FunctionTestUtil.assertResult(
                indexOfFunction.invoke(
                        Arrays.asList(BigDecimal.valueOf(12.00), "test", null, BigDecimal.valueOf(12)),
                        BigDecimal.valueOf(12)),
                Arrays.asList(BigDecimal.valueOf(1), BigDecimal.valueOf(4)));
    }