public FEELFnResult<String> invoke(@ParameterName("from") Object val) {
        if ( val == null ) {
            return FEELFnResult.ofResult( null );
        } else {
            return FEELFnResult.ofResult( TypeUtil.formatValue(val, false) );
        }
    }
@Test
    void invokeDurationSeconds() {
        FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofSeconds(9)), "PT9S");
        FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofSeconds(200)), "PT3M20S");
        FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofSeconds(5000)), "PT1H23M20S");
        FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofSeconds(90061)), "P1DT1H1M1S");
        FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofSeconds(-90061)), "-P1DT1H1M1S");
    }