diff --git a/dmn-core/src/main/java/com/gs/dmn/dialect/JavaTimePythonStandardDMNDialectDefinition.java b/dmn-core/src/main/java/com/gs/dmn/dialect/JavaTimePythonStandardDMNDialectDefinition.java
index 0f2042e20..c7888a8cb 100644
--- a/dmn-core/src/main/java/com/gs/dmn/dialect/JavaTimePythonStandardDMNDialectDefinition.java
+++ b/dmn-core/src/main/java/com/gs/dmn/dialect/JavaTimePythonStandardDMNDialectDefinition.java
@@ -19,7 +19,7 @@
import com.gs.dmn.feel.synthesis.type.NativeTypeFactory;
import com.gs.dmn.feel.synthesis.type.StandardNativeTypeToPythonFactory;
import com.gs.dmn.log.BuildLogger;
-import com.gs.dmn.runtime.DefaultDMNBaseDecision;
+import com.gs.dmn.runtime.JavaTimeDMNBaseDecision;
import com.gs.dmn.serialization.TypeDeserializationConfigurer;
import com.gs.dmn.tck.ast.TestCases;
import com.gs.dmn.transformation.DMNToNativeTransformer;
@@ -66,7 +66,7 @@ public FEELLib cls) {
diff --git a/dmn-core/src/main/java/com/gs/dmn/dialect/StandardDMNDialectDefinition.java b/dmn-core/src/main/java/com/gs/dmn/dialect/StandardDMNDialectDefinition.java
deleted file mode 100644
index 8e080d8ef..000000000
--- a/dmn-core/src/main/java/com/gs/dmn/dialect/StandardDMNDialectDefinition.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.dialect;
-
-import com.gs.dmn.DMNModelRepository;
-import com.gs.dmn.context.environment.EnvironmentFactory;
-import com.gs.dmn.feel.lib.DefaultFEELLib;
-import com.gs.dmn.feel.lib.FEELLib;
-import com.gs.dmn.feel.synthesis.type.NativeTypeFactory;
-import com.gs.dmn.feel.synthesis.type.StandardNativeTypeFactory;
-import com.gs.dmn.log.BuildLogger;
-import com.gs.dmn.runtime.DefaultDMNBaseDecision;
-import com.gs.dmn.serialization.TypeDeserializationConfigurer;
-import com.gs.dmn.tck.ast.TestCases;
-import com.gs.dmn.transformation.DMNToJavaTransformer;
-import com.gs.dmn.transformation.DMNToNativeTransformer;
-import com.gs.dmn.transformation.DMNTransformer;
-import com.gs.dmn.transformation.InputParameters;
-import com.gs.dmn.transformation.basic.BasicDMNToJavaTransformer;
-import com.gs.dmn.transformation.lazy.LazyEvaluationDetector;
-import com.gs.dmn.transformation.template.TemplateProvider;
-import com.gs.dmn.validation.DMNValidator;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-/**
- * @deprecated As of release 8.3.0, replaced by {@link JavaTimeDMNDialectDefinition}
- */
-@Deprecated
-public class StandardDMNDialectDefinition extends AbstractStandardDMNDialectDefinition {
- //
- // DMN Processors
- //
- @Override
- public DMNToNativeTransformer createDMNToNativeTransformer(DMNValidator dmnValidator, DMNTransformer dmnTransformer, TemplateProvider templateProvider, LazyEvaluationDetector lazyEvaluationDetector, TypeDeserializationConfigurer typeDeserializationConfigurer, InputParameters inputParameters, BuildLogger logger) {
- return new DMNToJavaTransformer<>(this, dmnValidator, dmnTransformer, templateProvider, lazyEvaluationDetector, typeDeserializationConfigurer, inputParameters, logger);
- }
-
- @Override
- public BasicDMNToJavaTransformer createBasicTransformer(DMNModelRepository repository, LazyEvaluationDetector lazyEvaluationDetector, InputParameters inputParameters) {
- EnvironmentFactory environmentFactory = createEnvironmentFactory();
- return new BasicDMNToJavaTransformer(this, repository, environmentFactory, createNativeTypeFactory(), lazyEvaluationDetector, inputParameters);
- }
-
- //
- // DMN execution
- //
- @Override
- public NativeTypeFactory createNativeTypeFactory() {
- return new StandardNativeTypeFactory();
- }
-
- @Override
- public FEELLib createFEELLib() {
- return new DefaultFEELLib();
- }
-
- @Override
- public String getDecisionBaseClass() {
- return DefaultDMNBaseDecision.class.getName();
- }
-}
diff --git a/dmn-core/src/main/java/com/gs/dmn/feel/synthesis/type/StandardNativeTypeFactory.java b/dmn-core/src/main/java/com/gs/dmn/feel/synthesis/type/StandardNativeTypeFactory.java
deleted file mode 100644
index 61d3aa5f4..000000000
--- a/dmn-core/src/main/java/com/gs/dmn/feel/synthesis/type/StandardNativeTypeFactory.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.synthesis.type;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import static com.gs.dmn.el.analysis.semantics.type.AnyType.ANY;
-import static com.gs.dmn.el.analysis.semantics.type.NullType.NULL;
-import static com.gs.dmn.feel.analysis.semantics.type.BooleanType.BOOLEAN;
-import static com.gs.dmn.feel.analysis.semantics.type.DateTimeType.DATE_AND_TIME;
-import static com.gs.dmn.feel.analysis.semantics.type.DateType.DATE;
-import static com.gs.dmn.feel.analysis.semantics.type.DaysAndTimeDurationType.DAYS_AND_TIME_DURATION;
-import static com.gs.dmn.feel.analysis.semantics.type.YearsAndMonthsDurationType.YEARS_AND_MONTHS_DURATION;
-import static com.gs.dmn.feel.analysis.semantics.type.EnumerationType.ENUMERATION;
-import static com.gs.dmn.feel.analysis.semantics.type.NumberType.NUMBER;
-import static com.gs.dmn.feel.analysis.semantics.type.StringType.STRING;
-import static com.gs.dmn.feel.analysis.semantics.type.TimeType.TIME;
-
-public class StandardNativeTypeFactory extends JavaTypeFactory {
- private static final Map FEEL_TYPE_TO_JAVA_TYPE = new LinkedHashMap<>();
- static {
- FEEL_TYPE_TO_JAVA_TYPE.put(ENUMERATION.getName(), String.class.getSimpleName());
- FEEL_TYPE_TO_JAVA_TYPE.put(YEARS_AND_MONTHS_DURATION.getName(), javax.xml.datatype.Duration.class.getName());
- FEEL_TYPE_TO_JAVA_TYPE.put(DAYS_AND_TIME_DURATION.getName(), javax.xml.datatype.Duration.class.getName());
- FEEL_TYPE_TO_JAVA_TYPE.put(DATE_AND_TIME.getName(), javax.xml.datatype.XMLGregorianCalendar.class.getName());
- FEEL_TYPE_TO_JAVA_TYPE.put(TIME.getName(), javax.xml.datatype.XMLGregorianCalendar.class.getName());
- FEEL_TYPE_TO_JAVA_TYPE.put(DATE.getName(), javax.xml.datatype.XMLGregorianCalendar.class.getName());
- FEEL_TYPE_TO_JAVA_TYPE.put(STRING.getName(), String.class.getSimpleName());
- FEEL_TYPE_TO_JAVA_TYPE.put(BOOLEAN.getName(), Boolean.class.getSimpleName());
- FEEL_TYPE_TO_JAVA_TYPE.put(NUMBER.getName(), java.math.BigDecimal.class.getName());
- FEEL_TYPE_TO_JAVA_TYPE.put(ANY.getName(), Object.class.getSimpleName());
- FEEL_TYPE_TO_JAVA_TYPE.put(NULL.getName(), Object.class.getSimpleName());
- }
-
- private static final Map FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE = new LinkedHashMap<>();
- static {
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(ENUMERATION.getName(), String.class.getName());
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(YEARS_AND_MONTHS_DURATION.getName(), javax.xml.datatype.Duration.class.getName());
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(DAYS_AND_TIME_DURATION.getName(), javax.xml.datatype.Duration.class.getName());
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(DATE_AND_TIME.getName(), javax.xml.datatype.XMLGregorianCalendar.class.getName());
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(TIME.getName(), javax.xml.datatype.XMLGregorianCalendar.class.getName());
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(DATE.getName(), javax.xml.datatype.XMLGregorianCalendar.class.getName());
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(STRING.getName(), String.class.getName());
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(BOOLEAN.getName(), Boolean.class.getName());
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(NUMBER.getName(), java.math.BigDecimal.class.getName());
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(ANY.getName(), Object.class.getName());
- FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.put(NULL.getName(), Object.class.getName());
- }
-
- @Override
- public String toNativeType(String feelType) {
- return FEEL_TYPE_TO_JAVA_TYPE.get(feelType);
- }
-
- @Override
- public String toQualifiedNativeType(String feelType) {
- return FEEL_TYPE_TO_QUALIFIED_JAVA_TYPE.get(feelType);
- }
-}
diff --git a/dmn-core/src/main/java/com/gs/dmn/runtime/interpreter/TypeChecker.java b/dmn-core/src/main/java/com/gs/dmn/runtime/interpreter/TypeChecker.java
index 8ff40e2c1..ad2401ec6 100644
--- a/dmn-core/src/main/java/com/gs/dmn/runtime/interpreter/TypeChecker.java
+++ b/dmn-core/src/main/java/com/gs/dmn/runtime/interpreter/TypeChecker.java
@@ -34,7 +34,6 @@
import com.gs.dmn.transformation.basic.BasicDMNToNativeTransformer;
import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;
import java.time.*;
import java.time.temporal.TemporalAmount;
@@ -145,15 +144,15 @@ private static boolean isDuration(Object value) {
}
private static boolean isDateTime(Object value) {
- return value instanceof XMLGregorianCalendar || value instanceof LocalDateTime || value instanceof OffsetDateTime || value instanceof ZonedDateTime;
+ return value instanceof LocalDateTime || value instanceof OffsetDateTime || value instanceof ZonedDateTime;
}
private static boolean isTime(Object value) {
- return value instanceof XMLGregorianCalendar || value instanceof OffsetTime || value instanceof LocalTime;
+ return value instanceof OffsetTime || value instanceof LocalTime;
}
private static boolean isDate(Object value) {
- return value instanceof XMLGregorianCalendar || value instanceof LocalDate;
+ return value instanceof LocalDate;
}
private static boolean isComparable(Object value) {
diff --git a/dmn-core/src/test/java/com/gs/dmn/dialect/StandardDMNDialectDefinitionTest.java b/dmn-core/src/test/java/com/gs/dmn/dialect/StandardDMNDialectDefinitionTest.java
deleted file mode 100644
index 9766b8e70..000000000
--- a/dmn-core/src/test/java/com/gs/dmn/dialect/StandardDMNDialectDefinitionTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.dialect;
-
-import com.gs.dmn.feel.lib.DefaultFEELLib;
-import com.gs.dmn.feel.synthesis.type.StandardNativeTypeFactory;
-import com.gs.dmn.runtime.DefaultDMNBaseDecision;
-import com.gs.dmn.runtime.interpreter.StandardDMNInterpreter;
-import com.gs.dmn.tck.ast.TestCases;
-import com.gs.dmn.transformation.DMNToJavaTransformer;
-import com.gs.dmn.transformation.basic.BasicDMNToJavaTransformer;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-public class StandardDMNDialectDefinitionTest extends AbstractStandardDMNDialectDefinitionTest {
- @Override
- protected DMNDialectDefinition makeDialect() {
- return new StandardDMNDialectDefinition();
- }
-
- @Override
- protected String getExpectedDMNInterpreterClass() {
- return StandardDMNInterpreter.class.getName();
- }
-
- @Override
- protected String getExpectedDMNToNativeTransformerClass() {
- return DMNToJavaTransformer.class.getName();
- }
-
- @Override
- protected String getBasicTransformerClass() {
- return BasicDMNToJavaTransformer.class.getName();
- }
-
- @Override
- protected String getExpectedNativeTypeFactoryClass() {
- return StandardNativeTypeFactory.class.getName();
- }
-
- @Override
- protected String getExpectedFEELLibClass() {
- return DefaultFEELLib.class.getName();
- }
-
- @Override
- protected String getExpectedDecisionBaseClass() {
- return DefaultDMNBaseDecision.class.getName();
- }
-}
\ No newline at end of file
diff --git a/dmn-core/src/test/java/com/gs/dmn/feel/DefaultStandardFEELProcessorTest.java b/dmn-core/src/test/java/com/gs/dmn/feel/DefaultStandardFEELProcessorTest.java
deleted file mode 100644
index b390905c7..000000000
--- a/dmn-core/src/test/java/com/gs/dmn/feel/DefaultStandardFEELProcessorTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel;
-
-import com.gs.dmn.dialect.DMNDialectDefinition;
-import com.gs.dmn.dialect.StandardDMNDialectDefinition;
-import com.gs.dmn.tck.ast.TestCases;
-import org.junit.jupiter.api.Test;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class DefaultStandardFEELProcessorTest extends AbstractStandardFEELProcessorTest {
- @Override
- protected DMNDialectDefinition makeDialect() {
- return new StandardDMNDialectDefinition();
- }
-
- @Override
- protected String numberType() {
- return BigDecimal.class.getName();
- }
-
- @Override
- @Test
- public void testConversionFunctions() {
- super.testConversionFunctions();
-
- List entries = Collections.emptyList();
-
- doExpressionTest(entries, "", "date and time(date and time(\"2012-03-01T13:14:15Z\"), time(\"10:11:12Z\"))",
- "FunctionInvocation(Name(date and time) -> PositionalParameters(DateTimeLiteral(date and time, \"2012-03-01T13:14:15Z\"), DateTimeLiteral(time, \"10:11:12Z\")))",
- "date and time",
- "dateAndTime(dateAndTime(\"2012-03-01T13:14:15Z\"), time(\"10:11:12Z\"))",
- this.lib.dateAndTime(this.lib.dateAndTime("2012-03-01T13:14:15Z"), this.lib.time("10:11:12Z")),
- this.lib.dateAndTime("2012-03-01T10:11:12Z"));
-
- doExpressionTest(entries, "", "years and months duration(date and time(\"2012-03-01T10:12:00Z\"), date and time(\"2012-03-01T10:12:00Z\"))",
- "FunctionInvocation(Name(years and months duration) -> PositionalParameters(DateTimeLiteral(date and time, \"2012-03-01T10:12:00Z\"), DateTimeLiteral(date and time, \"2012-03-01T10:12:00Z\")))",
- "years and months duration",
- "yearsAndMonthsDuration(dateAndTime(\"2012-03-01T10:12:00Z\"), dateAndTime(\"2012-03-01T10:12:00Z\"))",
- this.lib.yearsAndMonthsDuration(this.lib.dateAndTime("2012-03-01T10:12:00Z"), this.lib.dateAndTime("2012-03-01T10:12:00Z")),
- this.lib.duration("P0Y0M"));
- doExpressionTest(entries, "", "years and months duration(date and time(\"2012-03-01T10:12:00Z\"), date(\"2013-05-01\"))",
- "FunctionInvocation(Name(years and months duration) -> PositionalParameters(DateTimeLiteral(date and time, \"2012-03-01T10:12:00Z\"), DateTimeLiteral(date, \"2013-05-01\")))",
- "years and months duration",
- "yearsAndMonthsDuration(dateAndTime(\"2012-03-01T10:12:00Z\"), date(\"2013-05-01\"))",
- this.lib.yearsAndMonthsDuration(this.lib.dateAndTime("2012-03-01T10:12:00Z"), this.lib.date("2013-05-01")),
- this.lib.duration("P1Y2M"));
- doExpressionTest(entries, "", "years and months duration(date(\"2013-05-01\"), date and time(\"2012-03-01T10:12:00Z\"))",
- "FunctionInvocation(Name(years and months duration) -> PositionalParameters(DateTimeLiteral(date, \"2013-05-01\"), DateTimeLiteral(date and time, \"2012-03-01T10:12:00Z\")))",
- "years and months duration",
- "yearsAndMonthsDuration(date(\"2013-05-01\"), dateAndTime(\"2012-03-01T10:12:00Z\"))",
- this.lib.yearsAndMonthsDuration(this.lib.date("2013-05-01"), this.lib.dateAndTime("2012-03-01T10:12:00Z")),
- this.lib.duration("-P1Y2M"));
- }
-
- @Test
- @Override
- public void testDateTimeFunctions() {
- super.testDateTimeFunctions();
-
- List entries = new ArrayList<>();
-
- doExpressionTest(entries, "", "is(@\"23:00:50Z\", @\"23:00:50\")",
- "FunctionInvocation(Name(is) -> PositionalParameters(DateTimeLiteral(time, \"23:00:50Z\"), DateTimeLiteral(time, \"23:00:50\")))",
- "boolean",
- "is(time(\"23:00:50Z\"), time(\"23:00:50\"))",
- this.lib.is(this.lib.time("23:00:50Z"), this.lib.time("23:00:50")),
- false);
- }
-
- @Test
- @Override
- public void testDateAndTimeProperties() {
- List entries = Collections.emptyList();
-
- doExpressionTest(entries, "", "date and time(\"2018-12-10T10:30:00\").time offset",
- "PathExpression(DateTimeLiteral(date and time, \"2018-12-10T10:30:00\"), time offset)",
- "days and time duration",
- "timeOffset(dateAndTime(\"2018-12-10T10:30:00\"))",
- this.lib.timeOffset(this.lib.dateAndTime("2018-12-10T10:30:00")),
- null
- );
- doExpressionTest(entries, "", "date and time(\"2018-12-10T10:30:00@Etc/UTC\").timezone",
- "PathExpression(DateTimeLiteral(date and time, \"2018-12-10T10:30:00@Etc/UTC\"), timezone)",
- "string",
- "timezone(dateAndTime(\"2018-12-10T10:30:00@Etc/UTC\"))",
- this.lib.timezone(this.lib.dateAndTime("2018-12-10T10:30:00@Etc/UTC")),
- "Etc/UTC"
- );
- doExpressionTest(entries, "", "date and time(\"2018-12-10T10:30:00\").timezone",
- "PathExpression(DateTimeLiteral(date and time, \"2018-12-10T10:30:00\"), timezone)",
- "string",
- "timezone(dateAndTime(\"2018-12-10T10:30:00\"))",
- this.lib.timezone(this.lib.dateAndTime("2018-12-10T10:30:00")),
- null
- );
- doExpressionTest(entries, "", "time(\"10:30:00\").time offset",
- "PathExpression(DateTimeLiteral(time, \"10:30:00\"), time offset)",
- "days and time duration",
- "timeOffset(time(\"10:30:00\"))",
- this.lib.timeOffset(this.lib.time("10:30:00")),
- null
- );
- doExpressionTest(entries, "", "time(\"10:30:00@Etc/UTC\").timezone",
- "PathExpression(DateTimeLiteral(time, \"10:30:00@Etc/UTC\"), timezone)",
- "string",
- "timezone(time(\"10:30:00@Etc/UTC\"))",
- this.lib.timezone(this.lib.time("10:30:00@Etc/UTC")),
- "Etc/UTC"
- );
- doExpressionTest(entries, "", "time(\"10:30:00\").timezone",
- "PathExpression(DateTimeLiteral(time, \"10:30:00\"), timezone)",
- "string",
- "timezone(time(\"10:30:00\"))",
- this.lib.timezone(this.lib.time("10:30:00")),
- null
- );
- }
-}
\ No newline at end of file
diff --git a/dmn-core/src/test/java/com/gs/dmn/feel/MixedJavaFEELProcessorTest.java b/dmn-core/src/test/java/com/gs/dmn/feel/MixedJavaTimeFEELProcessorTest.java
similarity index 97%
rename from dmn-core/src/test/java/com/gs/dmn/feel/MixedJavaFEELProcessorTest.java
rename to dmn-core/src/test/java/com/gs/dmn/feel/MixedJavaTimeFEELProcessorTest.java
index ff48dc045..569272a74 100644
--- a/dmn-core/src/test/java/com/gs/dmn/feel/MixedJavaFEELProcessorTest.java
+++ b/dmn-core/src/test/java/com/gs/dmn/feel/MixedJavaTimeFEELProcessorTest.java
@@ -27,7 +27,7 @@
import java.util.Collections;
import java.util.List;
-public class MixedJavaFEELProcessorTest extends AbstractStandardFEELProcessorTest {
+public class MixedJavaTimeFEELProcessorTest extends AbstractStandardFEELProcessorTest {
@Override
protected DMNDialectDefinition makeDialect() {
return new MixedJavaTimeDMNDialectDefinition();
diff --git a/dmn-core/src/test/java/com/gs/dmn/runtime/interpreter/StandardCL2DMNInterpreterTest.java b/dmn-core/src/test/java/com/gs/dmn/runtime/interpreter/StandardCL2DMNInterpreterTest.java
deleted file mode 100644
index 05d9f61d1..000000000
--- a/dmn-core/src/test/java/com/gs/dmn/runtime/interpreter/StandardCL2DMNInterpreterTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.runtime.interpreter;
-
-import com.gs.dmn.dialect.DMNDialectDefinition;
-import com.gs.dmn.dialect.StandardDMNDialectDefinition;
-import com.gs.dmn.tck.ast.TestCases;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-public class StandardCL2DMNInterpreterTest extends AbstractCL2SDMNInterpreterTest {
- @Override
- protected DMNDialectDefinition getDialectDefinition() {
- return new StandardDMNDialectDefinition();
- }
-}
diff --git a/dmn-core/src/test/java/com/gs/dmn/runtime/interpreter/StandardCL3DMNInterpreterTest.java b/dmn-core/src/test/java/com/gs/dmn/runtime/interpreter/StandardCL3DMNInterpreterTest.java
deleted file mode 100644
index dde6fe825..000000000
--- a/dmn-core/src/test/java/com/gs/dmn/runtime/interpreter/StandardCL3DMNInterpreterTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.runtime.interpreter;
-
-import com.gs.dmn.dialect.DMNDialectDefinition;
-import com.gs.dmn.dialect.StandardDMNDialectDefinition;
-import com.gs.dmn.tck.ast.TestCases;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-public class StandardCL3DMNInterpreterTest extends AbstractCL3DMNInterpreterTest {
- @Override
- protected DMNDialectDefinition getDialectDefinition() {
- return new StandardDMNDialectDefinition();
- }
-
- @Override
- protected String getTestCasesInputPath() {
- return getDMNInputPath() + "/standard";
- }
-}
diff --git a/dmn-core/src/test/java/com/gs/dmn/tck/CL3TestCasesToJavaJUnitTransformerTest.java b/dmn-core/src/test/java/com/gs/dmn/tck/CL3TestCasesToJavaJUnitTransformerTest.java
index d962f4af3..5dbd9d79c 100644
--- a/dmn-core/src/test/java/com/gs/dmn/tck/CL3TestCasesToJavaJUnitTransformerTest.java
+++ b/dmn-core/src/test/java/com/gs/dmn/tck/CL3TestCasesToJavaJUnitTransformerTest.java
@@ -23,7 +23,7 @@ protected String getDMNInputPath() {
@Override
protected String getTestCasesInputPath() {
- return getDMNInputPath() + "/standard";
+ return getDMNInputPath() + "/pure";
}
@Override
diff --git a/dmn-core/src/test/java/com/gs/dmn/tck/CL3TestCasesToPythonJUnitTransformerTest.java b/dmn-core/src/test/java/com/gs/dmn/tck/CL3TestCasesToPythonJUnitTransformerTest.java
index 24428518b..a52e37e7f 100644
--- a/dmn-core/src/test/java/com/gs/dmn/tck/CL3TestCasesToPythonJUnitTransformerTest.java
+++ b/dmn-core/src/test/java/com/gs/dmn/tck/CL3TestCasesToPythonJUnitTransformerTest.java
@@ -23,7 +23,7 @@ protected String getDMNInputPath() {
@Override
protected String getTestCasesInputPath() {
- return getDMNInputPath() + "/standard";
+ return getDMNInputPath() + "/pure";
}
@Override
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/DefaultFEELLib.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/DefaultFEELLib.java
deleted file mode 100644
index 0eebd49e3..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/DefaultFEELLib.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib;
-
-import com.gs.dmn.feel.lib.type.bool.BooleanLib;
-import com.gs.dmn.feel.lib.type.bool.BooleanType;
-import com.gs.dmn.feel.lib.type.bool.DefaultBooleanLib;
-import com.gs.dmn.feel.lib.type.bool.DefaultBooleanType;
-import com.gs.dmn.feel.lib.type.context.ContextType;
-import com.gs.dmn.feel.lib.type.context.DefaultContextType;
-import com.gs.dmn.feel.lib.type.function.DefaultFunctionType;
-import com.gs.dmn.feel.lib.type.function.FunctionType;
-import com.gs.dmn.feel.lib.type.list.DefaultListLib;
-import com.gs.dmn.feel.lib.type.list.DefaultListType;
-import com.gs.dmn.feel.lib.type.list.ListLib;
-import com.gs.dmn.feel.lib.type.list.ListType;
-import com.gs.dmn.feel.lib.type.numeric.DecimalNumericLib;
-import com.gs.dmn.feel.lib.type.numeric.DecimalNumericType;
-import com.gs.dmn.feel.lib.type.numeric.NumericLib;
-import com.gs.dmn.feel.lib.type.numeric.NumericType;
-import com.gs.dmn.feel.lib.type.range.DefaultRangeLib;
-import com.gs.dmn.feel.lib.type.range.DefaultRangeType;
-import com.gs.dmn.feel.lib.type.range.RangeLib;
-import com.gs.dmn.feel.lib.type.range.RangeType;
-import com.gs.dmn.feel.lib.type.string.DefaultStringLib;
-import com.gs.dmn.feel.lib.type.string.DefaultStringType;
-import com.gs.dmn.feel.lib.type.string.StringLib;
-import com.gs.dmn.feel.lib.type.string.StringType;
-import com.gs.dmn.feel.lib.type.time.*;
-import com.gs.dmn.feel.lib.type.time.xml.*;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-/**
- * @deprecated As of release 8.3.0, replaced by {@link JavaTimeFEELLib}
- */
-@Deprecated
-public class DefaultFEELLib extends BaseStandardFEELLib {
- private static final NumericType NUMERIC_TYPE = new DecimalNumericType();
- private static final BooleanType BOOLEAN_TYPE = new DefaultBooleanType();
- private static final StringType STRING_TYPE = new DefaultStringType();
- private static final DateType DATE_TYPE = new DefaultDateType();
- private static final TimeType TIME_TYPE = new DefaultTimeType();
- private static final DateTimeType DATE_TIME_TYPE = new DefaultDateTimeType();
- private static final DurationType DURATION_TYPE = new DefaultDurationType();
- private static final ListType LIST_TYPE = new DefaultListType();
- private static final ContextType CONTEXT_TYPE = new DefaultContextType();
- private static final RangeType RANGE_TYPE = new DefaultRangeType();
- private static final FunctionType FUNCTION_TYPE = new DefaultFunctionType();
-
- private static final NumericLib NUMERIC_LIB = new DecimalNumericLib();
- private static final StringLib STRING_LIB = new DefaultStringLib();
- private static final BooleanLib BOOLEAN_LIB = new DefaultBooleanLib();
- private static final DateTimeLib DATE_TIME_LIB = new DefaultDateTimeLib();
- private static final DurationLib DURATION_LIB = new DefaultDurationLib();
- private static final ListLib LIST_LIB = new DefaultListLib();
- private static final RangeLib RANGE_LIB = new DefaultRangeLib();
-
- public static final DefaultFEELLib INSTANCE = new DefaultFEELLib();
-
- public DefaultFEELLib() {
- this(NUMERIC_TYPE,
- BOOLEAN_TYPE,
- STRING_TYPE,
- DATE_TYPE,
- TIME_TYPE,
- DATE_TIME_TYPE,
- DURATION_TYPE,
- LIST_TYPE,
- CONTEXT_TYPE,
- RANGE_TYPE,
- FUNCTION_TYPE,
- NUMERIC_LIB,
- STRING_LIB,
- BOOLEAN_LIB,
- DATE_TIME_LIB,
- DURATION_LIB,
- LIST_LIB,
- RANGE_LIB
- );
- }
-
- protected DefaultFEELLib(
- NumericType numericType,
- BooleanType booleanType,
- StringType stringType,
- DateType dateType,
- TimeType timeType,
- DateTimeType dateTimeType,
- DurationType durationType,
- ListType listType,
- ContextType contextType,
- RangeType rangeType,
- FunctionType functionType,
- NumericLib numericLib,
- StringLib stringLib,
- BooleanLib booleanLib,
- DateTimeLib dateTimeLib,
- DurationLib durationLib,
- ListLib listLib,
- RangeLib rangeLib) {
- super(numericType, booleanType, stringType,
- dateType, timeType, dateTimeType, durationType,
- listType, contextType, rangeType, functionType,
- numericLib, stringLib, booleanLib, dateTimeLib, durationLib, listLib, rangeLib
- );
- }
-
- //
- // Extra conversion functions
- //
- @Override
- protected BigDecimal valueOf(long number) {
- return BigDecimal.valueOf(number);
- }
-
- @Override
- protected int intValue(BigDecimal number) {
- return number.intValue();
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/FormatUtils.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/FormatUtils.java
index 654eb39d4..61e92f16f 100644
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/FormatUtils.java
+++ b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/FormatUtils.java
@@ -14,7 +14,6 @@
import com.gs.dmn.feel.lib.type.time.BaseDateTimeLib;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.time.*;
@@ -68,8 +67,6 @@ public static String formatTemporal(Object from) {
} else if (from instanceof TemporalAccessor) {
// Its time with zone ID
return BaseDateTimeLib.FEEL_TIME.format((TemporalAccessor) from);
- } else if (from instanceof XMLGregorianCalendar) {
- return from.toString();
} else if (from instanceof javax.xml.datatype.Duration) {
return from.toString();
} else if (from instanceof java.time.Period) {
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/range/DefaultRangeLib.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/range/DefaultRangeLib.java
index dbd723faf..d5d703cf7 100644
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/range/DefaultRangeLib.java
+++ b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/range/DefaultRangeLib.java
@@ -23,11 +23,9 @@
import com.gs.dmn.feel.lib.type.time.pure.TemporalAmountComparator;
import com.gs.dmn.feel.lib.type.time.pure.TemporalComparator;
import com.gs.dmn.feel.lib.type.time.xml.DefaultDurationComparator;
-import com.gs.dmn.feel.lib.type.time.xml.DefaultXMLCalendarComparator;
import com.gs.dmn.runtime.Range;
import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.OffsetTime;
@@ -57,7 +55,6 @@ public class DefaultRangeLib implements RangeLib {
COMPARATOR_MAP.put(Temporal.class, TemporalComparator.COMPARATOR);
COMPARATOR_MAP.put(TemporalAmount.class, TemporalAmountComparator.COMPARATOR);
- COMPARATOR_MAP.put(XMLGregorianCalendar.class, DefaultXMLCalendarComparator.COMPARATOR);
COMPARATOR_MAP.put(Duration.class, DefaultDurationComparator.COMPARATOR);
}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/string/DefaultStringLib.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/string/DefaultStringLib.java
index b8e7374de..3cea4d969 100644
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/string/DefaultStringLib.java
+++ b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/string/DefaultStringLib.java
@@ -19,7 +19,6 @@
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
-import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
@@ -46,7 +45,7 @@ public String string(Object from) {
return "null";
} else if (from instanceof Number) {
return FormatUtils.formatNumber((Number) from);
- } else if (from instanceof XMLGregorianCalendar || from instanceof Duration) {
+ } else if (from instanceof Duration) {
return FormatUtils.formatTemporal(from);
} else if (from instanceof TemporalAccessor || from instanceof TemporalAmount) {
return FormatUtils.formatTemporal(from);
@@ -284,13 +283,13 @@ private boolean evaluateMatches(String input, String pattern, String flags) thro
return input.equals(value);
}
- private String evaluateXPath(String input, String expression) throws ParserConfigurationException, SAXException, IOException, XPathExpressionException {
+ private String evaluateXPath(String input, String expression) throws SAXException, IOException, XPathExpressionException {
// Read document
String xml = "" + input + " ";
- DocumentBuilder builder = new DocumentBuilderImpl();
+ DocumentBuilderImpl builder = new DocumentBuilderImpl();
InputStream inputStream = new ByteArrayInputStream(xml.getBytes());
Document document = builder.parse(inputStream);
- Configuration configuration = ((DocumentBuilderImpl) builder).getConfiguration();
+ Configuration configuration = builder.getConfiguration();
// Evaluate xpath
XPathFactory xPathFactory = new XPathFactoryImpl(configuration);
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDateTimeLib.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDateTimeLib.java
deleted file mode 100644
index 13079c9c3..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDateTimeLib.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.time.BaseDateTimeLib;
-import com.gs.dmn.feel.lib.type.time.DateTimeLib;
-import com.gs.dmn.runtime.DMNRuntimeException;
-import org.apache.commons.lang3.StringUtils;
-
-import javax.xml.datatype.DatatypeConstants;
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.time.*;
-import java.time.format.DateTimeFormatter;
-import java.time.temporal.IsoFields;
-import java.time.temporal.TemporalAccessor;
-import java.time.temporal.TemporalQueries;
-import java.util.Calendar;
-import java.util.List;
-import java.util.function.Predicate;
-
-public class DefaultDateTimeLib extends BaseDateTimeLib implements DateTimeLib {
- //
- // Conversion functions
- //
- @Override
- public XMLGregorianCalendar date(String literal) {
- if (StringUtils.isBlank(literal)) {
- return null;
- }
-
- XMLGregorianCalendar calendar = FEELXMLGregorianCalendar.makeXMLCalendar(this.dateTemporalAccessor(literal));
- return this.isValidDate(calendar) ? calendar : null;
- }
-
- @Override
- public XMLGregorianCalendar date(BigDecimal year, BigDecimal month, BigDecimal day) {
- if (year == null || month == null || day == null) {
- return null;
- }
-
- XMLGregorianCalendar calendar = FEELXMLGregorianCalendar.makeDate(year.toBigInteger(), month.intValue(), day.intValue());
- return this.isValidDate(calendar) ? calendar : null;
- }
-
- @Override
- public XMLGregorianCalendar date(Object fromObj) {
- if (fromObj == null) {
- return null;
- }
-
- XMLGregorianCalendar from = (XMLGregorianCalendar) fromObj;
- FEELXMLGregorianCalendar calendar = (FEELXMLGregorianCalendar) from.clone();
- calendar.setTime(DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED);
- calendar.setZoneID(null);
- return this.isValidDate(calendar) ? calendar : null;
- }
-
- @Override
- public XMLGregorianCalendar time(String literal) {
- if (literal == null) {
- return null;
- }
-
- literal = this.fixDateTimeFormat(literal);
- XMLGregorianCalendar calendar = FEELXMLGregorianCalendar.makeXMLCalendar(this.timeTemporalAccessor(literal));
- return this.isValidTime(calendar) ? calendar : null;
- }
-
- @Override
- public XMLGregorianCalendar time(BigDecimal hour, BigDecimal minute, BigDecimal second, Duration offset) {
- if (hour == null || minute == null || second == null) {
- return null;
- }
-
- XMLGregorianCalendar calendar;
- BigDecimal secondFraction = second.subtract(BigDecimal.valueOf(second.intValue()));
- if (offset != null) {
- String sign = offset.getSign() < 0 ? "-" : "+";
- int seconds = offset.getSeconds();
- String zoneId;
- if (seconds == 0) {
- zoneId = String.format("%s%02d:%02d", sign, offset.getHours(), offset.getMinutes());
- } else {
- zoneId = String.format("%s%02d:%02d:%02d", sign, offset.getHours(), offset.getMinutes(), seconds);
- }
- calendar = FEELXMLGregorianCalendar.makeTime(hour.intValue(), minute.intValue(), second.intValue(), secondFraction, zoneId);
- } else {
- calendar = FEELXMLGregorianCalendar.makeTime(hour.intValue(), minute.intValue(), second.intValue(), secondFraction, null);
- }
- return this.isValidTime(calendar) ? calendar : null;
- }
-
- @Override
- public XMLGregorianCalendar time(Object fromObj) {
- if (fromObj == null) {
- return null;
- }
-
- XMLGregorianCalendar from = (XMLGregorianCalendar) fromObj;
- FEELXMLGregorianCalendar calendar = (FEELXMLGregorianCalendar) from.clone();
- if (from.getXMLSchemaType() == DatatypeConstants.DATE) {
- calendar.setYear(DatatypeConstants.FIELD_UNDEFINED);
- calendar.setMonth(DatatypeConstants.FIELD_UNDEFINED);
- calendar.setDay(DatatypeConstants.FIELD_UNDEFINED);
- calendar.setHour(0);
- calendar.setMinute(0);
- calendar.setSecond(0);
- calendar.setZoneID("Z");
- } else if (from.getXMLSchemaType() == DatatypeConstants.DATETIME) {
- calendar.setYear(DatatypeConstants.FIELD_UNDEFINED);
- calendar.setMonth(DatatypeConstants.FIELD_UNDEFINED);
- calendar.setDay(DatatypeConstants.FIELD_UNDEFINED);
- }
- return this.isValidTime(calendar) ? calendar : null;
- }
-
- @Override
- public XMLGregorianCalendar dateAndTime(String literal) {
- if (literal == null) {
- return null;
- }
-
- literal = this.fixDateTimeFormat(literal);
- XMLGregorianCalendar calendar = FEELXMLGregorianCalendar.makeXMLCalendar(this.dateTimeTemporalAccessor(literal));
- return this.isValidDateTime(calendar) ? calendar : null;
- }
-
- @Override
- public XMLGregorianCalendar dateAndTime(Object dateObj, Object timeObj) {
- if (dateObj == null || timeObj == null) {
- return null;
- }
-
- XMLGregorianCalendar date = (XMLGregorianCalendar) dateObj;
- XMLGregorianCalendar time = (XMLGregorianCalendar) timeObj;
- XMLGregorianCalendar calendar = FEELXMLGregorianCalendar.makeDateTime(
- BigInteger.valueOf(date.getYear()), date.getMonth(), date.getDay(),
- time.getHour(), time.getMinute(), time.getSecond(), time.getFractionalSecond(),
- ((FEELXMLGregorianCalendar) time).getZoneID()
- );
- return this.isValidDateTime(calendar) ? calendar : null;
- }
-
- //
- // Date properties
- //
- @Override
- public Integer year(Object date) {
- if (date == null) {
- return null;
- }
-
- return ((XMLGregorianCalendar) date).getYear();
- }
-
- @Override
- public Integer month(Object date) {
- if (date == null) {
- return null;
- }
-
- return ((XMLGregorianCalendar) date).getMonth();
- }
-
- @Override
- public Integer day(Object date) {
- if (date == null) {
- return null;
- }
-
- return ((XMLGregorianCalendar) date).getDay();
- }
-
- @Override
- public Integer weekday(Object date) {
- if (date == null) {
- return null;
- }
-
- return ((XMLGregorianCalendar) date).toGregorianCalendar().get(Calendar.DAY_OF_WEEK) - 1;
- }
-
- //
- // Time properties
- //
- @Override
- public Integer hour(Object date) {
- if (date == null) {
- return null;
- }
-
- return ((XMLGregorianCalendar) date).getHour();
- }
-
- @Override
- public Integer minute(Object date) {
- if (date == null) {
- return null;
- }
-
- return ((XMLGregorianCalendar) date).getMinute();
- }
-
- @Override
- public Integer second(Object date) {
- if (date == null) {
- return null;
- }
-
- return ((XMLGregorianCalendar) date).getSecond();
- }
-
- @Override
- public Duration timeOffset(Object date) {
- if (date == null) {
- return null;
- }
-
- int secondsOffset = ((XMLGregorianCalendar) date).getTimezone();
- if (secondsOffset == DatatypeConstants.FIELD_UNDEFINED) {
- return null;
- } else {
- return XMLDurationFactory.INSTANCE.dayTimeFromValue(secondsOffset);
- }
- }
-
- @Override
- public String timezone(Object date) {
- if (date == null) {
- return null;
- }
-
- return ((FEELXMLGregorianCalendar) date).getZoneID();
- }
-
- @Override
- public XMLGregorianCalendar now() {
- return FEELXMLGregorianCalendar.makeXMLCalendar(ZonedDateTime.now());
- }
-
- @Override
- public XMLGregorianCalendar today() {
- return FEELXMLGregorianCalendar.makeXMLCalendar(LocalDate.now());
- }
-
- //
- // Temporal functions
- //
- @Override
- public Integer dayOfYear(Object date) {
- if (date == null) {
- return null;
- }
-
- return ((XMLGregorianCalendar) date).toGregorianCalendar().get(Calendar.DAY_OF_YEAR);
- }
-
- @Override
- public String dayOfWeek(Object date) {
- if (date == null) {
- return null;
- }
-
- int dow = ((XMLGregorianCalendar) date).toGregorianCalendar().get(Calendar.DAY_OF_WEEK);
- return DAY_NAMES[dow];
- }
-
- @Override
- public Integer weekOfYear(Object date) {
- if (date == null) {
- return null;
- }
-
- XMLGregorianCalendar xmlDate = ((XMLGregorianCalendar) date);
- LocalDate localDate = LocalDate.of(xmlDate.getYear(), xmlDate.getMonth(), xmlDate.getDay());
- return localDate.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR);
- }
-
- @Override
- public String monthOfYear(Object date) {
- if (date == null) {
- return null;
- }
-
- int moy = ((XMLGregorianCalendar) date).getMonth();
- return MONTH_NAMES[moy - 1];
- }
-
- //
- // Extra conversion functions
- //
- @Override
- public XMLGregorianCalendar toDate(Object from) {
- if (!(from instanceof XMLGregorianCalendar)) {
- return null;
- }
-
- XMLGregorianCalendar calendar = (XMLGregorianCalendar) from;
- return date(calendar);
- }
-
- @Override
- public XMLGregorianCalendar toTime(Object from) {
- if (!(from instanceof XMLGregorianCalendar)) {
- return null;
- }
-
- return time(from);
- }
-
- @Override
- public XMLGregorianCalendar toDateTime(Object from) {
- if (!(from instanceof XMLGregorianCalendar)) {
- return null;
- }
-
- return dateAndTime(toDate(from), toTime(from));
- }
-
- @Override
- public T min(List list) {
- return minMax(list, DefaultXMLCalendarComparator.COMPARATOR, DefaultDurationComparator.COMPARATOR, x -> x > 0);
- }
-
- @Override
- public T max(List list) {
- return minMax(list, DefaultXMLCalendarComparator.COMPARATOR, DefaultDurationComparator.COMPARATOR, x -> x < 0);
- }
-
- private T minMax(List list, DefaultXMLCalendarComparator dateTimeComparator, DefaultDurationComparator durationComparator, Predicate condition) {
- if (list == null || list.isEmpty()) {
- return null;
- }
-
- T result = list.get(0);
- for (int i = 1; i < list.size(); i++) {
- T x = list.get(i);
- if (dateTimeComparator.isDate(result) && dateTimeComparator.isDate(x)) {
- if (condition.test(dateTimeComparator.compareTo((XMLGregorianCalendar) result, (XMLGregorianCalendar) x))) {
- result = x;
- }
- } else if (dateTimeComparator.isTime(result) && dateTimeComparator.isTime(x)) {
- if (condition.test(dateTimeComparator.compareTo((XMLGregorianCalendar) result, (XMLGregorianCalendar) x))) {
- result = x;
- }
- } else if (dateTimeComparator.isDateTime(result) && dateTimeComparator.isDateTime(x)) {
- if (condition.test(dateTimeComparator.compareTo((XMLGregorianCalendar) result, (XMLGregorianCalendar) x))) {
- result = x;
- }
- } else if (durationComparator.isYearsAndMonthsDuration(result) && durationComparator.isYearsAndMonthsDuration(x)) {
- if (condition.test(durationComparator.compareTo((Duration) result, (Duration) x))) {
- result = x;
- }
- } else if (durationComparator.isDaysAndTimeDuration(result) && durationComparator.isDaysAndTimeDuration(x)) {
- if (condition.test(durationComparator.compareTo((Duration) result, (Duration) x))) {
- result = x;
- }
- } else {
- throw new DMNRuntimeException(String.format("Cannot compare '%s' and '%s'", result, x));
- }
- }
- return result;
- }
-
- public TemporalAccessor dateTemporalAccessor(String literal) {
- if (literal == null) {
- return null;
- }
-
- if (!BEGIN_YEAR.matcher(literal).find()) {
- throw new DMNRuntimeException(String.format("Illegal year in '%s'", literal));
- }
- try {
- return LocalDate.from(FEEL_DATE.parse(literal));
- } catch (DateTimeException e) {
- throw new RuntimeException("Parsing exception in date literal", e);
- }
- }
-
- public TemporalAccessor timeTemporalAccessor(String literal) {
- if (literal == null) {
- return null;
- }
-
- if (this.hasZoneOffset(literal) && this.hasZoneId(literal)) {
- throw new DMNRuntimeException(String.format("Time literal '%s' has both a zone offset and zone id", literal));
- }
- try {
- TemporalAccessor parsed = FEEL_TIME.parse(literal);
-
- if (parsed.query(TemporalQueries.offset()) != null) {
- return parsed.query(OffsetTime::from);
- } else if (parsed.query(TemporalQueries.zone()) == null) {
- return parsed.query(LocalTime::from);
- }
-
- return parsed;
- } catch (DateTimeException e) {
- throw new DMNRuntimeException("Parsing exception in time literal", e);
- }
- }
-
- public TemporalAccessor dateTimeTemporalAccessor(String literal) {
- if (literal == null) {
- return null;
- }
-
- if (!BaseDateTimeLib.BEGIN_YEAR.matcher(literal).find()) {
- throw new DMNRuntimeException(String.format("Illegal year in '%s'", literal));
- }
- if (this.hasZoneOffset(literal) && this.hasZoneId(literal)) {
- throw new DMNRuntimeException(String.format("Time literal '%s' has both a zone offset and zone id", literal));
- }
- try {
- if (literal.contains("T")) {
- return FEEL_DATE_TIME.parseBest(literal, ZonedDateTime::from, OffsetDateTime::from, LocalDateTime::from);
- } else {
- LocalDate value = DateTimeFormatter.ISO_DATE.parse(literal, LocalDate::from);
- return LocalDateTime.of(value, LocalTime.of(0, 0));
- }
- } catch (Exception e) {
- throw new RuntimeException("Parsing exception in date and time literal", e);
- }
- }
-
- private boolean isValidDate(XMLGregorianCalendar calendar) {
- if (calendar == null) {
- return false;
- }
-
- long year = calendar.getYear();
- BigInteger eonAndYear = calendar.getEonAndYear();
- if (eonAndYear != null) {
- year = eonAndYear.intValue();
- }
- return
- isValidDate(year, calendar.getMonth(), calendar.getDay())
- && isUndefined(calendar.getHour())
- && isUndefined(calendar.getMinute())
- && isUndefined(calendar.getSecond())
- ;
- }
-
- private boolean isValidTime(XMLGregorianCalendar calendar) {
- if (calendar == null) {
- return false;
- }
-
- return
- isValidTime(calendar.getHour(), calendar.getMinute(), calendar.getSecond(), calendar.getTimezone())
- && isUndefined(calendar.getYear())
- && isUndefined(calendar.getMonth())
- && isUndefined(calendar.getDay())
- ;
- }
-
- private boolean isValidDateTime(XMLGregorianCalendar calendar) {
- if (calendar == null) {
- return false;
- }
-
- return isValidDateTime(
- calendar.getYear(), calendar.getMonth(), calendar.getDay(),
- calendar.getHour(), calendar.getMinute(), calendar.getSecond(), calendar.getTimezone());
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDateTimeType.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDateTimeType.java
deleted file mode 100644
index bfb48feb8..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDateTimeType.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.bool.BooleanType;
-import com.gs.dmn.feel.lib.type.bool.DefaultBooleanType;
-import com.gs.dmn.feel.lib.type.time.DateTimeType;
-import com.gs.dmn.runtime.DMNRuntimeException;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-
-import static com.gs.dmn.feel.lib.type.time.xml.DefaultTimeType.hasTimezone;
-
-public class DefaultDateTimeType extends XMLCalendarType implements DateTimeType {
- private final DefaultXMLCalendarComparator comparator;
- private final BooleanType booleanType;
-
- public DefaultDateTimeType() {
- this(DefaultXMLCalendarComparator.COMPARATOR);
- }
-
- public DefaultDateTimeType(DefaultXMLCalendarComparator comparator) {
- this.comparator = comparator;
- this.booleanType = new DefaultBooleanType();
- }
-
- //
- // Date and time operators
- //
-
- @Override
- public Boolean dateTimeIs(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- if (first == null || second == null) {
- return first == second;
- }
-
- return ((FEELXMLGregorianCalendar) first).same(second);
- }
-
- @Override
- public Boolean dateTimeEqual(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.equalTo(first, second);
- }
-
- @Override
- public Boolean dateTimeNotEqual(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.booleanType.booleanNot(dateTimeEqual(first, second));
- }
-
- @Override
- public Boolean dateTimeLessThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.lessThan(first, second);
- }
-
- @Override
- public Boolean dateTimeGreaterThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.greaterThan(first, second);
- }
-
- @Override
- public Boolean dateTimeLessEqualThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.lessEqualThan(first, second);
- }
-
- @Override
- public Boolean dateTimeGreaterEqualThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.greaterEqualThan(first, second);
- }
-
- @Override
- public Duration dateTimeSubtract(XMLGregorianCalendar first, Object secondObj) {
- XMLGregorianCalendar second = (XMLGregorianCalendar) secondObj;
- if (first == null || second == null) {
- return null;
- }
- if (isDate(first)) {
- first = toDateTime(first);
- }
- if (isDate(second)) {
- second = toDateTime(second);
- }
- // Subtraction is undefined for the case where only one of the values has a timezone
- if (hasTimezone(first) && !hasTimezone(second) || !hasTimezone(first) && hasTimezone(second)) {
- return null;
- }
-
- long durationInSeconds = getDurationInSeconds(first, second);
- return XMLDurationFactory.INSTANCE.dayTimeFromValue(durationInSeconds);
- }
-
- @Override
- public XMLGregorianCalendar dateTimeAddDuration(XMLGregorianCalendar dateTime, Duration duration) {
- if (dateTime == null || duration == null) {
- return null;
- }
- if (!(isYearsAndMonthsDuration(duration) || isDaysAndTimeDuration(duration))) {
- throw new DMNRuntimeException(String.format("Cannot add '%s' and '%s'", dateTime, duration));
- }
-
- XMLGregorianCalendar clone = (XMLGregorianCalendar) dateTime.clone();
- clone.add(duration);
- return clone;
- }
-
- @Override
- public XMLGregorianCalendar dateTimeSubtractDuration(XMLGregorianCalendar dateTime, Duration duration) {
- if (dateTime == null || duration == null) {
- return null;
- }
-
- return dateTimeAddDuration(dateTime, duration.negate());
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDateType.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDateType.java
deleted file mode 100644
index 1c138a7b9..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDateType.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.bool.BooleanType;
-import com.gs.dmn.feel.lib.type.bool.DefaultBooleanType;
-import com.gs.dmn.feel.lib.type.time.DateType;
-import com.gs.dmn.runtime.DMNRuntimeException;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigInteger;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.Period;
-import java.time.ZoneOffset;
-
-import static com.gs.dmn.feel.lib.type.time.xml.DefaultTimeType.hasTimezone;
-
-public class DefaultDateType extends XMLCalendarType implements DateType {
- private final DefaultXMLCalendarComparator comparator;
- private final BooleanType booleanType;
-
- public DefaultDateType() {
- this(DefaultXMLCalendarComparator.COMPARATOR);
- }
-
- public DefaultDateType(DefaultXMLCalendarComparator comparator) {
- this.comparator = comparator;
- this.booleanType = new DefaultBooleanType();
- }
-
- //
- // Date operators
- //
- @Override
- public Boolean dateIs(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- if (first == null || second == null) {
- return first == second;
- }
-
- return ((FEELXMLGregorianCalendar) first).same(second);
- }
-
- @Override
- public Boolean dateEqual(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.equalTo(first, second);
- }
-
- @Override
- public Boolean dateNotEqual(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.booleanType.booleanNot(dateEqual(first, second));
- }
-
- @Override
- public Boolean dateLessThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.lessThan(first, second);
- }
-
- @Override
- public Boolean dateGreaterThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.greaterThan(first, second);
- }
-
- @Override
- public Boolean dateLessEqualThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.lessEqualThan(first, second);
- }
-
- @Override
- public Boolean dateGreaterEqualThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.greaterEqualThan(first, second);
- }
-
- @Override
- public Duration dateSubtract(XMLGregorianCalendar first, Object secondObj) {
- XMLGregorianCalendar second = (XMLGregorianCalendar) secondObj;
- if (first == null || second == null) {
- return null;
- }
- if (isDate(first)) {
- first = toDateTime(first);
- }
- if (isDate(second)) {
- second = toDateTime(second);
- }
- // Subtraction is undefined for the case where only one of the values has a timezone
- if (hasTimezone(first) && !hasTimezone(second) || !hasTimezone(first) && hasTimezone(second)) {
- return null;
- }
-
- long durationInSeconds = getDurationInSeconds(first, second);
- return XMLDurationFactory.INSTANCE.dayTimeFromValue(durationInSeconds);
- }
-
- @Override
- public XMLGregorianCalendar dateAddDuration(XMLGregorianCalendar date, Duration duration) {
- if (date == null || duration == null) {
- return null;
- }
-
- if (isYearsAndMonthsDuration(duration)) {
- LocalDate localDate = LocalDate.of(date.getYear(), date.getMonth(), date.getDay());
- Long totalMonths = monthsValue(duration);
- Period period = Period.ofMonths(totalMonths.intValue());
- LocalDate newLocalDate = localDate.plus(period);
- // Convert to XML type
- return FEELXMLGregorianCalendar.makeDate(BigInteger.valueOf(newLocalDate.getYear()), newLocalDate.getMonthValue(), newLocalDate.getDayOfMonth());
- } else if (isDaysAndTimeDuration(duration)) {
- // Calculate with Java 8 types
- Long value1 = value(date);
- Long value2 = secondsValue(duration);
- LocalDate localDate = LocalDateTime.ofEpochSecond(value1 + value2, 0, ZoneOffset.UTC).toLocalDate();
- // Convert to XML type
- return FEELXMLGregorianCalendar.makeDate(BigInteger.valueOf(localDate.getYear()), localDate.getMonthValue(), localDate.getDayOfMonth());
- } else {
- throw new DMNRuntimeException(String.format("Cannot add '%s' and '%s'", date, duration));
- }
- }
-
- @Override
- public XMLGregorianCalendar dateSubtractDuration(XMLGregorianCalendar date, Duration duration) {
- if (date == null || duration == null) {
- return null;
- }
-
- return dateAddDuration(date, duration.negate());
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDurationLib.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDurationLib.java
deleted file mode 100644
index 174f95ab6..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultDurationLib.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.time.DurationLib;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.time.LocalDate;
-import java.time.Period;
-
-public class DefaultDurationLib implements DurationLib {
-
- public DefaultDurationLib() {
- }
-
- @Override
- public Duration duration(String from) {
- Duration duration = XMLDurationFactory.INSTANCE.parse(from);
- if (XMLCalendarType.isYearMonthDuration(duration) || XMLCalendarType.isDayTimeDuration(duration)) {
- return duration;
- } else {
- return null;
- }
- }
-
- @Override
- public Duration yearsAndMonthsDuration(Object fromObj, Object toObj) {
- if (fromObj == null || toObj == null) {
- return null;
- }
-
- XMLGregorianCalendar from = (XMLGregorianCalendar) fromObj;
- XMLGregorianCalendar to = (XMLGregorianCalendar) toObj;
- LocalDate fromLocalDate = LocalDate.of(from.getYear(), from.getMonth(), from.getDay());
- LocalDate toLocalDate = LocalDate.of(to.getYear(), to.getMonth(), to.getDay());
- Period period = Period.between(fromLocalDate, toLocalDate);
- return XMLDurationFactory.INSTANCE.yearMonthFrom(period);
- }
-
- @Override
- public Long years(Duration duration) {
- if (duration == null) {
- return null;
- }
-
- if (XMLCalendarType.isYearMonthDuration(duration)) {
- return duration.getSign() * (long) duration.getYears();
- } else {
- return null;
- }
- }
-
- @Override
- public Long months(Duration duration) {
- if (duration == null) {
- return null;
- }
-
- if (XMLCalendarType.isYearMonthDuration(duration)) {
- return duration.getSign() * (long) duration.getMonths();
- } else {
- return null;
- }
- }
-
- @Override
- public Long days(Duration duration) {
- if (duration == null) {
- return null;
- }
-
- if (XMLCalendarType.isDayTimeDuration(duration)) {
- return duration.getSign() * (long) duration.getDays();
- } else {
- return null;
- }
- }
-
- @Override
- public Long hours(Duration duration) {
- if (duration == null) {
- return null;
- }
-
- if (XMLCalendarType.isDayTimeDuration(duration)) {
- return duration.getSign() * (long) duration.getHours();
- } else {
- return null;
- }
- }
-
- @Override
- public Long minutes(Duration duration) {
- if (duration == null) {
- return null;
- }
-
- if (XMLCalendarType.isDayTimeDuration(duration)) {
- return duration.getSign() * (long) duration.getMinutes();
- } else {
- return null;
- }
- }
-
- @Override
- public Long seconds(Duration duration) {
- if (duration == null) {
- return null;
- }
-
- if (XMLCalendarType.isDayTimeDuration(duration)) {
- return duration.getSign() * (long) duration.getSeconds();
- } else {
- return null;
- }
- }
-
- @Override
- public Duration abs(Duration duration) {
- if (duration == null) {
- return null;
- }
-
- return duration.getSign() == -1 ? duration.negate() : duration;
- }
-
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultTimeType.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultTimeType.java
deleted file mode 100644
index 1de3ae348..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultTimeType.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.bool.BooleanType;
-import com.gs.dmn.feel.lib.type.bool.DefaultBooleanType;
-import com.gs.dmn.feel.lib.type.time.TimeType;
-import com.gs.dmn.runtime.DMNRuntimeException;
-
-import javax.xml.datatype.DatatypeConstants;
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-
-public class DefaultTimeType extends XMLCalendarType implements TimeType {
- public static boolean hasTimezone(XMLGregorianCalendar calendar) {
- return calendar.getTimezone() != DatatypeConstants.FIELD_UNDEFINED;
- }
-
- private final BooleanType booleanType;
- protected final DefaultXMLCalendarComparator comparator;
-
- public DefaultTimeType() {
- this(DefaultXMLCalendarComparator.COMPARATOR);
- }
-
- public DefaultTimeType(DefaultXMLCalendarComparator comparator) {
- this.comparator = comparator;
- this.booleanType = new DefaultBooleanType();
- }
-
- @Override
- public Boolean timeIs(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- if (first == null || second == null) {
- return first == second;
- }
-
- return ((FEELXMLGregorianCalendar) first).same(second);
- }
-
- //
- // Time operators
- //
- @Override
- public Boolean timeEqual(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.equalTo(first, second);
- }
-
- @Override
- public Boolean timeNotEqual(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.booleanType.booleanNot(timeEqual(first, second));
- }
-
- @Override
- public Boolean timeLessThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.lessThan(first, second);
- }
-
- @Override
- public Boolean timeGreaterThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.greaterThan(first, second);
- }
-
- @Override
- public Boolean timeLessEqualThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.lessEqualThan(first, second);
- }
-
- @Override
- public Boolean timeGreaterEqualThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return this.comparator.greaterEqualThan(first, second);
- }
-
- @Override
- public Duration timeSubtract(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- if (first == null || second == null) {
- return null;
- }
-
- long durationInSeconds = getDurationInSeconds(first, second);
- return XMLDurationFactory.INSTANCE.dayTimeFromValue(durationInSeconds);
- }
-
- @Override
- public XMLGregorianCalendar timeAddDuration(XMLGregorianCalendar time, Duration duration) {
- if (time == null || duration == null) {
- return null;
- }
- if (!isDaysAndTimeDuration(duration)) {
- throw new DMNRuntimeException(String.format("Cannot add '%s' and '%s'", time, duration));
- }
-
- XMLGregorianCalendar clone = (XMLGregorianCalendar) time.clone();
- clone.add(duration);
- return clone;
- }
-
- @Override
- public XMLGregorianCalendar timeSubtractDuration(XMLGregorianCalendar time, Duration duration) {
- if (time == null || duration == null) {
- return null;
- }
-
- return timeAddDuration(time, duration.negate());
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultXMLCalendarComparator.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultXMLCalendarComparator.java
deleted file mode 100644
index ad3c9d4de..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/DefaultXMLCalendarComparator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib.type.time.xml;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-
-public class DefaultXMLCalendarComparator extends XMLCalendarType implements XMLDateTimeComparator {
- public static final DefaultXMLCalendarComparator COMPARATOR = new DefaultXMLCalendarComparator();
-
- protected DefaultXMLCalendarComparator() {
- }
-
- @Override
- public Integer compareTo(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- Long firstValue = value(first);
- Long secondValue = value(second);
- return firstValue.compareTo(secondValue);
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/FEELXMLGregorianCalendar.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/FEELXMLGregorianCalendar.java
deleted file mode 100644
index e5e8dae85..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/FEELXMLGregorianCalendar.java
+++ /dev/null
@@ -1,1520 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib.type.time.xml;
-
-import com.gs.dmn.runtime.DMNRuntimeException;
-
-import javax.xml.datatype.DatatypeConstants;
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import javax.xml.namespace.QName;
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.math.RoundingMode;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.time.ZoneOffset;
-import java.time.temporal.ChronoField;
-import java.time.temporal.TemporalAccessor;
-import java.time.temporal.TemporalQueries;
-import java.util.*;
-
-public class FEELXMLGregorianCalendar extends XMLGregorianCalendar implements Serializable, Cloneable {
- private static final long serialVersionUID = 1L;
-
- private static final String[] FIELD_NAME = {
- "Year",
- "Month",
- "Day",
- "Hour",
- "Minute",
- "Second",
- "Millisecond",
- "Timezone"
- };
- private static final int YEAR = 0;
- private static final int MONTH = 1;
- private static final int DAY = 2;
- private static final int HOUR = 3;
- private static final int MINUTE = 4;
- private static final int SECOND = 5;
- private static final int MILLISECOND = 6;
- private static final int TIMEZONE = 7;
-
- private static final BigInteger FOUR = BigInteger.valueOf(4);
- private static final BigInteger HUNDRED = BigInteger.valueOf(100);
- private static final BigInteger FOUR_HUNDRED = BigInteger.valueOf(400);
- private static final BigInteger SIXTY = BigInteger.valueOf(60);
- private static final BigInteger TWENTY_FOUR = BigInteger.valueOf(24);
- private static final BigInteger TWELVE = BigInteger.valueOf(12);
- private static final BigDecimal DECIMAL_ZERO = BigDecimal.ZERO;
- private static final BigDecimal DECIMAL_ONE = BigDecimal.ONE;
- private static final BigDecimal DECIMAL_SIXTY = BigDecimal.valueOf(60);
- public static final String MIN_OFFSET = "+14:00";
- public static final String MAX_OFFSET = "-14:00";
-
- private static final int[] daysInMonth = {0, // XML Schema months start at 1.
- 31, 28, 31, 30, 31, 30,
- 31, 31, 30, 31, 30, 31};
-
- private static int maximumDayInMonthFor(BigInteger year, int month) {
- if (month != DatatypeConstants.FEBRUARY) {
- return daysInMonth[month];
- } else {
- if (year.mod(FOUR_HUNDRED).equals(BigInteger.ZERO) ||
- (!year.mod(HUNDRED).equals(BigInteger.ZERO) &&
- year.mod(FOUR).equals(BigInteger.ZERO))) {
- // is a leap year.
- return 29;
- } else {
- return daysInMonth[month];
- }
- }
- }
-
- private static int maximumDayInMonthFor(int year, int month) {
- if (month != DatatypeConstants.FEBRUARY) {
- return daysInMonth[month];
- } else {
- if (((year % 400) == 0) ||
- (((year % 100) != 0) && ((year % 4) == 0))) {
- // is a leap year.
- return 29;
- } else {
- return daysInMonth[DatatypeConstants.FEBRUARY];
- }
- }
- }
-
- /**
- * Implement Step B from
- * http://www.w3.org/TR/xmlschema-2/#dateTime-order.
- */
- private static int compareField(int field1, int field2) {
- if (field1 == field2) {
- //fields are either equal in value or both undefined.
- // Step B. 1.1 AND optimized result of performing 1.1-1.4.
- return DatatypeConstants.EQUAL;
- } else {
- if (field1 == DatatypeConstants.FIELD_UNDEFINED || field2 == DatatypeConstants.FIELD_UNDEFINED) {
- // Step B. 1.2
- return DatatypeConstants.INDETERMINATE;
- } else {
- // Step B. 1.3-4.
- return field1 < field2 ? DatatypeConstants.LESSER : DatatypeConstants.GREATER;
- }
- }
- }
-
- private static int compareField(BigInteger field1, BigInteger field2) {
- if (field1 == null) {
- return field2 == null ? DatatypeConstants.EQUAL : DatatypeConstants.INDETERMINATE;
- }
- if (field2 == null) {
- return DatatypeConstants.INDETERMINATE;
- }
- return field1.compareTo(field2);
- }
-
- private static int compareField(BigDecimal field1, BigDecimal field2) {
- // optimization. especially when both arguments are null.
- if (field1 == field2) {
- return DatatypeConstants.EQUAL;
- }
- if (field1 == null) {
- field1 = DECIMAL_ZERO;
- }
- if (field2 == null) {
- field2 = DECIMAL_ZERO;
- }
- return field1.compareTo(field2);
- }
-
- public static XMLGregorianCalendar makeDate(BigInteger year, int month, int day) {
- return new FEELXMLGregorianCalendar(
- year, month, day,
- DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED, null,
- null);
- }
-
- public static XMLGregorianCalendar makeTime(int hour, int minute, int second, BigDecimal fractionalSecond, String zoneID) {
- return new FEELXMLGregorianCalendar(
- null, DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED,
- hour, minute, second, fractionalSecond,
- zoneID);
- }
-
- public static XMLGregorianCalendar makeDateTime(BigInteger year, int month, int day, int hour, int minute, int second, BigDecimal fractionalSecond, String zoneID) {
- return new FEELXMLGregorianCalendar(
- year, month, day,
- hour, minute, second, fractionalSecond,
- zoneID);
- }
-
- public static XMLGregorianCalendar makeXMLCalendar(TemporalAccessor accessor) {
- return new FEELXMLGregorianCalendar(accessor);
- }
-
- private BigInteger eon = null;
- private int year = DatatypeConstants.FIELD_UNDEFINED;
- private int month = DatatypeConstants.FIELD_UNDEFINED;
- private int day = DatatypeConstants.FIELD_UNDEFINED;
- private int hour = DatatypeConstants.FIELD_UNDEFINED;
- private int minute = DatatypeConstants.FIELD_UNDEFINED;
- private int second = DatatypeConstants.FIELD_UNDEFINED;
- private BigDecimal fractionalSecond = null;
- private int secondsOffset = DatatypeConstants.FIELD_UNDEFINED;
- private String zoneID;
-
- private static final BigInteger BILLION = new BigInteger("1000000000");
- private static final Date PURE_GREGORIAN_CHANGE = new Date(Long.MIN_VALUE);
-
- public FEELXMLGregorianCalendar() {
- }
-
- private FEELXMLGregorianCalendar(TemporalAccessor accessor) throws IllegalArgumentException {
- setEon(null);
- try {
- setYear(accessor.get(ChronoField.YEAR));
- } catch (Exception e) {
- setYear(DatatypeConstants.FIELD_UNDEFINED);
- }
- try {
- setMonth(accessor.get(ChronoField.MONTH_OF_YEAR));
- } catch (Exception e) {
- setMonth(DatatypeConstants.FIELD_UNDEFINED);
- }
- try {
- setDay(accessor.get(ChronoField.DAY_OF_MONTH));
- } catch (Exception e) {
- setDay(DatatypeConstants.FIELD_UNDEFINED);
- }
- try {
- setHour(accessor.get(ChronoField.HOUR_OF_DAY));
- } catch (Exception e) {
- setHour(DatatypeConstants.FIELD_UNDEFINED);
- }
- try {
- setMinute(accessor.get(ChronoField.MINUTE_OF_HOUR));
- } catch (Exception e) {
- setMinute(DatatypeConstants.FIELD_UNDEFINED);
- }
- try {
- setSecond(accessor.get(ChronoField.SECOND_OF_MINUTE));
- } catch (Exception e) {
- setSecond(DatatypeConstants.FIELD_UNDEFINED);
- }
- try {
- BigDecimal fractional = BigDecimal.valueOf(accessor.get(ChronoField.NANO_OF_SECOND) / (double) 1000000000);
- setFractionalSecond(fractional);
- } catch (Exception e) {
- setFractionalSecond(null);
- }
-
- ZoneId zone = accessor.query(TemporalQueries.zone());
- setZoneID(zone == null ? null : zone.getId());
- }
-
- private FEELXMLGregorianCalendar(BigInteger year, int month, int day, int hour, int minute, int second, BigDecimal fractionalSecond, String zoneID) {
- setYear(year);
- setMonth(month);
- setDay(day);
- setTime(hour, minute, second, fractionalSecond);
- setZoneID(zoneID);
- // check for validity
- if (!isValid()) {
- Object[] arguments = {year, month, day, hour, minute, second, fractionalSecond, zoneID};
- throw new IllegalArgumentException(errorMessage("InvalidXGCValue-fractional", arguments));
- }
- }
-
- public FEELXMLGregorianCalendar(GregorianCalendar cal) {
-
- int year1 = cal.get(Calendar.YEAR);
- if (cal.get(Calendar.ERA) == GregorianCalendar.BC) {
- year1 = -year1;
- }
- this.setYear(year1);
-
- // Calendar.MONTH is zero based, XSD Date datatype's month field starts
- // with JANUARY as 1.
- this.setMonth(cal.get(Calendar.MONTH) + 1);
- this.setDay(cal.get(Calendar.DAY_OF_MONTH));
- this.setTime(
- cal.get(Calendar.HOUR_OF_DAY),
- cal.get(Calendar.MINUTE),
- cal.get(Calendar.SECOND),
- cal.get(Calendar.MILLISECOND));
-
- // Calendar ZONE_OFFSET and DST_OFFSET fields are in milliseconds.
- int offsetInMinutes = (cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET)) / (60 * 1000);
- this.secondsOffset = offsetInMinutes * 60;
- }
-
- @Override
- public BigInteger getEon() {
- return eon;
- }
-
- @Override
- public int getYear() {
- return year;
- }
-
- @Override
- public BigInteger getEonAndYear() {
- // both are defined
- if (year != DatatypeConstants.FIELD_UNDEFINED && eon != null) {
- return eon.add(BigInteger.valueOf(year));
- }
- // only year is defined
- if (year != DatatypeConstants.FIELD_UNDEFINED && eon == null) {
- return BigInteger.valueOf(year);
- }
- // neither are defined
- // or only eon is defined which is not valid without a year
- return null;
- }
-
- @Override
- public void setYear(BigInteger year) {
- if (year == null) {
- this.eon = null;
- this.year = DatatypeConstants.FIELD_UNDEFINED;
- } else {
- BigInteger temp = year.remainder(BILLION);
- this.year = temp.intValue();
- setEon(year.subtract(temp));
- }
- }
-
- @Override
- public void setYear(int year) {
- if (year == DatatypeConstants.FIELD_UNDEFINED) {
- this.year = DatatypeConstants.FIELD_UNDEFINED;
- this.eon = null;
- } else if (Math.abs(year) < BILLION.intValue()) {
- this.year = year;
- this.eon = null;
- } else {
- BigInteger theYear = BigInteger.valueOf(year);
- BigInteger remainder = theYear.remainder(BILLION);
- this.year = remainder.intValue();
- setEon(theYear.subtract(remainder));
- }
- }
-
- void setEon(BigInteger eon) {
- if (eon != null && eon.compareTo(BigInteger.ZERO) == 0) {
- // Treat ZERO as field being undefined.
- this.eon = null;
- } else {
- this.eon = eon;
- }
- }
-
- @Override
- public int getMonth() {
- return month;
- }
-
- @Override
- public void setMonth(int month) {
- if (month < DatatypeConstants.JANUARY || DatatypeConstants.DECEMBER < month)
- if (month != DatatypeConstants.FIELD_UNDEFINED)
- invalidFieldValue(MONTH, month);
- this.month = month;
- }
-
- @Override
- public int getDay() {
- return day;
- }
-
- @Override
- public void setDay(int day) {
- if (day < 1 || 31 < day)
- if (day != DatatypeConstants.FIELD_UNDEFINED)
- invalidFieldValue(DAY, day);
- this.day = day;
- }
-
- @Override
- public int getHour() {
- return hour;
- }
-
- @Override
- public void setHour(int hour) {
- setHour(hour, true);
- }
-
- void setHour(int hour, boolean validate) {
- if (hour < 0 || hour > 24) {
- if (hour != DatatypeConstants.FIELD_UNDEFINED) {
- invalidFieldValue(HOUR, hour);
- }
- }
- this.hour = hour;
- if (validate) {
- fixHour();
- }
- }
-
- void fixHour() {
- if (getHour() == 24) {
- if (getMinute() != 0 || getSecond() != 0) {
- invalidFieldValue(HOUR, getHour());
- }
- setHour(0, false);
- add(XMLDurationFactory.INSTANCE.dayTimeWithDays(1));
- }
- }
-
- @Override
- public int getMinute() {
- return minute;
- }
-
- @Override
- public void setMinute(int minute) {
- if (minute < 0 || 59 < minute)
- if (minute != DatatypeConstants.FIELD_UNDEFINED)
- invalidFieldValue(MINUTE, minute);
- this.minute = minute;
- }
-
- @Override
- public int getSecond() {
- return second;
- }
-
- @Override
- public BigDecimal getFractionalSecond() {
- return fractionalSecond;
- }
-
- /**
- * @return result of adding second and fractional second field
- */
- private BigDecimal getSeconds() {
- if (second == DatatypeConstants.FIELD_UNDEFINED) {
- return DECIMAL_ZERO;
- }
- BigDecimal result = BigDecimal.valueOf(second);
- if (fractionalSecond != null) {
- return result.add(fractionalSecond);
- } else {
- return result;
- }
- }
-
- @Override
- public int getMillisecond() {
- if (fractionalSecond == null) {
- return DatatypeConstants.FIELD_UNDEFINED;
- } else {
- return fractionalSecond.movePointRight(3).intValue();
- }
- }
-
- @Override
- public void setSecond(int second) {
- if (second < 0 || 60 < second) // leap second allows for 60
- if (second != DatatypeConstants.FIELD_UNDEFINED)
- invalidFieldValue(SECOND, second);
- this.second = second;
- }
-
- @Override
- public void setMillisecond(int millisecond) {
- if (millisecond == DatatypeConstants.FIELD_UNDEFINED) {
- fractionalSecond = null;
- } else {
- if (millisecond < 0 || 999 < millisecond)
- if (millisecond != DatatypeConstants.FIELD_UNDEFINED)
- invalidFieldValue(MILLISECOND, millisecond);
- fractionalSecond = new BigDecimal((long) millisecond).movePointLeft(3);
- }
- }
-
- @Override
- public void setFractionalSecond(BigDecimal fractional) {
- if (fractional != null && fractional.compareTo(BigDecimal.ZERO) == 0) {
- fractional = null;
- }
- if (fractional != null) {
- if ((fractional.compareTo(DECIMAL_ZERO) < 0) ||
- (fractional.compareTo(DECIMAL_ONE) > 0)) {
- throw new IllegalArgumentException(errorMessage("InvalidFractional", new Object[]{fractional}));
- }
- }
- this.fractionalSecond = fractional;
- }
-
- @Override
- public int getTimezone() {
- return this.secondsOffset;
- }
-
- @Override
- public void setTimezone(int offset) {
- throw new DMNRuntimeException("Not supported");
- }
-
- private void setSecondsOffset(String zoneID) {
- int offset = secondsOffset(zoneID);
- if (offset < -18 * 3600 || 18 * 3600 < offset) {
- if (offset != DatatypeConstants.FIELD_UNDEFINED) {
- invalidFieldValue(TIMEZONE, offset);
- }
- }
- this.secondsOffset = offset;
- }
-
- public String getZoneID() {
- return zoneID;
- }
-
- public void setZoneID(String zoneID) {
- this.zoneID = zoneID;
- // Derive offset from zoneId
- this.setSecondsOffset(zoneID);
- }
-
- private int secondsOffset(String zoneID) {
- if (zoneID != null) {
- if (year != DatatypeConstants.FIELD_UNDEFINED) {
- LocalDateTime ldt = LocalDateTime.of(year, month, day, hour, minute, second);
- ZoneOffset offset = ldt.atZone(ZoneId.of(zoneID)).getOffset();
- return offset.get(ChronoField.OFFSET_SECONDS);
- } else {
- // milliseconds to seconds
- return TimeZone.getTimeZone(ZoneId.of(zoneID)).getRawOffset() / 1000;
- }
- }
- return DatatypeConstants.FIELD_UNDEFINED;
- }
-
- @Override
- public void setTime(int hour, int minute, int second) {
- setTime(hour, minute, second, null);
- }
-
- @Override
- public void setTime(int hour, int minute, int second, BigDecimal fractional) {
- setHour(hour, false);
- setMinute(minute);
- if (second != 60) {
- setSecond(second);
- } else if ((hour == 23 && minute == 59) || (hour == 0 && minute == 0)) {
- setSecond(second);
- } else {
- invalidFieldValue(SECOND, second);
- }
- setFractionalSecond(fractional);
- fixHour();
- }
-
- @Override
- public void setTime(int hour, int minute, int second, int millisecond) {
- setHour(hour, false);
- setMinute(minute);
- if (second != 60) {
- setSecond(second);
- } else if ((hour == 23 && minute == 59) || (hour == 0 && minute == 0)) {
- setSecond(second);
- } else {
- invalidFieldValue(SECOND, second);
- }
- setMillisecond(millisecond);
- // must test hour after setting seconds
- fixHour();
- }
-
- private void invalidFieldValue(int field, int value) {
- throw new IllegalArgumentException(errorMessage("InvalidFieldValue", new Object[]{value, FIELD_NAME[field]}));
- }
-
- @Override
- public int compare(XMLGregorianCalendar other) {
- FEELXMLGregorianCalendar lhs = this;
- FEELXMLGregorianCalendar rhs = (FEELXMLGregorianCalendar) other;
-
- int result;
- if (lhs.getTimezone() == rhs.getTimezone()) {
- // Optimization:
- // both instances are in same timezone or
- // both are FIELD_UNDEFINED.
- // Avoid costly normalization of timezone to 'Z' time.
- return internalCompare(lhs, rhs);
- } else if (lhs.getTimezone() != DatatypeConstants.FIELD_UNDEFINED &&
- rhs.getTimezone() != DatatypeConstants.FIELD_UNDEFINED) {
- // Both instances have different timezones.
- // Normalize to UTC time and compare.
- lhs = (FEELXMLGregorianCalendar) lhs.normalize();
- rhs = (FEELXMLGregorianCalendar) rhs.normalize();
- return internalCompare(lhs, rhs);
- } else if (lhs.getTimezone() != DatatypeConstants.FIELD_UNDEFINED) {
- if (lhs.getTimezone() != 0) {
- lhs = (FEELXMLGregorianCalendar) lhs.normalize();
- }
- // C. step 1
- XMLGregorianCalendar minQ = rhs.normalizeToTimezone(MIN_OFFSET);
- result = internalCompare(lhs, minQ);
- if (result == DatatypeConstants.LESSER) {
- return result;
- }
- // C. step 2
- XMLGregorianCalendar maxQ = rhs.normalizeToTimezone(MAX_OFFSET);
- result = internalCompare(lhs, maxQ);
- if (result == DatatypeConstants.GREATER) {
- return result;
- } else {
- // C. step 3
- return DatatypeConstants.INDETERMINATE;
- }
- } else {
- // rhs.getTimezone() != DatatypeConstants.FIELD_UNDEFINED
- // lhs has no timezone and rhs does.
- if (rhs.getTimezone() != 0) {
- rhs = (FEELXMLGregorianCalendar) rhs.normalizeToTimezone(rhs.zoneID);
- }
- // D. step 1
- XMLGregorianCalendar maxP = lhs.normalizeToTimezone(MAX_OFFSET);
- result = internalCompare(maxP, rhs);
- if (result == DatatypeConstants.LESSER) {
- return result;
- }
- // D. step 2
- XMLGregorianCalendar minP = lhs.normalizeToTimezone(MIN_OFFSET);
- result = internalCompare(minP, rhs);
- if (result == DatatypeConstants.GREATER) {
- return result;
- } else {
- // D. step 3
- return DatatypeConstants.INDETERMINATE;
- }
- }
- }
-
- @Override
- public XMLGregorianCalendar normalize() {
- XMLGregorianCalendar normalized = normalizeToTimezone(zoneID);
- // if timezone was undefined, leave it undefined
- if (getTimezone() == DatatypeConstants.FIELD_UNDEFINED) {
- normalized.setTimezone(DatatypeConstants.FIELD_UNDEFINED);
- }
- // if milliseconds was undefined, leave it undefined
- if (getMillisecond() == DatatypeConstants.FIELD_UNDEFINED) {
- normalized.setMillisecond(DatatypeConstants.FIELD_UNDEFINED);
- }
- return normalized;
- }
-
- public XMLGregorianCalendar normalizeToTimezone(String zoneID) {
- int seconds = secondsOffset(zoneID);
- FEELXMLGregorianCalendar result = (FEELXMLGregorianCalendar) this.clone();
- // normalizing to UTC time negates the timezone offset before addition.
- seconds = -seconds;
- Duration d = XMLDurationFactory.INSTANCE.dayTimeFromValue(seconds);
- result.add(d);
- // set to zulu UTC time.
- result.setZoneID("Z");
- return result;
- }
-
- private static int internalCompare(XMLGregorianCalendar lhs, XMLGregorianCalendar rhs) {
- int result;
- // compare Year.
- if (lhs.getEon() == rhs.getEon()) {
- // Eon field is only equal when null.
- // optimized case for comparing year not requiring eon field.
- result = compareField(lhs.getYear(), rhs.getYear());
- if (result != DatatypeConstants.EQUAL) {
- return result;
- }
- } else {
- result = compareField(lhs.getEonAndYear(), rhs.getEonAndYear());
- if (result != DatatypeConstants.EQUAL) {
- return result;
- }
- }
- // compare month
- result = compareField(lhs.getMonth(), rhs.getMonth());
- if (result != DatatypeConstants.EQUAL) {
- return result;
- }
- // compare day
- result = compareField(lhs.getDay(), rhs.getDay());
- if (result != DatatypeConstants.EQUAL) {
- return result;
- }
- // compare hour
- result = compareField(lhs.getHour(), rhs.getHour());
- if (result != DatatypeConstants.EQUAL) {
- return result;
- }
- // compare minute
- result = compareField(lhs.getMinute(), rhs.getMinute());
- if (result != DatatypeConstants.EQUAL) {
- return result;
- }
- // compare rhs
- result = compareField(lhs.getSecond(), rhs.getSecond());
- if (result != DatatypeConstants.EQUAL) {
- return result;
- }
- // compare fractional rhs
- result = compareField(lhs.getFractionalSecond(), rhs.getFractionalSecond());
- return result;
- }
-
- public boolean same(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- FEELXMLGregorianCalendar calendar = (FEELXMLGregorianCalendar) o;
- return year == calendar.year &&
- month == calendar.month &&
- day == calendar.day &&
- hour == calendar.hour &&
- minute == calendar.minute &&
- second == calendar.second &&
- Objects.equals(eon, calendar.eon) &&
- Objects.equals(zoneID, calendar.zoneID);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == null || !(obj instanceof XMLGregorianCalendar)) {
- return false;
- }
- return compare((XMLGregorianCalendar) obj) == DatatypeConstants.EQUAL;
- }
-
- @Override
- public int hashCode() {
- // Following two dates compare to EQUALS since in different timezones.
- // 2000-01-15T12:00:00-05:00 == 2000-01-15T13:00:00-04:00
- //
- // Must ensure both instances generate same hashcode by normalizing this to UTC timezone.
- int timezone = getTimezone();
- if (timezone == DatatypeConstants.FIELD_UNDEFINED) {
- timezone = 0;
- }
- XMLGregorianCalendar gc = this;
- if (timezone != 0) {
- gc = this.normalizeToTimezone(getZoneID());
- }
- return gc.getYear() + gc.getMonth() + gc.getDay() + gc.getHour() + gc.getMinute() + gc.getSecond();
- }
-
- @Override
- public String toXMLFormat() {
- QName kind = getXMLSchemaType();
- String formatString = null;
- // Fix 4971612: invalid SCCS macro substitution in data string
- // no %{alpha}% to avoid SCCS macro substitution
- if (kind == DatatypeConstants.DATETIME) {
- formatString = "%Y-%M-%DT%h:%m:%s" + "%z";
- } else if (kind == DatatypeConstants.DATE) {
- formatString = "%Y-%M-%D" + "%z";
- } else if (kind == DatatypeConstants.TIME) {
- formatString = "%h:%m:%s" + "%z";
- }
- return format(formatString);
- }
-
- @Override
- public QName getXMLSchemaType() {
- int mask =
- (year != DatatypeConstants.FIELD_UNDEFINED ? 0x20 : 0) |
- (month != DatatypeConstants.FIELD_UNDEFINED ? 0x10 : 0) |
- (day != DatatypeConstants.FIELD_UNDEFINED ? 0x08 : 0) |
- (hour != DatatypeConstants.FIELD_UNDEFINED ? 0x04 : 0) |
- (minute != DatatypeConstants.FIELD_UNDEFINED ? 0x02 : 0) |
- (second != DatatypeConstants.FIELD_UNDEFINED ? 0x01 : 0);
- switch (mask) {
- case 0x3F:
- return DatatypeConstants.DATETIME;
- case 0x38:
- return DatatypeConstants.DATE;
- case 0x07:
- return DatatypeConstants.TIME;
- default:
- throw new IllegalStateException(
- errorMessage("InvalidXGCFields", new Object[] {this.getClass().getName() + "#getXMLSchemaType() :"})
- );
- }
- }
-
- @Override
- public boolean isValid() {
- // check if days in month is valid. Can be dependent on leap year.
- if (getMonth() == DatatypeConstants.FEBRUARY) {
- // years could not be set
- int maxDays = 29;
- if (eon == null) {
- if (year != DatatypeConstants.FIELD_UNDEFINED) {
- maxDays = maximumDayInMonthFor(year, getMonth());
- }
- } else {
- BigInteger years = getEonAndYear();
- if (years != null) {
- maxDays = maximumDayInMonthFor(getEonAndYear(), DatatypeConstants.FEBRUARY);
- }
- }
- if (getDay() > maxDays) {
- return false;
- }
- }
-
- // http://www.w3.org/2001/05/xmlschema-errata#e2-45
- if (getHour() == 24) {
- if (getMinute() != 0 || getSecond() != 0) {
- return false;
- }
- }
-
- // XML Schema 1.0 specification defines year value of zero as
- // invalid. Allow this class to set year field to zero
- // since XML Schema 1.0 errata states that lexical zero will
- // be allowed in next version and treated as 1 B.C.E.
- if (eon == null) {
- // optimize check.
- return year != 0;
- } else {
- BigInteger yearField = getEonAndYear();
- if (yearField != null) {
- int result = compareField(yearField, BigInteger.ZERO);
- return result != DatatypeConstants.EQUAL;
- }
- }
- return true;
- }
-
- @Override
- public void add(Duration duration) {
- /*
- * Extracted from
- * http://www.w3.org/TR/xmlschema-2/#adding-durations-to-dateTimes
- * to ensure implemented properly. See spec for definitions of methods
- * used in algorithm.
- *
- * Given a dateTime S and a duration D, specifies how to compute a
- * dateTime E where E is the end of the time period with start S and
- * duration D i.e. E = S + D.
- *
- * The following is the precise specification.
- * These steps must be followed in the same order.
- * If a field in D is not specified, it is treated as if it were zero.
- * If a field in S is not specified, it is treated in the calculation
- * as if it were the minimum allowed value in that field, however,
- * after the calculation is concluded, the corresponding field in
- * E is removed (set to unspecified).
- *
- * Months (may be modified additionally below)
- * temp := S[month] + D[month]
- * E[month] := modulo(temp, 1, 13)
- * carry := fQuotient(temp, 1, 13)
- */
-
- boolean[] fieldUndefined = {
- false,
- false,
- false,
- false,
- false,
- false
- };
-
- int signum = duration.getSign();
-
- int startMonth = getMonth();
- if (startMonth == DatatypeConstants.FIELD_UNDEFINED) {
- startMonth = DatatypeConstants.JANUARY;
- fieldUndefined[MONTH] = true;
- }
-
- BigInteger dMonths = sanitize(duration.getField(DatatypeConstants.MONTHS), signum);
- BigInteger temp = BigInteger.valueOf(startMonth).add(dMonths);
- setMonth(temp.subtract(BigInteger.ONE).mod(TWELVE).intValue() + 1);
- BigInteger carry =
- new BigDecimal(temp.subtract(BigInteger.ONE)).divide(new BigDecimal(TWELVE), RoundingMode.FLOOR).toBigInteger();
-
-
- // Years (may be modified additionally below)
- // E[year] := S[year] + D[year] + carry
- BigInteger startYear = getEonAndYear();
- if (startYear == null) {
- fieldUndefined[YEAR] = true;
- startYear = BigInteger.ZERO;
- }
- BigInteger dYears = sanitize(duration.getField(DatatypeConstants.YEARS), signum);
- BigInteger endYear = startYear.add(dYears).add(carry);
- setYear(endYear);
-
- // Zone
- // E[zone] := S[zone]
- // no-op since adding to this, not to a new end point.
- // Seconds
- // temp := S[second] + D[second]
- // E[second] := modulo(temp, 60)
- // carry := fQuotient(temp, 60)
- BigDecimal startSeconds;
- if (getSecond() == DatatypeConstants.FIELD_UNDEFINED) {
- fieldUndefined[SECOND] = true;
- startSeconds = DECIMAL_ZERO;
- } else {
- // seconds + fractionalSeconds
- startSeconds = getSeconds();
- }
-
- // Duration seconds is SECONDS + FRACTIONALSECONDS.
- BigDecimal dSeconds = sanitize((BigDecimal) duration.getField(DatatypeConstants.SECONDS), signum);
- BigDecimal tempBD = startSeconds.add(dSeconds);
- BigDecimal fQuotient = new BigDecimal(new BigDecimal(tempBD.toBigInteger()).divide(DECIMAL_SIXTY, RoundingMode.FLOOR).toBigInteger());
- BigDecimal endSeconds = tempBD.subtract(fQuotient.multiply(DECIMAL_SIXTY));
-
- carry = fQuotient.toBigInteger();
- setSecond(endSeconds.intValue());
- BigDecimal tempFracSeconds = endSeconds.subtract(new BigDecimal(BigInteger.valueOf(getSecond())));
- if (tempFracSeconds.compareTo(DECIMAL_ZERO) < 0) {
- setFractionalSecond(DECIMAL_ONE.add(tempFracSeconds));
- if (getSecond() == 0) {
- setSecond(59);
- carry = carry.subtract(BigInteger.ONE);
- } else {
- setSecond(getSecond() - 1);
- }
- } else {
- setFractionalSecond(tempFracSeconds);
- }
-
- // Minutes
- // temp := S[minute] + D[minute] + carry
- // E[minute] := modulo(temp, 60)
- // carry := fQuotient(temp, 60)
- int startMinutes = getMinute();
- if (startMinutes == DatatypeConstants.FIELD_UNDEFINED) {
- fieldUndefined[MINUTE] = true;
- startMinutes = 0;
- }
- BigInteger dMinutes = sanitize(duration.getField(DatatypeConstants.MINUTES), signum);
-
- temp = BigInteger.valueOf(startMinutes).add(dMinutes).add(carry);
- setMinute(temp.mod(SIXTY).intValue());
- carry = new BigDecimal(temp).divide(DECIMAL_SIXTY, RoundingMode.FLOOR).toBigInteger();
-
- // Hours
- // temp := S[hour] + D[hour] + carry
- // E[hour] := modulo(temp, 24)
- // carry := fQuotient(temp, 24)
- int startHours = getHour();
- if (startHours == DatatypeConstants.FIELD_UNDEFINED) {
- fieldUndefined[HOUR] = true;
- startHours = 0;
- }
- BigInteger dHours = sanitize(duration.getField(DatatypeConstants.HOURS), signum);
-
- temp = BigInteger.valueOf(startHours).add(dHours).add(carry);
- setHour(temp.mod(TWENTY_FOUR).intValue(), false);
- carry = new BigDecimal(temp).divide(new BigDecimal(TWENTY_FOUR), RoundingMode.FLOOR).toBigInteger();
-
- // Days
- // if S[day] > maximumDayInMonthFor(E[year], E[month])
- // + tempDays := maximumDayInMonthFor(E[year], E[month])
- // else if S[day] < 1
- // + tempDays := 1
- // else
- // + tempDays := S[day]
- // E[day] := tempDays + D[day] + carry
- // START LOOP
- // + IF E[day] < 1
- // # E[day] := E[day] +
- // maximumDayInMonthFor(E[year], E[month] - 1)
- // # carry := -1
- // + ELSE IF E[day] > maximumDayInMonthFor(E[year], E[month])
- // # E[day] :=
- // E[day] - maximumDayInMonthFor(E[year], E[month])
- // # carry := 1
- // + ELSE EXIT LOOP
- // + temp := E[month] + carry
- // + E[month] := modulo(temp, 1, 13)
- // + E[year] := E[year] + fQuotient(temp, 1, 13)
- // + GOTO START LOOP
- BigInteger tempDays;
- int startDay = getDay();
- if (startDay == DatatypeConstants.FIELD_UNDEFINED) {
- fieldUndefined[DAY] = true;
- startDay = 1;
- }
- BigInteger dDays = sanitize(duration.getField(DatatypeConstants.DAYS), signum);
- int maxDayInMonth = maximumDayInMonthFor(getEonAndYear(), getMonth());
- if (startDay > maxDayInMonth) {
- tempDays = BigInteger.valueOf(maxDayInMonth);
- } else if (startDay < 1) {
- tempDays = BigInteger.ONE;
- } else {
- tempDays = BigInteger.valueOf(startDay);
- }
- BigInteger endDays = tempDays.add(dDays).add(carry);
- int monthCarry;
- int intTemp;
- while (true) {
- if (endDays.compareTo(BigInteger.ONE) < 0) {
- // calculate days in previous month, watch for month roll over
- BigInteger mdimf;
- if (month >= 2) {
- mdimf = BigInteger.valueOf(maximumDayInMonthFor(getEonAndYear(), getMonth() - 1));
- } else {
- // roll over to December of previous year
- mdimf = BigInteger.valueOf(maximumDayInMonthFor(getEonAndYear().subtract(BigInteger.valueOf(1)), 12));
- }
- endDays = endDays.add(mdimf);
- monthCarry = -1;
- } else if (endDays.compareTo(BigInteger.valueOf(maximumDayInMonthFor(getEonAndYear(), getMonth()))) > 0) {
- endDays = endDays.add(BigInteger.valueOf(-maximumDayInMonthFor(getEonAndYear(), getMonth())));
- monthCarry = 1;
- } else {
- break;
- }
-
- intTemp = getMonth() + monthCarry;
- int endMonth = (intTemp - 1) % (13 - 1);
- int quotient;
- if (endMonth < 0) {
- endMonth = (13 - 1) + endMonth + 1;
- quotient = new BigDecimal(intTemp - 1).divide(new BigDecimal(TWELVE), RoundingMode.UP).intValue();
- } else {
- quotient = (intTemp - 1) / (13 - 1);
- endMonth += 1;
- }
- setMonth(endMonth);
- if (quotient != 0) {
- setYear(getEonAndYear().add(BigInteger.valueOf(quotient)));
- }
- }
- setDay(endDays.intValue());
-
- // set fields that where undefined before this addition, back to undefined.
- for (int i = YEAR; i <= SECOND; i++) {
- if (fieldUndefined[i]) {
- switch (i) {
- case YEAR:
- setYear(DatatypeConstants.FIELD_UNDEFINED);
- break;
- case MONTH:
- setMonth(DatatypeConstants.FIELD_UNDEFINED);
- break;
- case DAY:
- setDay(DatatypeConstants.FIELD_UNDEFINED);
- break;
- case HOUR:
- setHour(DatatypeConstants.FIELD_UNDEFINED, false);
- break;
- case MINUTE:
- setMinute(DatatypeConstants.FIELD_UNDEFINED);
- break;
- case SECOND:
- setSecond(DatatypeConstants.FIELD_UNDEFINED);
- setFractionalSecond(null);
- break;
- }
- }
- }
- }
-
- @Override
- public java.util.GregorianCalendar toGregorianCalendar() {
- GregorianCalendar result;
- final int DEFAULT_TIMEZONE_OFFSET = DatatypeConstants.FIELD_UNDEFINED;
- TimeZone tz = getTimeZone(DEFAULT_TIMEZONE_OFFSET);
- // Use the following instead for JDK7 only:
- // Locale locale = Locale.getDefault(Locale.Category.FORMAT);
- Locale locale = getDefaultLocale();
-
- result = new GregorianCalendar(tz, locale);
- result.clear();
- result.setGregorianChange(PURE_GREGORIAN_CHANGE);
-
- // if year( and eon) are undefined, leave default Calendar values
- BigInteger year = getEonAndYear();
- if (year != null) {
- result.set(Calendar.ERA, year.signum() == -1 ? GregorianCalendar.BC : GregorianCalendar.AD);
- result.set(Calendar.YEAR, year.abs().intValue());
- }
-
- // only set month if it is set
- if (month != DatatypeConstants.FIELD_UNDEFINED) {
- // Calendar.MONTH is zero based while XMLGregorianCalendar month field is not.
- result.set(Calendar.MONTH, month - 1);
- }
-
- // only set day if it is set
- if (day != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.DAY_OF_MONTH, day);
- }
-
- // only set hour if it is set
- if (hour != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.HOUR_OF_DAY, hour);
- }
-
- // only set minute if it is set
- if (minute != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.MINUTE, minute);
- }
-
- // only set second if it is set
- if (second != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.SECOND, second);
- }
-
- // only set millisend if it is set
- if (fractionalSecond != null) {
- result.set(Calendar.MILLISECOND, getMillisecond());
- }
-
- return result;
- }
-
- private Locale getDefaultLocale() {
- return Locale.getDefault();
- }
-
- @Override
- public GregorianCalendar toGregorianCalendar(TimeZone timezone, Locale aLocale, XMLGregorianCalendar defaults) {
- GregorianCalendar result;
- TimeZone tz = timezone;
- if (tz == null) {
- int defaultZoneoffset = DatatypeConstants.FIELD_UNDEFINED;
- if (defaults != null) {
- defaultZoneoffset = defaults.getTimezone();
- }
- tz = getTimeZone(defaultZoneoffset);
- }
- if (aLocale == null) {
- aLocale = Locale.getDefault();
- }
- result = new GregorianCalendar(tz, aLocale);
- result.clear();
- result.setGregorianChange(PURE_GREGORIAN_CHANGE);
-
- // if year( and eon) are undefined, leave default Calendar values
- BigInteger year = getEonAndYear();
- if (year != null) {
- result.set(Calendar.ERA, year.signum() == -1 ? GregorianCalendar.BC : GregorianCalendar.AD);
- result.set(Calendar.YEAR, year.abs().intValue());
- } else {
- // use default if set
- BigInteger defaultYear = (defaults != null) ? defaults.getEonAndYear() : null;
- if (defaultYear != null) {
- result.set(Calendar.ERA, defaultYear.signum() == -1 ? GregorianCalendar.BC : GregorianCalendar.AD);
- result.set(Calendar.YEAR, defaultYear.abs().intValue());
- }
- }
-
- // only set month if it is set
- if (month != DatatypeConstants.FIELD_UNDEFINED) {
- // Calendar.MONTH is zero based while XMLGregorianCalendar month field is not.
- result.set(Calendar.MONTH, month - 1);
- } else {
- // use default if set
- int defaultMonth = (defaults != null) ? defaults.getMonth() : DatatypeConstants.FIELD_UNDEFINED;
- if (defaultMonth != DatatypeConstants.FIELD_UNDEFINED) {
- // Calendar.MONTH is zero based while XMLGregorianCalendar month field is not.
- result.set(Calendar.MONTH, defaultMonth - 1);
- }
- }
-
- // only set day if it is set
- if (day != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.DAY_OF_MONTH, day);
- } else {
- // use default if set
- int defaultDay = (defaults != null) ? defaults.getDay() : DatatypeConstants.FIELD_UNDEFINED;
- if (defaultDay != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.DAY_OF_MONTH, defaultDay);
- }
- }
-
- // only set hour if it is set
- if (hour != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.HOUR_OF_DAY, hour);
- } else {
- // use default if set
- int defaultHour = (defaults != null) ? defaults.getHour() : DatatypeConstants.FIELD_UNDEFINED;
- if (defaultHour != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.HOUR_OF_DAY, defaultHour);
- }
- }
-
- // only set minute if it is set
- if (minute != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.MINUTE, minute);
- } else {
- // use default if set
- int defaultMinute = (defaults != null) ? defaults.getMinute() : DatatypeConstants.FIELD_UNDEFINED;
- if (defaultMinute != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.MINUTE, defaultMinute);
- }
- }
-
- // only set second if it is set
- if (second != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.SECOND, second);
- } else {
- // use default if set
- int defaultSecond = (defaults != null) ? defaults.getSecond() : DatatypeConstants.FIELD_UNDEFINED;
- if (defaultSecond != DatatypeConstants.FIELD_UNDEFINED) {
- result.set(Calendar.SECOND, defaultSecond);
- }
- }
-
- // only set millisend if it is set
- if (fractionalSecond != null) {
- result.set(Calendar.MILLISECOND, getMillisecond());
- } else {
- // use default if set
- BigDecimal defaultFractionalSecond = (defaults != null) ? defaults.getFractionalSecond() : null;
- if (defaultFractionalSecond != null) {
- result.set(Calendar.MILLISECOND, defaults.getMillisecond());
- }
- }
-
- return result;
- }
-
- @Override
- public TimeZone getTimeZone(int defaultZoneoffset) {
- TimeZone result;
- int zoneoffset = getTimezone();
-
- if (zoneoffset == DatatypeConstants.FIELD_UNDEFINED) {
- zoneoffset = defaultZoneoffset;
- }
- if (zoneoffset == DatatypeConstants.FIELD_UNDEFINED) {
- result = TimeZone.getDefault();
- } else {
- // zoneoffset is in seconds. Convert to custom timezone id format.
- char sign = zoneoffset < 0 ? '-' : '+';
- if (sign == '-') {
- zoneoffset = -zoneoffset;
- }
- int hour = zoneoffset / 3600;
- int seconds = zoneoffset % 3600;
- int minutes = seconds / 60;
-
- // Javadoc for java.util.TimeZone documents max length
- // for customTimezoneId is 8 when optional ':' is not used.
- // Format is
- // "GMT" ('-'|'+') (digit digit?) (digit digit)?
- // hour minutes
- StringBuffer customTimezoneId = new StringBuffer(8);
- customTimezoneId.append("GMT");
- customTimezoneId.append(sign);
- customTimezoneId.append(hour);
- if (minutes != 0) {
- customTimezoneId.append(minutes);
- }
- result = TimeZone.getTimeZone(customTimezoneId.toString());
- }
- return result;
- }
-
- @Override
- public Object clone() {
- // Both this.eon and this.fractionalSecond are instances
- // of immutable classes, so they do not need to be cloned.
- return new FEELXMLGregorianCalendar(
- getEonAndYear(), this.month, this.day,
- this.hour, this.minute, this.second, this.fractionalSecond,
- this.zoneID);
- }
-
- @Override
- public void clear() {
- eon = null;
- year = DatatypeConstants.FIELD_UNDEFINED;
- month = DatatypeConstants.FIELD_UNDEFINED;
- day = DatatypeConstants.FIELD_UNDEFINED;
- hour = DatatypeConstants.FIELD_UNDEFINED;
- minute = DatatypeConstants.FIELD_UNDEFINED;
- second = DatatypeConstants.FIELD_UNDEFINED;
- fractionalSecond = null;
- secondsOffset = DatatypeConstants.FIELD_UNDEFINED;
- zoneID = null;
- }
-
- /**
- * Prints this object according to the format specification.
- *
- *
- * I wrote a custom format method for a particular format string to
- * see if it improves the performance, but it didn't. So this interpreting
- * approach isn't too bad.
- *
- *
- * StringBuffer -> StringBuilder change had a very visible impact.
- * It almost cut the execution time to half, but unfortunately we can't use it
- * because we need to run on JDK 1.3
- */
- private String format(String format) {
- char[] buf = new char[32];
- int bufPtr = 0;
-
- int fidx = 0, flen = format.length();
-
- while (fidx < flen) {
- char fch = format.charAt(fidx++);
- if (fch != '%') {// not a meta char
- buf[bufPtr++] = fch;
- continue;
- }
-
- switch (format.charAt(fidx++)) {
- case 'Y':
- if (eon == null) {
- // optimized path
- int y = getYear();
- if (y < 0) {
- buf[bufPtr++] = '-';
- y = -y;
- }
- bufPtr = print4Number(buf, bufPtr, y);
- } else {
- String s = getEonAndYear().toString();
- // reallocate the buffer now so that it has enough space
- char[] n = new char[buf.length + s.length()];
- System.arraycopy(buf, 0, n, 0, bufPtr);
- buf = n;
- for (int i = s.length(); i < 4; i++)
- buf[bufPtr++] = '0';
- s.getChars(0, s.length(), buf, bufPtr);
- bufPtr += s.length();
- }
- break;
- case 'M':
- bufPtr = print2Number(buf, bufPtr, getMonth());
- break;
- case 'D':
- bufPtr = print2Number(buf, bufPtr, getDay());
- break;
- case 'h':
- bufPtr = print2Number(buf, bufPtr, getHour());
- break;
- case 'm':
- bufPtr = print2Number(buf, bufPtr, getMinute());
- break;
- case 's':
- bufPtr = print2Number(buf, bufPtr, getSecond());
- if (getFractionalSecond() != null) {
- // Note: toPlainString() isn't available before Java 1.5
- String frac = getFractionalSecond().toString();
-
- int pos = frac.indexOf("E-");
- if (pos >= 0) {
- String zeros = frac.substring(pos + 2);
- frac = frac.substring(0, pos);
- pos = frac.indexOf(".");
- if (pos >= 0) {
- frac = frac.substring(0, pos) + frac.substring(pos + 1);
- }
- int count = Integer.parseInt(zeros);
- if (count < 40) {
- frac = "00000000000000000000000000000000000000000".substring(0, count - 1) + frac;
- } else {
- // do it the hard way
- while (count > 1) {
- frac = "0" + frac;
- count--;
- }
- }
- frac = "0." + frac;
- }
-
- // reallocate the buffer now so that it has enough space
- char[] n = new char[buf.length + frac.length()];
- System.arraycopy(buf, 0, n, 0, bufPtr);
- buf = n;
- //skip leading zero.
- frac.getChars(1, frac.length(), buf, bufPtr);
- bufPtr += frac.length() - 1;
- }
- break;
- case 'z':
- int offset = getTimezone();
- if (offset == 0) {
- buf[bufPtr++] = 'Z';
- } else if (offset != DatatypeConstants.FIELD_UNDEFINED) {
- if (offset < 0) {
- buf[bufPtr++] = '-';
- offset *= -1;
- } else {
- buf[bufPtr++] = '+';
- }
- int min = offset / 60;
- bufPtr = print2Number(buf, bufPtr, min / 60);
- buf[bufPtr++] = ':';
- bufPtr = print2Number(buf, bufPtr, min % 60);
- }
- break;
- default:
- throw new InternalError(); // impossible
- }
- }
-
- return new String(buf, 0, bufPtr);
- }
-
- /**
- * Prints an int as two digits into the buffer.
- *
- * @param number Number to be printed. Must be positive.
- */
- private int print2Number(char[] out, int bufptr, int number) {
- out[bufptr++] = (char) ('0' + (number / 10));
- out[bufptr++] = (char) ('0' + (number % 10));
- return bufptr;
- }
-
- /**
- * Prints an int as four digits into the buffer.
- *
- * @param number Number to be printed. Must be positive.
- */
- private int print4Number(char[] out, int bufptr, int number) {
- out[bufptr + 3] = (char) ('0' + (number % 10));
- number /= 10;
- out[bufptr + 2] = (char) ('0' + (number % 10));
- number /= 10;
- out[bufptr + 1] = (char) ('0' + (number % 10));
- number /= 10;
- out[bufptr] = (char) ('0' + (number % 10));
- return bufptr + 4;
- }
-
- /**
- * Compute value*signum
where value==null is treated as
- * value==0.
- *
- * @return non-null {@link BigInteger}.
- */
- static BigInteger sanitize(Number value, int signum) {
- if (signum == 0 || value == null) {
- return BigInteger.ZERO;
- }
- return (signum < 0) ? ((BigInteger) value).negate() : (BigInteger) value;
- }
-
- static BigDecimal sanitize(BigDecimal value, int signum) {
- if (signum == 0 || value == null) {
- return DECIMAL_ZERO;
- }
- if (signum > 0) {
- return value;
- }
- return value.negate();
- }
-
- /**
- *
reset()
is designed to allow the reuse of existing
- * XMLGregorianCalendar
s thus saving resources associated
- * with the creation of new XMLGregorianCalendar
s.
- */
- @Override
- public void reset() {
- //PENDING : Implementation of reset method
- }
-
- @Override
- public String toString() {
- QName kind = this.getXMLSchemaType();
- if (kind == DatatypeConstants.DATE) {
- int year = this.getYear();
- int month = this.getMonth();
- int day = this.getDay();
- return String.format("%d-%02d-%02d", year, month, day);
- } else if (kind == DatatypeConstants.TIME) {
- String result;
- int hour = this.getHour();
- int minute = this.getMinute();
- int second = this.getSecond();
- String nanoseconds = getNanoSeconds(this.getFractionalSecond());
- if (nanoseconds == null) {
- result = String.format("%02d:%02d:%02d", hour, minute, second);
- } else {
- result = String.format("%02d:%02d:%02d%s", hour, minute, second, nanoseconds);
- }
- if (zoneID != null) {
- if (isZoneOffset(zoneID)) {
- result += zoneID;
- } else {
- result += "@" + zoneID;
- }
- }
- return result;
-
- } else if (kind == DatatypeConstants.DATETIME) {
- String result;
- int year = this.getYear();
- int month = this.getMonth();
- int day = this.getDay();
- int hour = this.getHour();
- int minute = this.getMinute();
- int second = this.getSecond();
- String nanoseconds = getNanoSeconds(this.getFractionalSecond());
- if (nanoseconds == null) {
- result = String.format("%d-%02d-%02dT%02d:%02d:%02d", year, month, day, hour, minute, second);
- } else {
- result = String.format("%d-%02d-%02dT%02d:%02d:%02d%s", year, month, day, hour, minute, second, nanoseconds);
- }
- if (zoneID != null) {
- if (isZoneOffset(zoneID)) {
- result += zoneID;
- } else {
- result += "@" + zoneID;
- }
- }
- return result;
- } else {
- return super.toString();
- }
- }
-
- private boolean isZoneOffset(String zoneID) {
- return zoneID != null &&
- ( zoneID.equalsIgnoreCase("Z") || zoneID.startsWith("+") || zoneID.startsWith("-") )
- ;
- }
-
- private String getNanoSeconds(BigDecimal fractionalSeconds) {
- if (fractionalSeconds == null) {
- return null;
- }
- return fractionalSeconds.stripTrailingZeros().toPlainString().substring(1);
- }
-
- private String errorMessage(String text, Object[] arguments) {
- StringBuilder builder = new StringBuilder();
- builder.append(text);
- for(Object arg: arguments) {
- builder.append(arg.toString());
- }
- return builder.toString();
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/XMLCalendarType.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/XMLCalendarType.java
index 9640a7ae3..b9dadd329 100644
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/XMLCalendarType.java
+++ b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/XMLCalendarType.java
@@ -16,14 +16,9 @@
import javax.xml.datatype.DatatypeConstants;
import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;
-import java.time.LocalDateTime;
-import java.time.OffsetDateTime;
-import java.time.ZoneOffset;
import java.util.Calendar;
import java.util.GregorianCalendar;
-import java.util.Objects;
public abstract class XMLCalendarType extends BaseType {
protected static final ThreadLocal GREGORIAN = ThreadLocal.withInitial(() -> new GregorianCalendar(
@@ -55,10 +50,6 @@ protected static QName getXMLSchemaType(Duration duration) {
}
}
- public static boolean isXMLDuration(Object duration) {
- return isYearMonthDuration(duration) || isDayTimeDuration(duration);
- }
-
public static boolean isYearMonthDuration(Object duration) {
return duration instanceof Duration && getXMLSchemaType((Duration) duration) == DatatypeConstants.DURATION_YEARMONTH;
}
@@ -67,21 +58,6 @@ public static boolean isDayTimeDuration(Object duration) {
return duration instanceof Duration && getXMLSchemaType((Duration) duration) == DatatypeConstants.DURATION_DAYTIME;
}
- public boolean isDate(Object value) {
- return value instanceof XMLGregorianCalendar
- && ((XMLGregorianCalendar) value).getXMLSchemaType() == DatatypeConstants.DATE;
- }
-
- public boolean isTime(Object value) {
- return value instanceof XMLGregorianCalendar
- && ((XMLGregorianCalendar) value).getXMLSchemaType() == DatatypeConstants.TIME;
- }
-
- public boolean isDateTime(Object value) {
- return value instanceof XMLGregorianCalendar
- && ((XMLGregorianCalendar) value).getXMLSchemaType() == DatatypeConstants.DATETIME;
- }
-
public boolean isYearsAndMonthsDuration(Object value) {
return value instanceof Duration
&& isYearMonthDuration(value);
@@ -92,62 +68,6 @@ public boolean isDaysAndTimeDuration(Object value) {
&& isDayTimeDuration(value);
}
- public Long dateValue(XMLGregorianCalendar date) {
- if (date == null) {
- return null;
- }
-
- XMLGregorianCalendar dateTime = toDateTime(date);
- return dateTimeValue(dateTime);
- }
-
- public Long timeValue(XMLGregorianCalendar time) {
- if (time == null) {
- return null;
- }
-
- long value = time.getHour() * 3600L + time.getMinute() * 60L + time.getSecond();
- if (time.getTimezone() != DatatypeConstants.FIELD_UNDEFINED) {
- value -= time.getTimezone();
- }
- return value;
- }
-
- public Long dateTimeValue(XMLGregorianCalendar dateTime) {
- if (dateTime == null) {
- return null;
- }
-
- int nanoSeconds = dateTime.getMillisecond() * 1000_000;
- LocalDateTime localDateTime = LocalDateTime.of(
- dateTime.getYear(), dateTime.getMonth(), dateTime.getDay(),
- dateTime.getHour(), dateTime.getMinute(), dateTime.getSecond(), nanoSeconds);
- int timezone = dateTime.getTimezone();
- if (timezone == DatatypeConstants.FIELD_UNDEFINED) {
- timezone = 0;
- }
- ZoneOffset offset = ZoneOffset.ofTotalSeconds(timezone);
- OffsetDateTime offsetDateTime = OffsetDateTime.of(localDateTime, offset);
- return offsetDateTime.toEpochSecond();
- }
-
- public Long value(XMLGregorianCalendar calendar) {
- if (isDate(calendar)) {
- return dateValue(calendar);
- } else if (isTime(calendar)) {
- return timeValue(calendar);
- } else if (isDateTime(calendar)) {
- return dateTimeValue(calendar);
- } else {
- return null;
- }
- }
-
- protected Long toEpochSeconds(XMLGregorianCalendar calendar) {
- Objects.requireNonNull(calendar, "calendar");
- return Math.floorDiv(calendar.toGregorianCalendar().getTimeInMillis(), 1000L);
- }
-
public Long durationValue(Duration duration) {
if (duration == null) {
return null;
@@ -191,21 +111,4 @@ protected Long secondsValue(Duration duration) {
long totalSeconds = 60L * totalMinutes + seconds;
return isNegative ? - totalSeconds : totalSeconds;
}
-
- protected long getDurationInSeconds(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- return toEpochSeconds(first) - toEpochSeconds(second);
- }
-
- protected XMLGregorianCalendar toDateTime(XMLGregorianCalendar date) {
- if (date == null) {
- return null;
- }
-
- FEELXMLGregorianCalendar clone = (FEELXMLGregorianCalendar) date.clone();
- clone.setHour(0);
- clone.setMinute(0);
- clone.setSecond(0);
- clone.setZoneID("Z");
- return clone;
- }
}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/XMLDurationFactory.java b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/XMLDurationFactory.java
index d4254d6f7..f16daf409 100644
--- a/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/XMLDurationFactory.java
+++ b/dmn-runtime/src/main/java/com/gs/dmn/feel/lib/type/time/xml/XMLDurationFactory.java
@@ -18,9 +18,7 @@
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.time.Period;
-import java.util.GregorianCalendar;
public class XMLDurationFactory {
public static final XMLDurationFactory INSTANCE = new XMLDurationFactory();
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/runtime/Assert.java b/dmn-runtime/src/main/java/com/gs/dmn/runtime/Assert.java
index 4807d2f45..7d9a3b050 100644
--- a/dmn-runtime/src/main/java/com/gs/dmn/runtime/Assert.java
+++ b/dmn-runtime/src/main/java/com/gs/dmn/runtime/Assert.java
@@ -17,10 +17,13 @@
import org.junit.jupiter.api.Assertions;
import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.lang.reflect.Method;
import java.math.BigDecimal;
-import java.time.*;
+import java.time.OffsetTime;
+import java.time.Period;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+import java.time.temporal.TemporalAccessor;
import java.util.ArrayList;
import java.util.List;
@@ -109,12 +112,10 @@ private static boolean isBoolean(Object object) {
}
private static boolean isDateTime(Object object) {
- return object instanceof XMLGregorianCalendar
- || object instanceof java.time.Duration
+ return object instanceof TemporalAccessor
|| object instanceof Duration
- || object instanceof ZonedDateTime
- || object instanceof LocalDate
- || object instanceof OffsetTime;
+ || object instanceof java.time.Duration
+ ;
}
private static boolean isList(Object actual) {
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/runtime/DefaultDMNBaseDecision.java b/dmn-runtime/src/main/java/com/gs/dmn/runtime/DefaultDMNBaseDecision.java
deleted file mode 100644
index b1a61c491..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/runtime/DefaultDMNBaseDecision.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.runtime;
-
-import com.gs.dmn.feel.lib.DefaultFEELLib;
-import com.gs.dmn.runtime.annotation.AnnotationTarget;
-import com.gs.dmn.runtime.annotation.DRGElement;
-import com.gs.dmn.runtime.annotation.Rule;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.lang.reflect.Method;
-import java.math.BigDecimal;
-import java.util.Map;
-
-/**
- * @deprecated As of release 8.3.0, replaced by {@link JavaTimeDMNBaseDecision}
- */
-@Deprecated
-public class DefaultDMNBaseDecision extends DefaultFEELLib implements DMNDecision, AnnotationTarget {
- @Override
- public Object applyMap(Map input_, ExecutionContext context_) {
- return null;
- }
-
- @Override
- public DRGElement getDRGElementAnnotation() {
- return this.getClass().getAnnotation(DRGElement.class);
- }
-
- @Override
- public Rule getRuleAnnotation(int ruleIndex) {
- String methodName = String.format("rule%d", ruleIndex);
- Class extends DefaultDMNBaseDecision> cls = this.getClass();
- Method[] declaredMethods = cls.getDeclaredMethods();
- for (Method method : declaredMethods) {
- if (methodName.equals(method.getName())) {
- return method.getAnnotation(Rule.class);
- }
- }
- return null;
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/runtime/serialization/XMLGregorianCalendarDeserializer.java b/dmn-runtime/src/main/java/com/gs/dmn/runtime/serialization/XMLGregorianCalendarDeserializer.java
deleted file mode 100644
index 88e3f5d91..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/runtime/serialization/XMLGregorianCalendarDeserializer.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.runtime.serialization;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.ObjectCodec;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.gs.dmn.feel.lib.type.time.xml.DefaultDateTimeLib;
-import com.gs.dmn.feel.lib.type.time.xml.FEELXMLGregorianCalendar;
-import com.gs.dmn.runtime.DMNRuntimeException;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.io.IOException;
-
-public class XMLGregorianCalendarDeserializer extends JsonDeserializer {
- private final DefaultDateTimeLib dateTimeLib = new DefaultDateTimeLib();
-
- public XMLGregorianCalendarDeserializer() {
- }
-
- @Override
- public XMLGregorianCalendar deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
- ObjectCodec oc = jp.getCodec();
- JsonNode node = oc.readTree(jp);
-
- try {
- String literal = node.asText();
- if (literal == null) {
- return null;
- } else {
- if (literal.contains("T")) {
- return FEELXMLGregorianCalendar.makeXMLCalendar(this.dateTimeLib.dateTimeTemporalAccessor(literal));
- } else {
- try {
- return FEELXMLGregorianCalendar.makeXMLCalendar(this.dateTimeLib.dateTemporalAccessor(literal));
- } catch (Exception e) {
- }
- return FEELXMLGregorianCalendar.makeXMLCalendar(this.dateTimeLib.timeTemporalAccessor(literal));
- }
- }
- } catch (Exception e) {
- throw new DMNRuntimeException(String.format("Error deserializing '%s' ", node), e);
- }
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/runtime/serialization/XMLGregorianCalendarSerializer.java b/dmn-runtime/src/main/java/com/gs/dmn/runtime/serialization/XMLGregorianCalendarSerializer.java
deleted file mode 100644
index facaa66b2..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/runtime/serialization/XMLGregorianCalendarSerializer.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.runtime.serialization;
-
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.io.IOException;
-
-public class XMLGregorianCalendarSerializer extends JsonSerializer {
- @Override
- public void serialize(XMLGregorianCalendar value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
- gen.writeString(value.toXMLFormat());
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/serialization/JsonSerializer.java b/dmn-runtime/src/main/java/com/gs/dmn/serialization/JsonSerializer.java
index 2bcc9bc57..e52b4922a 100644
--- a/dmn-runtime/src/main/java/com/gs/dmn/serialization/JsonSerializer.java
+++ b/dmn-runtime/src/main/java/com/gs/dmn/serialization/JsonSerializer.java
@@ -22,7 +22,6 @@
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.gs.dmn.runtime.serialization.*;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.time.LocalDate;
import java.time.OffsetTime;
import java.time.ZonedDateTime;
@@ -35,10 +34,6 @@ public class JsonSerializer {
static {
SimpleModule module = new SimpleModule();
- // XML dialects
- module.addSerializer(XMLGregorianCalendar.class, new XMLGregorianCalendarSerializer());
- module.addDeserializer(XMLGregorianCalendar.class, new XMLGregorianCalendarDeserializer());
-
// java.time dialects
module.addSerializer(LocalDate.class, new LocalDateSerializer());
module.addDeserializer(LocalDate.class, new LocalDateDeserializer());
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/DefaultSignavioLib.java b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/DefaultSignavioLib.java
deleted file mode 100644
index 88c191830..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/DefaultSignavioLib.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.feel.lib;
-
-import com.gs.dmn.feel.lib.type.bool.BooleanLib;
-import com.gs.dmn.feel.lib.type.bool.BooleanType;
-import com.gs.dmn.feel.lib.type.bool.DefaultBooleanLib;
-import com.gs.dmn.feel.lib.type.bool.DefaultBooleanType;
-import com.gs.dmn.feel.lib.type.context.ContextType;
-import com.gs.dmn.feel.lib.type.context.DefaultContextType;
-import com.gs.dmn.feel.lib.type.function.DefaultFunctionType;
-import com.gs.dmn.feel.lib.type.function.FunctionType;
-import com.gs.dmn.feel.lib.type.list.DefaultListType;
-import com.gs.dmn.feel.lib.type.list.ListType;
-import com.gs.dmn.feel.lib.type.numeric.NumericType;
-import com.gs.dmn.feel.lib.type.range.DefaultRangeType;
-import com.gs.dmn.feel.lib.type.range.RangeType;
-import com.gs.dmn.feel.lib.type.string.StringType;
-import com.gs.dmn.feel.lib.type.time.*;
-import com.gs.dmn.feel.lib.type.time.xml.DefaultDurationLib;
-import com.gs.dmn.signavio.feel.lib.type.list.DefaultSignavioListLib;
-import com.gs.dmn.signavio.feel.lib.type.list.SignavioListLib;
-import com.gs.dmn.signavio.feel.lib.type.numeric.DecimalSignavioNumberLib;
-import com.gs.dmn.signavio.feel.lib.type.numeric.DecimalSignavioNumericType;
-import com.gs.dmn.signavio.feel.lib.type.numeric.SignavioNumberLib;
-import com.gs.dmn.signavio.feel.lib.type.string.DefaultSignavioStringLib;
-import com.gs.dmn.signavio.feel.lib.type.string.DefaultSignavioStringType;
-import com.gs.dmn.signavio.feel.lib.type.string.SignavioStringLib;
-import com.gs.dmn.signavio.feel.lib.type.time.SignavioDateTimeLib;
-import com.gs.dmn.signavio.feel.lib.type.time.xml.*;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-/**
- * @deprecated As of release 8.3.0, replaced by {@link JavaTimeSignavioLib}
- */
-@Deprecated
-public class DefaultSignavioLib extends BaseSignavioLib {
- private static final NumericType NUMERIC_TYPE = new DecimalSignavioNumericType();
- private static final BooleanType BOOLEAN_TYPE = new DefaultBooleanType();
- private static final StringType STRING_TYPE = new DefaultSignavioStringType();
- private static final DateType DATE_TYPE = new DefaultSignavioDateType();
- private static final TimeType TIME_TYPE = new DefaultSignavioTimeType();
- private static final DateTimeType DATE_TIME_TYPE = new DefaultSignavioDateTimeType();
- private static final DurationType DURATION_TYPE = new DefaultSignavioDurationType();
- private static final ListType LIST_TYPE = new DefaultListType();
- private static final ContextType CONTEXT_TYPE = new DefaultContextType();
- private static final RangeType RANGE_TYPE = new DefaultRangeType();
- private static final FunctionType FUNCTION_TYPE = new DefaultFunctionType();
-
- private static final SignavioNumberLib NUMBER_LIB = new DecimalSignavioNumberLib();
- private static final SignavioStringLib STRING_LIB = new DefaultSignavioStringLib();
- private static final BooleanLib BOOLEAN_LIB = new DefaultBooleanLib();
- private static final DurationLib DURATION_LIB = new DefaultDurationLib();
- private static final SignavioDateTimeLib DATE_TIME_LIB = new DefaultSignavioDateTimeLib();
- private static final SignavioListLib LIST_LIB = new DefaultSignavioListLib();
-
- public static final DefaultSignavioLib INSTANCE = new DefaultSignavioLib();
-
- public DefaultSignavioLib() {
- this(NUMERIC_TYPE,
- BOOLEAN_TYPE,
- STRING_TYPE,
- DATE_TYPE,
- TIME_TYPE,
- DATE_TIME_TYPE,
- DURATION_TYPE,
- LIST_TYPE,
- CONTEXT_TYPE,
- RANGE_TYPE,
- FUNCTION_TYPE,
-
- NUMBER_LIB,
- STRING_LIB,
- BOOLEAN_LIB,
- DATE_TIME_LIB,
- DURATION_LIB,
- LIST_LIB
- );
- }
-
- protected DefaultSignavioLib(
- NumericType numericType, BooleanType booleanType, StringType stringType,
- DateType dateType, TimeType timeType, DateTimeType dateTimeType, DurationType durationType,
- ListType listType, ContextType contextType, RangeType rangeType, FunctionType functionType,
- SignavioNumberLib numberLib,
- SignavioStringLib stringLib,
- BooleanLib booleanLib,
- SignavioDateTimeLib dateTimeLib,
- DurationLib durationLib,
- SignavioListLib listLib) {
- super(numericType, booleanType, stringType,
- dateType, timeType, dateTimeType, durationType,
- listType, contextType, rangeType, functionType,
- numberLib, stringLib, booleanLib, dateTimeLib, durationLib, listLib);
- }
-
- //
- // Extra conversion functions
- //
- @Override
- protected BigDecimal valueOf(long number) {
- return BigDecimal.valueOf(number);
- }
-
- @Override
- protected int intValue(BigDecimal number) {
- return number.intValue();
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/string/DefaultSignavioStringLib.java b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/string/DefaultSignavioStringLib.java
index 6b1fb7197..e0f65d2d5 100644
--- a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/string/DefaultSignavioStringLib.java
+++ b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/string/DefaultSignavioStringLib.java
@@ -16,13 +16,10 @@
import com.gs.dmn.signavio.feel.lib.SignavioUtil;
import org.apache.commons.lang3.StringUtils;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
-import java.time.LocalDate;
-import java.time.OffsetTime;
-import java.time.ZonedDateTime;
+import java.time.*;
import java.util.List;
import java.util.Locale;
import java.util.regex.Matcher;
@@ -223,12 +220,16 @@ public String string(Object from) {
return ((BigDecimal) from).toPlainString();
} else if (from instanceof LocalDate) {
return ((LocalDate) from).format(BaseDateTimeLib.FEEL_DATE);
+ } else if (from instanceof LocalTime) {
+ return ((LocalTime) from).format(BaseDateTimeLib.FEEL_TIME);
} else if (from instanceof OffsetTime) {
return ((OffsetTime) from).format(BaseDateTimeLib.FEEL_TIME);
+ } else if (from instanceof LocalDateTime) {
+ return ((LocalDateTime) from).format(BaseDateTimeLib.FEEL_DATE_TIME);
+ } else if (from instanceof OffsetDateTime) {
+ return ((OffsetDateTime) from).format(BaseDateTimeLib.FEEL_DATE_TIME);
} else if (from instanceof ZonedDateTime) {
return ((ZonedDateTime) from).format(BaseDateTimeLib.FEEL_DATE_TIME);
- } else if (from instanceof XMLGregorianCalendar) {
- return from.toString();
} else {
return from.toString();
}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/SignavioBaseDateTimeLib.java b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/SignavioBaseDateTimeLib.java
index 8b9f6ca90..184dd5c34 100644
--- a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/SignavioBaseDateTimeLib.java
+++ b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/SignavioBaseDateTimeLib.java
@@ -12,76 +12,5 @@
*/
package com.gs.dmn.signavio.feel.lib.type.time;
-import com.gs.dmn.feel.lib.type.BaseType;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.time.*;
-
public class SignavioBaseDateTimeLib {
- protected Period periodBetween(XMLGregorianCalendar dateTime1, XMLGregorianCalendar dateTime2) {
- LocalDate localDate1 = LocalDate.of(dateTime1.getYear(), dateTime1.getMonth(), dateTime1.getDay());
- LocalDate localDate2 = LocalDate.of(dateTime2.getYear(), dateTime2.getMonth(), dateTime2.getDay());
- return Period.between(localDate1, localDate2);
- }
-
- protected java.time.Duration durationBetween(XMLGregorianCalendar dateTime1, XMLGregorianCalendar dateTime2) {
- if (isDate(dateTime1) && isDate(dateTime2)) {
- LocalDateTime localDateTime1 = LocalDateTime.of(
- dateTime1.getYear(), dateTime1.getMonth(), dateTime1.getDay(),
- 0, 0, 0);
- LocalDateTime localDateTime2 = LocalDateTime.of(
- dateTime2.getYear(), dateTime2.getMonth(), dateTime2.getDay(),
- 0, 0, 0);
- return java.time.Duration.between(localDateTime1, localDateTime2);
-
- } else if (isTime(dateTime1) && isTime(dateTime2)) {
- LocalDateTime localDateTime1 = LocalDateTime.of(1972, 1, 1, dateTime1.getHour(), dateTime1.getMinute(), dateTime1.getSecond());
- LocalDateTime localDateTime2 = LocalDateTime.of(1972, 1, 1, dateTime2.getHour(), dateTime2.getMinute(), dateTime2.getSecond());
- return java.time.Duration.between(localDateTime1, localDateTime2);
- } else if (isDateTime(dateTime1) && isDateTime(dateTime2)) {
- LocalDateTime localDateTime1 = LocalDateTime.of(
- dateTime1.getYear(), dateTime1.getMonth(), dateTime1.getDay(),
- dateTime1.getHour(), dateTime1.getMinute(), dateTime1.getSecond());
- LocalDateTime localDateTime2 = LocalDateTime.of(
- dateTime2.getYear(), dateTime2.getMonth(), dateTime2.getDay(),
- dateTime2.getHour(), dateTime2.getMinute(), dateTime2.getSecond());
- return java.time.Duration.between(localDateTime1, localDateTime2);
- } else {
- return null;
- }
- }
-
- protected Period periodBetween(LocalDate date1, LocalDate date2) {
- return Period.between(date1, date2);
- }
-
- protected Period periodBetween(ZonedDateTime dateTime1, ZonedDateTime dateTime2) {
- LocalDate localDate1 = LocalDate.of(dateTime1.getYear(), dateTime1.getMonth(), dateTime1.getDayOfMonth());
- LocalDate localDate2 = LocalDate.of(dateTime2.getYear(), dateTime2.getMonth(), dateTime2.getDayOfMonth());
- return Period.between(localDate1, localDate2);
- }
-
- protected java.time.Duration durationBetween(LocalDate date1, LocalDate date2) {
- return java.time.Duration.between(date1.atStartOfDay(BaseType.UTC), date2.atStartOfDay(BaseType.UTC));
- }
-
- protected java.time.Duration durationBetween(OffsetTime time1, OffsetTime time2) {
- return java.time.Duration.between(time1, time2);
- }
-
- protected java.time.Duration durationBetween(ZonedDateTime dateTime1, ZonedDateTime dateTime2) {
- return java.time.Duration.between(dateTime1, dateTime2);
- }
-
- protected boolean isDate(XMLGregorianCalendar dateTime) {
- return dateTime.getYear() >= 0 && dateTime.getHour() < 0;
- }
-
- protected boolean isTime(XMLGregorianCalendar dateTime1) {
- return dateTime1.getYear() < 0 && dateTime1.getHour() >= 0;
- }
-
- protected boolean isDateTime(XMLGregorianCalendar dateTime1) {
- return dateTime1.getYear() >= 0 && dateTime1.getHour() >= 0;
- }
}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioDateTimeLib.java b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioDateTimeLib.java
deleted file mode 100644
index e4ca3cdbb..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioDateTimeLib.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.time.xml.DefaultDateTimeLib;
-import com.gs.dmn.feel.lib.type.time.xml.FEELXMLGregorianCalendar;
-import com.gs.dmn.feel.lib.type.time.xml.XMLDurationFactory;
-import com.gs.dmn.signavio.feel.lib.type.time.SignavioBaseDateTimeLib;
-import com.gs.dmn.signavio.feel.lib.type.time.SignavioDateTimeLib;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-import java.time.Duration;
-import java.time.LocalDate;
-import java.time.Period;
-import java.time.ZonedDateTime;
-import java.util.Calendar;
-
-public class DefaultSignavioDateTimeLib extends SignavioBaseDateTimeLib implements SignavioDateTimeLib {
- private static final DefaultDateTimeLib DEFAULT_DATE_TIME_LIB = new DefaultDateTimeLib();
-
- //
- // Common methods
- //
- @Override
- public XMLGregorianCalendar date(String literal) {
- return DEFAULT_DATE_TIME_LIB.date(literal);
- }
-
- @Override
- public XMLGregorianCalendar time(String literal) {
- return DEFAULT_DATE_TIME_LIB.time(literal);
- }
-
- @Override
- public XMLGregorianCalendar dateAndTime(String literal) {
- return DEFAULT_DATE_TIME_LIB.dateAndTime(literal);
- }
-
- @Override
- public Integer year(Object date) {
- return DEFAULT_DATE_TIME_LIB.year(date);
- }
-
- @Override
- public Integer month(Object date) {
- return DEFAULT_DATE_TIME_LIB.month(date);
- }
-
- @Override
- public Integer day(Object date) {
- return DEFAULT_DATE_TIME_LIB.day(date);
- }
-
- @Override
- public Integer hour(Object date) {
- return DEFAULT_DATE_TIME_LIB.hour(date);
- }
-
- @Override
- public Integer minute(Object date) {
- return DEFAULT_DATE_TIME_LIB.minute(date);
- }
-
- @Override
- public XMLGregorianCalendar toDate(Object from) {
- return DEFAULT_DATE_TIME_LIB.toDate(from);
- }
-
- @Override
- public XMLGregorianCalendar toTime(Object from) {
- return DEFAULT_DATE_TIME_LIB.toTime(from);
- }
-
- @Override
- public XMLGregorianCalendar toDateTime(Object from) {
- return DEFAULT_DATE_TIME_LIB.toDateTime(from);
- }
-
- //
- // Specific methods
- //
- @Override
- public XMLGregorianCalendar yearAdd(XMLGregorianCalendar date, BigDecimal yearsToAdd) {
- XMLGregorianCalendar result = (XMLGregorianCalendar) date.clone();
- javax.xml.datatype.Duration duration = XMLDurationFactory.INSTANCE.yearMonthWithYears(yearsToAdd.intValue());
- result.add(duration);
- return result;
- }
-
- @Override
- public XMLGregorianCalendar yearAddDateTime(XMLGregorianCalendar dateTime, BigDecimal yearsToAdd) {
- return yearAdd(dateTime, yearsToAdd);
- }
-
- @Override
- public Long yearDiff(Object date1, Object date2) {
- Period period = periodBetween((XMLGregorianCalendar) date1, (XMLGregorianCalendar) date2);
- return (long) period.getYears();
- }
-
- @Override
- public XMLGregorianCalendar monthAdd(XMLGregorianCalendar date, BigDecimal monthsToAdd) {
- XMLGregorianCalendar result = (XMLGregorianCalendar) date.clone();
- javax.xml.datatype.Duration duration = XMLDurationFactory.INSTANCE.yearMonthWithMonths(monthsToAdd.intValue());
- result.add(duration);
- return result;
- }
-
- @Override
- public XMLGregorianCalendar monthAddDateTime(XMLGregorianCalendar dateTime, BigDecimal monthsToAdd) {
- return monthAdd(dateTime, monthsToAdd);
- }
-
- @Override
- public Long monthDiff(Object date1, Object date2) {
- Period period = periodBetween((XMLGregorianCalendar) date1, (XMLGregorianCalendar) date2);
- return period.toTotalMonths();
- }
-
- @Override
- public XMLGregorianCalendar dayAdd(XMLGregorianCalendar date, BigDecimal daysToAdd) {
- XMLGregorianCalendar result = (XMLGregorianCalendar) date.clone();
- javax.xml.datatype.Duration duration = XMLDurationFactory.INSTANCE.dayTimeWithDays(daysToAdd.intValue());
- result.add(duration);
- return result;
- }
-
- @Override
- public XMLGregorianCalendar dayAddDateTime(XMLGregorianCalendar dateTime, BigDecimal daysToAdd) {
- return dayAdd(dateTime, daysToAdd);
- }
-
- @Override
- public Long dayDiff(Object date1, Object date2) {
- java.time.Duration duration = durationBetween((XMLGregorianCalendar) date1, (XMLGregorianCalendar) date2);
- return duration == null ? null : duration.getSeconds() / (60 * 60 * 24);
- }
-
- @Override
- public Integer weekday(Object date) {
- if (date == null) {
- return null;
- }
-
- XMLGregorianCalendar xmlDate = (XMLGregorianCalendar) date;
- int weekDay = xmlDate.toGregorianCalendar().get(Calendar.DAY_OF_WEEK);
- weekDay--;
- if (weekDay == 0) {
- weekDay = 7;
- }
- return weekDay;
- }
-
- @Override
- public Long hourDiff(Object time1, Object time2) {
- Duration duration = durationBetween((XMLGregorianCalendar) time1, (XMLGregorianCalendar) time2);
- return duration == null ? null : duration.getSeconds() / (60 * 60);
- }
-
- @Override
- public Long minutesDiff(Object time1, Object time2) {
- Duration duration = durationBetween((XMLGregorianCalendar) time1, (XMLGregorianCalendar) time2);
- return duration == null ? null : duration.getSeconds() / 60;
- }
-
- @Override
- public XMLGregorianCalendar today() {
- return FEELXMLGregorianCalendar.makeXMLCalendar(LocalDate.now());
- }
-
- @Override
- public XMLGregorianCalendar now() {
- return FEELXMLGregorianCalendar.makeXMLCalendar(ZonedDateTime.now());
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioDateTimeType.java b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioDateTimeType.java
deleted file mode 100644
index a38f234d2..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioDateTimeType.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.time.xml.DefaultDateTimeType;
-
-public class DefaultSignavioDateTimeType extends DefaultDateTimeType {
- public DefaultSignavioDateTimeType() {
- super(DefaultSignavioXMLCalendarComparator.COMPARATOR);
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioDateType.java b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioDateType.java
deleted file mode 100644
index 0090d7e43..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioDateType.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.time.xml.DefaultDateType;
-
-public class DefaultSignavioDateType extends DefaultDateType {
- public DefaultSignavioDateType() {
- super(new DefaultSignavioXMLCalendarComparator());
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioTimeType.java b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioTimeType.java
deleted file mode 100644
index 7f734c67b..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioTimeType.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.time.xml.DefaultTimeType;
-
-public class DefaultSignavioTimeType extends DefaultTimeType {
- public DefaultSignavioTimeType() {
- super(new DefaultSignavioXMLCalendarComparator());
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioXMLCalendarComparator.java b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioXMLCalendarComparator.java
deleted file mode 100644
index d5096dcfe..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DefaultSignavioXMLCalendarComparator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.time.xml.DefaultXMLCalendarComparator;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-
-public class DefaultSignavioXMLCalendarComparator extends DefaultXMLCalendarComparator {
- public static final DefaultSignavioXMLCalendarComparator COMPARATOR = new DefaultSignavioXMLCalendarComparator();
-
- protected DefaultSignavioXMLCalendarComparator() {
- }
-
- @Override
- public Boolean lessEqualThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- if (first == null && second == null) {
- return null;
- } else {
- return super.lessEqualThan(first, second);
- }
- }
-
- @Override
- public Boolean greaterEqualThan(XMLGregorianCalendar first, XMLGregorianCalendar second) {
- if (first == null && second == null) {
- return null;
- } else {
- return super.greaterEqualThan(first, second);
- }
- }
-}
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DoubleSignavioDurationType.java b/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DoubleSignavioDurationType.java
deleted file mode 100644
index ec64ff5c7..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/signavio/feel/lib/type/time/xml/DoubleSignavioDurationType.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.feel.lib.type.time.xml;
-
-import com.gs.dmn.feel.lib.type.time.xml.DoubleDurationType;
-
-public class DoubleSignavioDurationType extends DoubleDurationType {
- public DoubleSignavioDurationType() {
- super(DefaultSignavioDurationComparator.COMPARATOR);
- }
- }
diff --git a/dmn-runtime/src/main/java/com/gs/dmn/signavio/runtime/DefaultSignavioBaseDecision.java b/dmn-runtime/src/main/java/com/gs/dmn/signavio/runtime/DefaultSignavioBaseDecision.java
deleted file mode 100644
index 1ba1c5fc2..000000000
--- a/dmn-runtime/src/main/java/com/gs/dmn/signavio/runtime/DefaultSignavioBaseDecision.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.runtime;
-
-import com.gs.dmn.runtime.ExecutionContext;
-import com.gs.dmn.runtime.annotation.AnnotationTarget;
-import com.gs.dmn.runtime.annotation.DRGElement;
-import com.gs.dmn.runtime.annotation.Rule;
-import com.gs.dmn.signavio.feel.lib.DefaultSignavioLib;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.lang.reflect.Method;
-import java.math.BigDecimal;
-import java.util.Map;
-
-/**
- * @deprecated As of release 8.3.0, replaced by {@link JavaTimeSignavioBaseDecision}
- */
-@Deprecated
-public class DefaultSignavioBaseDecision extends DefaultSignavioLib
- implements SignavioDecision,
- AnnotationTarget
-{
- @Override
- public Object applyMap(Map input_, ExecutionContext context_) {
- return null;
- }
-
- @Override
- public DRGElement getDRGElementAnnotation() {
- return this.getClass().getAnnotation(DRGElement.class);
- }
-
- @Override
- public Rule getRuleAnnotation(int ruleIndex) {
- String methodName = String.format("rule%d", ruleIndex);
- Class extends DefaultSignavioBaseDecision> cls = this.getClass();
- Method[] declaredMethods = cls.getDeclaredMethods();
- for (Method method : declaredMethods) {
- if (methodName.equals(method.getName())) {
- return method.getAnnotation(Rule.class);
- }
- }
- return null;
- }
-}
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/DefaultFEELLibExceptionsTest.java b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/DefaultFEELLibExceptionsTest.java
deleted file mode 100644
index 4565444e7..000000000
--- a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/DefaultFEELLibExceptionsTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib;
-
-import com.gs.dmn.feel.lib.stub.*;
-import com.gs.dmn.feel.lib.type.bool.BooleanLib;
-import com.gs.dmn.feel.lib.type.bool.BooleanType;
-import com.gs.dmn.feel.lib.type.context.ContextType;
-import com.gs.dmn.feel.lib.type.function.FunctionType;
-import com.gs.dmn.feel.lib.type.list.ListLib;
-import com.gs.dmn.feel.lib.type.list.ListType;
-import com.gs.dmn.feel.lib.type.numeric.NumericLib;
-import com.gs.dmn.feel.lib.type.numeric.NumericType;
-import com.gs.dmn.feel.lib.type.range.RangeLib;
-import com.gs.dmn.feel.lib.type.range.RangeType;
-import com.gs.dmn.feel.lib.type.string.StringLib;
-import com.gs.dmn.feel.lib.type.string.StringType;
-import com.gs.dmn.feel.lib.type.time.*;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-public class DefaultFEELLibExceptionsTest extends BaseStandardFEELLibExceptionsTest {
- @Override
- protected DefaultFEELLib getLib() {
- NumericType numericType = new NumericTypeStub<>();
- BooleanType booleanType = new BooleanTypeStub();
- StringType stringType = new StringTypeStub();
- DateType dateType = new DateTypeStub<>();
- TimeType timeType = new TimeTypeStub<>();
- DateTimeType dateTimeType = new DateTimeTypeStub<>();
- DurationType durationType = new DurationTypeStub<>();
- ListType listType = new ListTypeStub();
- ContextType contextType = new ContextTypeStub();
- RangeType rangeType = new RangeTypeStub();
- FunctionType functionType = new FunctionTypeStub();
- NumericLib numericLib = new NumericLibStub<>();
- StringLib stringLib = new StringLibStub();
- BooleanLib booleanLib = new BooleanLibStub();
- DateTimeLib dateTimeLib = new DateTimeLibStub<>();
- DurationLib durationLib = new DurationLibStub<>();
- ListLib listLib = new ListLibStub();
- RangeLib rangeLib = new RangeLibStub();
- return new DefaultFEELLib(
- numericType, booleanType, stringType,
- dateType, timeType, dateTimeType, durationType,
- listType, contextType, rangeType, functionType,
- numericLib, stringLib, booleanLib, dateTimeLib, durationLib, listLib, rangeLib
- );
- }
-}
\ No newline at end of file
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/DefaultFEELLibTest.java b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/DefaultFEELLibTest.java
deleted file mode 100644
index f5456481a..000000000
--- a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/DefaultFEELLibTest.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib;
-
-import org.junit.jupiter.api.Test;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-public class DefaultFEELLibTest extends BaseStandardFEELLibTest {
- @Override
- protected DefaultFEELLib getLib() {
- return new DefaultFEELLib();
- }
-
- //
- // Date operators
- //
- @Test
- @Override
- public void testDateSubtract() {
- super.testDateSubtract();
-
- // Subtraction is undefined for the case where only one of the values has a timezone.
- assertNull(getLib().dateSubtract(makeDate("2021-01-02"), makeDateAndTime("2021-01-01T00:00:00")));
- }
-
- @Test
- @Override
- public void testDateAddDuration() {
- super.testDateAddDuration();
-
- assertEqualsDateTime("2016-08-02", getLib().dateAddDuration(makeDate("2016-08-01"), makeDuration("P1D")));
- assertEqualsDateTime("2016-09-01", getLib().dateAddDuration(makeDate("2016-08-31"), makeDuration("P1D")));
-
- assertEqualsDateTime("2021-01-02", getLib().dateAddDuration(makeDate("2021-01-01"), makeDuration("PT36H")));
- assertEqualsDateTime("2021-01-01", getLib().dateAddDuration(makeDate("2021-01-01"), makeDuration("PT1H")));
- assertEqualsDateTime("2021-01-01", getLib().dateAddDuration(makeDate("2021-01-01"), makeDuration("PT1M")));
- assertEqualsDateTime("2021-01-01", getLib().dateAddDuration(makeDate("2021-01-01"), makeDuration("PT1S")));
- }
-
- @Test
- @Override
- public void testDateSubtractDuration() {
- super.testDateSubtractDuration();
-
- assertEqualsDateTime("2016-08-01", getLib().dateSubtractDuration(makeDate("2016-08-02"), makeDuration("P1D")));
- assertEqualsDateTime("2016-07-31", getLib().dateSubtractDuration(makeDate("2016-08-01"), makeDuration("P1D")));
-
- assertEqualsDateTime("2020-12-30", getLib().dateSubtractDuration(makeDate("2021-01-01"), makeDuration("PT36H")));
- assertEqualsDateTime("2021-01-01", getLib().dateSubtractDuration(makeDate("2021-01-02"), makeDuration("PT1H")));
- assertEqualsDateTime("2021-01-01", getLib().dateSubtractDuration(makeDate("2021-01-02"), makeDuration("PT1M")));
- assertEqualsDateTime("2021-01-01", getLib().dateSubtractDuration(makeDate("2021-01-02"), makeDuration("PT1S")));
- assertEqualsDateTime("2020-12-31", getLib().dateSubtractDuration(makeDate("2021-01-02"), makeDuration("PT25H")));
- }
-
- //
- // Time operators
- //
- @Override
- @Test
- public void testTimeIs() {
- super.testTimeIs();
-
- // times with equivalent offset and zone id are not is()
- assertFalse(getLib().timeIs(makeTime("12:00:00"), makeTime("12:00:00Z")));
- assertFalse(getLib().timeIs(makeTime("12:00:00"), makeTime("12:00:00+00:00")));
- assertFalse(getLib().timeIs(makeTime("00:00:00+00:00"), makeTime("00:00:00@Etc/UTC")));
- assertTrue(getLib().timeIs(makeTime("00:00:00Z"), makeTime("00:00:00+00:00")));
- assertFalse(getLib().timeIs(makeTime("00:00:00Z"), makeTime("00:00:00@Etc/UTC")));
- assertFalse(getLib().timeIs(makeTime("00:00:00Etc/UTC"), makeTime("00:00:00@Europe/Paris")));
- }
-
- @Test
- @Override
- public void testTimeSubtract() {
- super.testTimeSubtract();
-
- assertEqualsDateTime("-PT1H", getLib().timeSubtract(makeTime("10:10:10@Australia/Melbourne"), makeTime("11:10:10@Australia/Melbourne")));
- assertEqualsDateTime("PT1H", getLib().timeSubtract(makeTime("10:10:10@Australia/Melbourne"), makeTime("09:10:10@Australia/Melbourne")));
- }
-
- @Test
- @Override
- public void testTimeAddDuration() {
- super.testTimeAddDuration();
-
- assertEqualsDateTime("10:15:00@Australia/Melbourne", getLib().timeAddDuration(makeTime("10:15:00@Australia/Melbourne"), makeDuration("P1D")));
- assertEqualsDateTime("11:15:00@Australia/Melbourne", getLib().timeAddDuration(makeTime("10:15:00@Australia/Melbourne"), makeDuration("PT1H")));
- }
-
- //
- // Date time operators
- //
- @Override
- @Test
- public void testDateTimeIs() {
- super.testDateTimeIs();
-
- // datetime with equivalent offset and zone id are not is()
- assertFalse(getLib().dateTimeIs(makeDateAndTime("2018-12-08T12:00:00"), makeDateAndTime("2018-12-08T12:00:00+00:00")));
- assertFalse(getLib().dateTimeIs(makeDateAndTime("2018-12-08T00:00:00+00:00"), makeDateAndTime("2018-12-08T00:00:00@Etc/UTC")));
- assertTrue(getLib().dateTimeIs(makeDateAndTime("2018-12-08T12:00:00Z"), makeDateAndTime("2018-12-08T12:00:00+00:00")));
- assertFalse(getLib().dateTimeIs(makeDateAndTime("2018-12-08T00:00:00Z"), makeDateAndTime("2018-12-08T00:00:00@Etc/UTC")));
- }
-
- @Test
- @Override
- public void testDateTimeSubtract() {
- super.testDateTimeSubtract();
-
- // Subtraction is undefined for the case where only one of the values has a timezone.
- assertNull(getLib().dateTimeSubtract(makeDateAndTime("2021-01-02T10:10:10@Europe/Paris"), makeDateAndTime("2021-01-01T10:10:10")));
- assertNull(getLib().dateTimeSubtract(makeDateAndTime("2021-01-01T10:10:10"), makeDateAndTime("2021-01-02T10:10:10@Europe/Paris")));
- assertNull(getLib().dateTimeSubtract(makeDateAndTime("2021-01-02T10:10:10+02:00"), makeDateAndTime("2021-01-01T10:10:10")));
- assertNull(getLib().dateTimeSubtract(makeDateAndTime("2021-01-01T10:10:10"), makeDateAndTime("2021-01-02T10:10:10+02:00")));
- assertNull(getLib().dateTimeSubtract(makeDateAndTime("2021-01-02T10:10:10+01:00"), makeDateAndTime("2021-01-01T10:10:10")));
-
- // Subtraction is undefined for the case where only one of the values has a timezone.
- assertNull(getLib().dateTimeSubtract(makeDateAndTime("2021-01-01T00:00:00"), makeDate("2021-01-02")));
- }
-
- //
- // Conversion functions
- //
- @Override
- @Test
- public void testDate() {
- super.testDate();
-
- assertEqualsDateTime("2016-08-01", getLib().date(makeDateAndTime("2016-08-01T12:00:00Z")));
- }
-
- @Override
- @Test
- public void testTime() {
- super.testTime();
-
- //
- // conversion from time, date and date time
- //
- assertEqualsDateTime("12:00:00Z", getLib().time(makeTime("12:00:00Z")));
- assertEqualsDateTime("00:00:00Z", getLib().time(makeDate("2017-08-10")));
- assertEqualsDateTime("11:00:00Z", getLib().time(makeDateAndTime("2016-08-01T11:00:00Z")));
-
- //
- // conversion from numbers
- //
- assertEqualsDateTime("12:00:00", getLib().time(makeNumber("12"), makeNumber("00"), makeNumber("00"), null));
-
- //
- // conversion from date, time and date time
- //
- assertEqualsDateTime("00:00:00Z", getLib().time(makeDate("2017-08-10")));
- assertEqualsDateTime("12:00:00Z", getLib().time(makeTime("12:00:00Z")));
- assertEqualsDateTime("11:00:00Z", getLib().time(makeDateAndTime("2016-08-01T11:00:00Z")));
- }
-
- @Override
- @Test
- public void testDateAndTime() {
- super.testDateAndTime();
-
- //
- // conversion from string
- //
- assertEqualsDateTime("2016-08-01T00:00:00", getLib().dateAndTime("2016-08-01"));
-
- // missing Z
- assertEqualsDateTime("-2016-01-30T09:05:00", getLib().dateAndTime("-2016-01-30T09:05:00"));
- assertEqualsDateTime("-2017-02-28T02:02:02", getLib().dateAndTime("-2017-02-28T02:02:02"));
-
- // with zone id
- assertEqualsDateTime("2011-12-03T10:15:30@Europe/Paris", getLib().dateAndTime("2011-12-03T10:15:30@Europe/Paris"));
-
- // year must be in the range [-999,999,999..999,999,999]
- assertEqualsDateTime("-999999999-12-31T11:22:33", getLib().dateAndTime("-999999999-12-31T11:22:33"));
- assertEqualsDateTime("999999999-12-31T11:22:33", getLib().dateAndTime("999999999-12-31T11:22:33"));
- assertNull(getLib().dateAndTime("-9999999991-12-31T11:22:33"));
- assertNull(getLib().dateAndTime("9999999991-12-31T11:22:33"));
- }
-
- @Override
- @Test
- public void testDuration() {
- super.testDuration();
-
- assertEqualsDateTime("P1Y8M", getLib().duration("P1Y8M"));
- assertEqualsDateTime("P999999999M", getLib().duration("P999999999M"));
- assertEqualsDateTime("-P999999999M", getLib().duration("-P999999999M"));
-
- assertEqualsDateTime("P2DT20H", getLib().duration("P2DT20H"));
- assertEqualsDateTime("-PT2H", getLib().duration("-PT2H"));
- assertEqualsDateTime("PT0S", getLib().duration("PT0.S"));
-
- assertNull(getLib().duration("P1Y0M2DT6H58M59.000S"));
-
- // Overflow in duration(from)
- assertEquals("P11999999988M", getLib().duration("P11999999988M").toString());
- assertEquals("P2129706043D", getLib().duration("P2129706043D").toString());
- }
-
- @Override
- @Test
- public void testYearsAndMonthsDuration() {
- super.testYearsAndMonthsDuration();
-
- assertEqualsDateTime("P0M", getLib().yearsAndMonthsDuration(makeDateAndTime("2015-12-24T12:15:00.000+01:00"), makeDateAndTime("2015-12-24T12:15:00.000+01:00")));
- assertEqualsDateTime("P1Y0M", getLib().yearsAndMonthsDuration(makeDateAndTime("2015-12-24T00:00:01-01:00"), makeDateAndTime("2016-12-24T23:59:00-08:00")));
- assertEqualsDateTime("P1Y2M", getLib().yearsAndMonthsDuration(makeDateAndTime("2016-09-30T23:25:00"), makeDateAndTime("2017-12-28T12:12:12")));
- assertEqualsDateTime("P7Y6M", getLib().yearsAndMonthsDuration(makeDateAndTime("2010-05-30T03:55:58"), makeDateAndTime("2017-12-15T00:59:59")));
- assertEqualsDateTime("-P4033Y2M", getLib().yearsAndMonthsDuration(makeDateAndTime("2014-12-31T23:59:59"), makeDateAndTime("-2019-10-01T12:32:59")));
- assertEqualsDateTime("-P4035Y11M", getLib().yearsAndMonthsDuration(makeDateAndTime("2017-09-05T10:20:00-01:00"), makeDateAndTime("-2019-10-01T12:32:59+02:00")));
-
- assertEqualsDateTime("-P11M", getLib().yearsAndMonthsDuration(makeDateAndTime("-2016-01-30T09:05:00"), makeDateAndTime("-2017-02-28T02:02:02")));
- assertEqualsDateTime("-P4033Y2M", getLib().yearsAndMonthsDuration(makeDateAndTime("2014-12-31T23:59:59"), makeDateAndTime("-2019-10-01T12:32:59")));
- assertEqualsDateTime("-P4035Y11M", getLib().yearsAndMonthsDuration(makeDateAndTime("2017-09-05T10:20:00-01:00"), makeDateAndTime("-2019-10-01T12:32:59+02:00")));
- assertEqualsDateTime("P2Y0M", getLib().yearsAndMonthsDuration(makeDateAndTime("2017-09-05T10:20:00+05:00"), makeDateAndTime("2019-10-01T12:32:59")));
- assertEqualsDateTime("P1Y0M", getLib().yearsAndMonthsDuration(makeDateAndTime("2017-09-05T10:20:00@Etc/UTC"), makeDateAndTime("2018-10-01T23:59:59")));
- assertEqualsDateTime("P4Y0M", getLib().yearsAndMonthsDuration(makeDateAndTime("2011-08-25T15:59:59@Europe/Paris"), makeDateAndTime("2015-08-25T15:20:59+02:00")));
- assertEqualsDateTime("P2Y9M", getLib().yearsAndMonthsDuration(makeDateAndTime("2015-12-31T23:59:59.9999999"), makeDateAndTime("2018-10-01T12:32:59.111111")));
- assertEqualsDateTime("P3Y0M", getLib().yearsAndMonthsDuration(makeDateAndTime("2016-09-05T22:20:55.123456+05:00"), makeDateAndTime("2019-10-01T12:32:59.32415645")));
- assertEqualsDateTime("P2Y0M", getLib().yearsAndMonthsDuration(makeDateAndTime("2014-12-31T23:59:59"), makeDateAndTime("2016-12-31T00:00:01")));
- }
-
- @Test
- public void testString() {
- assertEquals("null", getLib().string(null));
-
- // test number
- assertEquals("123.45", getLib().string(makeNumber("123.45")));
-
- // test string
- assertEquals("true", getLib().string(true));
-
- // test date
- assertEquals("2016-08-01", getLib().string(makeDate("2016-08-01")));
- assertEquals("999999999-12-31", getLib().string(makeDate("999999999-12-31")));
- assertEquals("-999999999-12-31", getLib().string(makeDate("-999999999-12-31")));
- assertEquals("999999999-12-31", getLib().string(getLib().date(makeNumber(999999999), makeNumber(12), makeNumber(31))));
- assertEquals("-999999999-12-31", getLib().string(getLib().date(makeNumber(-999999999), makeNumber(12), makeNumber(31))));
-
- // test time
- assertEquals("11:00:01", getLib().string(makeTime("11:00:01")));
- assertEquals("11:00:01Z", getLib().string(makeTime("11:00:01Z")));
- assertEquals("00:01:00@Etc/UTC", getLib().string(makeTime("00:01:00@Etc/UTC")));
- assertEquals("00:01:00@Europe/Paris", getLib().string(makeTime("00:01:00@Europe/Paris")));
- assertEquals("10:20:00@Europe/Paris", getLib().string(getLib().time(makeDateAndTime("2017-08-10T10:20:00@Europe/Paris"))));
- assertEquals("11:20:00@Asia/Dhaka", getLib().string(getLib().time(makeDateAndTime("2017-09-04T11:20:00@Asia/Dhaka"))));
- assertEquals("11:59:45+02:45:55", getLib().string(getLib().time(makeNumber(11), makeNumber(59), makeNumber(45), getLib().duration("PT2H45M55S"))));
- assertEquals("11:59:45-02:45:55", getLib().string(getLib().time(makeNumber(11), makeNumber(59), makeNumber(45), getLib().duration("-PT2H45M55S"))));
- assertEquals("00:00:00Z", getLib().string(getLib().time(makeDate("2017-08-10"))));
-
- // test date time
- assertEquals("2016-08-01T11:00:01", getLib().string(makeDateAndTime("2016-08-01T11:00:01")));
- assertEquals("2016-08-01T11:00:01Z", getLib().string(makeDateAndTime("2016-08-01T11:00:01Z")));
- assertEquals("99999-12-31T11:22:33", getLib().string(makeDateAndTime("99999-12-31T11:22:33")));
- assertEquals("-99999-12-31T11:22:33", getLib().string(makeDateAndTime("-99999-12-31T11:22:33")));
- assertEquals("2011-12-31T10:15:30@Europe/Paris", getLib().string(makeDateAndTime("2011-12-31T10:15:30@Europe/Paris")));
- assertEquals("2011-12-31T10:15:30@Etc/UTC", getLib().string(makeDateAndTime("2011-12-31T10:15:30@Etc/UTC")));
- assertEquals("2011-12-31T10:15:30.987@Europe/Paris", getLib().string(makeDateAndTime("2011-12-31T10:15:30.987@Europe/Paris")));
- assertEquals("2011-12-31T10:15:30.123456789@Europe/Paris", getLib().string(makeDateAndTime("2011-12-31T10:15:30.123456789@Europe/Paris")));
- assertEquals("999999999-12-31T23:59:59.999999999@Europe/Paris", getLib().string(makeDateAndTime("999999999-12-31T23:59:59.999999999@Europe/Paris")));
- assertEquals("-999999999-12-31T23:59:59.999999999+02:00", getLib().string(makeDateAndTime("-999999999-12-31T23:59:59.999999999+02:00")));
- assertEquals("2017-01-01T23:59:01@Europe/Paris", getLib().string(getLib().dateAndTime(makeDate("2017-01-01"), makeTime("23:59:01@Europe/Paris"))));
- assertEquals("2017-01-01T23:59:01.123456789@Europe/Paris", getLib().string(getLib().dateAndTime(makeDate("2017-01-01"), makeTime("23:59:01.123456789@Europe/Paris"))));
- assertEquals("2017-09-05T09:15:30.987654321@Europe/Paris", getLib().string(getLib().dateAndTime(makeDateAndTime("2017-09-05T10:20:00"), makeTime("09:15:30.987654321@Europe/Paris"))));
- assertEquals("2017-09-05T09:15:30.987654321@Europe/Paris", getLib().string(getLib().dateAndTime(makeDateAndTime("2017-09-05T10:20:00-01:00"), makeTime("09:15:30.987654321@Europe/Paris"))));
- assertEquals("2017-09-05T09:15:30.987654321@Europe/Paris", getLib().string(getLib().dateAndTime(makeDateAndTime("2017-09-05T10:20:00@Europe/Paris"), makeTime("09:15:30.987654321@Europe/Paris"))));
- }
-
- //
- // Extra conversion functions
- //
- @Override
- @Test
- public void testToDateTime() {
- super.testToDateTime();
-
- assertEqualsDateTime("2016-08-01T00:00:00Z", getLib().toDateTime(makeDate("2016-08-01")));
- assertEqualsDateTime("2016-08-01T12:00:00Z", getLib().toDateTime(makeDateAndTime("2016-08-01T12:00:00Z")));
- }
-
- //
- // Time properties
- //
- @Override
- @Test
- public void testTimeProperties() {
- assertNull(getLib().hour(null));
- assertEqualsNumber(makeNumber("12"), getLib().hour(makeTime("12:01:02Z")));
-
- assertNull(getLib().minute(null));
- assertEqualsNumber(makeNumber("1"), getLib().minute(makeTime("12:01:02Z")));
-
- assertNull(getLib().second(null));
- assertEqualsNumber(makeNumber("2"), getLib().second(makeTime("12:01:02Z")));
-
- assertNull(getLib().timeOffset(null));
- assertNull(getLib().timeOffset(makeTime("12:01:02")));
- assertEqualsDateTime("PT1H", getLib().timeOffset(makeTime("12:01:02+01:00")));
- assertEqualsDateTime("PT0S", getLib().timeOffset(makeTime("12:01:02Z")));
- assertEqualsDateTime("PT0S", getLib().timeOffset(makeTime("12:01:02@Etc/UTC")));
- assertEqualsDateTime("PT1H", getLib().timeOffset(makeTime("12:01:02@Europe/Paris")));
-
- assertNull(getLib().timezone(null));
- assertNull(getLib().timezone(makeTime("12:01:02")));
- assertEquals("+01:00", getLib().timezone(makeTime("12:01:02+01:00")));
- assertEquals("Z", getLib().timezone(makeTime("12:01:02Z")));
- assertEquals("Etc/UTC", getLib().timezone(makeTime("12:01:02@Etc/UTC")));
- assertEquals("Europe/Paris", getLib().timezone(makeTime("12:01:02@Europe/Paris")));
- }
-
- //
- // Date and time properties
- //
- @Override
- @Test
- public void testDateAndTimeProperties() {
- assertNull(getLib().year(null));
- assertEqualsNumber(makeNumber("2018"), getLib().year(makeDateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().month(null));
- assertEqualsNumber(makeNumber("12"), getLib().month(makeDateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().day(null));
- assertEqualsNumber(makeNumber("10"), getLib().day(makeDateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().weekday(null));
- assertEqualsNumber(makeNumber("1"), getLib().weekday(makeDateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().hour(null));
- assertEqualsNumber(makeNumber("12"), getLib().hour(makeDateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().minute(null));
- assertEqualsNumber(makeNumber("1"), getLib().minute(makeDateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().second(null));
- assertEqualsNumber(makeNumber("2"), getLib().second(makeDateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().timeOffset(null));
- assertNull(getLib().timeOffset(makeDateAndTime("2018-12-10T12:01:02")));
- assertEquals(makeDuration("PT1H"), getLib().timeOffset(makeDateAndTime("2018-12-10T12:01:02+01:00")));
- assertEquals(makeDuration("PT0S"), getLib().timeOffset(makeDateAndTime("2018-12-10T12:01:02Z")));
- assertEquals(makeDuration("PT0S"), getLib().timeOffset(makeDateAndTime("2018-12-10T12:01:02@Etc/UTC")));
- assertEquals(makeDuration("PT1H"), getLib().timeOffset(makeDateAndTime("2018-12-10T12:01:02@Europe/Paris")));
-
- assertNull(getLib().timezone(null));
- assertNull(getLib().timezone(makeDateAndTime("2018-12-10T12:01:02")));
- assertEquals("+01:00", getLib().timezone(makeDateAndTime("2018-12-10T12:01:02+01:00")));
- assertEquals("Z", getLib().timezone(makeDateAndTime("2018-12-10T12:01:02Z")));
- assertEquals("Etc/UTC", getLib().timezone(makeDateAndTime("2018-12-10T12:01:02@Etc/UTC")));
- assertEquals("Europe/Paris", getLib().timezone(makeDateAndTime("2018-12-10T12:01:02@Europe/Paris")));
- }
-}
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/FEELOperatorsTest.java b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/FEELOperatorsTest.java
index ce61bf26d..fefdd9115 100644
--- a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/FEELOperatorsTest.java
+++ b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/FEELOperatorsTest.java
@@ -19,7 +19,6 @@
import org.junit.jupiter.api.Test;
import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
import java.time.temporal.TemporalAccessor;
import java.util.ArrayList;
@@ -1469,9 +1468,7 @@ protected void assertEqualsNumber(double expected, Object actual, double precisi
}
protected void assertEqualsDateTime(String expected, Object actual) {
- if (actual instanceof XMLGregorianCalendar) {
- assertEquals(expected, actual.toString());
- } else if (actual instanceof TemporalAccessor) {
+ if (actual instanceof TemporalAccessor) {
String actualText = FormatUtils.formatTemporal(actual);
assertEquals(expected, actualText);
} else if (actual instanceof Duration) {
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/NumberDefaultRangeLibTest.java b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/NumberDefaultRangeLibTest.java
index 0b41b2521..e4c8232fb 100644
--- a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/NumberDefaultRangeLibTest.java
+++ b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/NumberDefaultRangeLibTest.java
@@ -12,21 +12,19 @@
*/
package com.gs.dmn.feel.lib.type.range;
-import com.gs.dmn.feel.lib.DefaultFEELLib;
import com.gs.dmn.feel.lib.MixedJavaTimeFEELLib;
import com.gs.dmn.feel.lib.StandardFEELLib;
import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.OffsetTime;
import java.time.ZonedDateTime;
-public class NumberDefaultRangeLibTest extends AbstractDefaultRangeLibTest {
+public class NumberDefaultRangeLibTest extends AbstractDefaultRangeLibTest {
@Override
- protected final StandardFEELLib getLib() {
- return new DefaultFEELLib();
+ protected final StandardFEELLib getLib() {
+ return new MixedJavaTimeFEELLib();
}
@Override
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/StringDefaultRangeLibTest.java b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/StringDefaultRangeLibTest.java
index be0a0f6af..783a4d54f 100644
--- a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/StringDefaultRangeLibTest.java
+++ b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/StringDefaultRangeLibTest.java
@@ -12,17 +12,19 @@
*/
package com.gs.dmn.feel.lib.type.range;
-import com.gs.dmn.feel.lib.DefaultFEELLib;
+import com.gs.dmn.feel.lib.MixedJavaTimeFEELLib;
import com.gs.dmn.feel.lib.StandardFEELLib;
import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.OffsetTime;
+import java.time.ZonedDateTime;
-public class StringDefaultRangeLibTest extends AbstractDefaultRangeLibTest {
+public class StringDefaultRangeLibTest extends AbstractDefaultRangeLibTest {
@Override
- protected final StandardFEELLib getLib() {
- return new DefaultFEELLib();
+ protected final StandardFEELLib getLib() {
+ return new MixedJavaTimeFEELLib();
}
@Override
protected String makePoint(int number) {
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLDateDefaultRangeLibTest.java b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLDateDefaultRangeLibTest.java
deleted file mode 100644
index e5b1271bf..000000000
--- a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLDateDefaultRangeLibTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright makeNumber(makeRange(""", "2", "6", """)) Goldman Sachs.
- *
- * Licensed under the Apache License, Version makeNumber("2").makeNumber("0") (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-makeNumber("2").makeNumber("0")
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib.type.range;
-
-import com.gs.dmn.feel.lib.DefaultFEELLib;
-import com.gs.dmn.feel.lib.StandardFEELLib;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-public class XMLDateDefaultRangeLibTest extends AbstractDefaultRangeLibTest {
- @Override
- protected final StandardFEELLib getLib() {
- return new DefaultFEELLib();
- }
-
- @Override
- protected XMLGregorianCalendar makePoint(int number) {
- if (number < 1 || number > 31) {
- throw new IllegalArgumentException("Illegal day");
- }
- return this.getLib().date(String.format("2010-01-%02d", number));
- }
-}
\ No newline at end of file
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLDateTimeDefaultRangeLibTest.java b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLDateTimeDefaultRangeLibTest.java
deleted file mode 100644
index 0277bc4f9..000000000
--- a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLDateTimeDefaultRangeLibTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright makeNumber(makeRange(""", "2", "6", """)) Goldman Sachs.
- *
- * Licensed under the Apache License, Version makeNumber("2").makeNumber("0") (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-makeNumber("2").makeNumber("0")
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib.type.range;
-
-import com.gs.dmn.feel.lib.DefaultFEELLib;
-import com.gs.dmn.feel.lib.StandardFEELLib;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-public class XMLDateTimeDefaultRangeLibTest extends AbstractDefaultRangeLibTest {
- @Override
- protected final StandardFEELLib getLib() {
- return new DefaultFEELLib();
- }
-
- @Override
- protected XMLGregorianCalendar makePoint(int number) {
- if (number < 0 || number > 60) {
- throw new IllegalArgumentException("Illegal second");
- }
- return this.getLib().dateAndTime(String.format("2020-01-01T12:00:%02d", number));
- }
-}
\ No newline at end of file
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLDurationDefaultRangeLibTest.java b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLDurationDefaultRangeLibTest.java
index ce75dd188..391b7e743 100644
--- a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLDurationDefaultRangeLibTest.java
+++ b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLDurationDefaultRangeLibTest.java
@@ -12,17 +12,19 @@
*/
package com.gs.dmn.feel.lib.type.range;
-import com.gs.dmn.feel.lib.DefaultFEELLib;
+import com.gs.dmn.feel.lib.MixedJavaTimeFEELLib;
import com.gs.dmn.feel.lib.StandardFEELLib;
import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.OffsetTime;
+import java.time.ZonedDateTime;
-public class XMLDurationDefaultRangeLibTest extends AbstractDefaultRangeLibTest {
+public class XMLDurationDefaultRangeLibTest extends AbstractDefaultRangeLibTest {
@Override
- protected final StandardFEELLib getLib() {
- return new DefaultFEELLib();
+ protected final StandardFEELLib getLib() {
+ return new MixedJavaTimeFEELLib();
}
@Override
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLTimeDefaultRangeLibTest.java b/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLTimeDefaultRangeLibTest.java
deleted file mode 100644
index 1eed43443..000000000
--- a/dmn-runtime/src/test/java/com/gs/dmn/feel/lib/type/range/XMLTimeDefaultRangeLibTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright makeNumber(makeRange(""", "2", "6", """)) Goldman Sachs.
- *
- * Licensed under the Apache License, Version makeNumber("2").makeNumber("0") (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-makeNumber("2").makeNumber("0")
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.feel.lib.type.range;
-
-import com.gs.dmn.feel.lib.DefaultFEELLib;
-import com.gs.dmn.feel.lib.StandardFEELLib;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-public class XMLTimeDefaultRangeLibTest extends AbstractDefaultRangeLibTest {
- @Override
- protected final StandardFEELLib getLib() {
- return new DefaultFEELLib();
- }
-
- @Override
- protected XMLGregorianCalendar makePoint(int number) {
- if (number < 0 || number > 60) {
- throw new IllegalArgumentException("Illegal second");
- }
- return this.getLib().time(String.format("12:00:%02d", number));
- }
-}
\ No newline at end of file
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/runtime/DefaultDMNBaseDecisionTest.java b/dmn-runtime/src/test/java/com/gs/dmn/runtime/DefaultDMNBaseDecisionTest.java
deleted file mode 100644
index 6db4de234..000000000
--- a/dmn-runtime/src/test/java/com/gs/dmn/runtime/DefaultDMNBaseDecisionTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.runtime;
-
-import com.gs.dmn.runtime.annotation.DRGElement;
-import com.gs.dmn.runtime.annotation.Rule;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-public class DefaultDMNBaseDecisionTest {
- private final DefaultDMNBaseDecision baseDecision = new DefaultDMNBaseDecision();
-
- @Test
- public void testGetDRGElementAnnotation() {
- DRGElement drgElementAnnotation = this.baseDecision.getDRGElementAnnotation();
- assertNull(drgElementAnnotation);
- }
-
- @Test
- public void testGetRuleAnnotation() {
- Rule ruleAnnotation = this.baseDecision.getRuleAnnotation(0);
- assertNull(ruleAnnotation);
- }
-
-}
\ No newline at end of file
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/serialization/DefaultStandardJsonSerializerTest.java b/dmn-runtime/src/test/java/com/gs/dmn/serialization/DefaultStandardJsonSerializerTest.java
deleted file mode 100644
index d658e2960..000000000
--- a/dmn-runtime/src/test/java/com/gs/dmn/serialization/DefaultStandardJsonSerializerTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.serialization;
-
-import com.gs.dmn.feel.lib.DefaultFEELLib;
-import com.gs.dmn.feel.lib.FEELLib;
-import com.gs.dmn.runtime.Pair;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.List;
-
-import static com.gs.dmn.serialization.JsonSerializer.OBJECT_MAPPER;
-
-public class DefaultStandardJsonSerializerTest extends AbstractJsonSerializerTest {
- static final List> TIME_TEST_DATA = Arrays.asList(
- new Pair<>("04:20:20", "04:20:20"),
- new Pair<>("04:20:20Z", "04:20:20Z"),
- new Pair<>("04:20:20.004", "04:20:20.004"),
- new Pair<>("04:20:20.004Z", "04:20:20.004Z"),
- new Pair<>("04:20:20.00421", "04:20:20.00421"),
- new Pair<>("04:20:20.00421Z", "04:20:20.00421Z"),
- new Pair<>("04:20:20.00421+01:00", "04:20:20.00421+01:00"),
- new Pair<>("04:20:20.004Z", "04:20:20.004Z"),
- new Pair<>("04:20:20.00421@Europe/Paris", "04:20:20.00421+01:00")
- );
- static final List> DATE_TIME_TEST_DATA = Arrays.asList(
- new Pair<>("2019-03-11T04:20:20", "2019-03-11T04:20:20"),
- new Pair<>("2019-03-11T04:20:20Z", "2019-03-11T04:20:20Z"),
- new Pair<>("2019-03-11T04:20:20.004", "2019-03-11T04:20:20.004"),
- new Pair<>("2019-03-11T04:20:20.004Z", "2019-03-11T04:20:20.004Z"),
- new Pair<>("2019-03-11T04:20:20.00421", "2019-03-11T04:20:20.00421"),
- new Pair<>("2019-03-11T04:20:20.00421Z", "2019-03-11T04:20:20.00421Z"),
- new Pair<>("2019-03-11T04:20:20.00421+01:00", "2019-03-11T04:20:20.00421+01:00"),
- new Pair<>("2019-03-11T04:20:20.004@UTC", "2019-03-11T04:20:20.004Z"),
- new Pair<>("2019-03-11T04:20:20.00421@Europe/Paris", "2019-03-11T04:20:20.00421+01:00"),
-
- new Pair<>("9999-03-11T04:20:20", "9999-03-11T04:20:20")
- );
-
- @Override
- protected FEELLib makeFEELLib() {
- return new DefaultFEELLib();
- }
-
- @Override
- protected BigDecimal readNumber(String literal) throws Exception {
- return OBJECT_MAPPER.readValue(literal, BigDecimal.class);
- }
-
- @Override
- protected XMLGregorianCalendar readDate(String literal) throws Exception {
- return OBJECT_MAPPER.readValue(literal, XMLGregorianCalendar.class);
- }
-
- @Override
- protected XMLGregorianCalendar readTime(String literal) throws Exception {
- return OBJECT_MAPPER.readValue(literal, XMLGregorianCalendar.class);
- }
-
- @Override
- protected XMLGregorianCalendar readDateTime(String literal) throws Exception {
- return OBJECT_MAPPER.readValue(literal, XMLGregorianCalendar.class);
- }
-
- @Override
- protected Duration readDuration(String literal) throws Exception {
- return OBJECT_MAPPER.readValue(literal, Duration.class);
- }
-
- @Override
- protected List> getTimeTestData() {
- return TIME_TEST_DATA;
- }
-
- @Override
- protected List> getDateTimeTestData() {
- return DATE_TIME_TEST_DATA;
- }
-}
-
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/signavio/feel/lib/DefaultSignavioLibExceptionsTest.java b/dmn-runtime/src/test/java/com/gs/dmn/signavio/feel/lib/DefaultSignavioLibExceptionsTest.java
deleted file mode 100644
index fb88fbf74..000000000
--- a/dmn-runtime/src/test/java/com/gs/dmn/signavio/feel/lib/DefaultSignavioLibExceptionsTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.feel.lib;
-
-import com.gs.dmn.feel.lib.stub.*;
-import com.gs.dmn.feel.lib.type.bool.BooleanLib;
-import com.gs.dmn.feel.lib.type.bool.BooleanType;
-import com.gs.dmn.feel.lib.type.context.ContextType;
-import com.gs.dmn.feel.lib.type.function.FunctionType;
-import com.gs.dmn.feel.lib.type.list.ListType;
-import com.gs.dmn.feel.lib.type.numeric.NumericType;
-import com.gs.dmn.feel.lib.type.range.RangeType;
-import com.gs.dmn.feel.lib.type.string.StringType;
-import com.gs.dmn.feel.lib.type.time.*;
-import com.gs.dmn.signavio.feel.lib.stub.SignavioDateTimeLibStub;
-import com.gs.dmn.signavio.feel.lib.stub.SignavioListLibStub;
-import com.gs.dmn.signavio.feel.lib.stub.SignavioNumberLibStub;
-import com.gs.dmn.signavio.feel.lib.stub.SignavioStringLibStub;
-import com.gs.dmn.signavio.feel.lib.type.list.SignavioListLib;
-import com.gs.dmn.signavio.feel.lib.type.numeric.SignavioNumberLib;
-import com.gs.dmn.signavio.feel.lib.type.string.SignavioStringLib;
-import com.gs.dmn.signavio.feel.lib.type.time.SignavioDateTimeLib;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-public class DefaultSignavioLibExceptionsTest extends BaseSignavioLibExceptionsTest {
- @Override
- protected DefaultSignavioLib getLib() {
- NumericType numericType = new NumericTypeStub<>();
- BooleanType booleanType = new BooleanTypeStub();
- StringType stringType = new StringTypeStub();
- DateType dateType = new DateTypeStub<>();
- TimeType timeType = new TimeTypeStub<>();
- DateTimeType dateTimeType = new DateTimeTypeStub<>();
- DurationType durationType = new DurationTypeStub<>();
- ListType listType = new ListTypeStub();
- ContextType contextType = new ContextTypeStub();
- RangeType rangeType = new RangeTypeStub();
- FunctionType functionType = new FunctionTypeStub();
- SignavioNumberLib numberLib = new SignavioNumberLibStub<>();
- SignavioStringLib stringLib = new SignavioStringLibStub();
- BooleanLib booleanLib = new BooleanLibStub();
- SignavioDateTimeLib dateTimeLib = new SignavioDateTimeLibStub<>();
- DurationLib durationLib = new DurationLibStub<>();
- SignavioListLib listLib = new SignavioListLibStub();
- return new DefaultSignavioLib(
- numericType, booleanType, stringType,
- dateType, timeType, dateTimeType, durationType,
- listType, contextType, rangeType, functionType,
- numberLib, stringLib, booleanLib, dateTimeLib, durationLib, listLib
- );
- }
-}
\ No newline at end of file
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/signavio/feel/lib/DefaultSignavioLibTest.java b/dmn-runtime/src/test/java/com/gs/dmn/signavio/feel/lib/DefaultSignavioLibTest.java
deleted file mode 100644
index 50e21eaea..000000000
--- a/dmn-runtime/src/test/java/com/gs/dmn/signavio/feel/lib/DefaultSignavioLibTest.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.feel.lib;
-
-import org.junit.jupiter.api.Test;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.Calendar;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-public class DefaultSignavioLibTest extends BaseSignavioLibTest {
- @Override
- protected DefaultSignavioLib getLib() {
- return new DefaultSignavioLib();
- }
-
- //
- // Date & time functions
- //
- @Test
- public void testDay() {
- assertNull(getLib().day(null));
-
- assertEqualsNumber(makeNumber("10"), getLib().day(makeDate("2015-12-10")));
- assertNull(getLib().day(makeDate("xxx")));
- }
-
- @Test
- public void testDayAdd() {
- assertNull(getLib().dayAdd(null, null));
- assertNull(getLib().dayAdd(null, makeNumber("360")));
- assertNull(getLib().dayAdd(makeDateAndTime("2015-12-24T12:15:00.000+01:00"), null));
-
- assertEqualsDateTime("2015-12-25T12:15:00.001+01:00", getLib().dayAdd(makeDateAndTime("2015-12-24T12:15:00.001+01:00"), makeNumber("1")));
- assertEqualsDateTime("2016-12-18T12:15:00.001+01:00", getLib().dayAdd(makeDateAndTime("2015-12-24T12:15:00.001+01:00"), makeNumber("360")));
- assertEqualsDateTime("2015-12-25", getLib().dayAdd(makeDate("2015-12-24"), makeNumber("1")));
- assertEqualsDateTime("2016-12-18", getLib().dayAdd(makeDate("2015-12-24"), makeNumber("360")));
- assertEqualsDateTime("2015-12-23", getLib().dayAdd(makeDate("2015-12-24"), makeNumber("-1")));
- assertNull(getLib().dayAdd(makeDateAndTime("x"), makeNumber("360")));
- }
-
- @Test
- public void testDayDiff() {
- assertNull(getLib().dayDiff(null, null));
- assertNull(getLib().dayDiff(null, makeDate("2015-12-25")));
- assertNull(getLib().dayDiff(makeDate("2015-12-25"), null));
- assertNull(getLib().dayDiff(null, makeDateAndTime("2015-12-25T00:00:00")));
- assertNull(getLib().dayDiff(makeDateAndTime("2015-12-24T00:00:00"), null));
-
- assertEquals(makeNumber("1"), getLib().dayDiff(makeDate("2015-12-24"), makeDate("2015-12-25")));
- assertEquals(makeNumber("0"), getLib().dayDiff(makeDate("2015-12-24"), makeDate("2015-12-24")));
- assertEquals(makeNumber("-1"), getLib().dayDiff(makeDate("2015-12-24"), makeDate("2015-12-23")));
-
- assertEquals(makeNumber("1"), getLib().dayDiff(makeDateAndTime("2015-12-24T00:00:00"), makeDateAndTime("2015-12-25T00:00:00")));
- assertEquals(makeNumber("0"), getLib().dayDiff(makeDateAndTime("2015-12-24T12:25:00"), makeDateAndTime("2015-12-24T00:00:00")));
- assertEquals(makeNumber("-1"), getLib().dayDiff(makeDateAndTime("2015-12-24T00:00:00"), makeDateAndTime("2015-12-23T00:00:00")));
- }
-
- @Test
- public void testHour() {
- assertNull(getLib().hour(makeDateAndTime(null)));
-
- assertEquals(makeNumber("12"), getLib().hour(makeTime("12:15:00.000+01:00")));
- assertEquals(makeNumber("12"), getLib().hour(makeDateAndTime("2015-12-24T12:15:00.000+01:00")));
- assertNull(getLib().hour(makeDateAndTime("xxx")));
- }
-
- @Test
- public void testHourDiff() {
- assertNull(getLib().hourDiff(null, null));
- assertNull(getLib().hourDiff(null, makeTime("12:15:00.000+01:00")));
- assertNull(getLib().hourDiff(makeTime("12:15:00.000+01:00"), null));
-
- assertEquals(makeNumber("0"), getLib().hourDiff(makeTime("12:15:00.000+01:00"), makeTime("12:15:00.000+01:00")));
- assertEquals(makeNumber("3"), getLib().hourDiff(makeDateAndTime("2015-12-24T12:15:00.000+01:00"), makeDateAndTime("2015-12-24T15:15:00.000+01:00")));
- assertEquals(makeNumber("27"), getLib().hourDiff(makeDateAndTime("2015-12-24T12:15:00.000+01:00"), makeDateAndTime("2015-12-25T15:15:00.000+01:00")));
- assertEquals(makeNumber("-24"), getLib().hourDiff(makeDateAndTime("2015-12-25T12:15:00.000+01:00"), makeDateAndTime("2015-12-24T12:15:00.000+01:00")));
- assertEquals(makeNumber("-27"), getLib().hourDiff(makeDateAndTime("2015-12-25T15:15:00.000+01:00"), makeDateAndTime("2015-12-24T12:15:00.000+01:00")));
- assertEquals(makeNumber("8757"), getLib().hourDiff(makeDateAndTime("2015-12-25T15:15:00.000+01:00"), makeDateAndTime("2016-12-24T12:15:00.000+01:00")));
- }
-
- @Test
- public void testMinute() {
- assertNull(getLib().minute(null));
-
- assertEquals(makeNumber("15"), getLib().minute(makeTime("12:15:00.000+01:00")));
- assertEquals(makeNumber("15"), getLib().minute(makeDateAndTime("2015-12-24T12:15:00.000+01:00")));
- }
-
- @Test
- public void testMinuteDiff() {
- assertNull(getLib().minutesDiff(null, null));
- assertNull(getLib().minutesDiff(null, makeTime("12:15:00.000+01:00")));
- assertNull(getLib().minutesDiff(makeTime("12:15:00.000+01:00"), null));
-
- assertEquals(makeNumber("0"), getLib().minutesDiff(makeTime("12:15:00.000+01:00"), makeTime("12:15:00.000+01:00")));
- assertEquals(makeNumber("5"), getLib().minutesDiff(makeDateAndTime("2015-12-24T12:15:00.000+01:00"), makeDateAndTime("2015-12-24T12:20:00.000+01:00")));
- assertEquals(makeNumber("65"), getLib().minutesDiff(makeDateAndTime("2015-12-24T12:15:00.000+01:00"), makeDateAndTime("2015-12-24T13:20:00.000+01:00")));
- assertEquals(makeNumber("-65"), getLib().minutesDiff(makeDateAndTime("2015-12-24T13:20:00.000+01:00"), makeDateAndTime("2015-12-24T12:15:00.000+01:00")));
- assertEquals(makeNumber("525420"), getLib().minutesDiff(makeDateAndTime("2015-12-25T15:15:00.000+01:00"), makeDateAndTime("2016-12-24T12:15:00.000+01:00")));
- }
-
- @Test
- public void testMonth() {
- assertNull(getLib().month(null));
-
- assertEquals(makeNumber("12"), getLib().month(makeDate("2015-12-02")));
- assertEquals(makeNumber("12"), getLib().month(makeDateAndTime("2015-12-24T12:15:00.000+01:00")));
- }
-
- @Test
- public void testMonthAdd() {
- assertNull(getLib().monthAdd(null, null));
- assertNull(getLib().monthAdd(null, makeNumber("1")));
- assertNull(getLib().monthAdd(makeDate("2015-01-05"), null));
-
- assertEqualsDateTime("2015-02-05", getLib().monthAdd(makeDate("2015-01-05"), makeNumber("1")));
- assertEqualsDateTime("2016-01-05", getLib().monthAdd(makeDate("2015-01-05"), makeNumber("12")));
- assertEqualsDateTime("2014-11-05", getLib().monthAdd(makeDate("2015-01-05"), makeNumber("-2")));
- assertEqualsDateTime("2015-02-05T12:15:00.001+01:00", getLib().monthAdd(makeDateAndTime("2015-01-05T12:15:00.001+01:00"), makeNumber("1")));
- assertEqualsDateTime("2016-01-05T12:15:00.001+01:00", getLib().monthAdd(makeDateAndTime("2015-01-05T12:15:00.001+01:00"), makeNumber("12")));
- assertEqualsDateTime("2014-11-05T12:15:00.001+01:00", getLib().monthAdd(makeDateAndTime("2015-01-05T12:15:00.001+01:00"), makeNumber("-2")));
- assertNull(getLib().monthAdd(makeDateAndTime("xxx"), makeNumber("12")));
- assertNull(getLib().monthAdd(null, makeNumber("12")));
- }
-
- @Test
- public void testMonthDiff() {
- assertNull(getLib().monthDiff(null, null));
- assertNull(getLib().monthDiff(null, makeDate("2015-01-05")));
- assertNull(getLib().monthDiff(makeDate("2015-01-05"), null));
-
- assertEquals(makeNumber("0"), getLib().monthDiff(makeDate("2015-01-05"), makeDate("2015-01-05")));
- assertEquals(makeNumber("4"), getLib().monthDiff(makeDate("2015-01-05"), makeDate("2015-05-05")));
- assertEquals(makeNumber("16"), getLib().monthDiff(makeDate("2015-01-05"), makeDate("2016-05-05")));
- assertEquals(makeNumber("-4"), getLib().monthDiff(makeDate("2015-05-05"), makeDate("2015-01-05")));
-
- assertEquals(makeNumber("0"), getLib().monthDiff(makeDateAndTime("2015-01-05T12:15:00.000+01:00"), makeDateAndTime("2015-01-05T12:15:00.000+01:00")));
- assertEquals(makeNumber("4"), getLib().monthDiff(makeDateAndTime("2015-01-05T12:15:00.000+01:00"), makeDateAndTime("2015-05-05T12:15:00.000+01:00")));
- assertEquals(makeNumber("16"), getLib().monthDiff(makeDateAndTime("2015-01-05T12:15:00.000+01:00"), makeDateAndTime("2016-05-05T12:15:00.000+01:00")));
- assertEquals(makeNumber("-4"), getLib().monthDiff(makeDateAndTime("2015-05-05T12:15:00.000+01:00"), makeDateAndTime("2015-01-05T12:15:00.000+01:00")));
- }
-
- @Test
- public void testNow() {
- XMLGregorianCalendar actual = getLib().now();
- Calendar expected = Calendar.getInstance();
- assertEquals(expected.get(Calendar.YEAR), actual.getYear());
- assertEquals(expected.get(Calendar.MONTH) + 1, actual.getMonth());
- assertEquals(expected.get(Calendar.DAY_OF_MONTH), actual.getDay());
- }
-
- @Test
- public void testToday() {
- XMLGregorianCalendar actual = getLib().today();
- LocalDate expected = LocalDate.now();
- assertEquals(expected.getYear(), actual.getYear());
- assertEquals(expected.getMonthValue(), actual.getMonth());
- assertEquals(expected.getDayOfMonth(), actual.getDay());
- }
-
-
- @Test
- public void testWeekday() {
- assertNull(getLib().weekday(null));
-
- assertEquals(makeNumber("7"), getLib().weekday(makeDate("2016-12-25")));
- assertEquals(makeNumber("6"), getLib().weekday(makeDate("0003-02-01")));
- assertEquals(makeNumber("2"), getLib().weekday(makeDate("2016-11-01")));
- assertEquals(makeNumber("7"), getLib().weekday(makeDateAndTime("2016-11-20T12:15:00.000+01:00")));
- }
-
- @Test
- public void testYear() {
- assertNull(getLib().year(null));
-
- assertEquals(makeNumber("2016"), getLib().year(makeDate("2016-11-01")));
- assertEquals(makeNumber("2015"), getLib().year(makeDateAndTime("2015-11-20T12:15:00.000+01:00")));
- }
-
- @Test
- public void testYearAdd() {
- assertNull(getLib().yearAdd(null, null));
- assertNull(getLib().yearAdd(null, makeNumber("1")));
- assertNull(getLib().yearAdd(makeDate("2015-01-05"), null));
-
- assertEqualsDateTime("2016-01-05", getLib().yearAdd(makeDate("2015-01-05"), makeNumber("1")));
- assertEqualsDateTime("2027-01-05", getLib().yearAdd(makeDate("2015-01-05"), makeNumber("12")));
- assertEqualsDateTime("2016-01-05T12:15:00.001+01:00", getLib().yearAdd(makeDateAndTime("2015-01-05T12:15:00.001+01:00"), makeNumber("1")));
- assertEqualsDateTime("2027-01-05T12:15:00.001+01:00", getLib().yearAdd(makeDateAndTime("2015-01-05T12:15:00.001+01:00"), makeNumber("12")));
- assertNull(getLib().yearAdd(makeDateAndTime("xxx"), makeNumber("12")));
- assertNull(getLib().yearAdd(null, makeNumber("12")));
- }
-
- @Test
- public void testYearDiff() {
- assertNull(getLib().yearDiff(null, null));
- assertNull(getLib().yearDiff(null, makeDate("2015-01-05")));
- assertNull(getLib().yearDiff(makeDate("2015-01-05"), null));
-
- assertEquals(makeNumber("0"), getLib().yearDiff(makeDate("2015-01-05"), makeDate("2015-01-05")));
- assertEquals(makeNumber("1"), getLib().yearDiff(makeDate("2015-01-05"), makeDate("2016-05-05")));
- assertEquals(makeNumber("1"), getLib().yearDiff(makeDate("2015-01-05"), makeDate("2016-01-05")));
- assertEquals(makeNumber("-1"), getLib().yearDiff(makeDate("2016-01-05"), makeDate("2015-01-05")));
- assertEquals(makeNumber("0"), getLib().yearDiff(makeDate("2016-01-05"), makeDate("2015-05-05")));
-
- assertEquals(makeNumber("0"), getLib().yearDiff(makeDateAndTime("2015-01-01T12:15:00.000+01:00"), makeDateAndTime("2015-01-05T15:15:00.000+01:00")));
- assertEquals(makeNumber("1"), getLib().yearDiff(makeDateAndTime("2015-01-05T12:15:00.000+01:00"), makeDateAndTime("2016-05-05T15:15:00.000+01:00")));
- assertEquals(makeNumber("1"), getLib().yearDiff(makeDateAndTime("2015-01-05T12:15:00.000+01:00"), makeDateAndTime("2016-01-05T15:15:00.000+01:00")));
- assertEquals(makeNumber("-1"), getLib().yearDiff(makeDateAndTime("2016-01-05T12:15:00.000+01:00"), makeDateAndTime("2015-01-05T15:15:00.000+01:00")));
- assertEquals(makeNumber("0"), getLib().yearDiff(makeDateAndTime("2016-01-05T12:15:00.000+01:00"), makeDateAndTime("2015-05-05T15:15:00.000+01:00")));
- }
-
- //
- // Time properties
- //
- @Override
- @Test
- public void testTimeProperties() {
- assertNull(getLib().hour(null));
- assertEqualsNumber(makeNumber("12"), getLib().hour(getLib().time("12:01:02Z")));
-
- assertNull(getLib().minute(null));
- assertEqualsNumber(makeNumber("1"), getLib().minute(getLib().time("12:01:02Z")));
- }
-
- //
- // Date and time properties
- //
- @Override
- @Test
- public void testDateAndTimeProperties() {
- assertNull(getLib().year(null));
- assertEqualsNumber(makeNumber("2018"), getLib().year(getLib().dateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().month(null));
- assertEqualsNumber(makeNumber("12"), getLib().month(getLib().dateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().day(null));
- assertEqualsNumber(makeNumber("10"), getLib().day(getLib().dateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().weekday(null));
- assertEqualsNumber(makeNumber("1"), getLib().weekday(getLib().dateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().hour(null));
- assertEqualsNumber(makeNumber("12"), getLib().hour(getLib().dateAndTime("2018-12-10T12:01:02Z")));
-
- assertNull(getLib().minute(null));
- assertEqualsNumber(makeNumber("1"), getLib().minute(getLib().dateAndTime("2018-12-10T12:01:02Z")));
- }
-}
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/signavio/feel/lib/FEELOperatorsTest.java b/dmn-runtime/src/test/java/com/gs/dmn/signavio/feel/lib/FEELOperatorsTest.java
index 0e97997c3..4bb6b3cd0 100644
--- a/dmn-runtime/src/test/java/com/gs/dmn/signavio/feel/lib/FEELOperatorsTest.java
+++ b/dmn-runtime/src/test/java/com/gs/dmn/signavio/feel/lib/FEELOperatorsTest.java
@@ -19,12 +19,8 @@
import org.junit.jupiter.api.Test;
import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.OffsetDateTime;
-import java.time.OffsetTime;
-import java.time.ZonedDateTime;
+import java.time.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -1418,14 +1414,18 @@ protected void assertEqualsNumber(double expected, Object actual, double precisi
}
protected void assertEqualsDateTime(String expected, Object actual) {
- if (actual instanceof XMLGregorianCalendar) {
- assertEquals(expected, actual.toString());
- } else if (actual instanceof LocalDate) {
+ if (actual instanceof LocalDate) {
String actualText = ((LocalDate) actual).format(BaseDateTimeLib.FEEL_DATE);
assertEquals(expected, actualText);
} else if (actual instanceof OffsetTime) {
String actualText = ((OffsetTime) actual).format(BaseDateTimeLib.FEEL_TIME);
assertEquals(expected, actualText);
+ } else if (actual instanceof LocalTime) {
+ String actualText = ((LocalTime) actual).format(BaseDateTimeLib.FEEL_TIME);
+ assertEquals(expected, actualText);
+ } else if (actual instanceof LocalDateTime) {
+ String actualText = ((LocalDateTime) actual).format(BaseDateTimeLib.FEEL_DATE_TIME);
+ assertEquals(expected, actualText);
} else if (actual instanceof OffsetDateTime) {
String actualText = ((OffsetDateTime) actual).format(BaseDateTimeLib.FEEL_DATE_TIME);
assertEquals(expected, actualText);
diff --git a/dmn-runtime/src/test/java/com/gs/dmn/signavio/runtime/DefaultSignavioBaseDecisionTest.java b/dmn-runtime/src/test/java/com/gs/dmn/signavio/runtime/DefaultSignavioBaseDecisionTest.java
deleted file mode 100644
index c042cbc1a..000000000
--- a/dmn-runtime/src/test/java/com/gs/dmn/signavio/runtime/DefaultSignavioBaseDecisionTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.runtime;
-
-import com.gs.dmn.runtime.annotation.DRGElement;
-import com.gs.dmn.runtime.annotation.Rule;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-public class DefaultSignavioBaseDecisionTest {
- private final DefaultSignavioBaseDecision baseDecision = new DefaultSignavioBaseDecision();
-
- @Test
- public void testGetDRGElementAnnotation() throws Exception {
- DRGElement drgElementAnnotation = baseDecision.getDRGElementAnnotation();
- assertNull(drgElementAnnotation);
- }
-
- @Test
- public void testGetRuleAnnotation() throws Exception {
- Rule ruleAnnotation = baseDecision.getRuleAnnotation(0);
- assertNull(ruleAnnotation);
- }
-
-}
\ No newline at end of file
diff --git a/dmn-signavio/src/main/java/com/gs/dmn/signavio/dialect/SignavioDMNDialectDefinition.java b/dmn-signavio/src/main/java/com/gs/dmn/signavio/dialect/SignavioDMNDialectDefinition.java
deleted file mode 100644
index 099d19f50..000000000
--- a/dmn-signavio/src/main/java/com/gs/dmn/signavio/dialect/SignavioDMNDialectDefinition.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.dialect;
-
-import com.gs.dmn.DMNModelRepository;
-import com.gs.dmn.context.environment.EnvironmentFactory;
-import com.gs.dmn.feel.lib.FEELLib;
-import com.gs.dmn.feel.synthesis.type.NativeTypeFactory;
-import com.gs.dmn.feel.synthesis.type.StandardNativeTypeFactory;
-import com.gs.dmn.log.BuildLogger;
-import com.gs.dmn.serialization.TypeDeserializationConfigurer;
-import com.gs.dmn.signavio.feel.lib.DefaultSignavioLib;
-import com.gs.dmn.signavio.runtime.DefaultSignavioBaseDecision;
-import com.gs.dmn.signavio.testlab.TestLab;
-import com.gs.dmn.signavio.transformation.SignavioDMNToJavaTransformer;
-import com.gs.dmn.signavio.transformation.basic.BasicSignavioDMNToJavaTransformer;
-import com.gs.dmn.transformation.DMNToNativeTransformer;
-import com.gs.dmn.transformation.DMNTransformer;
-import com.gs.dmn.transformation.InputParameters;
-import com.gs.dmn.transformation.basic.BasicDMNToJavaTransformer;
-import com.gs.dmn.transformation.lazy.LazyEvaluationDetector;
-import com.gs.dmn.transformation.template.TemplateProvider;
-import com.gs.dmn.validation.DMNValidator;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-/**
- * @deprecated As of release 8.3.0, replaced by {@link JavaTimeSignavioDMNDialectDefinition}
- */
-@Deprecated
-public class SignavioDMNDialectDefinition extends AbstractSignavioDMNDialectDefinition {
- //
- // DMN processors
- //
- @Override
- public DMNToNativeTransformer createDMNToNativeTransformer(DMNValidator dmnValidator, DMNTransformer dmnTransformer, TemplateProvider templateProvider, LazyEvaluationDetector lazyEvaluationDetector, TypeDeserializationConfigurer typeDeserializationConfigurer, InputParameters inputParameters, BuildLogger logger) {
- return new SignavioDMNToJavaTransformer<>(this, dmnValidator, dmnTransformer, templateProvider, lazyEvaluationDetector, typeDeserializationConfigurer, inputParameters, logger);
- }
-
- @Override
- public BasicDMNToJavaTransformer createBasicTransformer(DMNModelRepository repository, LazyEvaluationDetector lazyEvaluationDetector, InputParameters inputParameters) {
- EnvironmentFactory environmentFactory = createEnvironmentFactory();
- return new BasicSignavioDMNToJavaTransformer(this, repository, environmentFactory, createNativeTypeFactory(), lazyEvaluationDetector, inputParameters);
- }
-
- //
- // Execution engine
- //
- @Override
- public NativeTypeFactory createNativeTypeFactory() {
- return new StandardNativeTypeFactory();
- }
-
- @Override
- public FEELLib createFEELLib() {
- return new DefaultSignavioLib();
- }
-
- @Override
- public String getDecisionBaseClass() {
- return DefaultSignavioBaseDecision.class.getName();
- }
-}
diff --git a/dmn-signavio/src/test/java/com/gs/dmn/signavio/dialect/SignavioDMNDialectDefinitionTest.java b/dmn-signavio/src/test/java/com/gs/dmn/signavio/dialect/SignavioDMNDialectDefinitionTest.java
deleted file mode 100644
index 3b7d22e38..000000000
--- a/dmn-signavio/src/test/java/com/gs/dmn/signavio/dialect/SignavioDMNDialectDefinitionTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright 2016 Goldman Sachs.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package com.gs.dmn.signavio.dialect;
-
-import com.gs.dmn.dialect.DMNDialectDefinition;
-import com.gs.dmn.feel.synthesis.type.StandardNativeTypeFactory;
-import com.gs.dmn.signavio.feel.lib.DefaultSignavioLib;
-import com.gs.dmn.signavio.runtime.DefaultSignavioBaseDecision;
-import com.gs.dmn.signavio.runtime.interpreter.SignavioDMNInterpreter;
-import com.gs.dmn.signavio.testlab.TestLab;
-import com.gs.dmn.signavio.transformation.SignavioDMNToJavaTransformer;
-import com.gs.dmn.signavio.transformation.basic.BasicSignavioDMNToJavaTransformer;
-
-import javax.xml.datatype.Duration;
-import javax.xml.datatype.XMLGregorianCalendar;
-import java.math.BigDecimal;
-
-public class SignavioDMNDialectDefinitionTest extends AbstractSignavioDMNDialectDefinitionTest {
- @Override
- protected DMNDialectDefinition makeDialect() {
- return new SignavioDMNDialectDefinition();
- }
-
- @Override
- protected String getExpectedDMNInterpreterClass() {
- return SignavioDMNInterpreter.class.getName();
- }
-
- @Override
- protected String getExpectedDMNToNativeTransformerClass() {
- return SignavioDMNToJavaTransformer.class.getName();
- }
-
- @Override
- protected String getBasicTransformerClass() {
- return BasicSignavioDMNToJavaTransformer.class.getName();
- }
-
- @Override
- protected String getExpectedNativeTypeFactoryClass() {
- return StandardNativeTypeFactory.class.getName();
- }
-
- @Override
- protected String getExpectedFEELLibClass() {
- return DefaultSignavioLib.class.getName();
- }
-
- @Override
- protected String getExpectedDecisionBaseClass() {
- return DefaultSignavioBaseDecision.class.getName();
- }
-}
\ No newline at end of file
diff --git a/dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/SignavioFEELProcessorTest.java b/dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/JavaTimeSignavioFEELProcessorTest.java
similarity index 88%
rename from dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/SignavioFEELProcessorTest.java
rename to dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/JavaTimeSignavioFEELProcessorTest.java
index 92a354175..a9d787b26 100644
--- a/dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/SignavioFEELProcessorTest.java
+++ b/dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/JavaTimeSignavioFEELProcessorTest.java
@@ -20,7 +20,7 @@
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalAmount;
-public class SignavioFEELProcessorTest extends AbstractSignavioFEELProcessorTest {
+public class JavaTimeSignavioFEELProcessorTest extends AbstractSignavioFEELProcessorTest {
@Override
protected String numberType() {
return Number.class.getName();
diff --git a/dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/MixedSignavioFEELProcessorTest.java b/dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/MixedJavaTimeSignavioFEELProcessorTest.java
similarity index 98%
rename from dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/MixedSignavioFEELProcessorTest.java
rename to dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/MixedJavaTimeSignavioFEELProcessorTest.java
index c69a4ffd6..1539610ee 100644
--- a/dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/MixedSignavioFEELProcessorTest.java
+++ b/dmn-signavio/src/test/java/com/gs/dmn/signavio/feel/MixedJavaTimeSignavioFEELProcessorTest.java
@@ -30,7 +30,7 @@
import static com.gs.dmn.feel.analysis.semantics.type.DateType.DATE;
import static com.gs.dmn.feel.analysis.semantics.type.TimeType.TIME;
-public class MixedSignavioFEELProcessorTest extends AbstractSignavioFEELProcessorTest {
+public class MixedJavaTimeSignavioFEELProcessorTest extends AbstractSignavioFEELProcessorTest {
@Override
protected String numberType() {
return BigDecimal.class.getName();
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0001-filter/translator/standard/0001-filter-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0001-filter/translator/standard/0001-filter-test-01.xml
deleted file mode 100644
index 07f780c29..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0001-filter/translator/standard/0001-filter-test-01.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
- 0001-filter.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- FEEL Filter (10.3.2.5)
- Compliance Level 3
- Literal Expression
- Item Definition
- FEEL Filter (10.3.2.5)
- Data Type: String
- Data Type: Number
- Data Type: Structure
- Data Type: Collection
-
-
-
-
- -
-
- 7792
-
-
- 10
-
-
- Clark
-
-
- -
-
- 7934
-
-
- 10
-
-
- Miller
-
-
- -
-
- 7976
-
-
- 20
-
-
- Adams
-
-
- -
-
- 7902
-
-
- 20
-
-
- Ford
-
-
- -
-
- 7900
-
-
- 30
-
-
- James
-
-
-
-
-
-
-
- -
-
Adams
-
- -
-
Ford
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0002-string-functions/translator/standard/0002-string-functions-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0002-string-functions/translator/standard/0002-string-functions-test-01.xml
deleted file mode 100644
index 1b41f6f04..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0002-string-functions/translator/standard/0002-string-functions-test-01.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
- 0002-string-functions.dmn
-
- Compliance Level 3
- Literal Expression
- Context
- Item Definition
- FEEL Functions: strings
- FEEL Arithmetic
- FEEL Filter (10.3.2.5)
- FEEL Functions: string
- FEEL Functions: string
- Data Type: String
- Data Type: Number
- Data Type: Boolean
- Data Type: Structure
-
-
- Tests FEEL built-in functions on string literals (starts_with, ends_with, contains, substring, string_length, upper_case, lower_case, substring_before, substring_after)
-
- banana
-
-
- a
-
-
- 2
-
-
-
-
- false
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
- true
-
-
- a
-
-
- 6
-
-
- BANANA
-
-
- a
-
-
- b
-
-
- nana
-
-
-
-
-
- Tests FEEL built-in function for regular expresssion matching (matches)
-
- banana
-
-
-
- true
-
-
-
-
- Tests FEEL built-in function 'replace' on string literals
-
- banana
-
-
-
-
- bonono
-
-
- b**a
-
-
- b[a]n[a]n[a]
-
-
-
-
-
- Tests FEEL built-in function for converting a number to a string
-
- 2
-
-
-
- 2
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0003-iteration/translator/standard/0003-iteration-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0003-iteration/translator/standard/0003-iteration-test-01.xml
deleted file mode 100644
index 85fa022dd..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0003-iteration/translator/standard/0003-iteration-test-01.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
- 0003-iteration.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Business Knowledge Model
- FEEL Arithmetic
- FEEL Iteration
- Data Type: Number
- Data Type: Structure
- Data Type: Collection
-
-
-
-
- -
-
- 200000
-
-
- .041
-
-
- 360
-
-
- -
-
- 20000
-
-
- .049
-
-
- 60
-
-
-
-
-
-
-
- -
-
966.396742204988
-
- -
-
376.509070632494
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0004-lending/translator/standard/0004-lending-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0004-lending/translator/standard/0004-lending-test-01.xml
deleted file mode 100644
index 1778d7f8b..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0004-lending/translator/standard/0004-lending-test-01.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-
-
- 0004-lending.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Function Invocation
- Business Knowledge Model
- Context
- Decision Table: Single Output
- Hit Policy: UNIQUE
- Hit Policy: PRIORITY
- Hit Policy: COLLECT
- FEEL Arithmetic
- FEEL Conditionals
- Data Type: String
- Data Type: Number
- Data Type: Boolean
- Data Type: Structure
-
-
-
-
-
- 6000
-
-
- 2000
-
-
- 0
-
-
-
- 35
-
-
- true
-
-
- M
-
-
- EMPLOYED
-
-
-
-
- STANDARD LOAN
-
-
- 350000
-
-
- 0.0395
-
-
- 360
-
-
-
-
- 649
-
-
- false
-
-
-
- YES
-
-
-
- ACCEPT
-
-
-
-
- 130
-
-
-
-
- LOW
-
-
-
-
- MINI
-
-
-
-
- LOW
-
-
-
-
- 1680.880325608555
-
-
-
-
- true
-
-
-
-
- ELIGIBLE
-
-
-
-
- BUREAU
-
-
-
-
- true
-
-
-
-
- ACCEPT
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0005-literal-invocation/translator/standard/0005-literal-invocation-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0005-literal-invocation/translator/standard/0005-literal-invocation-test-01.xml
deleted file mode 100644
index b97cf8d91..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0005-literal-invocation/translator/standard/0005-literal-invocation-test-01.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
- 0005-literal-invocation.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Function Invocation
- Business Knowledge Model
- FEEL Arithmetic
- Data Type: Number
- Data Type: Structure
-
-
-
-
- 600000
-
-
- 0.0375
-
-
- 360
-
-
-
- 100
-
-
-
- 2878.69354943277
-
-
-
-
-
-
- 30000
-
-
- 0.0475
-
-
- 60
-
-
-
- 100
-
-
-
- 662.707359373292
-
-
-
-
-
-
- 600000
-
-
- 0.0399
-
-
- 360
-
-
-
- 100
-
-
-
- 2961.03377700389
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0006-join/translator/standard/0006-join-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0006-join/translator/standard/0006-join-test-01.xml
deleted file mode 100644
index d0ea2398d..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0006-join/translator/standard/0006-join-test-01.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
- 0006-join.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- FEEL Filter (10.3.2.5)
- FEEL List
- FEEL Relation
- Data Type: String
- Data Type: Number
- Data Type: Structure
- Data Type: Collection
-
-
-
-
- -
-
- 7792
-
-
- 10
-
-
- Clark
-
-
- -
-
- 7934
-
-
- 10
-
-
- Miller
-
-
- -
-
- 7976
-
-
- 20
-
-
- Adams
-
-
- -
-
- 7902
-
-
- 20
-
-
- Ford
-
-
- -
-
- 7900
-
-
- 30
-
-
- James
-
-
-
-
-
-
- -
-
- 10
-
-
- Sales
-
-
- Smith
-
-
- -
-
- 20
-
-
- Finance
-
-
- Jones
-
-
- -
-
- 30
-
-
- Engineering
-
-
- King
-
-
-
-
-
- Clark
-
-
-
- Smith
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0007-date-time/translator/standard/0007-date-time-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0007-date-time/translator/standard/0007-date-time-test-01.xml
deleted file mode 100644
index de129a020..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0007-date-time/translator/standard/0007-date-time-test-01.xml
+++ /dev/null
@@ -1,159 +0,0 @@
-
-
- 0007-date-time.dmn
-
- Compliance Level 3
- Literal Expression
- Context
- Item Definition
- FEEL Functions: date and time
- FEEL Arithmetic
- FEEL Special-character Names
- Data Type: String
- Data Type: Number
- Data Type: Structure
- Data Type: Date
- Data Type: Time
-
-
-
- 2015-12-24
-
-
- 00:00:01-01:00
-
-
- 2016-12-24T23:59:00-08:00
-
-
- 12
-
-
- 59
-
-
- 01.3
-
-
- -PT1H
-
-
- 1999
-
-
- 11
-
-
- 22
-
-
- PT1H
-
-
- P13DT2H14S
-
-
-
- 2016-12-24T23:59:00-08:00
-
-
-
-
-
- 2015-12-24
-
-
- 2016-12-24
-
-
- 1999-11-22
-
-
-
-
-
- 00:00:01-01:00
-
-
-
-
- 2015-12-24T00:00:01-01:00
-
-
-
-
- 00:00:01-01:00
-
-
-
-
- 12:59:01.3-01:00
-
-
-
-
- P13DT2H14S
-
-
-
-
- P367DT6H58M59S
-
-
-
-
- P380DT8H59M13S
-
-
-
-
- P1Y0M
-
-
-
-
- 24
-
-
-
-
- 2015
-
-
-
-
- 12
-
-
-
-
- 0
-
-
-
-
- 0
-
-
-
-
- 1
-
-
-
-
- -PT1H
-
-
-
-
- 1
-
-
-
-
- 14
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0008-listGen/translator/standard/0008-listGen-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0008-listGen/translator/standard/0008-listGen-test-01.xml
deleted file mode 100644
index d7c31103d..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0008-listGen/translator/standard/0008-listGen-test-01.xml
+++ /dev/null
@@ -1,293 +0,0 @@
-
-
- 0008-listGen.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Decision Table: Single Output
- Hit Policy: COLLECT
- FEEL List
- FEEL Functions: list
- Data Type: String
- Data Type: Collection
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- a
-
-
- b
-
-
- c
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- b
-
-
- c
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- c
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- a
-
-
- b
-
-
- c
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
-
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
-
- -
-
w
-
- -
-
x
-
-
-
-
-
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
- a
-
-
- b
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
- a
-
-
- b
-
-
-
- -
-
w
-
- -
-
x
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
- c
-
-
-
- -
-
w
-
- -
-
x
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0009-append-flatten/translator/standard/0009-append-flatten-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0009-append-flatten/translator/standard/0009-append-flatten-test-01.xml
deleted file mode 100644
index 05d241c56..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0009-append-flatten/translator/standard/0009-append-flatten-test-01.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-
-
- 0009-append-flatten.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- FEEL List
- FEEL Functions: lists
- FEEL Functions: list
- Data Type: String
- Data Type: Collection
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
- -
-
w
-
- -
-
x
-
-
-
- -
-
- -
-
y
-
-
-
- -
-
- -
-
z
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- -
-
- -
-
w
-
- -
-
x
-
-
-
- -
-
- -
-
y
-
-
-
- -
-
- -
-
z
-
-
-
-
-
-
-
-
-
- -
-
- -
-
w
-
- -
-
x
-
-
-
- -
-
- -
-
y
-
-
-
- -
-
- -
-
z
-
-
-
- -
-
- -
-
t
-
-
-
-
-
-
-
-
-
- -
-
- -
-
w
-
- -
-
x
-
-
-
- -
-
- -
-
y
-
-
-
- -
-
- -
-
z
-
-
-
- -
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
-
-
- -
-
- -
-
w
-
- -
-
x
-
-
-
- -
-
- -
-
y
-
-
-
- -
-
- -
-
z
-
-
-
- -
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
-
-
- -
-
- -
-
w
-
- -
-
x
-
-
-
- -
-
- -
-
y
-
-
-
- -
-
- -
-
z
-
-
-
- -
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
-
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
- -
-
t
-
-
-
-
-
-
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0010-concatenate/translator/standard/0010-concatenate-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0010-concatenate/translator/standard/0010-concatenate-test-01.xml
deleted file mode 100644
index 597cac9f7..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0010-concatenate/translator/standard/0010-concatenate-test-01.xml
+++ /dev/null
@@ -1,223 +0,0 @@
-
-
- 0010-concatenate.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- FEEL List
- FEEL Functions: lists
- FEEL Functions: list
- Data Type: String
- Data Type: Collection
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
- -
-
w
-
- -
-
x
-
-
-
- -
-
- -
-
y
-
-
-
- -
-
- -
-
z
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- -
-
- -
-
w
-
- -
-
x
-
-
-
- -
-
- -
-
y
-
-
-
- -
-
- -
-
z
-
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
- -
-
w
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
- -
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
- -
-
- -
-
w
-
- -
-
x
-
-
-
- -
-
- -
-
y
-
-
-
- -
-
- -
-
z
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0011-insert-remove/translator/standard/0011-insert-remove-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0011-insert-remove/translator/standard/0011-insert-remove-test-01.xml
deleted file mode 100644
index 494de2742..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0011-insert-remove/translator/standard/0011-insert-remove-test-01.xml
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
- 0011-insert-remove.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- FEEL List
- FEEL Functions: lists
- FEEL Functions: list
- Data Type: String
- Data Type: Number
- Data Type: Collection
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
- -
-
o
-
-
-
- -
-
- -
-
p
-
- -
-
q
-
-
-
-
-
-
- 2
-
-
-
-
- -
-
- -
-
a
-
- -
-
b
-
-
-
- -
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
c
-
-
-
-
-
-
-
- -
-
- -
-
o
-
-
-
- -
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
- -
-
- -
-
p
-
- -
-
q
-
-
-
-
-
-
-
-
-
- -
-
- -
-
a
-
- -
-
b
-
-
-
- -
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
- -
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
-
-
- -
-
- -
-
a
-
- -
-
b
-
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
x
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0012-list-functions/translator/standard/0012-list-functions-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0012-list-functions/translator/standard/0012-list-functions-test-01.xml
deleted file mode 100644
index 625c585d5..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0012-list-functions/translator/standard/0012-list-functions-test-01.xml
+++ /dev/null
@@ -1,637 +0,0 @@
-
-
- 0012-list-functions.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- FEEL List
- FEEL Functions: lists
- FEEL Functions: string
- FEEL Functions: list
- Data Type: String
- Data Type: Number
- Data Type: Boolean
- Data Type: Collection
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
- false
-
-
-
-
-
- OK
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
- false
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- 3
-
-
-
-
-
-
- -
-
6
-
- -
-
14
-
- -
-
-3
-
-
-
-
-
- -3
-
-
-
-
-
-
- -
-
6
-
- -
-
14
-
- -
-
-3
-
-
-
-
-
- 17
-
-
-
-
-
-
- -
-
6
-
- -
-
14
-
- -
-
-3
-
-
-
-
-
- 5.66666666666667
-
-
-
-
-
- 11
-
-
- 2
-
-
- 10
-
-
-
- 7.66666666666667
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
- -
-
c
-
-
-
-
-
-
-
- 11
-
-
- 2
-
-
- 10
-
-
-
- -
-
6
-
- -
-
14
-
- -
-
-3
-
-
-
-
-
-
- -
-
6
-
- -
-
14
-
- -
-
-3
-
- -
-
11
-
- -
-
2
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
- OK
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
x
-
- -
-
OK
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
x
-
- -
-
z
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
z
-
- -
-
y
-
- -
-
x
-
- -
-
c
-
- -
-
b
-
- -
-
a
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
- x
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
- -
-
x
-
-
-
-
-
-
-
- OK
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
-
-
-
-
- OK
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
x
-
- -
-
OK
-
- -
-
y
-
- -
-
z
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- OK
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
x
-
- -
-
OK
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0013-sort/translator/standard/0013-sort-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0013-sort/translator/standard/0013-sort-test-01.xml
deleted file mode 100644
index c8da94ae6..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0013-sort/translator/standard/0013-sort-test-01.xml
+++ /dev/null
@@ -1,192 +0,0 @@
-
-
- 0013-sort.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- FEEL List
- FEEL Functions: lists
- FEEL Function Literals
- Data Type: String
- Data Type: Number
- Data Type: Structure
- Data Type: Collection
-
-
-
-
- -
-
3
-
- -
-
1
-
- -
-
5
-
- -
-
4
-
-
-
-
-
- -
-
a
-
- -
-
8
-
- -
-
Aa
-
- -
-
A
-
- -
-
10
-
- -
-
9
-
-
-
-
-
- -
-
- 16
-
-
- 4
-
-
- 25
-
-
- 1
-
-
- -
-
- 16
-
-
- 43
-
-
- 2
-
-
- 10
-
-
- -
-
- 1
-
-
- 0
-
-
- 1
-
-
- 1
-
-
-
-
-
-
-
- -
-
5
-
- -
-
4
-
- -
-
3
-
- -
-
1
-
-
-
-
-
-
-
- -
-
- 1
-
-
- 0
-
-
- 1
-
-
- 1
-
-
- -
-
- 16
-
-
- 4
-
-
- 25
-
-
- 1
-
-
- -
-
- 16
-
-
- 43
-
-
- 2
-
-
- 10
-
-
-
-
-
-
-
-
- -
-
10
-
- -
-
8
-
- -
-
9
-
- -
-
A
-
- -
-
Aa
-
- -
-
a
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0014-loan-comparison/translator/standard/0014-loan-comparison-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0014-loan-comparison/translator/standard/0014-loan-comparison-test-01.xml
deleted file mode 100644
index 149b40c84..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0014-loan-comparison/translator/standard/0014-loan-comparison-test-01.xml
+++ /dev/null
@@ -1,1495 +0,0 @@
-
-
- 0014-loan-comparison.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Business Knowledge Model
- Context
- Relation
- FEEL Arithmetic
- FEEL Conditionals
- FEEL Function Literals
- FEEL Iteration
- Data Type: String
- Data Type: Number
- Data Type: Structure
- Data Type: Collection
-
-
-
- 330000
-
-
-
-
- -
-
- Oceans Capital
-
-
- .03500
-
-
- 0
-
-
- 0
-
-
- -
-
- eClick Lending
-
-
- .03200
-
-
- 1.1
-
-
- 2700
-
-
- -
-
- eClickLending
-
-
- .03375
-
-
- 0.1
-
-
- 1200
-
-
- -
-
- AimLoan
-
-
- .03000
-
-
- 1.1
-
-
- 3966
-
-
- -
-
- Home Loans Today
-
-
- .03125
-
-
- 1.1
-
-
- 285
-
-
- -
-
- Sebonic
-
-
- .03125
-
-
- 0.1
-
-
- 4028
-
-
- -
-
- AimLoan
-
-
- .03125
-
-
- 0.1
-
-
- 4317
-
-
- -
-
- eRates Mortgage
-
-
- .03125
-
-
- 1.1
-
-
- 2518
-
-
- -
-
- Home Loans Today
-
-
- .03250
-
-
- 0.1
-
-
- 822
-
-
- -
-
- AimLoan
-
-
- .03250
-
-
- 0
-
-
- 1995
-
-
-
-
-
-
-
-
-
- -
-
- Oceans Capital
-
-
- .03500
-
-
- 0
-
-
- 0
-
-
- 330000
-
-
- 66000
-
-
- 1481.847469769075
-
-
- 0.1229130806675829
-
-
- -
-
- eClick Lending
-
-
- .03200
-
-
- 1.1
-
-
- 2700
-
-
- 336330
-
-
- 67266
-
-
- 1454.51580776472
-
-
- 0.1137029731874643
-
-
- -
-
- eClickLending
-
-
- .03375
-
-
- 0.1
-
-
- 1200
-
-
- 331530
-
-
- 66306
-
-
- 1465.681565899816
-
-
- 0.1219807467513794
-
-
- -
-
- AimLoan
-
-
- .03000
-
-
- 1.1
-
-
- 3966
-
-
- 337596
-
-
- 67519.2
-
-
- 1423.318353709273
-
-
- 0.1154298007315222
-
-
- -
-
- Home Loans Today
-
-
- .03125
-
-
- 1.1
-
-
- 285
-
-
- 333915
-
-
- 66783
-
-
- 1430.409890005697
-
-
- 0.1219478687825963
-
-
- -
-
- Sebonic
-
-
- .03125
-
-
- 0.1
-
-
- 4028
-
-
- 334358
-
-
- 66871.6
-
-
- 1432.307593257341
-
-
- 0.1207829702481527
-
-
- -
-
- AimLoan
-
-
- .03125
-
-
- 0.1
-
-
- 4317
-
-
- 334647
-
-
- 66929.4
-
-
- 1433.545598313153
-
-
- 0.1200230251545745
-
-
- -
-
- eRates Mortgage
-
-
- .03125
-
-
- 1.1
-
-
- 2518
-
-
- 336148
-
-
- 67229.6
-
-
- 1439.975513845245
-
-
- 0.1160760438900096
-
-
- -
-
- Home Loans Today
-
-
- .03250
-
-
- 0.1
-
-
- 822
-
-
- 331152
-
-
- 66230.4
-
-
- 1441.194429734607
-
-
- 0.1261025270361139
-
-
- -
-
- AimLoan
-
-
- .03250
-
-
- 0
-
-
- 1995
-
-
- 331995
-
-
- 66399
-
-
- 1444.863219004387
-
-
- 0.1238778822515175
-
-
-
-
-
-
- -
-
- AimLoan
-
-
- .03000
-
-
- 1.1
-
-
- 3966
-
-
- 337596
-
-
- 67519.2
-
-
- 1423.318353709273
-
-
- 0.1154298007315222
-
-
- -
-
- Home Loans Today
-
-
- .03125
-
-
- 1.1
-
-
- 285
-
-
- 333915
-
-
- 66783
-
-
- 1430.409890005697
-
-
- 0.1219478687825963
-
-
- -
-
- Sebonic
-
-
- .03125
-
-
- 0.1
-
-
- 4028
-
-
- 334358
-
-
- 66871.6
-
-
- 1432.307593257341
-
-
- 0.1207829702481527
-
-
- -
-
- AimLoan
-
-
- .03125
-
-
- 0.1
-
-
- 4317
-
-
- 334647
-
-
- 66929.4
-
-
- 1433.545598313153
-
-
- 0.1200230251545745
-
-
- -
-
- eRates Mortgage
-
-
- .03125
-
-
- 1.1
-
-
- 2518
-
-
- 336148
-
-
- 67229.6
-
-
- 1439.975513845245
-
-
- 0.1160760438900096
-
-
- -
-
- eClick Lending
-
-
- .03200
-
-
- 1.1
-
-
- 2700
-
-
- 336330
-
-
- 67266
-
-
- 1454.51580776472
-
-
- 0.1137029731874643
-
-
- -
-
- Home Loans Today
-
-
- .03250
-
-
- 0.1
-
-
- 822
-
-
- 331152
-
-
- 66230.4
-
-
- 1441.194429734607
-
-
- 0.1261025270361139
-
-
- -
-
- AimLoan
-
-
- .03250
-
-
- 0
-
-
- 1995
-
-
- 331995
-
-
- 66399
-
-
- 1444.863219004387
-
-
- 0.1238778822515175
-
-
- -
-
- eClickLending
-
-
- .03375
-
-
- 0.1
-
-
- 1200
-
-
- 331530
-
-
- 66306
-
-
- 1465.681565899816
-
-
- 0.1219807467513794
-
-
- -
-
- Oceans Capital
-
-
- .03500
-
-
- 0
-
-
- 0
-
-
- 330000
-
-
- 66000
-
-
- 1481.847469769075
-
-
- 0.1229130806675829
-
-
-
-
-
-
- -
-
- Oceans Capital
-
-
- .03500
-
-
- 0
-
-
- 0
-
-
- 330000
-
-
- 66000
-
-
- 1481.847469769075
-
-
- 0.1229130806675829
-
-
- -
-
- Home Loans Today
-
-
- .03250
-
-
- 0.1
-
-
- 822
-
-
- 331152
-
-
- 66230.4
-
-
- 1441.194429734607
-
-
- 0.1261025270361139
-
-
- -
-
- eClickLending
-
-
- .03375
-
-
- 0.1
-
-
- 1200
-
-
- 331530
-
-
- 66306
-
-
- 1465.681565899816
-
-
- 0.1219807467513794
-
-
- -
-
- AimLoan
-
-
- .03250
-
-
- 0
-
-
- 1995
-
-
- 331995
-
-
- 66399
-
-
- 1444.863219004387
-
-
- 0.1238778822515175
-
-
- -
-
- Home Loans Today
-
-
- .03125
-
-
- 1.1
-
-
- 285
-
-
- 333915
-
-
- 66783
-
-
- 1430.409890005697
-
-
- 0.1219478687825963
-
-
- -
-
- Sebonic
-
-
- .03125
-
-
- 0.1
-
-
- 4028
-
-
- 334358
-
-
- 66871.6
-
-
- 1432.307593257341
-
-
- 0.1207829702481527
-
-
- -
-
- AimLoan
-
-
- .03125
-
-
- 0.1
-
-
- 4317
-
-
- 334647
-
-
- 66929.4
-
-
- 1433.545598313153
-
-
- 0.1200230251545745
-
-
- -
-
- eRates Mortgage
-
-
- .03125
-
-
- 1.1
-
-
- 2518
-
-
- 336148
-
-
- 67229.6
-
-
- 1439.975513845245
-
-
- 0.1160760438900096
-
-
- -
-
- eClick Lending
-
-
- .03200
-
-
- 1.1
-
-
- 2700
-
-
- 336330
-
-
- 67266
-
-
- 1454.51580776472
-
-
- 0.1137029731874643
-
-
- -
-
- AimLoan
-
-
- .03000
-
-
- 1.1
-
-
- 3966
-
-
- 337596
-
-
- 67519.2
-
-
- 1423.318353709273
-
-
- 0.1154298007315222
-
-
-
-
-
-
- -
-
- AimLoan
-
-
- .03000
-
-
- 1.1
-
-
- 3966
-
-
- 337596
-
-
- 67519.2
-
-
- 1423.318353709273
-
-
- 0.1154298007315222
-
-
- -
-
- Home Loans Today
-
-
- .03125
-
-
- 1.1
-
-
- 285
-
-
- 333915
-
-
- 66783
-
-
- 1430.409890005697
-
-
- 0.1219478687825963
-
-
- -
-
- Sebonic
-
-
- .03125
-
-
- 0.1
-
-
- 4028
-
-
- 334358
-
-
- 66871.6
-
-
- 1432.307593257341
-
-
- 0.1207829702481527
-
-
- -
-
- AimLoan
-
-
- .03125
-
-
- 0.1
-
-
- 4317
-
-
- 334647
-
-
- 66929.4
-
-
- 1433.545598313153
-
-
- 0.1200230251545745
-
-
- -
-
- eRates Mortgage
-
-
- .03125
-
-
- 1.1
-
-
- 2518
-
-
- 336148
-
-
- 67229.6
-
-
- 1439.975513845245
-
-
- 0.1160760438900096
-
-
- -
-
- Home Loans Today
-
-
- .03250
-
-
- 0.1
-
-
- 822
-
-
- 331152
-
-
- 66230.4
-
-
- 1441.194429734607
-
-
- 0.1261025270361139
-
-
- -
-
- AimLoan
-
-
- .03250
-
-
- 0
-
-
- 1995
-
-
- 331995
-
-
- 66399
-
-
- 1444.863219004387
-
-
- 0.1238778822515175
-
-
- -
-
- eClick Lending
-
-
- .03200
-
-
- 1.1
-
-
- 2700
-
-
- 336330
-
-
- 67266
-
-
- 1454.51580776472
-
-
- 0.1137029731874643
-
-
- -
-
- eClickLending
-
-
- .03375
-
-
- 0.1
-
-
- 1200
-
-
- 331530
-
-
- 66306
-
-
- 1465.681565899816
-
-
- 0.1219807467513794
-
-
- -
-
- Oceans Capital
-
-
- .03500
-
-
- 0
-
-
- 0
-
-
- 330000
-
-
- 66000
-
-
- 1481.847469769075
-
-
- 0.1229130806675829
-
-
-
-
-
-
- -
-
- Home Loans Today
-
-
- .03250
-
-
- 0.1
-
-
- 822
-
-
- 331152
-
-
- 66230.4
-
-
- 1441.194429734607
-
-
- 0.1261025270361139
-
-
- -
-
- AimLoan
-
-
- .03250
-
-
- 0
-
-
- 1995
-
-
- 331995
-
-
- 66399
-
-
- 1444.863219004387
-
-
- 0.1238778822515175
-
-
- -
-
- Oceans Capital
-
-
- .03500
-
-
- 0
-
-
- 0
-
-
- 330000
-
-
- 66000
-
-
- 1481.847469769075
-
-
- 0.1229130806675829
-
-
- -
-
- eClickLending
-
-
- .03375
-
-
- 0.1
-
-
- 1200
-
-
- 331530
-
-
- 66306
-
-
- 1465.681565899816
-
-
- 0.1219807467513794
-
-
- -
-
- Home Loans Today
-
-
- .03125
-
-
- 1.1
-
-
- 285
-
-
- 333915
-
-
- 66783
-
-
- 1430.409890005697
-
-
- 0.1219478687825963
-
-
- -
-
- Sebonic
-
-
- .03125
-
-
- 0.1
-
-
- 4028
-
-
- 334358
-
-
- 66871.6
-
-
- 1432.307593257341
-
-
- 0.1207829702481527
-
-
- -
-
- AimLoan
-
-
- .03125
-
-
- 0.1
-
-
- 4317
-
-
- 334647
-
-
- 66929.4
-
-
- 1433.545598313153
-
-
- 0.1200230251545745
-
-
- -
-
- eRates Mortgage
-
-
- .03125
-
-
- 1.1
-
-
- 2518
-
-
- 336148
-
-
- 67229.6
-
-
- 1439.975513845245
-
-
- 0.1160760438900096
-
-
- -
-
- AimLoan
-
-
- .03000
-
-
- 1.1
-
-
- 3966
-
-
- 337596
-
-
- 67519.2
-
-
- 1423.318353709273
-
-
- 0.1154298007315222
-
-
- -
-
- eClick Lending
-
-
- .03200
-
-
- 1.1
-
-
- 2700
-
-
- 336330
-
-
- 67266
-
-
- 1454.51580776472
-
-
- 0.1137029731874643
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0016-some-every/translator/standard/0016-some-every-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0016-some-every/translator/standard/0016-some-every-test-01.xml
deleted file mode 100644
index c2e10ae65..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0016-some-every/translator/standard/0016-some-every-test-01.xml
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
- 0016-some-every.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Relation
- FEEL Quantifiers
- Business Knowledge Model
- Data Type: String
- Data Type: Number
- Data Type: Boolean
- Data Type: Structure
- Data Type: Collection
-
-
-
-
- -
-
- widget
-
-
- 25
-
-
- -
-
- sprocket
-
-
- 15
-
-
- -
-
- trinket
-
-
- 1.5
-
-
-
-
-
-
-
- -
-
- widget
-
-
- 25
-
-
- -
-
- sprocket
-
-
- 15
-
-
- -
-
- trinket
-
-
- 1.5
-
-
-
-
-
-
-
- false
-
-
-
-
- false
-
-
-
-
- true
-
-
-
-
- true
-
-
-
-
- false
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0017-tableTests/translator/standard/0017-tableTests-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0017-tableTests/translator/standard/0017-tableTests-test-01.xml
deleted file mode 100644
index 0a7e38771..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0017-tableTests/translator/standard/0017-tableTests-test-01.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
- 0017-tableTests.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Decision Table: Single Output
- Hit Policy: UNIQUE
- Hit Policy: PRIORITY
- FEEL Arithmetic
- FEEL Functions: date and time
- Data Type: String
- Data Type: Number
- Data Type: Boolean
- Data Type: Structure
- Data Type: Collection
- Data Type: Date
-
-
-
-
- widget
-
-
- 20
-
-
-
-
- true
-
-
-
-
-
-
- widget
-
-
- 20
-
-
-
- 9
-
-
- 10
-
-
-
- Not in range
-
-
-
-
-
- 2016-11-01
-
-
-
- true
-
-
-
-
-
- 2016-11-01
-
-
- 2016-11-02
-
-
-
- false
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0020-vacation-days/translator/standard/0020-vacation-days-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0020-vacation-days/translator/standard/0020-vacation-days-test-01.xml
deleted file mode 100644
index 9be910605..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0020-vacation-days/translator/standard/0020-vacation-days-test-01.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
- 0020-vacation-days.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Decision Table: Single Output
- Hit Policy: COLLECT
- FEEL Arithmetic
- FEEL Functions: list
- FEEL Special-character Names
- Data Type: Number
-
-
-
- 16
-
-
- 1
-
-
-
- 27
-
-
-
-
-
- 25
-
-
- 5
-
-
-
- 22
-
-
-
-
-
- 25
-
-
- 20
-
-
-
- 24
-
-
-
-
-
- 44
-
-
- 30
-
-
-
- 30
-
-
-
-
-
- 50
-
-
- 20
-
-
-
- 24
-
-
-
-
-
- 50
-
-
- 30
-
-
-
- 30
-
-
-
-
-
- 60
-
-
- 20
-
-
-
- 30
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0021-singleton-list/translator/standard/0021-singleton-list-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0021-singleton-list/translator/standard/0021-singleton-list-test-01.xml
deleted file mode 100644
index 7695c4b42..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0021-singleton-list/translator/standard/0021-singleton-list-test-01.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
- 0021-singleton-list.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- FEEL Filter (10.3.2.5)
- Data Type: String
- Data Type: Collection
-
-
- The purpose of this test is to check that the engine is properly coercing singleton lists into single elements (i.e., [a]=a)
-
-
- -
-
Jack
-
- -
-
John
-
- -
-
Bob
-
- -
-
Zack
-
-
-
-
-
-
- -
-
John
-
-
-
-
-
-
- John
-
-
-
-
-
- -
-
Bob
-
-
-
-
-
-
- Bob
-
-
-
-
- BOB
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0030-static-user-defined-functions/translator/standard/0030-user-defined-functions-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0030-static-user-defined-functions/translator/standard/0030-user-defined-functions-test-01.xml
deleted file mode 100644
index 85966e0b5..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0030-static-user-defined-functions/translator/standard/0030-user-defined-functions-test-01.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- 0030-user-defined-functions.dmn
-
- Compliance Level 3
- Literal Expression
- Function Invocation
- FEEL Function Literals
- Function Definition
- Context
-
-
- Tests simple user defined function definition and
- invocation
-
-
- feel
-
-
- #
-
-
-
- feel#feel#
-
-
-
-
- #feel#feel
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0030-user-defined-functions/translator/standard/0030-user-defined-functions-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0030-user-defined-functions/translator/standard/0030-user-defined-functions-test-01.xml
deleted file mode 100644
index 85966e0b5..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0030-user-defined-functions/translator/standard/0030-user-defined-functions-test-01.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- 0030-user-defined-functions.dmn
-
- Compliance Level 3
- Literal Expression
- Function Invocation
- FEEL Function Literals
- Function Definition
- Context
-
-
- Tests simple user defined function definition and
- invocation
-
-
- feel
-
-
- #
-
-
-
- feel#feel#
-
-
-
-
- #feel#feel
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0031-static-user-defined-functions/translator/standard/0030-user-defined-functions-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0031-static-user-defined-functions/translator/standard/0030-user-defined-functions-test-01.xml
deleted file mode 100644
index 85966e0b5..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0031-static-user-defined-functions/translator/standard/0030-user-defined-functions-test-01.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- 0030-user-defined-functions.dmn
-
- Compliance Level 3
- Literal Expression
- Function Invocation
- FEEL Function Literals
- Function Definition
- Context
-
-
- Tests simple user defined function definition and
- invocation
-
-
- feel
-
-
- #
-
-
-
- feel#feel#
-
-
-
-
- #feel#feel
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0031-user-defined-functions/translator/standard/0031-user-defined-functions-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0031-user-defined-functions/translator/standard/0031-user-defined-functions-test-01.xml
deleted file mode 100644
index 9d0ff3627..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0031-user-defined-functions/translator/standard/0031-user-defined-functions-test-01.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
- 0031-user-defined-functions.dmn
-
- Compliance Level 3
- Literal Expression
- FEEL Arithmetic
- Function Invocation
- Function Definition
- FEEL Function Literals
- Data Type: Number
- Context
- FEEL Special-character Names
-
-
- Tests user defined function invocation with positional
- parameters
-
-
- 10
-
-
- 5
-
-
-
-
- 15
-
-
- 2
-
-
- 50
-
-
-
-
-
- Tests user defined function invocation with named
- parameters
-
-
- 10
-
-
- 5
-
-
-
-
- 5
-
-
- -5
-
-
- 2
-
-
- 50
-
-
-
-
-
- Tests user defined function invocation with complex
- parameters
-
-
- 10
-
-
- 5
-
-
-
-
- 500
-
-
- 200
-
-
- 94.247760
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0032-conditionals/translator/standard/0032-conditionals-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0032-conditionals/translator/standard/0032-conditionals-test-01.xml
deleted file mode 100644
index 350a57cec..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0032-conditionals/translator/standard/0032-conditionals-test-01.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
- 0032-conditionals.dmn
-
- Compliance Level 3
- Literal Expression
- FEEL Arithmetic
- FEEL Conditionals
- Data Type: Number
- Data Type: Boolean
- Data Type: String
- Data Type: Date
-
-
- Tests simple 'if' condition for true
-
- true
-
-
- 100
-
-
-
- 110
-
-
-
-
- Tests simple 'if' condition for false
-
- false
-
-
- 100
-
-
-
- 90
-
-
-
-
- Tests simple 'if' condition for null
-
-
-
-
- 100
-
-
-
- 90
-
-
-
-
- Tests 'if' condition with function calls for true
-
- 2017-01-02
-
-
- Hello World
-
-
-
- Hello
-
-
-
-
- Tests 'if' condition with function calls for false
-
- 2017-01-01
-
-
- Hello World
-
-
-
- World
-
-
-
-
- Tests 'if' condition with function calls for null
-
-
-
-
- Hello World
-
-
-
- World
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0033-for-loops/translator/standard/0033-for-loops-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0033-for-loops/translator/standard/0033-for-loops-test-01.xml
deleted file mode 100644
index a30809090..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0033-for-loops/translator/standard/0033-for-loops-test-01.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
- 0033-for-loops.dmn
-
- Compliance Level 3
- Literal Expression
- Business Knowledge Model
- FEEL Arithmetic
- FEEL Iteration
- FEEL Functions: numeric
- FEEL List Operator
- FEEL Special-character Names
- Literal Function Invocation
- Item Definition
- Data Type: Number
- Data Type: Boolean
- Data Type: Collection
-
-
- Tests single variable iteration
-
-
- -
-
10
-
- -
-
20
-
- -
-
30
-
-
-
-
-
-
- -
-
11
-
- -
-
21
-
- -
-
31
-
-
-
-
-
-
- Tests multi variable iteration
-
-
- -
-
10
-
- -
-
20
-
- -
-
30
-
-
-
-
-
- -
-
2
-
- -
-
3
-
-
-
-
-
-
- -
-
20
-
- -
-
30
-
- -
-
40
-
- -
-
60
-
- -
-
60
-
- -
-
90
-
-
-
-
-
-
- Tests single variable iteration with BKM call
-
- 35
-
-
-
- -
-
2
-
- -
-
3
-
- -
-
5
-
- -
-
7
-
- -
-
11
-
-
-
-
-
-
- -
-
false
-
- -
-
false
-
- -
-
true
-
- -
-
true
-
- -
-
false
-
-
-
-
-
-
- Tests single variable iteration with inline list
-
- 10
-
-
-
-
- -
-
20
-
- -
-
30
-
- -
-
40
-
- -
-
50
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0034-drg-scopes/translator/standard/0034-drg-scopes-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0034-drg-scopes/translator/standard/0034-drg-scopes-test-01.xml
deleted file mode 100644
index e4235649f..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0034-drg-scopes/translator/standard/0034-drg-scopes-test-01.xml
+++ /dev/null
@@ -1,223 +0,0 @@
-
-
- 0034-drg-scopes.dmn
-
- Compliance Level 3
- Business Knowledge Model
- Literal Expression
- Literal Function Invocation
- Function Definition
- Function Invocation
- FEEL Function Literals
- Context
- Data Type: String
-
-
- Tests information requirements of decisions and knowledge requirements of business knowledge models
-
-
- A
-
-
- B
-
-
- C
-
-
-
-
- A
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
-
- BKM I # BKM II # BKM III # decision C 2 # BKM IV # BKM III # decision C 2
-
-
-
-
- BKM II # BKM III # decision C 3 # BKM IV # BKM III # decision C 3
-
-
-
-
-
- BKM II # BKM III # decision C 3 # BKM IV # BKM III # decision C 3
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0035-test-structure-output/translator/standard/0035-test-structure-output-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0035-test-structure-output/translator/standard/0035-test-structure-output-test-01.xml
deleted file mode 100644
index 3e3b5bfc8..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0035-test-structure-output/translator/standard/0035-test-structure-output-test-01.xml
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
- 0035-test-structure-output.dmn
-
- Compliance Level 3
- Business Knowledge Model
- Context
- Decision Table: Single Output
- FEEL Arithmetic
- FEEL Conditionals
- FEEL Functions: strings
- FEEL Functions: numeric
- Literal Function Invocation
- Hit Policy: UNIQUE
- Item Definition
- Literal Expression
- Data Type: String
- Data Type: Number
- Data Type: Structure
-
-
-
- 0
-
-
- 65
-
-
- 83
-
-
-
-
-
- 0
-
-
- 65
-
-
- 83
-
-
-
- #004153
-
-
-
- 100
-
-
- 22
-
-
- 0
-
-
- 67
-
-
-
-
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
- #000000
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 100
-
-
-
-
-
-
-
- 204
-
-
- 0
-
-
- 0
-
-
-
-
-
- 204
-
-
- 0
-
-
- 0
-
-
-
- #CC0000
-
-
-
- 0
-
-
- 100
-
-
- 100
-
-
- 20
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0036-dt-variable-input/translator/standard/0036-dt-variable-input-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0036-dt-variable-input/translator/standard/0036-dt-variable-input-test-01.xml
deleted file mode 100644
index 9be903ae6..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0036-dt-variable-input/translator/standard/0036-dt-variable-input-test-01.xml
+++ /dev/null
@@ -1,303 +0,0 @@
-
-
- 0036-dt-variable-input.dmn
-
- Compliance Level 3
- Decision Table: Single Output
- FEEL Special-character Names
- Hit Policy: UNIQUE
- Item Definition
- Literal Expression
- Data Type: String
- Data Type: Number
- Data Type: Structure
- Data Type: Boolean
- Data Type: Date
- Data Type: Time
- Data Type: Date and Time
- Data Type: Days and Time Duration
- Data Type: Years and Months Duration
-
-
- Test different, higher values
-
-
- true
-
-
- 10
-
-
- "Hi"
-
-
- 2018-07-30
-
-
- 16:11:00
-
-
- 2018-07-30T16:12:00Z
-
-
- PT10H
-
-
- P5M
-
-
-
- false
-
-
- "Hello"
-
-
- 15
-
-
- 2018-07-31
-
-
- 17:13:00
-
-
- 2018-07-31T17:13:00Z
-
-
- PT12H
-
-
- P8M
-
-
-
- Different String
-
-
-
-
- Future Date
-
-
-
-
- Bigger
-
-
-
-
- Future date time
-
-
-
-
- Longer duration
-
-
-
-
- Longer duration
-
-
-
-
- Future Time
-
-
-
-
- Not same boolean
-
-
-
-
- Test different, lower values
-
-
- true
-
-
- 10
-
-
- "Hi"
-
-
- 2018-07-30
-
-
- 16:11:00
-
-
- 2018-07-30T16:12:00Z
-
-
- PT10H
-
-
- P5M
-
-
-
- false
-
-
- "Hello"
-
-
- 5
-
-
- 2018-07-29
-
-
- 15:13:00
-
-
- 2018-07-29T15:13:00Z
-
-
- PT8H
-
-
- P3M
-
-
-
- Different String
-
-
-
-
- Past Date
-
-
-
-
- Smaller
-
-
-
-
- Past date time
-
-
-
-
- Shorter duration
-
-
-
-
- Shorter duration
-
-
-
-
- Past Time
-
-
-
-
- Not same boolean
-
-
-
-
- Same values
-
-
- true
-
-
- 10
-
-
- "Hi"
-
-
- 2018-07-30
-
-
- 16:11:00
-
-
- 2018-07-30T16:12:00Z
-
-
- PT10H
-
-
- P5M
-
-
-
- true
-
-
- "Hi"
-
-
- 10
-
-
- 2018-07-30
-
-
- 16:11:00
-
-
- 2018-07-30T16:12:00Z
-
-
- PT10H
-
-
- P5M
-
-
-
- Same String
-
-
-
-
- Same Date
-
-
-
-
- Equals
-
-
-
-
- Same date time
-
-
-
-
- Same duration
-
-
-
-
- Same duration
-
-
-
-
- Same Time
-
-
-
-
- Same boolean
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0037-dt-on-bkm-implicit-params/translator/standard/0037-dt-on-bkm-implicit-params-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0037-dt-on-bkm-implicit-params/translator/standard/0037-dt-on-bkm-implicit-params-test-01.xml
deleted file mode 100644
index a4b4bc656..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0037-dt-on-bkm-implicit-params/translator/standard/0037-dt-on-bkm-implicit-params-test-01.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
- 0037-dt-on-bkm-implicit-params.dmn
-
- Compliance Level 3
- Decision Table: Single Output
- FEEL Special-character Names
- Hit Policy: UNIQUE
- Item Definition
- Literal Expression
- Data Type: String
- Data Type: Number
- Data Type: Structure
- FEEL Functions: strings
- Business Knowledge Model
-
-
- Male
-
-
- Bob
-
-
- Male
-
-
- 3
-
-
-
-
- Bob is a dad of 3 children.
-
-
-
-
- Female
-
-
- Alice
-
-
- Female
-
-
- 2
-
-
-
-
- Alice is a mother of 2 children.
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0038-dt-on-bkm-explicit-params/translator/standard/0038-dt-on-bkm-explicit-params-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0038-dt-on-bkm-explicit-params/translator/standard/0038-dt-on-bkm-explicit-params-test-01.xml
deleted file mode 100644
index 4dd7a2e21..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0038-dt-on-bkm-explicit-params/translator/standard/0038-dt-on-bkm-explicit-params-test-01.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
- 0038-dt-on-bkm-explicit-params.dmn
-
- Compliance Level 3
- Decision Table: Single Output
- Context
- FEEL Special-character Names
- Hit Policy: UNIQUE
- Item Definition
- Literal Expression
- Data Type: String
- Data Type: Number
- Data Type: Structure
- FEEL Functions: strings
- Business Knowledge Model
-
-
- Test Female
-
-
- Alice
-
-
- Female
-
-
- 2
-
-
-
-
- Alice is a mother of 2 children.
-
-
-
-
- Test Male
-
-
- Bob
-
-
- Male
-
-
- 3
-
-
-
-
- Bob is a dad of 3 children.
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0039-dt-list-semantics/translator/standard/0039-dt-list-semantics-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0039-dt-list-semantics/translator/standard/0039-dt-list-semantics-test-01.xml
deleted file mode 100644
index 3eba7959f..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0039-dt-list-semantics/translator/standard/0039-dt-list-semantics-test-01.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
- 0039-dt-list-semantics.dmn
-
- Compliance Level 3
- Decision Table: Single Output
- FEEL Special-character Names
- Hit Policy: COLLECT
- Item Definition
- Literal Expression
- Data Type: String
- FEEL List Operator
-
-
- select 1 and 2
-
-
-
- fever
-
-
- cough
-
-
- sore throat
-
-
- runny nose
-
-
-
-
- cough
-
-
-
-
-
- cough is in the list of Cold symptoms
-
-
- cough is in the list of Flu symptoms
-
-
-
-
-
-
- select 2
-
-
-
- fever
-
-
- cough
-
-
- sore throat
-
-
- runny nose
-
-
-
-
- fever
-
-
-
-
-
- fever is in the list of Flu symptoms
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0040-singlenestedcontext/translator/standard/0040-singlenestedcontext-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0040-singlenestedcontext/translator/standard/0040-singlenestedcontext-test-01.xml
deleted file mode 100644
index ff3851a98..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0040-singlenestedcontext/translator/standard/0040-singlenestedcontext-test-01.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
- 0040-singlenestedcontext.dmn
-
- Compliance Level 3
- Literal Expression
- Data Type: Number
-
-
-
- 600000
-
-
- 360
-
-
-
- 2878.6935494327668
-
-
-
-
-
- 30000
-
-
- 60
-
-
-
- 649.1175498364003
-
-
-
-
-
- 600000
-
-
- 365
-
-
-
- 2858.1160998965915
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/0041-multiple-nestedcontext/translator/standard/0041-multiple-nestedcontext-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/0041-multiple-nestedcontext/translator/standard/0041-multiple-nestedcontext-test-01.xml
deleted file mode 100644
index ab0feb93d..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/0041-multiple-nestedcontext/translator/standard/0041-multiple-nestedcontext-test-01.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
- 0041-multiple-nestedcontext.dmn
-
- Compliance Level 3
- Literal Expression
- Data Type: Number
-
-
-
- 600000
-
-
- 360
-
-
-
- 2778.6935494327668
-
-
-
-
-
- 30000
-
-
- 60
-
-
-
- 549.1175498364003
-
-
-
-
-
- 600000
-
-
- 365
-
-
-
- 2758.1160998965915
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1100-feel-decimal-function/translator/standard/1100-feel-decimal-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1100-feel-decimal-function/translator/standard/1100-feel-decimal-function-test-01.xml
deleted file mode 100644
index bc66dd76a..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1100-feel-decimal-function/translator/standard/1100-feel-decimal-function-test-01.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
- 1100-feel-decimal-function.dmn
-
- Compliance Level 3
- Data Type: Number
- FEEL Functions: number
- FEEL Arithmetic
-
-
-
-
- 0.33
-
-
-
-
-
-
- 0.33
-
-
-
-
-
-
- 2
-
-
-
-
-
-
- 2
-
-
-
-
-
-
- 0
-
-
-
-
-
-
- 0.0
-
-
-
-
-
-
- 0.52
-
-
-
-
-
-
- 65.123456
-
-
-
-
-
-
- 2.143
-
-
-
-
-
-
- 0.385
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1101-feel-floor-function/translator/standard/1101-feel-floor-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1101-feel-floor-function/translator/standard/1101-feel-floor-function-test-01.xml
deleted file mode 100644
index 75eede82b..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1101-feel-floor-function/translator/standard/1101-feel-floor-function-test-01.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
- 1101-feel-floor-function.dmn
-
- Compliance Level 3
- Data Type: Number
- Data Type: Function
- FEEL Functions: number
- FEEL Arithmetic
-
-
-
-
- 1
-
-
-
-
-
-
- -2
-
-
-
-
-
-
- 1
-
-
-
-
-
-
- -11
-
-
-
-
-
-
- 5
-
-
-
-
-
-
- -1
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1102-feel-ceiling-function/translator/standard/1102-feel-ceiling-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1102-feel-ceiling-function/translator/standard/1102-feel-ceiling-function-test-01.xml
deleted file mode 100644
index 6ce09a1a8..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1102-feel-ceiling-function/translator/standard/1102-feel-ceiling-function-test-01.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
- 1102-feel-ceiling-function.dmn
-
- Compliance Level 3
- Data Type: Number
- FEEL Functions: number
- FEEL Arithmetic
-
-
-
-
- 2
-
-
-
-
-
-
- -1
-
-
-
-
-
-
- 1
-
-
-
-
-
-
- -10
-
-
-
-
-
-
- 6
-
-
-
-
-
-
- 0
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1103-feel-substring-function/translator/standard/1103-feel-substring-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1103-feel-substring-function/translator/standard/1103-feel-substring-function-test-01.xml
deleted file mode 100644
index abf525c25..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1103-feel-substring-function/translator/standard/1103-feel-substring-function-test-01.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
- 1103-feel-substring-function.dmn
-
- Compliance Level 3
- Data Type: String
- Literal Expression
- FEEL Functions: strings
-
-
-
-
- f
-
-
-
-
-
-
- f
-
-
-
-
-
-
- r
-
-
-
-
-
-
- foobar
-
-
-
-
-
-
- obar
-
-
-
-
-
-
- oba
-
-
-
-
-
-
- a
-
-
-
-
-
-
-
-
-
-
-
-
-
- foobar
-
-
-
-
-
-
- oba
-
-
-
-
-
-
- obar
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1104-feel-string-length-function/translator/standard/1104-feel-string-length-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1104-feel-string-length-function/translator/standard/1104-feel-string-length-function-test-01.xml
deleted file mode 100644
index 59ad04bd7..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1104-feel-string-length-function/translator/standard/1104-feel-string-length-function-test-01.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
- 1104-feel-string-length-function.dmn
-
- Compliance Level 3
- Data Type : String
- Literal Expression
- FEEL Functions: strings
-
-
-
-
- 0
-
-
-
-
-
-
- 1
-
-
-
-
-
-
- 3
-
-
-
-
-
-
- 6
-
-
-
-
-
-
- 10
-
-
-
-
-
-
- 11
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1105-feel-upper-case-function/translator/standard/1105-feel-upper-case-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1105-feel-upper-case-function/translator/standard/1105-feel-upper-case-function-test-01.xml
deleted file mode 100644
index c9a907843..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1105-feel-upper-case-function/translator/standard/1105-feel-upper-case-function-test-01.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
- 1105-feel-upper-case-function.dmn
-
- Compliance Level 3
- Data Type: String
- Literal Expression
- FEEL Functions: strings
-
-
-
-
- A
-
-
-
-
-
-
- ABC
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
- ?@{
-
-
-
-
-
-
- ABDCF
-
-
-
-
-
-
- XYZ
-
-
-
-
-
-
- 123ABC
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1106-feel-lower-case-function/translator/standard/1106-feel-lower-case-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1106-feel-lower-case-function/translator/standard/1106-feel-lower-case-function-test-01.xml
deleted file mode 100644
index 61a046642..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1106-feel-lower-case-function/translator/standard/1106-feel-lower-case-function-test-01.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
- 1106-feel-lower-case-function.dmn
-
- Compliance Level 3
- Data Type: String
- Literal Expression
- FEEL Functions: strings
-
-
-
-
- a
-
-
-
-
-
-
- abc
-
-
-
-
-
-
- abc
-
-
-
-
-
-
- abc4
-
-
-
-
-
-
-
-
-
-
-
-
-
- ?@{
-
-
-
-
-
-
- abdcf
-
-
-
-
-
-
- xyz
-
-
-
-
-
-
- 123abc
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1107-feel-substring-before-function/translator/standard/1107-feel-substring-before-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1107-feel-substring-before-function/translator/standard/1107-feel-substring-before-function-test-01.xml
deleted file mode 100644
index 20c1e8ac0..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1107-feel-substring-before-function/translator/standard/1107-feel-substring-before-function-test-01.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
- 1107-feel-substring-before-function.dmn
-
- Compliance Level 3
- Data Type: String
- Literal Expression
- FEEL Functions: strings
-
-
-
-
- foo
-
-
-
-
-
-
- f
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ab
-
-
-
-
-
-
- foo
-
-
-
-
-
-
- foo
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1108-feel-substring-after-function/translator/standard/1108-feel-substring-after-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1108-feel-substring-after-function/translator/standard/1108-feel-substring-after-function-test-01.xml
deleted file mode 100644
index 497f14659..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1108-feel-substring-after-function/translator/standard/1108-feel-substring-after-function-test-01.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
- 1108-feel-substring-after-function.dmn
-
- Compliance Level 3
- Data Type: String
- Literal Expression
- FEEL Functions: strings
-
-
-
-
- ar
-
-
-
-
-
-
- obar
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- abc
-
-
-
-
-
-
-
-
-
-
-
-
-
- bc
-
-
-
-
-
-
- ar
-
-
-
-
-
-
- ar
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1109-feel-replace-function/translator/standard/1109-feel-replace-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1109-feel-replace-function/translator/standard/1109-feel-replace-function-test-01.xml
deleted file mode 100644
index 1fe2f1d5e..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1109-feel-replace-function/translator/standard/1109-feel-replace-function-test-01.xml
+++ /dev/null
@@ -1,207 +0,0 @@
-
-
-
- 1109-feel-replace-function.dmn
-
- Compliance Level 3
- Data Type: String
- Literal Expression
- FEEL Functions: strings
-
-
-
-
- [1=ab][2=]cd
-
-
-
-
-
-
- a
-
-
-
-
-
-
- #
-
-
-
-
-
-
- abc
-
-
-
-
-
-
- abc
-
-
-
-
-
-
- #ar
-
-
-
-
-
-
- abc
-
-
-
-
-
-
- a*cada*
-
-
-
-
-
-
- *
-
-
-
-
-
-
- *c*bra
-
-
-
-
-
-
- brcdbr
-
-
-
-
-
-
- abbraccaddabbra
-
-
-
-
-
-
- b
-
-
-
-
-
-
- bbbb
-
-
-
-
-
-
- carted
-
-
-
-
-
-
- Xant
-
-
-
-
-
-
- (012) 345-6789
-
-
-
-
-
-
- facet[i][o][u]sl[y]
-
-
-
-
-
-
- ###
-
-
-
-
-
-
- #.#.#.
-
-
-
-
-
-
- ###
-
-
-
-
-
-
- ###
-
-
-
-
-
-
- # # # #
-
-
-
-
-
-
- abc
-
-
-
-
-
-
- ###
-
-
-
-
-
-
- abc
-
-
-
-
-
-
- ###
-
-
-
-
-
-
- abc
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1110-feel-contains-function/translator/standard/1110-feel-contains-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1110-feel-contains-function/translator/standard/1110-feel-contains-function-test-01.xml
deleted file mode 100644
index 6c6621efb..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1110-feel-contains-function/translator/standard/1110-feel-contains-function-test-01.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
- 1110-feel-contains-function.dmn
-
- Compliance Level 3
- Data Type: String
- Literal Expression
- FEEL Functions: strings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
- true
-
-
-
-
-
-
- true
-
-
-
-
-
-
- false
-
-
-
-
-
-
- true
-
-
-
-
-
-
- true
-
-
-
-
-
-
- true
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1115-feel-date-function/translator/standard/1115-feel-date-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1115-feel-date-function/translator/standard/1115-feel-date-function-test-01.xml
deleted file mode 100644
index 20914194d..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1115-feel-date-function/translator/standard/1115-feel-date-function-test-01.xml
+++ /dev/null
@@ -1,375 +0,0 @@
-
-
-
- 1115-feel-date-function.dmn
-
- Compliance Level 3
- Literal Expression
- FEEL Functions: date and time
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2017-12-31
-
-
-
-
-
-
- 2017-01-01
-
-
-
-
-
-
- -2017-12-31
-
-
-
-
-
-
- -2017-01-01
-
-
-
-
-
-
- 999999999-12-31
-
-
-
-
-
-
- -999999999-12-31
-
-
-
-
-
-
- 2017-08-14
-
-
-
-
-
-
- 2017-08-14
-
-
-
-
-
-
- 2017-08-14
-
-
-
-
-
-
- 2017-09-03
-
-
-
-
-
-
- 2017-09-06
-
-
-
-
-
-
- 2012-12-25
-
-
-
-
-
-
- 2017-08-03
-
-
-
-
-
-
- 2017-10-11
-
-
-
-
-
-
- 2017-12-31
-
-
-
-
-
-
- 2017-01-01
-
-
-
-
-
-
- -2017-12-31
-
-
-
-
-
-
- -2017-01-01
-
-
-
-
-
-
- 999999999-12-31
-
-
-
-
-
-
- -999999999-12-31
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2012-12-25
-
-
-
-
-
-
- 2017-08-30
-
-
-
-
-
-
- 2017-08-30
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1116-feel-time-function/translator/standard/1116-feel-time-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1116-feel-time-function/translator/standard/1116-feel-time-function-test-01.xml
deleted file mode 100644
index d26350b02..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1116-feel-time-function/translator/standard/1116-feel-time-function-test-01.xml
+++ /dev/null
@@ -1,599 +0,0 @@
-
-
-
- 1116-feel-time-function.dmn
-
- Compliance Level 3
- Literal Expression
- FEEL Functions: date and time
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 12:00:00
-
-
-
-
-
-
-
- 01:02:03
-
-
-
-
-
-
- 00:00:00
-
-
-
-
-
-
- 11:22:33.444
-
-
-
-
-
-
- 11:22:33.123456789
-
-
-
-
-
-
- 23:59:00Z
-
-
-
-
-
-
- 11:00:00Z
-
-
-
-
-
-
- 00:00:00Z
-
-
-
-
-
-
- 13:20:00+02:00
-
-
-
-
-
-
- 13:20:00-05:00
-
-
-
-
-
-
- 11:22:33Z
-
-
-
-
-
-
- 11:22:33Z
-
-
-
-
-
-
- 00:01:00@Etc/UTC
-
-
-
-
-
-
- 00:01:00@Europe/Paris
-
-
-
-
-
-
- 10:20:00
-
-
-
-
-
-
- 10:20:00Z
-
-
-
-
-
-
- 10:20:00Z
-
-
-
-
-
-
- 10:20:00+01:00
-
-
-
-
-
-
- 10:20:00-01:00
-
-
-
-
-
-
- 10:20:00Z
-
-
-
-
-
-
- 10:20:00@Europe/Paris
-
-
-
-
-
-
- 11:20:00@Asia/Dhaka
-
-
-
-
-
-
- 11:59:45
-
-
-
-
-
-
- 11:59:45Z
-
-
-
-
-
-
- 11:59:45+02:00
-
-
-
-
-
-
- 11:59:45-02:00
-
-
-
-
-
-
- 11:59:00+02:01
-
-
-
-
-
-
- 11:59:00-02:01
-
-
-
-
-
-
- 11:59:00+02:01
-
-
-
-
-
-
- 11:59:00-02:01
-
-
-
-
-
-
- 11:59:45+02:45:55
-
-
-
-
-
-
- 11:59:45-02:45:55
-
-
-
-
-
-
- 11:59:45Z
-
-
-
-
-
-
- 23:59:01
-
-
-
-
-
-
- 23:59:01.987654321
-
-
-
-
-
-
- 09:15:30+02:00
-
-
-
-
-
-
- 09:15:30Z
-
-
-
-
-
-
- 00:00:00Z
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 23:59:00
-
-
-
-
-
-
- 12:45:00
-
-
-
-
-
-
- 11:59:00+02:01
-
-
-
-
-
-
- 11:59:00-02:00
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1117-feel-date-and-time-function/translator/standard/1117-feel-date-and-time-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1117-feel-date-and-time-function/translator/standard/1117-feel-date-and-time-function-test-01.xml
deleted file mode 100644
index 6a377cda5..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1117-feel-date-and-time-function/translator/standard/1117-feel-date-and-time-function-test-01.xml
+++ /dev/null
@@ -1,632 +0,0 @@
-
-
-
- 1117-feel-date-and-time-function.dmn
-
- Compliance Level 3
- Literal Expression
- FEEL Functions: date and time
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2012-12-24T00:00:00
-
-
-
-
-
-
- 2017-12-31T00:00:00
-
-
-
-
-
-
- 2017-12-31T11:22:33
-
-
-
-
-
-
- -2017-12-31T11:22:33
-
-
-
-
-
-
- 99999-12-31T11:22:33
-
-
-
-
-
-
- -99999-12-31T11:22:33
-
-
-
-
-
-
- 2017-12-31T11:22:33.345
-
-
-
-
-
-
- 2017-12-31T11:22:33.123456789
-
-
-
-
-
-
- 2017-12-31T11:22:33Z
-
-
-
-
-
-
- 2017-12-31T11:22:33.567Z
-
-
-
-
-
-
- 2017-12-31T11:22:33+01:00
-
-
-
-
-
-
- 2017-12-31T11:22:33-02:00
-
-
-
-
-
-
- 2017-12-31T11:22:33+01:35
-
-
-
-
-
-
- 2017-12-31T11:22:33-01:35
-
-
-
-
-
-
- 2017-12-31T11:22:33.456+01:35
-
-
-
-
-
-
- -2017-12-31T11:22:33.456+01:35
-
-
-
-
-
-
- 2011-12-31T10:15:30@Europe/Paris
-
-
-
-
-
-
- 2011-12-31T10:15:30@Etc/UTC
-
-
-
-
-
-
- 2011-12-31T10:15:30.987@Europe/Paris
-
-
-
-
-
-
- 2011-12-31T10:15:30.123456789@Europe/Paris
-
-
-
-
-
-
- 999999999-12-31T23:59:59.999999999@Europe/Paris
-
-
-
-
-
-
- -999999999-12-31T23:59:59.999999999+02:00
-
-
-
-
-
-
- 2017-01-01T23:59:01
-
-
-
-
-
-
- 2017-01-01T23:59:01Z
-
-
-
-
-
-
- 2017-01-01T23:59:01+02:00
-
-
-
-
-
-
- 2017-01-01T23:59:01@Europe/Paris
-
-
-
-
-
-
- 2017-01-01T23:59:01.123456789@Europe/Paris
-
-
-
-
-
-
- 2017-08-10T23:59:01
-
-
-
-
-
-
- 2017-08-10T23:59:01.987654321
-
-
-
-
-
-
- 2017-09-05T09:15:30+02:00
-
-
-
-
-
-
- 2017-09-05T09:15:30Z
-
-
-
-
-
-
- 2017-09-05T09:15:30.987654321+02:00
-
-
-
-
-
-
- 2017-09-05T09:15:30.123456Z
-
-
-
-
-
-
- 2017-09-05T09:15:30.987654321@Europe/Paris
-
-
-
-
-
-
- 2017-08-10T23:59:01
-
-
-
-
-
-
- 2017-08-10T23:59:01.987654321
-
-
-
-
-
-
- 2017-09-05T09:15:30+02:00
-
-
-
-
-
-
- 2017-09-05T09:15:30Z
-
-
-
-
-
-
- 2017-09-05T09:15:30.987654321+02:00
-
-
-
-
-
-
- 2017-09-05T09:15:30.123456Z
-
-
-
-
-
-
- 2017-09-05T09:15:30.987654321@Europe/Paris
-
-
-
-
-
-
- 2017-08-10T23:59:01
-
-
-
-
-
-
- 2017-08-10T23:59:01.987654321
-
-
-
-
-
-
- 2017-09-05T09:15:30+02:00
-
-
-
-
-
-
- 2017-09-05T09:15:30Z
-
-
-
-
-
-
- 2017-09-05T09:15:30.987654321+02:00
-
-
-
-
-
-
- 2017-09-05T09:15:30.123456Z
-
-
-
-
-
-
- 2017-09-05T09:15:30.987654321@Europe/Paris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2012-12-24T23:59:00
-
-
-
-
-
-
- 2017-01-01T23:59:01
-
-
-
-
-
-
- 2017-01-01T23:59:01
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1120-feel-duration-function/translator/standard/1120-feel-duration-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1120-feel-duration-function/translator/standard/1120-feel-duration-function-test-01.xml
deleted file mode 100644
index 8906a4eb5..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1120-feel-duration-function/translator/standard/1120-feel-duration-function-test-01.xml
+++ /dev/null
@@ -1,376 +0,0 @@
-
-
-
- 1120-feel-duration-function.dmn
-
- Compliance Level 3
- Literal Expression
- FEEL Functions: date and time
-
-
-
-
-
-
-
-
-
-
-
-
- P1D
-
-
-
-
-
-
- PT2H
-
-
-
-
-
-
- PT3M
-
-
-
-
-
-
- PT4S
-
-
-
-
-
-
- PT0.999S
-
-
-
-
-
-
- P1DT2H3M4.123456789S
-
-
-
-
-
-
- PT0S
-
-
-
-
-
-
- PT0S
-
-
-
-
-
-
- PT0S
-
-
-
-
-
-
- PT0S
-
-
-
-
-
-
- PT0S
-
-
-
-
-
-
- PT0S
-
-
-
-
-
-
- -PT1H2M
-
-
-
-
-
-
- PT16H40M
-
-
-
-
-
-
- PT16H40M0.999999999S
-
-
-
-
-
-
- PT9H15M
-
-
-
-
-
-
- PT1H1M
-
-
-
-
-
-
- P1D
-
-
-
-
-
-
- P10D
-
-
-
-
-
-
- P2DT1H40M
-
-
-
-
-
-
- PT1H
-
-
-
-
-
-
- P2DT4H34M
-
-
-
-
-
-
- P1Y2M
-
-
-
-
-
-
- P1Y
-
-
-
-
-
-
- P0M
-
-
-
-
-
-
- P0M
-
-
-
-
-
-
- -P1Y
-
-
-
-
-
-
- P2Y2M
-
-
-
-
-
-
- P3Y3M
-
-
-
-
-
-
- P8Y4M
-
-
-
-
-
-
- -P8Y4M
-
-
-
-
-
-
- P83333333Y3M
-
-
-
-
-
-
- -P83333333Y3M
-
-
-
-
-
-
- P99999999Y
-
-
-
-
-
-
- -P99999999Y
-
-
-
-
-
-
- P1Y
-
-
-
-
-
-
- P1D
-
-
-
-
-
-
- P2Y2M
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/1121-feel-years-and-months-duration-function/translator/standard/1121-feel-years-and-months-duration-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/1121-feel-years-and-months-duration-function/translator/standard/1121-feel-years-and-months-duration-function-test-01.xml
deleted file mode 100644
index ea82a7081..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/1121-feel-years-and-months-duration-function/translator/standard/1121-feel-years-and-months-duration-function-test-01.xml
+++ /dev/null
@@ -1,271 +0,0 @@
-
-
-
- 1121-feel-years-and-months-duration-function.dmn
-
- Compliance Level 3
- Data Type: Years and Months Duration
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- P1Y8M
-
-
-
-
-
-
- -P1Y8M
-
-
-
-
-
-
- P1Y
-
-
-
-
-
-
- -P1Y
-
-
-
-
-
-
- P0M
-
-
-
-
-
-
- P0M
-
-
-
-
-
-
- P1Y2M
-
-
-
-
-
-
- P7Y6M
-
-
-
-
-
-
- P4Y9M
-
-
-
-
-
-
- -P11M
-
-
-
-
-
-
- -P4033Y2M
-
-
-
-
-
-
- -P4035Y11M
-
-
-
-
-
-
- P2Y
-
-
-
-
-
-
- P11M
-
-
-
-
-
-
- P5Y7M
-
-
-
-
-
-
- P1Y
-
-
-
-
-
-
- P4Y
-
-
-
-
-
-
- P2Y9M
-
-
-
-
-
-
- P3Y
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- P4Y3M
-
-
-
-
-
-
- P2Y4M
-
-
-
-
-
-
- P1Y
-
-
-
-
-
-
- P2Y
-
-
-
-
-
-
- P1Y8M
-
-
-
-
-
-
- -P1Y
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.1/cl3/9001-recursive-function/translator/standard/9001-recursive-function-test-01.xml b/dmn-test-cases/standard/tck/1.1/cl3/9001-recursive-function/translator/standard/9001-recursive-function-test-01.xml
deleted file mode 100644
index 964403217..000000000
--- a/dmn-test-cases/standard/tck/1.1/cl3/9001-recursive-function/translator/standard/9001-recursive-function-test-01.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
- 9001-recursive-function.dmn
-
- Compliance Level 3
- Data Type: Number
-
-
-
- 0
-
-
-
- 1
-
-
-
-
-
- 1
-
-
-
- 1
-
-
-
-
-
- 3
-
-
-
- 6
-
-
-
-
-
- -1
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0012-list-functions/translator/standard/0012-list-functions-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0012-list-functions/translator/standard/0012-list-functions-test-01.xml
deleted file mode 100644
index 625c585d5..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0012-list-functions/translator/standard/0012-list-functions-test-01.xml
+++ /dev/null
@@ -1,637 +0,0 @@
-
-
- 0012-list-functions.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- FEEL List
- FEEL Functions: lists
- FEEL Functions: string
- FEEL Functions: list
- Data Type: String
- Data Type: Number
- Data Type: Boolean
- Data Type: Collection
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
- false
-
-
-
-
-
- OK
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
- false
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- 3
-
-
-
-
-
-
- -
-
6
-
- -
-
14
-
- -
-
-3
-
-
-
-
-
- -3
-
-
-
-
-
-
- -
-
6
-
- -
-
14
-
- -
-
-3
-
-
-
-
-
- 17
-
-
-
-
-
-
- -
-
6
-
- -
-
14
-
- -
-
-3
-
-
-
-
-
- 5.66666666666667
-
-
-
-
-
- 11
-
-
- 2
-
-
- 10
-
-
-
- 7.66666666666667
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
- -
-
c
-
-
-
-
-
-
-
- 11
-
-
- 2
-
-
- 10
-
-
-
- -
-
6
-
- -
-
14
-
- -
-
-3
-
-
-
-
-
-
- -
-
6
-
- -
-
14
-
- -
-
-3
-
- -
-
11
-
- -
-
2
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
- OK
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
x
-
- -
-
OK
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
x
-
- -
-
z
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
z
-
- -
-
y
-
- -
-
x
-
- -
-
c
-
- -
-
b
-
- -
-
a
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
- x
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
- -
-
x
-
-
-
-
-
-
-
- OK
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
-
-
-
-
- OK
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
x
-
- -
-
OK
-
- -
-
y
-
- -
-
z
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
-
-
- OK
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
x
-
- -
-
OK
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
-
-
-
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
- -
-
a
-
- -
-
b
-
- -
-
c
-
- -
-
x
-
- -
-
y
-
- -
-
z
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0034-drg-scopes-2/translator/standard/0034-drg-scopes-2-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0034-drg-scopes-2/translator/standard/0034-drg-scopes-2-test-01.xml
deleted file mode 100644
index e4235649f..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0034-drg-scopes-2/translator/standard/0034-drg-scopes-2-test-01.xml
+++ /dev/null
@@ -1,223 +0,0 @@
-
-
- 0034-drg-scopes.dmn
-
- Compliance Level 3
- Business Knowledge Model
- Literal Expression
- Literal Function Invocation
- Function Definition
- Function Invocation
- FEEL Function Literals
- Context
- Data Type: String
-
-
- Tests information requirements of decisions and knowledge requirements of business knowledge models
-
-
- A
-
-
- B
-
-
- C
-
-
-
-
- A
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
-
- BKM I # BKM II # BKM III # decision C 2 # BKM IV # BKM III # decision C 2
-
-
-
-
- BKM II # BKM III # decision C 3 # BKM IV # BKM III # decision C 3
-
-
-
-
-
- BKM II # BKM III # decision C 3 # BKM IV # BKM III # decision C 3
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0034-drg-scopes/translator/standard/0034-drg-scopes-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0034-drg-scopes/translator/standard/0034-drg-scopes-test-01.xml
deleted file mode 100644
index e4235649f..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0034-drg-scopes/translator/standard/0034-drg-scopes-test-01.xml
+++ /dev/null
@@ -1,223 +0,0 @@
-
-
- 0034-drg-scopes.dmn
-
- Compliance Level 3
- Business Knowledge Model
- Literal Expression
- Literal Function Invocation
- Function Definition
- Function Invocation
- FEEL Function Literals
- Context
- Data Type: String
-
-
- Tests information requirements of decisions and knowledge requirements of business knowledge models
-
-
- A
-
-
- B
-
-
- C
-
-
-
-
- A
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
- B
-
-
- A
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
-
- BKM I # BKM II # BKM III # decision C 2 # BKM IV # BKM III # decision C 2
-
-
-
-
- BKM II # BKM III # decision C 3 # BKM IV # BKM III # decision C 3
-
-
-
-
-
- BKM II # BKM III # decision C 3 # BKM IV # BKM III # decision C 3
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0068-feel-equality/translator/standard/0068-feel-equality-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0068-feel-equality/translator/standard/0068-feel-equality-test-01.xml
deleted file mode 100644
index 403f36229..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0068-feel-equality/translator/standard/0068-feel-equality-test-01.xml
+++ /dev/null
@@ -1,874 +0,0 @@
-
-
-
- 0068-feel-equality.dmn
-
- Compliance Level 3
- FEEL equality
-
-
-
- null equals null
-
-
- true
-
-
-
-
-
- null not equals null
-
-
- false
-
-
-
-
-
- boolean true equal
-
-
- true
-
-
-
-
-
- boolean true not equal
-
-
- false
-
-
-
-
-
- boolean true equal
-
-
- true
-
-
-
-
-
- boolean true not equal
-
-
- false
-
-
-
-
-
- boolean true not equal false
-
-
- false
-
-
-
-
-
- boolean true equals null
-
-
- false
-
-
-
-
-
- boolean false equals null
-
-
- false
-
-
-
-
-
- boolean false equals another type (0)
-
-
-
-
-
-
-
-
- boolean true equals another type (1)
-
-
-
-
-
-
-
-
- num equal
-
-
- true
-
-
-
-
-
- num with digits equal
-
-
- true
-
-
-
-
-
- zero equality
-
-
- true
-
-
-
-
-
- negative zero equality
-
-
- true
-
-
-
-
-
- negative inequality
-
-
- false
-
-
-
-
-
- number equals null
-
-
- false
-
-
-
-
-
- number equals another type
-
-
-
-
-
-
-
-
- string equals
-
-
- true
-
-
-
-
-
- string case sensitive
-
-
- false
-
-
-
-
-
- string not equals
-
-
- true
-
-
-
-
-
- string equals null
-
-
- false
-
-
-
-
-
- string equals another type
-
-
-
-
-
-
-
-
- list equal
-
-
- true
-
-
-
-
-
- lists of different lengths not equal
-
-
- false
-
-
-
-
-
- lists of same length with diff contents not equal
-
-
- false
-
-
-
-
-
- empty lists equal
-
-
- true
-
-
-
-
-
- list with same content but different order not equal
-
-
- false
-
-
-
-
-
- non list boolean of index 1 equals boolean
-
-
- true
-
-
-
-
-
- non list number of index 1 equals number
-
-
- true
-
-
-
-
-
- non list string of index 1 equals string
-
-
- true
-
-
-
-
-
- non list date of index 1 equals date
-
-
- true
-
-
-
-
-
- non list time of index 1 equals time
-
-
- true
-
-
-
-
-
- non list date time of index 1 equals date time
-
-
- true
-
-
-
-
-
- non list days duration of index 1 equals days duration
-
-
- true
-
-
-
-
-
- non list years duration of index 1 equals years duration
-
-
- true
-
-
-
-
-
- non list context of index 1 equals context
-
-
- true
-
-
-
-
-
- list equals null
-
-
- false
-
-
-
-
-
- list equals another type
-
-
-
-
-
-
-
-
- empty contexts equal
-
-
- true
-
-
-
-
-
- contexts with same properties in same order equal
-
-
- true
-
-
-
-
-
- contexts with same properties in different order equal
-
-
- true
-
-
-
-
-
- string literal name equal to non-string-literal name
-
-
- true
-
-
-
-
-
- context with same name and different values not equal
-
-
- false
-
-
-
-
-
- context equals null
-
-
- false
-
-
-
-
-
- context equals another type
-
-
-
-
-
-
-
-
- same dates are equal
-
-
- true
-
-
-
-
-
- different dates are not equal
-
-
- false
-
-
-
-
-
- date equals null
-
-
- false
-
-
-
-
-
- date equals another type
-
-
-
-
-
-
-
-
-
-
- same durations are equal
-
-
- true
-
-
-
-
-
- equivalent durations are (erm) equal
-
-
- true
-
-
-
-
-
- different durations are not equal
-
-
- false
-
-
-
-
-
- negative non-zero durations of same amount are not equal
-
-
- false
-
-
-
-
-
- negative zero duration and zero duration are equal
-
-
- true
-
-
-
-
-
- dt duration equals null
-
-
- false
-
-
-
-
-
- dt duration equals another type
-
-
-
-
-
-
-
-
- same durations are equal
-
-
- true
-
-
-
-
-
- equivalent durations are (erm) equal
-
-
- true
-
-
-
-
-
- different durations are not equal
-
-
- false
-
-
-
-
-
- negative non-zero durations of same amount are not equal
-
-
- false
-
-
-
-
-
- negative zero duration and zero duration are equal
-
-
- true
-
-
-
-
-
- years/months duration not equal to days/hours duration of same amount
-
-
-
-
-
-
-
-
- years/months duration equals null
-
-
- false
-
-
-
-
-
- years/months duration equals another type
-
-
-
-
-
-
-
-
- deep array equality
-
-
- true
-
-
-
-
-
- deep array equality
-
-
- true
-
-
-
-
-
- deep array in-equality
-
-
- false
-
-
-
-
-
- deep array in-equality
-
-
- false
-
-
-
-
-
- deep context equality
-
-
- true
-
-
-
-
-
- deep context equality
-
-
- true
-
-
-
-
-
- deep context in-equality
-
-
- false
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0070-feel-instance-of/translator/standard/0070-feel-instance-of-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0070-feel-instance-of/translator/standard/0070-feel-instance-of-test-01.xml
deleted file mode 100644
index a56949105..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0070-feel-instance-of/translator/standard/0070-feel-instance-of-test-01.xml
+++ /dev/null
@@ -1,1345 +0,0 @@
-
-
-
- 0070-feel-instance-of.dmn
-
- Compliance Level 3
- Data Type: any
-
-
-
- null instance of Any is false
-
-
- false
-
-
-
-
-
- null instance of number is false
-
-
- false
-
-
-
-
-
- null instance of string is false
-
-
- false
-
-
-
-
-
- null instance of boolean is false
-
-
- false
-
-
-
-
-
- null instance of date is false
-
-
- false
-
-
-
-
-
- null instance of time is false
-
-
- false
-
-
-
-
-
- null instance of date and time is false
-
-
- false
-
-
-
-
-
- null instance of list is null
-
-
-
-
-
-
-
-
- null instance of years and months duration is false
-
-
- false
-
-
-
-
-
- null instance of days and time duration is false
-
-
- false
-
-
-
-
-
- null instance of context is null
-
-
-
-
-
-
-
-
- null instance of function is null
-
-
-
-
-
-
-
-
- number instance of Any is true
-
-
- true
-
-
-
-
-
- number instance of number is true
-
-
- true
-
-
-
-
-
- number instance of string is false
-
-
- false
-
-
-
-
-
- number instance of boolean is false
-
-
- false
-
-
-
-
-
- number instance of date is false
-
-
- false
-
-
-
-
-
- number instance of time is false
-
-
- false
-
-
-
-
-
- number instance of date and time is false
-
-
- false
-
-
-
-
-
- number instance of list is null
-
-
-
-
-
-
-
-
- number instance of years and months duration is false
-
-
- false
-
-
-
-
-
- number instance of days and time duration is false
-
-
- false
-
-
-
-
-
- number instance of context is null
-
-
-
-
-
-
-
-
- number instance of function is null
-
-
-
-
-
-
-
-
-
- string instance of Any is true
-
-
- true
-
-
-
-
-
- string instance of number is false
-
-
- false
-
-
-
-
-
- string instance of string is true
-
-
- true
-
-
-
-
-
- string instance of boolean is false
-
-
- false
-
-
-
-
-
- string instance of date is false
-
-
- false
-
-
-
-
-
- string instance of time is false
-
-
- false
-
-
-
-
-
- string instance of date and time is false
-
-
- false
-
-
-
-
-
- string instance of list is null
-
-
-
-
-
-
-
-
- string instance of years and months duration is false
-
-
- false
-
-
-
-
-
- string instance of days and time duration is false
-
-
- false
-
-
-
-
-
- string instance of context is null
-
-
-
-
-
-
-
-
- string instance of function is null
-
-
-
-
-
-
-
-
-
- boolean instance of Any is true
-
-
- true
-
-
-
-
-
- boolean instance of number is false
-
-
- false
-
-
-
-
-
- boolean instance of string is false
-
-
- false
-
-
-
-
-
- boolean instance of boolean is true
-
-
- true
-
-
-
-
-
- boolean instance of date is false
-
-
- false
-
-
-
-
-
- boolean instance of time is false
-
-
- false
-
-
-
-
-
- boolean instance of date and time is false
-
-
- false
-
-
-
-
-
- boolean instance of list is null
-
-
-
-
-
-
-
-
- boolean instance of years and months duration is false
-
-
- false
-
-
-
-
-
- boolean instance of days and time duration is false
-
-
- false
-
-
-
-
-
- boolean instance of context is null
-
-
-
-
-
-
-
-
- boolean instance of function is null
-
-
-
-
-
-
-
-
- date instance of Any is true
-
-
- true
-
-
-
-
-
- date instance of number is false
-
-
- false
-
-
-
-
-
- date instance of string is false
-
-
- false
-
-
-
-
-
-
- date instance of boolean is false
-
-
- false
-
-
-
-
-
- date instance of date is true
-
-
- true
-
-
-
-
-
- date instance of time is false
-
-
- false
-
-
-
-
-
- date instance of date and time is false
-
-
- false
-
-
-
-
-
- date instance of list is null
-
-
-
-
-
-
-
-
- date instance of years and months duration is false
-
-
- false
-
-
-
-
-
- date instance of days and time duration is false
-
-
- false
-
-
-
-
-
- date instance of context is null
-
-
-
-
-
-
-
-
- date instance of function is null
-
-
-
-
-
-
-
-
- time instance of Any is true
-
-
- true
-
-
-
-
-
- time instance of number is false
-
-
- false
-
-
-
-
-
- time instance of string is false
-
-
- false
-
-
-
-
-
- time instance of boolean is false
-
-
- false
-
-
-
-
-
- time instance of date is false
-
-
- false
-
-
-
-
-
- time instance of time is true
-
-
- true
-
-
-
-
-
- time instance of date and time is false
-
-
- false
-
-
-
-
-
- time instance of list is null
-
-
-
-
-
-
-
-
- time instance of years and months duration is false
-
-
- false
-
-
-
-
-
- time instance of days and time duration is false
-
-
- false
-
-
-
-
-
- time instance of context is null
-
-
-
-
-
-
-
-
- time instance of function is null
-
-
-
-
-
-
-
-
- list instance of Any is true
-
-
- true
-
-
-
-
-
- list instance of number is false
-
-
- false
-
-
-
-
-
- list instance of string is false
-
-
- false
-
-
-
-
-
- list instance of boolean is false
-
-
- false
-
-
-
-
-
- list instance of date is false
-
-
- false
-
-
-
-
-
- list instance of time is false
-
-
- false
-
-
-
-
-
- list instance of date and time is false
-
-
- false
-
-
-
-
-
- list instance of list is null
-
-
-
-
-
-
-
-
- list instance of years and months duration is false
-
-
- false
-
-
-
-
-
- list instance of days and time duration is false
-
-
- false
-
-
-
-
-
- list instance of context is null
-
-
-
-
-
-
-
-
- list instance of function is null
-
-
-
-
-
-
-
-
- list instance with same itemtype is true
-
-
- true
-
-
-
-
-
- list instance with different itemtypes is list Any
-
-
- true
-
-
-
-
-
- empty list is list Any
-
-
- true
-
-
-
-
-
- list instance with different item types is not a list of (say) number
-
-
- false
-
-
-
-
-
- singleton list is not instance of element type
-
-
- false
-
-
-
-
-
- primitive is not instance of list of same type
-
-
- false
-
-
-
-
-
- primitive list is an instance of list of same type
-
-
- true
-
-
-
-
-
- primitive list is not an instance of list of different type
-
-
- false
-
-
-
-
-
- heterogeneous list is an instance of list of Any
-
-
- true
-
-
-
-
-
- years and months duration instance of Any is true
-
-
- true
-
-
-
-
-
- years and months duration instance of number is false
-
-
- false
-
-
-
-
-
- years and months duration instance of string is false
-
-
- false
-
-
-
-
-
- years and months duration instance of boolean is false
-
-
- false
-
-
-
-
-
- years and months duration instance of date is false
-
-
- false
-
-
-
-
-
- years and months duration instance of time is false
-
-
- false
-
-
-
-
-
- years and months duration instance of date and time is false
-
-
- false
-
-
-
-
-
- years and months duration instance of list is null
-
-
-
-
-
-
-
-
- years and months duration instance of years and months duration is true
-
-
- true
-
-
-
-
-
- years and months duration instance of days and time duration is false
-
-
- false
-
-
-
-
-
- years and months duration instance of context is null
-
-
-
-
-
-
-
-
- years and months duration instance of function is null
-
-
-
-
-
-
-
-
- days and time duration instance of Any is true
-
-
- true
-
-
-
-
-
- days and time duration instance of number is false
-
-
- false
-
-
-
-
-
- days and time duration instance of string is false
-
-
- false
-
-
-
-
-
- days and time duration instance of boolean is false
-
-
- false
-
-
-
-
-
- days and time duration instance of date is false
-
-
- false
-
-
-
-
-
- days and time duration instance of time is false
-
-
- false
-
-
-
-
-
- days and time duration instance of date and time is false
-
-
- false
-
-
-
-
-
- days and time durationinstance of list is null
-
-
-
-
-
-
-
-
- days and time duration instance of years and months duration is false
-
-
- false
-
-
-
-
-
- days and time duration instance of days and time duration is true
-
-
- true
-
-
-
-
-
- days and time duration instance of context is null
-
-
-
-
-
-
-
-
- days and time duration instance of function is null
-
-
-
-
-
-
-
-
- context instance of Any is true
-
-
- true
-
-
-
-
-
- context instance of number is false
-
-
- false
-
-
-
-
-
- context instance of string is false
-
-
- false
-
-
-
-
-
- context instance of boolean is false
-
-
- false
-
-
-
-
-
- context instance of date is false
-
-
- false
-
-
-
-
-
- context instance of time is false
-
-
- false
-
-
-
-
-
- context instance of date and time is false
-
-
- false
-
-
-
-
-
- context instance of list is null
-
-
-
-
-
-
-
-
- context instance of years and months duration is false
-
-
- false
-
-
-
-
-
- context instance of days and time duration is false
-
-
- false
-
-
-
-
-
- context instance of context is null
-
-
-
-
-
-
-
-
- context instance of function is null
-
-
-
-
-
-
-
-
- context instance of context with same property names is true
-
-
- true
-
-
-
-
-
- context instance with superset of type property names is true
-
-
- true
-
-
-
-
-
- context instance with subset of type property names is false
-
-
- false
-
-
-
-
-
- context instance with same property names but different types is false
-
-
- false
-
-
-
-
-
- context instance with properties subset of right properties is true
-
-
- true
-
-
-
-
-
- context instance with same property names is true
-
-
- true
-
-
-
-
-
- function instance of Any is true
-
-
- true
-
-
-
-
-
- function instance of number is false
-
-
- false
-
-
-
-
-
- function instance of string is false
-
-
- false
-
-
-
-
-
- function instance of boolean is false
-
-
- false
-
-
-
-
-
- function instance of date is false
-
-
- false
-
-
-
-
-
- function instance of time is false
-
-
- false
-
-
-
-
-
- function instance of date and time is false
-
-
- false
-
-
-
-
-
- function instance of list is null
-
-
-
-
-
-
-
-
- function instance of years and months duration is false
-
-
- false
-
-
-
-
-
- function instance of days and time duration is false
-
-
- false
-
-
-
-
-
- function instance of context is null
-
-
-
-
-
-
-
-
- function instance of function is null
-
-
-
-
-
-
-
-
- function returning string instance of <> -> string is true
-
-
- true
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0074-feel-properties/translator/standard/0074-feel-properties-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0074-feel-properties/translator/standard/0074-feel-properties-test-01.xml
deleted file mode 100644
index 40a2f984b..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0074-feel-properties/translator/standard/0074-feel-properties-test-01.xml
+++ /dev/null
@@ -1,410 +0,0 @@
-
-
-
- 0074-feel-properties.dmn
-
- Compliance Level 3
- Feel : any
- FEEL properties
- Data Type: any
-
-
-
-
-
- foo
-
-
-
-
-
- date - year
-
-
- 2018
-
-
-
-
-
- date - month
-
-
- 12
-
-
-
-
-
- date - day
-
-
- 10
-
-
-
-
-
- date - weekday
-
-
- 1
-
-
-
-
-
- dateTime - year
-
-
- 2018
-
-
-
-
-
- dateTime - month
-
-
- 12
-
-
-
-
-
- dateTime - day
-
-
- 10
-
-
-
-
-
- dateTime - weekday
-
-
- 1
-
-
-
-
-
- dateTime - hour
-
-
- 10
-
-
-
-
-
- dateTime - hour when no time specified
-
-
- 0
-
-
-
-
-
- dateTime - minute
-
-
- 30
-
-
-
-
-
- dateTime - minute when no time specified
-
-
- 0
-
-
-
-
-
- dateTime - second
-
-
- 1
-
-
-
-
-
- dateTime - second when no time specified
-
-
- 0
-
-
-
-
-
- dateTime - time offset when set
-
-
- PT5H
-
-
-
-
-
- dateTime - time offset when not set
-
-
-
-
-
-
-
-
- dateTime - timezone when set
-
-
- Etc/UTC
-
-
-
-
-
- dateTime - timezone when not set
-
-
-
-
-
-
-
-
- time - hour
-
-
- 10
-
-
-
-
-
- time - minute
-
-
- 30
-
-
-
-
-
- time - second
-
-
- 1
-
-
-
-
-
- time - time offset when set
-
-
- PT5H
-
-
-
-
-
- time - time offset when not set
-
-
-
-
-
-
-
-
-
-
- time - timezone when not set
-
-
-
-
-
-
-
-
- ym duration - years
-
-
- 1
-
-
-
-
-
- ym duration - years not set
-
-
- 0
-
-
-
-
-
- ym duration - month
-
-
- 2
-
-
-
-
-
- ym duration - months not set
-
-
- 0
-
-
-
-
-
- ym duration - days is null
-
-
-
-
-
-
-
-
- ym duration - hours is null
-
-
-
-
-
-
-
-
- ym duration - minutes is null
-
-
-
-
-
-
-
-
- ym duration - seconds is null
-
-
-
-
-
-
-
-
-
- dt duration - years is null
-
-
-
-
-
-
-
-
- dt duration - months is null
-
-
-
-
-
-
-
-
- dt duration - days
-
-
- 1
-
-
-
-
-
- dt duration - days is not set
-
-
- 0
-
-
-
-
-
- dt duration - hours
-
-
- 2
-
-
-
-
-
- dt duration - hours is not set
-
-
- 0
-
-
-
-
-
- dt duration - minutes
-
-
- 2
-
-
-
-
-
- dt duration - minutes is not set
-
-
- 0
-
-
-
-
-
- dt duration - seconds
-
-
- 2
-
-
-
-
-
- dt duration - seconds is not set
-
-
- 0
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0076-feel-external-java/translator/standard/0076-feel-external-java-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0076-feel-external-java/translator/standard/0076-feel-external-java-test-01.xml
deleted file mode 100644
index d30e3be93..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0076-feel-external-java/translator/standard/0076-feel-external-java-test-01.xml
+++ /dev/null
@@ -1,172 +0,0 @@
-
-
-
- 0076-feel-external-java.dmn
-
- Compliance Level 3
- FEEL External Java
-
-
-
- boxed external function definition
-
-
- 456
-
-
-
-
-
- no method on class
-
-
-
-
-
-
-
-
- no class
-
-
-
-
-
-
-
-
- no matching signature on class
-
-
-
-
-
-
-
-
- external function definition - single param
-
-
- -0.88796890
-
-
-
-
-
- external function definition - two params - double
-
-
- 456.78
-
-
-
-
-
- external function definition overrides built in function
-
-
- 456
-
-
-
-
-
- external function definition - int
-
-
- 456
-
-
-
-
-
- external function definition - short
-
-
- 123
-
-
-
-
-
- external function definition - byte
-
-
- 3
-
-
-
-
-
- external function definition - char
-
-
- a
-
-
-
-
-
- external function definition - char
-
-
-
-
-
-
-
-
- external function definition - long
-
-
- 456
-
-
-
-
-
- external function definition - float
-
-
- 456.78
-
-
-
-
-
- external function definition - string
-
-
- 123
-
-
-
-
-
- external function definition - string to float (Java float -> BigDecimal is sometimes not quite exact)
-
-
- 1234.56
-
-
-
-
-
- external function definition - string to double (Java double -> BigDecimal is sometimes not quite exact)
-
-
- 1234.56
-
-
-
-
-
- external function definition - varargs func
-
-
- foo bar
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0082-feel-coercion/translator/standard/0082-feel-coercion-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0082-feel-coercion/translator/standard/0082-feel-coercion-test-01.xml
deleted file mode 100644
index b47a44cb5..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0082-feel-coercion/translator/standard/0082-feel-coercion-test-01.xml
+++ /dev/null
@@ -1,442 +0,0 @@
-
-
-
- 0082-feel-coercion.dmn
-
- Compliance Level 3
- Feel : any
- FEEL TYpe Conformance
-
-
-
- type mismatch - decision return value is null coerced
-
-
-
-
-
-
-
-
-
-
-
- list type mismatch - decision return value is null coerced
-
-
-
-
-
-
-
-
- type permitted - conforming context
-
-
-
- foo
-
-
- bar
-
-
- 10
-
-
-
-
-
-
- context type mismatch - decision return value is null coerced
-
-
-
-
-
-
-
-
-
- decision type is list but return val is non-conforming val - coercion to null
-
-
-
-
-
-
-
-
- decision returns singleton list value but type is not a list - coercion list to val
-
-
- foo
-
-
-
-
-
- decision type is value but return val is non-conforming singleton list - coercion to null
-
-
-
-
-
-
-
-
- decision type is list but return val null - null cannot be coerced so no singleton list coercion
-
-
-
-
-
-
-
-
- pass conforming context type to bkm
-
-
- true
-
-
-
-
-
- pass non-conforming type to bkm - bkm is never invoked
-
-
-
-
-
-
-
-
- BKM logic returns non-conforming value to bkm variable typeRef - bk result is null coerced
-
-
-
-
-
-
-
-
-
- bkm type is list and bkm logic returns non-conforming (non-list) value - coercion to null
-
-
-
-
-
-
-
-
- bkm type is list and bkm logic returns null - null cannot be coerced to result remains null
-
-
-
-
-
-
-
-
- bkm type is non-list and bkm logic returns singleton list of conforming value - coercion list to val
-
-
- 10
-
-
-
-
-
- bkm type is non-list and bkm logic returns singleton list of non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- decision has invocation call to bkm passing
- non-conforming context - bkm is never invoked
-
-
-
-
-
-
-
-
- decision has invocation of bkm passing valid param, but bkm return value
- does not match explicit type on invocation defn - null coercion of result
- of invocation
-
-
-
-
-
-
-
-
-
- invocation type is a list and invoked bkm returns single non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- Ref https://github.com/dmn-tck/tck/pull/238#issuecomment-497744315
-
-
-
-
-
-
-
-
-
-
- invocation type is a non-list and invoked bkm returns singleton array of non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- function definition has typed param and is passed a conforming type - no coercion
-
-
- 10
-
-
-
-
-
- function definition has typed param and is passed non-conforming type - coercion to null
-
-
-
-
-
-
-
-
- literal expression has typeRef and result is conforming value - no coercion
-
-
- 10
-
-
-
-
-
- literal expression has typeRef and result is non-conforming value - coercion to null
-
-
-
-
-
-
-
-
-
- literal expression has list typeRef and result is non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- literal expression has non-list typeRef and result is conforming singleton list - coercion to value
-
-
- 10
-
-
-
-
-
- literal expression has non-list typeRef and result is non-conforming singleton list - coercion to null
-
-
-
-
-
-
-
-
- Direct invocation: Decision service returns context that does not confirm to type
-
-
-
-
-
-
-
-
- Direct invocation: Decision service has string input but we pass incorrect type - input is coerced to null
-
- 10
-
-
-
-
-
-
-
-
-
- Indirect invocation: Decision Service has string input but we pass incorrect type - input is coerced to null
-
-
-
-
-
-
-
-
- Direct invocation: Decision service has string input but we pass in singleton list of correct type - input is coerced to string
-
-
- -
-
foo
-
-
-
-
-
- foo
-
-
-
-
-
- Indirect invocation: Decision service has string input but we pass in singleton list of correct type - input is coerced to string
-
-
- foo
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0085-decision-services/translator/standard/0085-decision-services-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0085-decision-services/translator/standard/0085-decision-services-test-01.xml
deleted file mode 100644
index 342f12d43..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0085-decision-services/translator/standard/0085-decision-services-test-01.xml
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
- 0085-decision-services.dmn
-
- Compliance Level 3
- Decision Services
-
-
-
- Direct invocation: with no params
-
-
- foo
-
-
-
-
-
- Direct invocation: with an input decision
-
-
- baz
-
-
-
- foo baz
-
-
-
-
-
-
-
- Direct invocation: with an input decision but supplying no param
-
-
-
-
-
-
-
-
-
- Direct invocation: with an input decision - but supplying a null value
-
-
-
-
-
-
-
-
-
-
-
-
- Direct invocation: with an input decision - but supplying an incorrect param type
-
-
- 1234
-
-
-
-
-
-
-
-
-
- Direct invocation: with two input decisions and an input data
-
-
- B
-
-
- C
-
-
- D
-
-
-
- A B C D
-
-
-
-
-
-
- with no params
-
-
-
- foo
-
-
-
-
-
-
- passing a param when DS has no params
-
-
-
-
-
-
-
-
-
- passing a single input decision param
-
-
-
- foo bar
-
-
-
-
-
-
- passing a single input decision param with incorrect type
-
-
-
-
-
-
-
-
-
- passing no param when DS expects one
-
-
-
-
-
-
-
-
-
- passing named param
-
-
-
- foo bar
-
-
-
-
-
-
- passing badly named param
-
-
-
-
-
-
-
-
-
-
-
- input param order: two input decisions and two inputData
-
-
-
- A B C D
-
-
-
-
-
-
- input named param order: two input decisions and two inputData
-
-
-
- A B C D
-
-
-
-
-
-
- decision service input decision and data do not affect global decision and data
-
-
- C
-
-
-
-
- A B
-
-
- C
-
-
- D
-
-
-
-
-
-
-
-
- decision service input decision and data do not affect global decision and data
-
-
- C
-
-
-
-
- C
-
-
- D
-
-
- A B
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0086-import/translator/standard/0086-import-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0086-import/translator/standard/0086-import-test-01.xml
deleted file mode 100644
index 6ac22a4c8..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0086-import/translator/standard/0086-import-test-01.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
- 0086-import.dmn
-
- Compliance Level 3
- DMN Import
-
-
-
- Test import ItemDefinition and BKM for invocation
-
-
- John Doe
-
-
- 21
-
-
-
-
- Hello John Doe!
-
-
-
-
-
- Test import ItemDefinition and BKM for invocation
-
-
- John Doe
-
-
- 47
-
-
-
-
- Respectfully, Hello John Doe!
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0087-chapter-11-example/translator/standard/0087-chapter-11-example-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0087-chapter-11-example/translator/standard/0087-chapter-11-example-test-01.xml
deleted file mode 100644
index 4b78ed30d..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0087-chapter-11-example/translator/standard/0087-chapter-11-example-test-01.xml
+++ /dev/null
@@ -1,451 +0,0 @@
-
-
-
- 0087-chapter-11-example.dmn
-
- Compliance Level 3
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- THROUGH
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- ACCEPT
-
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- 138
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- VERY LOW
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- NONE
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- ELIGIBLE
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- true
-
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 10000
-
-
- 2500
-
-
- 3000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- THROUGH
-
-
-
-
- ACCEPT
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.2/cl3/0089-nested-inputdata-imports/translator/standard/0089-nested-inputdata-imports-test-01.xml b/dmn-test-cases/standard/tck/1.2/cl3/0089-nested-inputdata-imports/translator/standard/0089-nested-inputdata-imports-test-01.xml
deleted file mode 100644
index 83cd8b233..000000000
--- a/dmn-test-cases/standard/tck/1.2/cl3/0089-nested-inputdata-imports/translator/standard/0089-nested-inputdata-imports-test-01.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- 0089-nested-inputdata-imports.dmn
-
- Compliance Level 3
-
-
- Nested imports of InputData following GITHUB DMN TCK 274
-
-
-
- B.A.John
-
-
-
-
-
-
- B2.A.John2
-
-
-
-
-
- B: Evaluating Say Hello to: Hello, B.A.John; B2: Evaluating Say Hello to: Hello, B2.A.John2
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0004-lending/translator/standard/0004-lending-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0004-lending/translator/standard/0004-lending-test-01.xml
deleted file mode 100644
index 1778d7f8b..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0004-lending/translator/standard/0004-lending-test-01.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-
-
- 0004-lending.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Function Invocation
- Business Knowledge Model
- Context
- Decision Table: Single Output
- Hit Policy: UNIQUE
- Hit Policy: PRIORITY
- Hit Policy: COLLECT
- FEEL Arithmetic
- FEEL Conditionals
- Data Type: String
- Data Type: Number
- Data Type: Boolean
- Data Type: Structure
-
-
-
-
-
- 6000
-
-
- 2000
-
-
- 0
-
-
-
- 35
-
-
- true
-
-
- M
-
-
- EMPLOYED
-
-
-
-
- STANDARD LOAN
-
-
- 350000
-
-
- 0.0395
-
-
- 360
-
-
-
-
- 649
-
-
- false
-
-
-
- YES
-
-
-
- ACCEPT
-
-
-
-
- 130
-
-
-
-
- LOW
-
-
-
-
- MINI
-
-
-
-
- LOW
-
-
-
-
- 1680.880325608555
-
-
-
-
- true
-
-
-
-
- ELIGIBLE
-
-
-
-
- BUREAU
-
-
-
-
- true
-
-
-
-
- ACCEPT
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0016-some-every/translator/standard/0016-some-every-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0016-some-every/translator/standard/0016-some-every-test-01.xml
deleted file mode 100644
index 06b234ecd..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0016-some-every/translator/standard/0016-some-every-test-01.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-
-
- 0016-some-every.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Relation
- FEEL Quantifiers
- Business Knowledge Model
- Data Type: String
- Data Type: Number
- Data Type: Boolean
- Data Type: Structure
- Data Type: Collection
-
-
-
-
- -
-
- widget
-
-
- 25
-
-
- -
-
- sprocket
-
-
- 15
-
-
- -
-
- trinket
-
-
- 1.5
-
-
-
-
-
-
-
- -
-
- widget
-
-
- 25
-
-
- -
-
- sprocket
-
-
- 15
-
-
- -
-
- trinket
-
-
- 1.5
-
-
-
-
-
-
-
- false
-
-
-
-
- false
-
-
-
-
- true
-
-
-
-
- true
-
-
-
-
- false
-
-
-
-
- every: 'in' may appear in list identifier
-
-
- false
-
-
-
-
- some: 'in' may appear in list identifier
-
-
- true
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0020-vacation-days/translator/standard/0020-vacation-days-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0020-vacation-days/translator/standard/0020-vacation-days-test-01.xml
deleted file mode 100644
index 9be910605..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0020-vacation-days/translator/standard/0020-vacation-days-test-01.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
- 0020-vacation-days.dmn
-
- Compliance Level 3
- Literal Expression
- Item Definition
- Decision Table: Single Output
- Hit Policy: COLLECT
- FEEL Arithmetic
- FEEL Functions: list
- FEEL Special-character Names
- Data Type: Number
-
-
-
- 16
-
-
- 1
-
-
-
- 27
-
-
-
-
-
- 25
-
-
- 5
-
-
-
- 22
-
-
-
-
-
- 25
-
-
- 20
-
-
-
- 24
-
-
-
-
-
- 44
-
-
- 30
-
-
-
- 30
-
-
-
-
-
- 50
-
-
- 20
-
-
-
- 24
-
-
-
-
-
- 50
-
-
- 30
-
-
-
- 30
-
-
-
-
-
- 60
-
-
- 20
-
-
-
- 30
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0031-user-defined-functions/translator/standard/0031-user-defined-functions-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0031-user-defined-functions/translator/standard/0031-user-defined-functions-test-01.xml
deleted file mode 100644
index 9d0ff3627..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0031-user-defined-functions/translator/standard/0031-user-defined-functions-test-01.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
- 0031-user-defined-functions.dmn
-
- Compliance Level 3
- Literal Expression
- FEEL Arithmetic
- Function Invocation
- Function Definition
- FEEL Function Literals
- Data Type: Number
- Context
- FEEL Special-character Names
-
-
- Tests user defined function invocation with positional
- parameters
-
-
- 10
-
-
- 5
-
-
-
-
- 15
-
-
- 2
-
-
- 50
-
-
-
-
-
- Tests user defined function invocation with named
- parameters
-
-
- 10
-
-
- 5
-
-
-
-
- 5
-
-
- -5
-
-
- 2
-
-
- 50
-
-
-
-
-
- Tests user defined function invocation with complex
- parameters
-
-
- 10
-
-
- 5
-
-
-
-
- 500
-
-
- 200
-
-
- 94.247760
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0050-feel-abs-function/translator/standard/0050-feel-abs-function-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0050-feel-abs-function/translator/standard/0050-feel-abs-function-test-01.xml
deleted file mode 100644
index 9b6d6ddff..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0050-feel-abs-function/translator/standard/0050-feel-abs-function-test-01.xml
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
- 0050-feel-abs-function.dmn
-
- Compliance Level 3
- Data Type: Number
- Data Type: Function
- FEEL Functions: number
- FEEL Arithmetic
-
-
- Assert on positive number
-
-
- 1
-
-
-
-
- Assert on negative number
-
-
- 1
-
-
-
-
- Assert on zero
-
-
- 0
-
-
-
-
- Assert with no params
-
-
-
-
-
-
-
- Assert with too many params
-
-
-
-
-
-
-
- Assert with named param
-
-
- 1
-
-
-
-
- Assert with incorrect named param
-
-
-
-
-
-
-
- Assert with null param
-
-
-
-
-
-
-
- Assert with string param
-
-
-
-
-
-
-
- Assert with boolean param
-
-
-
-
-
-
-
- Assert with negative days duration param
-
-
- P1D
-
-
-
-
- Assert with positive days duration param
-
-
- P1D
-
-
-
-
- Assert with negative months duration param
-
-
- P1Y
-
-
-
-
- Assert with positive months duration param
-
-
- P1Y
-
-
-
-
- Assert with date param
-
-
-
-
-
-
-
- Assert with time param
-
-
-
-
-
-
-
- Assert with datetime param
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0057-feel-context/translator/standard/0057-feel-context-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0057-feel-context/translator/standard/0057-feel-context-test-01.xml
deleted file mode 100644
index 9639d388a..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0057-feel-context/translator/standard/0057-feel-context-test-01.xml
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
- 0057-feel-context.dmn
-
- Compliance Level 3
- Data Type: Context
-
-
- creation of simple context
-
-
-
- foo
-
-
- bar
-
-
-
-
-
-
- nested context
-
-
-
- foo
-
-
-
- bar
-
-
-
- baz
-
-
-
-
-
-
-
-
- previous entries in scope for later entries
-
-
-
- 3
-
-
- 6
-
-
-
-
-
-
- previous entries in scope for later (nested) entries
-
-
-
- 3
-
-
- 3
-
-
-
- 6
-
-
-
-
-
-
-
- spaces permitted in name
-
-
-
- foo
-
-
-
-
-
-
- extra chars permtted in name
-
-
-
- foo
-
-
-
-
-
-
- string literal permitted as name
-
-
-
- foo
-
-
-
-
-
-
- empty string literal permitted as name
-
-
-
- foo
-
-
-
-
-
-
- duplicate context entry keys not allowed (DMN14-178), results in null
-
-
-
-
-
-
-
-
- non-existing member access results in null
-
-
-
-
-
-
-
-
- non-existing member access (on null)
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0058-feel-number-function/translator/standard/0058-feel-number-function-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0058-feel-number-function/translator/standard/0058-feel-number-function-test-01.xml
deleted file mode 100644
index 37189904e..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0058-feel-number-function/translator/standard/0058-feel-number-function-test-01.xml
+++ /dev/null
@@ -1,176 +0,0 @@
-
-
-
- 0058-feel-number-function.dmn
-
- Compliance Level 3
- Data Type: Number
- FEEL Functions: conversion
-
-
-
-
- 1000000.01
-
-
-
-
-
-
- 1000000.01
-
-
-
-
- Grouping separator may be a space
-
-
- 1000000.01
-
-
-
-
- Grouping separator mismatch will result in null
-
-
-
-
-
-
-
- Grouping separator may not be a char other than "," or "." or space
-
-
-
-
-
-
-
- Grouping separator must be a string
-
-
-
-
-
-
-
- Decimal separator may not be a char other than "," or "."
-
-
-
-
-
-
-
- Decimal separator must be a string
-
-
-
-
-
-
-
- Grouping separator may be null when input has no group separators
-
-
- 1000000.01
-
-
-
-
- will not error when grouping separator is null and ',' group separators exist
-
-
- 1000000.01
-
-
-
-
- Decimal separator may be null when no decimal point
-
-
- 1000000
-
-
-
-
- will not error when decimal separator is null and decimal point exists
-
-
- 1000000.00
-
-
-
-
- decimal and group separators not be the same
-
-
-
-
-
-
-
- decimal and group separators may not be the same
-
-
-
-
-
-
-
- 'from' may not be null
-
-
-
-
-
-
-
- 'from' must be a string
-
-
-
-
-
-
-
- valid named params
-
-
- 1000000.01
-
-
-
-
- invalid named params
-
-
-
-
-
-
-
- invalid 'from'
-
-
-
-
-
-
-
- will error when to few params
-
-
-
-
-
-
-
- will error when too many params
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0068-feel-equality/translator/standard/0068-feel-equality-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0068-feel-equality/translator/standard/0068-feel-equality-test-01.xml
deleted file mode 100644
index 457a29a8e..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0068-feel-equality/translator/standard/0068-feel-equality-test-01.xml
+++ /dev/null
@@ -1,1163 +0,0 @@
-
-
-
- 0068-feel-equality.dmn
-
- Compliance Level 3
- FEEL equality
-
-
-
- null equals null
-
-
- true
-
-
-
-
-
- null not equals null
-
-
- false
-
-
-
-
-
- boolean true equal
-
-
- true
-
-
-
-
-
- boolean true not equal
-
-
- false
-
-
-
-
-
- boolean true equal
-
-
- true
-
-
-
-
-
- boolean true not equal
-
-
- false
-
-
-
-
-
- boolean true not equal false
-
-
- false
-
-
-
-
-
- boolean true equals null
-
-
- false
-
-
-
-
-
- boolean false equals null
-
-
- false
-
-
-
-
-
-
-
-
-
- num equal
-
-
- true
-
-
-
-
-
- num with digits equal
-
-
- true
-
-
-
-
-
- zero equality
-
-
- true
-
-
-
-
-
- negative zero equality
-
-
- true
-
-
-
-
-
- negative inequality
-
-
- false
-
-
-
-
-
- number equals null
-
-
- false
-
-
-
-
-
-
-
- string equals
-
-
- true
-
-
-
-
-
- string case sensitive
-
-
- false
-
-
-
-
-
- string not equals
-
-
- true
-
-
-
-
-
- string equals null
-
-
- false
-
-
-
-
-
-
-
- list equal
-
-
- true
-
-
-
-
-
- lists of different lengths not equal
-
-
- false
-
-
-
-
-
- lists of same length with diff contents not equal
-
-
- false
-
-
-
-
-
- empty lists equal
-
-
- true
-
-
-
-
-
- list with same content but different order not equal
-
-
- false
-
-
-
-
-
-
-
- non list number of index 1 equals number
-
-
- true
-
-
-
-
-
- non list string of index 1 equals string
-
-
- true
-
-
-
-
-
- non list date of index 1 equals date
-
-
- true
-
-
-
-
-
- non list time of index 1 equals time
-
-
- true
-
-
-
-
-
- non list date time of index 1 equals date time
-
-
- true
-
-
-
-
-
- non list days duration of index 1 equals days duration
-
-
- true
-
-
-
-
-
- non list years duration of index 1 equals years duration
-
-
- true
-
-
-
-
-
- non list context of index 1 equals context
-
-
- true
-
-
-
-
-
- list equals null
-
-
- false
-
-
-
-
-
-
-
- empty contexts equal
-
-
- true
-
-
-
-
-
- contexts with same properties in same order equal
-
-
- true
-
-
-
-
-
- contexts with same properties in different order equal
-
-
- true
-
-
-
-
-
- string literal name equal to non-string-literal name
-
-
- true
-
-
-
-
-
- context with same name and different values not equal
-
-
- false
-
-
-
-
-
- context equals null
-
-
- false
-
-
-
-
-
-
-
- same dates are equal
-
-
- true
-
-
-
-
-
- different dates are not equal
-
-
- false
-
-
-
-
-
- date equals null
-
-
- false
-
-
-
-
-
-
-
- same times are equal
-
-
- true
-
-
-
-
-
- different times are not equal: hours
-
-
- false
-
-
-
-
-
- different times are not equal: minutes
-
-
- false
-
-
-
-
-
- different times are not equal: seconds
-
-
- false
-
-
-
-
-
- same times with zero milliseconds are equal
-
-
- true
-
-
-
-
-
- same times with same milliseconds are equal
-
-
- true
-
-
-
-
-
- same times with different milliseconds are equal as value resolution is seconds
-
-
- true
-
-
-
-
-
- same times in same zone are equal
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- same times = one with offset, the other with zone are equal if offsets are equal
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- same times = one with Z zone, the other with UTC are equal
-
-
- true
-
-
-
-
-
- time equals null
-
-
- false
-
-
-
-
-
-
-
- same datetimes are equal
-
-
- true
-
-
-
-
-
- datetimes with no time is equal to datetime with zero time
-
-
- true
-
-
-
-
-
- datetimes with same milliseconds are equal
-
-
- true
-
-
-
-
-
- datetimes with different milliseconds are equal as resolution is to the second
-
-
- true
-
-
-
-
-
- different datetimes are not equal
-
-
- false
-
-
-
-
-
- same datetimes in same zone are equal
-
-
- true
-
-
-
-
-
- same datetimes in different zones are not equal
-
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- same datetimes, one with offset and the other with zone are equal
-
-
- false
-
-
-
-
-
- same datetimes, one with offset and the other with zone are equal - DST
-
-
- false
-
-
-
-
-
- same datetimes, with same offsets but different zones equal
-
-
- true
-
-
-
-
-
- datetime with zero offset is equal to utc zone
-
-
- true
-
-
-
-
-
- datetime equals null
-
-
- false
-
-
-
-
-
-
-
- datetime: different times in different zones can be equal
-
-
- true
-
-
-
-
-
- datetime: different times in different zones can be equal (with negative offset)
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- same durations are equal
-
-
- true
-
-
-
-
-
- equivalent durations are (erm) equal
-
-
- true
-
-
-
-
-
- different durations are not equal
-
-
- false
-
-
-
-
-
- negative non-zero durations of same amount are not equal
-
-
- false
-
-
-
-
-
- negative zero duration and zero duration are equal
-
-
- true
-
-
-
-
-
- dt duration equals null
-
-
- false
-
-
-
-
-
-
-
-
-
-
- same durations are equal
-
-
- true
-
-
-
-
-
- equivalent durations are (erm) equal
-
-
- true
-
-
-
-
-
- different durations are not equal
-
-
- false
-
-
-
-
-
- negative non-zero durations of same amount are not equal
-
-
- false
-
-
-
-
-
- negative zero duration and zero duration are equal
-
-
- true
-
-
-
-
-
-
-
- years/months duration equals null
-
-
- false
-
-
-
-
-
-
-
- deep array equality
-
-
- true
-
-
-
-
-
- deep array equality
-
-
- true
-
-
-
-
-
- deep array in-equality
-
-
- false
-
-
-
-
-
- deep array in-equality
-
-
- false
-
-
-
-
-
- deep context equality
-
-
- true
-
-
-
-
-
- deep context equality
-
-
- true
-
-
-
-
-
- deep context in-equality
-
-
- false
-
-
-
-
-
-
-
-
-
- ranges with same endpoint and inclusivity are equal
-
-
- true
-
-
-
-
-
- ranges with different upper endpoints are not equal
-
-
- false
-
-
-
-
-
- ranges with different lower endpoints are not equal
-
-
- false
-
-
-
-
-
- ranges with same endpoints, but same though syntactically different lower inclusivity are equal
-
-
- true
-
-
-
-
-
- ranges with same endpoints, but same though syntactically different upper inclusivity are equal
-
-
- true
-
-
-
-
-
- equal ranges though syntactically different: LT
-
-
-
-
-
- true
-
-
-
-
-
- equal ranges though syntactically different: LE
-
-
-
-
-
- true
-
-
-
-
-
- equal ranges though syntactically different: GT
-
-
-
-
-
- true
-
-
-
-
-
- equal ranges though syntactically different: GE
-
-
-
-
-
- true
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0069-feel-list/translator/standard/0069-feel-list-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0069-feel-list/translator/standard/0069-feel-list-test-01.xml
deleted file mode 100644
index 758afae57..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0069-feel-list/translator/standard/0069-feel-list-test-01.xml
+++ /dev/null
@@ -1,457 +0,0 @@
-
-
-
- 0069-feel-list.dmn
-
- Compliance Level 3
- Data Type: List
-
-
- creation of list
-
-
-
- -
-
1
-
- -
-
2
-
- -
-
3
-
-
-
-
-
-
-
- creation of empty list
-
-
-
-
-
-
-
-
-
- access of index 0
-
-
-
-
-
-
-
-
- access of index > size
-
-
-
-
-
-
-
-
- access of first element
-
-
- 1
-
-
-
-
-
- access of last element
-
-
- 3
-
-
-
-
-
- access of negative element
-
-
- 3
-
-
-
-
-
- access of negative element
-
-
- 1
-
-
-
-
-
- access of negative element > -size
-
-
-
-
-
-
-
-
- true boolean index element gives entire list
-
-
-
- -
-
1
-
- -
-
2
-
- -
-
3
-
-
-
-
-
-
-
- false boolean index element gives empty list
-
-
-
-
-
-
-
-
-
- filter expression using item
-
-
-
- -
-
2
-
- -
-
3
-
-
-
-
-
-
-
- true filter expression on non list - boolean
-
-
-
- -
-
true
-
-
-
-
-
-
-
- false filter expression on non list - boolean
-
-
-
-
-
-
-
-
-
- true filter expression on non list - number
-
-
-
- -
-
100
-
-
-
-
-
-
-
- false filter expression on non list - number
-
-
-
-
-
-
-
-
-
- true filter expression on non list - string
-
-
-
- -
-
foo
-
-
-
-
-
-
-
- false filter expression on non list - string
-
-
-
-
-
-
-
-
-
- index of 1 on non list - boolean
-
-
- true
-
-
-
-
-
- index of 1 on non list - number
-
-
- 100
-
-
-
-
-
- index of 1 on non list - string
-
-
- foo
-
-
-
-
-
- index of 0 on non list - boolean
-
-
-
-
-
-
-
-
- index of 0 on non list - number
-
-
-
-
-
-
-
-
- index of 0 on non list - string
-
-
-
-
-
-
-
-
- filter on context using item
-
-
-
- -
-
- 2
-
-
- -
-
- 3
-
-
-
-
-
-
-
-
- filter on context using property name
-
-
-
- -
-
- 2
-
-
- -
-
- 3
-
-
-
-
-
-
-
-
- filter on context using property 'item' name
-
-
-
- -
-
- 2
-
-
- -
-
- 3
-
-
-
-
-
-
-
-
- filter on scalars (10.3.2.5 - example 1)
-
-
-
- -
-
3
-
- -
-
4
-
-
-
-
-
-
-
-
- filter on property name (10.3.2.5 - example 2)
-
-
-
- -
-
- 1
-
-
- 2
-
-
-
-
-
-
-
-
-
- filter on property name + null value (10.3.2.5 - example 3)
-
-
-
- -
-
- 1
-
-
- 2
-
-
-
-
-
-
-
-
-
- path expression (10.3.2.5 - example 4)
-
-
-
- -
-
2
-
- -
-
3
-
-
-
-
-
-
-
-
- filter / non-member matching (empty)
-
-
-
-
-
-
-
-
-
- filter / non-member matching (single result)
-
-
-
- -
-
- 2
-
-
-
-
-
-
-
-
-
- path expression / no match
-
-
-
- -
-
-
-
-
-
-
-
-
-
- path expression / partial match
-
-
-
- -
-
-
- -
-
2
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0071-feel-between/translator/standard/0071-feel-between-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0071-feel-between/translator/standard/0071-feel-between-test-01.xml
deleted file mode 100644
index ab65397bd..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0071-feel-between/translator/standard/0071-feel-between-test-01.xml
+++ /dev/null
@@ -1,357 +0,0 @@
-
-
-
- 0071-feel-between.dmn
-
- Compliance Level 3
- Feel : any
- FEEL Conditionals
- Data Type: any
-
-
-
- before
-
-
- false
-
-
-
-
-
- start
-
-
- true
-
-
-
-
-
- between
-
-
- true
-
-
-
-
-
- end
-
-
- true
-
-
-
-
-
- after
-
-
- false
-
-
-
-
-
-
- before
-
-
- false
-
-
-
-
-
- start
-
-
- true
-
-
-
-
-
- between
-
-
- true
-
-
-
-
-
- end
-
-
- true
-
-
-
-
-
- after
-
-
- false
-
-
-
-
-
-
- before
-
-
- false
-
-
-
-
-
- start
-
-
- true
-
-
-
-
-
- between
-
-
- true
-
-
-
-
-
- end
-
-
- true
-
-
-
-
-
- after
-
-
- false
-
-
-
-
-
- before
-
-
- false
-
-
-
-
-
- start
-
-
- true
-
-
-
-
-
- between
-
-
- true
-
-
-
-
-
- end
-
-
- true
-
-
-
-
-
- after
-
-
- false
-
-
-
-
-
- before
-
-
- false
-
-
-
-
-
- start
-
-
- true
-
-
-
-
-
- between
-
-
- true
-
-
-
-
-
- end
-
-
- true
-
-
-
-
-
- after
-
-
- false
-
-
-
-
-
- before
-
-
- false
-
-
-
-
-
- start
-
-
- true
-
-
-
-
-
- between
-
-
- true
-
-
-
-
-
- end
-
-
- true
-
-
-
-
-
- after
-
-
- false
-
-
-
-
-
- before
-
-
- false
-
-
-
-
-
- start
-
-
- true
-
-
-
-
-
- between
-
-
- true
-
-
-
-
-
- end
-
-
- true
-
-
-
-
-
- after
-
-
- false
-
-
-
-
-
- null test value
-
-
-
-
-
-
-
-
- null start value
-
-
-
-
-
-
-
-
- null end value
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0074-feel-properties/translator/standard/0074-feel-properties-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0074-feel-properties/translator/standard/0074-feel-properties-test-01.xml
deleted file mode 100644
index 8d4dd1290..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0074-feel-properties/translator/standard/0074-feel-properties-test-01.xml
+++ /dev/null
@@ -1,674 +0,0 @@
-
-
-
- 0074-feel-properties.dmn
-
- Compliance Level 3
- Feel : any
- FEEL properties
- Data Type: any
-
-
-
-
-
- foo
-
-
-
-
-
- date - year
-
-
- 2018
-
-
-
-
-
- date - month
-
-
- 12
-
-
-
-
-
- date - day
-
-
- 10
-
-
-
-
-
- date - weekday
-
-
- 1
-
-
-
-
-
- dateTime - year
-
-
- 2018
-
-
-
-
-
- dateTime - month
-
-
- 12
-
-
-
-
-
- dateTime - day
-
-
- 10
-
-
-
-
-
- dateTime - weekday
-
-
- 1
-
-
-
-
-
- dateTime - hour
-
-
- 10
-
-
-
-
-
- dateTime - hour when no time specified
-
-
- 0
-
-
-
-
-
- dateTime - minute
-
-
- 30
-
-
-
-
-
- dateTime - minute when no time specified
-
-
- 0
-
-
-
-
-
- dateTime - second
-
-
- 1
-
-
-
-
-
- dateTime - second when no time specified
-
-
- 0
-
-
-
-
-
- dateTime - time offset when set
-
-
- PT5H
-
-
-
-
-
- dateTime - time offset when not set
-
-
-
-
-
-
-
-
- dateTime - timezone when set
-
-
- Etc/UTC
-
-
-
-
-
- dateTime - timezone when not set
-
-
-
-
-
-
-
-
- time - hour
-
-
- 10
-
-
-
-
-
- time - minute
-
-
- 30
-
-
-
-
-
- time - second
-
-
- 1
-
-
-
-
-
- time - time offset when set
-
-
- PT5H
-
-
-
-
-
- time - time offset when not set
-
-
-
-
-
-
-
-
-
-
- time - timezone when not set
-
-
-
-
-
-
-
-
- ym duration - years
-
-
- 1
-
-
-
-
-
- ym duration - years not set
-
-
- 0
-
-
-
-
-
- ym duration - month
-
-
- 2
-
-
-
-
-
- ym duration - months not set
-
-
- 0
-
-
-
-
-
- ym duration - days is null
-
-
-
-
-
-
-
-
- ym duration - hours is null
-
-
-
-
-
-
-
-
- ym duration - minutes is null
-
-
-
-
-
-
-
-
- ym duration - seconds is null
-
-
-
-
-
-
-
-
-
- dt duration - years is null
-
-
-
-
-
-
-
-
- dt duration - months is null
-
-
-
-
-
-
-
-
- dt duration - days
-
-
- 1
-
-
-
-
-
- dt duration - days is not set
-
-
- 0
-
-
-
-
-
- dt duration - hours
-
-
- 2
-
-
-
-
-
- dt duration - hours is not set
-
-
- 0
-
-
-
-
-
- dt duration - minutes
-
-
- 2
-
-
-
-
-
- dt duration - minutes is not set
-
-
- 0
-
-
-
-
-
- dt duration - seconds
-
-
- 2
-
-
-
-
-
- dt duration - seconds is not set
-
-
- 0
-
-
-
-
-
- range - start
-
-
- 1
-
-
-
-
-
- range - end
-
-
- 10
-
-
-
-
-
- range - start included
-
-
- true
-
-
-
-
-
- range - start included '(' syntax
-
-
- false
-
-
-
-
-
- range - start included ']' syntax
-
-
- false
-
-
-
-
-
- range - end included
-
-
- true
-
-
-
-
-
- range - end included ')' syntax
-
-
- false
-
-
-
-
-
- range - end included '[' syntax
-
-
- false
-
-
-
-
-
- range - start: LT unary syntax
-
-
-
-
-
-
-
-
- range - start: LE unary syntax
-
-
-
-
-
-
-
-
- range - start: GT unary syntax
-
-
- 10
-
-
-
-
-
- range - start: GE unary syntax
-
-
- 10
-
-
-
-
-
-
-
- range - end: LT unary syntax
-
-
- 10
-
-
-
-
-
- range - end: LE unary syntax
-
-
- 10
-
-
-
-
-
- range - end: GT unary syntax
-
-
-
-
-
-
-
-
- range - end: GE unary syntax
-
-
-
-
-
-
-
-
-
-
- range - start included: LT unary syntax
-
-
- false
-
-
-
-
-
- range - start included: LE unary syntax
-
-
- false
-
-
-
-
-
- range - start included: GT unary syntax
-
-
- false
-
-
-
-
-
- range - start included: GE unary syntax
-
-
- true
-
-
-
-
-
-
-
- range - end included: LT unary syntax
-
-
- false
-
-
-
-
-
- range - end included: LE unary syntax
-
-
- true
-
-
-
-
-
- range - end included: GT unary syntax
-
-
- false
-
-
-
-
-
- range - end included: GE unary syntax
-
-
- false
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0080-feel-getvalue-function/translator/standard/0080-feel-getvalue-function-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0080-feel-getvalue-function/translator/standard/0080-feel-getvalue-function-test-01.xml
deleted file mode 100644
index 8b36d3ce4..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0080-feel-getvalue-function/translator/standard/0080-feel-getvalue-function-test-01.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-
-
-
- 0080-feel-getvalue-function.dmn
-
- Compliance Level 3
- FEEL Functions: map
-
-
-
- no param
-
-
-
-
-
-
-
-
- only one param
-
-
-
-
-
-
-
-
- too many params
-
-
-
-
-
-
-
-
- get a value
-
-
- foo
-
-
-
-
-
- not a map as first param
-
-
-
-
-
-
-
-
- not a string as second param
-
-
-
-
-
-
-
-
- named params
-
-
- foo
-
-
-
-
-
- badly named params
-
-
-
-
-
-
-
-
- null map param
-
-
-
-
-
-
-
-
- null key param
-
-
-
-
-
-
-
-
- null context param
-
-
-
-
-
-
-
-
- null item value stored in context
-
-
-
-
-
-
-
-
- non literal key of string type
-
- a
-
-
-
- foo
-
-
-
-
-
- non literal key of incorrect type
-
- 12
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0081-feel-getentries-function/translator/standard/0081-feel-getentries-function-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0081-feel-getentries-function/translator/standard/0081-feel-getentries-function-test-01.xml
deleted file mode 100644
index 6cdce3e1c..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0081-feel-getentries-function/translator/standard/0081-feel-getentries-function-test-01.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
- 0081-feel-getentries-function.dmn
-
- Compliance Level 3
- FEEL Functions: map
-
-
-
- no param
-
-
-
-
-
-
-
-
- two many params
-
-
-
-
-
-
-
-
- null params
-
-
-
-
-
-
-
-
- get a value
-
-
-
- -
-
- a
-
-
- foo
-
-
- -
-
- b
-
-
- bar
-
-
-
-
-
-
-
-
- named param
-
-
-
- -
-
- a
-
-
- foo
-
-
- -
-
- b
-
-
- bar
-
-
-
-
-
-
-
-
- bad named param
-
-
-
-
-
-
-
-
- not a map as param
-
-
-
-
-
-
-
-
- not a map as param
-
-
-
-
-
-
-
-
- empty map as param
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0082-feel-coercion/translator/standard/0082-feel-coercion-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0082-feel-coercion/translator/standard/0082-feel-coercion-test-01.xml
deleted file mode 100644
index 0c4f869ee..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0082-feel-coercion/translator/standard/0082-feel-coercion-test-01.xml
+++ /dev/null
@@ -1,452 +0,0 @@
-
-
-
- 0082-feel-coercion.dmn
-
- Compliance Level 3
- Feel : any
- FEEL TYpe Conformance
-
-
-
- type mismatch - decision return value is null coerced
-
-
-
-
-
-
-
-
-
-
-
- list type mismatch - decision return value is null coerced
-
-
-
-
-
-
-
-
- type permitted - conforming context
-
-
-
- foo
-
-
- bar
-
-
- 10
-
-
-
-
-
-
- context type mismatch - decision return value is null coerced
-
-
-
-
-
-
-
-
-
- decision type is list but return val is non-conforming val - coercion to null
-
-
-
-
-
-
-
-
- decision returns singleton list value but type is not a list - coercion list to val
-
-
- foo
-
-
-
-
-
- decision type is value but return val is non-conforming singleton list - coercion to null
-
-
-
-
-
-
-
-
- decision type is list but return val null - null cannot be coerced so no singleton list coercion
-
-
-
-
-
-
-
-
- pass conforming context type to bkm
-
-
- true
-
-
-
-
-
- pass non-conforming type to bkm - bkm is never invoked
-
-
-
-
-
-
-
-
- BKM logic returns non-conforming value to bkm variable typeRef - bk result is null coerced
-
-
-
-
-
-
-
-
-
- bkm type is list and bkm logic returns non-conforming (non-list) value - coercion to null
-
-
-
-
-
-
-
-
- bkm type is list and bkm logic returns null - null cannot be coerced to result remains null
-
-
-
-
-
-
-
-
- bkm type is non-list and bkm logic returns singleton list of conforming value - coercion list to val
-
-
- 10
-
-
-
-
-
- bkm type is non-list and bkm logic returns singleton list of non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- decision has invocation call to bkm passing
- non-conforming context - bkm is never invoked
-
-
-
-
-
-
-
-
- decision has invocation of bkm passing valid param, but bkm return value
- does not match explicit type on invocation defn - null coercion of result
- of invocation
-
-
-
-
-
-
-
-
-
- invocation type is a list and invoked bkm returns single non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- Ref https://github.com/dmn-tck/tck/pull/238#issuecomment-497744315
-
-
-
-
-
-
-
-
-
-
- invocation type is a non-list and invoked bkm returns singleton array of non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- invocation has binding name that is not a valid formal param name -
- function is never invoked
-
-
-
-
-
-
-
-
- function definition has typed param and is passed a conforming type - no coercion
-
-
- 10
-
-
-
-
-
- function definition has typed param and is passed non-conforming type - coercion to null
-
-
-
-
-
-
-
-
- literal expression has typeRef and result is conforming value - no coercion
-
-
- 10
-
-
-
-
-
- literal expression has typeRef and result is non-conforming value - coercion to null
-
-
-
-
-
-
-
-
-
- literal expression has list typeRef and result is non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- literal expression has non-list typeRef and result is conforming singleton list - coercion to value
-
-
- 10
-
-
-
-
-
- literal expression has non-list typeRef and result is non-conforming singleton list - coercion to null
-
-
-
-
-
-
-
-
- Direct invocation: Decision service returns context that does not confirm to type
-
-
-
-
-
-
-
-
- Direct invocation: Decision service has string input but we pass incorrect type - input is coerced to null
-
- 10
-
-
-
-
-
-
-
-
-
- Indirect invocation: Decision Service has string input but we pass incorrect type - input is coerced to null
-
-
-
-
-
-
-
-
- Direct invocation: Decision service has string input but we pass in singleton list of correct type - input is coerced to string
-
-
- -
-
foo
-
-
-
-
-
- foo
-
-
-
-
-
- Indirect invocation: Decision service has string input but we pass in singleton list of correct type - input is coerced to string
-
-
- foo
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0083-feel-unicode/translator/standard/0083-feel-unicode-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0083-feel-unicode/translator/standard/0083-feel-unicode-test-01.xml
deleted file mode 100644
index 7372640b0..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0083-feel-unicode/translator/standard/0083-feel-unicode-test-01.xml
+++ /dev/null
@@ -1,174 +0,0 @@
-
-
-
- 0083-feel-unicode.dmn
-
- Compliance Level 3
- Data Type: String
- FEEL Functions: string
-
-
-
- Assert length of string with 4 digit unicode char
-
-
- 1
-
-
-
-
-
- Assert length of string with 6 digit unicode char
-
-
- 1
-
-
-
-
-
- Assert string with 6 digit unicode char
-
-
- true
-
-
-
-
-
- Escaped encoded unicode
-
-
- 6
-
-
-
-
-
- encoded unicode - supplementary char (uppercase)
-
-
- 1
-
-
-
-
-
- encoded unicode - supplementary char (lowercase)
-
-
- 1
-
-
-
-
-
- encoded unicode - string literal with supplementary chars
-
-
- 2
-
-
-
-
-
- literal unicode - supplementary 2 char - in string literal
-
-
- 2
-
-
-
-
-
- encoded unicode - string contains with supplementary chars
-
-
- true
-
-
-
-
-
- literal unicode - string contains with supplementary chars
-
-
- true
-
-
-
-
-
- literal unicode - context property name as supplementary character
-
-
-
- bar
-
-
-
-
-
-
- literal unicode - context property and value supplementary characters
-
-
-
- 😀
-
-
-
-
-
-
- literal unicode - string ends with with supplementary chars
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
- escape 6 digit unicode substring
-
-
- true
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0084-feel-for-loops/translator/standard/0084-feel-for-loops-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0084-feel-for-loops/translator/standard/0084-feel-for-loops-test-01.xml
deleted file mode 100644
index f5e27f627..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0084-feel-for-loops/translator/standard/0084-feel-for-loops-test-01.xml
+++ /dev/null
@@ -1,195 +0,0 @@
-
-
-
- 0084-feel-for-loops.dmn
-
- Compliance Level 3
- FEEL Iteration
- FEEL Arithmetic
-
-
-
- Loop over number list
-
-
-
- -
-
2
-
- -
-
3
-
- -
-
4
-
-
-
-
-
-
-
- two iteration context loop over number list
-
-
-
- 5
- 6
- 6
- 7
- 7
- 8
-
-
-
-
-
-
- loop over empty list
-
-
-
-
-
-
-
-
-
- numeric range iteration context - no delimiters
-
-
-
- 2
- 3
- 4
-
-
-
-
-
-
- numeric descending range iteration context - no delimiters
-
-
-
- 4
- 3
- 2
-
-
-
-
-
-
- numeric range iteration context - no delimiters - ascending from negative
-
-
-
- -1
- 0
- 1
-
-
-
-
-
-
- numeric range iteration context - no delimiters - descending to negative
-
-
-
- 1
- 0
- -1
-
-
-
-
-
-
- numeric range iteration context - same endpoints
-
-
-
- 1
-
-
-
-
-
-
- expressions in range
-
-
-
- 2
- 3
- 4
-
-
-
-
-
-
- special variable 'partial' doing factorial list
-
-
-
- 1
- 1
- 2
- 6
- 24
-
-
-
-
-
-
- 'in' may appear in list identifier
-
-
-
- false
- true
-
-
-
-
-
-
- for loop with second iterator depending on first iterator
-
-
-
- 1
- 2
- 3
- 4
-
-
-
-
-
-
- nested loops
-
-
-
- -
-
- 1
- 2
-
-
- -
-
- 3
- 4
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0085-decision-services/translator/standard/0085-decision-services-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0085-decision-services/translator/standard/0085-decision-services-test-01.xml
deleted file mode 100644
index 46ded1219..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0085-decision-services/translator/standard/0085-decision-services-test-01.xml
+++ /dev/null
@@ -1,247 +0,0 @@
-
-
-
-
- 0085-decision-services.dmn
-
- Compliance Level 3
- Decision Services
-
-
-
- Direct invocation: with no params
-
-
- foo
-
-
-
-
-
- Direct invocation: with an input decision
-
-
- baz
-
-
-
- foo baz
-
-
-
-
-
-
-
-
-
-
-
-
-
- Direct invocation: with two input decisions and an input data
-
-
- B
-
-
- C
-
-
- D
-
-
-
- A B C D
-
-
-
-
-
-
- with no params
-
-
-
- foo
-
-
-
-
-
-
-
-
-
- passing a single input decision param
-
-
-
- foo bar
-
-
-
-
-
-
-
-
-
-
-
-
- passing named param
-
-
-
- foo bar
-
-
-
-
-
-
-
-
-
- input param order: two input decisions and two inputData
-
-
-
- A B C D
-
-
-
-
-
-
- input named param order: two input decisions and two inputData
-
-
-
- A B C D
-
-
-
-
-
-
- decision service input decision and data do not affect global decision and data
-
-
- C
-
-
-
-
- A B
-
-
- C
-
-
- D
-
-
-
-
-
-
-
-
- decision service input decision and data do not affect global decision and data
-
-
- C
-
-
-
-
- C
-
-
- D
-
-
- A B
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0086-import/translator/standard/0086-import-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0086-import/translator/standard/0086-import-test-01.xml
deleted file mode 100644
index 6ac22a4c8..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0086-import/translator/standard/0086-import-test-01.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
- 0086-import.dmn
-
- Compliance Level 3
- DMN Import
-
-
-
- Test import ItemDefinition and BKM for invocation
-
-
- John Doe
-
-
- 21
-
-
-
-
- Hello John Doe!
-
-
-
-
-
- Test import ItemDefinition and BKM for invocation
-
-
- John Doe
-
-
- 47
-
-
-
-
- Respectfully, Hello John Doe!
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0087-chapter-11-example/translator/standard/0087-chapter-11-example-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0087-chapter-11-example/translator/standard/0087-chapter-11-example-test-01.xml
deleted file mode 100644
index 4b78ed30d..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0087-chapter-11-example/translator/standard/0087-chapter-11-example-test-01.xml
+++ /dev/null
@@ -1,451 +0,0 @@
-
-
-
- 0087-chapter-11-example.dmn
-
- Compliance Level 3
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- THROUGH
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- ACCEPT
-
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- 138
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- VERY LOW
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- NONE
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- ELIGIBLE
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 100000
-
-
- 2500
-
-
- 10000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- true
-
-
-
-
-
-
-
- 51
-
-
- M
-
-
- EMPLOYED
-
-
- false
-
-
-
- 10000
-
-
- 2500
-
-
- 3000
-
-
-
-
-
- STANDARD LOAN
-
-
- 0.08
-
-
- 36
-
-
- 100000
-
-
-
-
- false
-
-
- 600
-
-
-
-
- THROUGH
-
-
-
-
- ACCEPT
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0088-no-decision-logic/translator/standard/0088-no-decision-logic-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0088-no-decision-logic/translator/standard/0088-no-decision-logic-test-01.xml
deleted file mode 100644
index d77f64159..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0088-no-decision-logic/translator/standard/0088-no-decision-logic-test-01.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
- 0088-no-decision-logic.dmn
-
- Compliance Level 3
- Decision Services
-
-
-
- A Decision Service invocation where 1 inputDecision has no decision logic defined
-
- John Doe
-
-
- A
-
-
- A very motivated, hard-working student!
-
-
-
- John Doe is Graduated with merit with grade: A and evaluation: A very motivated, hard-working student!
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0091-local-hrefs/translator/standard/0091-local-hrefs-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0091-local-hrefs/translator/standard/0091-local-hrefs-test-01.xml
deleted file mode 100644
index a6ccc7798..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0091-local-hrefs/translator/standard/0091-local-hrefs-test-01.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
- 0091-local-hrefs.dmn
-
-
- Compliance Level 3
- FEEL Paths
- FEEL Qualified Hrefs
-
-
-
- qualified hrefs using model-local namespace
-
- input_001
-
-
-
- decision_001 input_001 bkm_001
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0092-feel-lambda/translator/standard/0092-feel-lambda-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0092-feel-lambda/translator/standard/0092-feel-lambda-test-01.xml
deleted file mode 100644
index b6365d7f2..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0092-feel-lambda/translator/standard/0092-feel-lambda-test-01.xml
+++ /dev/null
@@ -1,210 +0,0 @@
-
-
-
- 0092-feel-lambda.dmn
-
- Compliance Level 3
- FEEL Functions: lambda
-
-
-
- A decision may return a user-defined-function (UDF) lambda
-
-
- 3
-
-
-
-
-
- A decision may return a Function Definition lambda
-
-
- 4
-
-
-
-
-
- A BKM may return a UDF lambda
-
-
- 5
-
-
-
-
-
- A BKM may return a Function Definition lambda
-
-
- 6
-
-
-
-
-
- A BKM may return a UDF lambda with a closed over formal param
-
-
- 20
-
-
-
-
-
- A BKM may return a Function Definition lambda with a closed over formal param
-
-
- 30
-
-
-
-
-
- A decision may return a UDF lambda with a closed over info requirement value
-
-
- 20
-
-
-
-
- 100
-
-
-
-
-
- A lambda's named params take precedence over scope values where the lambda is created
-
-
- 6
-
-
-
-
-
- A lambda's named params take precedence over scope values where the lambda is invoked
-
-
- 200
-
-
-
-
-
- lambdas (UDF) and closures may go more than one level deep - (currying)
-
-
- 120
-
-
-
-
-
- lambdas (func defn) and closures may go more than one level deep - (currying)
-
-
- 120
-
-
-
-
-
- lambdas (with closures) may be passed as params
-
-
- 10
-
-
-
-
- 5000
-
-
-
-
-
- BKM may be passed as lambda
-
-
- 5000
-
-
-
-
-
- Decision Service may be passed as lambda
-
-
- 5000
-
-
-
-
-
-
-
-
-
-
-
- Local decision scope values may be closed over and used in built-in func
-
- a
-
-
-
-
- a
- a
- z
- z
-
-
-
-
-
-
- BKM may be passed to sort func
-
-
-
- a
- a
- z
- z
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0093-feel-at-literals/translator/standard/0093-feel-at-literals-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0093-feel-at-literals/translator/standard/0093-feel-at-literals-test-01.xml
deleted file mode 100644
index 6e7b36885..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0093-feel-at-literals/translator/standard/0093-feel-at-literals-test-01.xml
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- 0093-feel-at-literals.dmn
-
-
- invalid value has null value
-
-
-
-
-
-
-
-
- will parse date to date type
-
-
- true
-
-
-
-
-
- will parse date value
-
-
- 2019-03-31
-
-
-
-
-
- will parse to date time type
-
-
- true
-
-
-
-
-
- will parse date time value
-
-
- 2018-12-08T10:30:11
-
-
-
-
-
- will parse to date time with zone
-
-
- true
-
-
-
-
-
- will parse date time value with zone
-
-
- 2018-12-08T10:30:11@Australia/Melbourne
-
-
-
-
-
- will parse to date time value with offset
-
-
- true
-
-
-
-
-
- will parse date time value with offset
-
-
- 2018-12-08T10:30:11+11:00
-
-
-
-
-
- will parse to time type
-
-
- true
-
-
-
-
-
- will parse time value
-
-
- 10:30:11
-
-
-
-
-
- will parse to time + offset
-
-
- true
-
-
-
-
-
- will parse time value + offset
-
-
- 10:30:11+11:00
-
-
-
-
-
- will parse to time + zone
-
-
- true
-
-
-
-
-
- will parse time value + zone
-
-
- 10:30:11@Australia/Melbourne
-
-
-
-
-
- will parse to days and time duration type
-
-
- true
-
-
-
-
-
- will parse days and time duration value
-
-
- P10D
-
-
-
-
-
- will parse to years and months duration type
-
-
- true
-
-
-
-
-
- will parse years and months duration value
-
-
- P10Y
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0094-feel-product-function/translator/standard/0094-feel-product-function-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0094-feel-product-function/translator/standard/0094-feel-product-function-test-01.xml
deleted file mode 100644
index 57df29725..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0094-feel-product-function/translator/standard/0094-feel-product-function-test-01.xml
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
-
- 0094-feel-product-function.dmn
-
-
- will return product for list
-
-
- 5832
-
-
-
-
-
- will return null when empty list
-
-
-
-
-
-
-
-
- will return null when no params
-
-
-
-
-
-
-
-
- will error when null param
-
-
-
-
-
-
-
-
- will error when list item not a number
-
-
-
-
-
-
-
-
- will error when list item not a number
-
-
-
-
-
-
-
-
- will multiple decimals
-
-
- 18.75
-
-
-
-
-
- will multiply varargs number list
-
-
- 24
-
-
-
-
-
- product of single item is itself
-
-
- 6
-
-
-
-
-
- product of single item list is value of first item
-
-
- 6
-
-
-
-
-
-
- will return product for named params
-
-
- 5832
-
-
-
-
-
- will error when null named param
-
-
-
-
-
-
-
-
- will error when wrongly named param
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0095-feel-day-of-year-function/translator/standard/0095-feel-day-of-year-function-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0095-feel-day-of-year-function/translator/standard/0095-feel-day-of-year-function-test-01.xml
deleted file mode 100644
index 1cdde63b7..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0095-feel-day-of-year-function/translator/standard/0095-feel-day-of-year-function-test-01.xml
+++ /dev/null
@@ -1,190 +0,0 @@
-
-
-
- 0095-feel-day-of-year-function.dmn
-
-
- date: first day of year
-
-
- 1
-
-
-
-
-
- date: last day of year
-
-
- 365
-
-
-
-
-
- date: leap year has 366 days
-
-
- 366
-
-
-
-
-
- date: spec example
-
-
- 260
-
-
-
-
-
- date: unknown type at compile time with valid date as runtime input
-
- 1970-01-01
-
-
-
- 1
-
-
-
-
-
- date: will accept date as named param
-
-
- 260
-
-
-
-
-
- datetime: first day of year
-
-
- 1
-
-
-
-
-
- datetime: last day of year
-
-
- 365
-
-
-
-
-
- datetime: leap year has 366 days
-
-
- 366
-
-
-
-
-
- datetime: unknown type at compile time with valid datetime as runtime input
-
- 1970-01-01T10:10:10
-
-
-
- 1
-
-
-
-
-
- datetime: will accept date time as named param
-
-
- 260
-
-
-
-
-
-
- null param gives null result
-
-
-
-
-
-
-
-
- no param gives null result
-
-
-
-
-
-
-
-
- invalid param type gives null result
-
-
-
-
-
-
-
-
- null value named param gives null result
-
-
-
-
-
-
-
-
- invalid type as named param gives null result
-
-
-
-
-
-
-
-
- invalidly named param gives null result
-
-
-
-
-
-
-
-
- unknown type at compile time with invalid type as runtime input
-
- foo
-
-
-
-
-
-
-
-
-
- too many params gives null result
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0096-feel-day-of-week-function/translator/standard/0096-feel-day-of-week-function-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0096-feel-day-of-week-function/translator/standard/0096-feel-day-of-week-function-test-01.xml
deleted file mode 100644
index d6f1d13ab..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0096-feel-day-of-week-function/translator/standard/0096-feel-day-of-week-function-test-01.xml
+++ /dev/null
@@ -1,168 +0,0 @@
-
-
-
- 0096-feel-day-of-week-function.dmn
-
-
- date: day of week
-
- 2021-01-11
-
-
-
-
- Monday
-
-
- Tuesday
-
-
- Wednesday
-
-
- Thursday
-
-
- Friday
-
-
- Saturday
-
-
- Sunday
-
-
-
-
-
-
- date: will accept date as named param
-
-
- Tuesday
-
-
-
-
-
- date: day of week
-
- 2021-01-11T10:10:10
-
-
-
-
- Monday
-
-
- Tuesday
-
-
- Wednesday
-
-
- Thursday
-
-
- Friday
-
-
- Saturday
-
-
- Sunday
-
-
-
-
-
-
- date: will accept datetime as named param
-
-
- Tuesday
-
-
-
-
-
- null param gives null result
-
-
-
-
-
-
-
-
- no param gives null result
-
-
-
-
-
-
-
-
- invalid param type gives null result
-
-
-
-
-
-
-
-
- null value named param gives null result
-
-
-
-
-
-
-
-
- invalid type as named param gives null result
-
-
-
-
-
-
-
-
- invalidly named param gives null result
-
-
-
-
-
-
-
-
- unknown type at compile time with invalid type as runtime input
-
- foo
-
-
-
-
-
-
-
-
-
- too many params gives null result
-
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0097-feel-month-of-year-function/translator/standard/0097-feel-month-of-year-function-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0097-feel-month-of-year-function/translator/standard/0097-feel-month-of-year-function-test-01.xml
deleted file mode 100644
index b9fb013a5..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0097-feel-month-of-year-function/translator/standard/0097-feel-month-of-year-function-test-01.xml
+++ /dev/null
@@ -1,198 +0,0 @@
-
-
-
- 0097-feel-month-of-year-function.dmn
-
-
- date: month of year
-
- 2021-01-01
-
-
-
-
- January
-
-
- February
-
-
- March
-
-
- April
-
-
- May
-
-
- June
-
-
- July
-
-
- August
-
-
- September
-
-
- October
-
-
- November
-
-
- December
-
-
-
-
-
-
- date: will accept date as named param
-
-
- September
-
-
-
-
-
- datetime: month of year
-
- 2021-01-01T10:10:10
-
-
-
-
- January
-
-
- February
-
-
- March
-
-
- April
-
-
- May
-
-
- June
-
-
- July
-
-
- August
-
-
- September
-
-
- October
-
-
- November
-
-
- December
-
-
-
-
-
-
- date: will accept datetime as named param
-
-
- September
-
-
-
-
-
- null param gives null result
-
-
-
-
-
-
-
-
- no param gives null result
-
-
-
-
-
-
-
-
- invalid param type gives null result
-
-
-
-
-
-
-
-
- null value named param gives null result
-
-
-
-
-
-
-
-
- invalid type as named param gives null result
-
-
-
-
-
-
-
-
- invalidly named param gives null result
-
-
-
-
-
-
-
-
- unknown type at compile time with invalid type as runtime input
-
- foo
-
-
-
-
-
-
-
-
-
- too many params gives null result
-
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0098-feel-week-of-year-function/translator/standard/0098-feel-week-of-year-function-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0098-feel-week-of-year-function/translator/standard/0098-feel-week-of-year-function-test-01.xml
deleted file mode 100644
index 7b039bfd0..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0098-feel-week-of-year-function/translator/standard/0098-feel-week-of-year-function-test-01.xml
+++ /dev/null
@@ -1,212 +0,0 @@
-
-
-
- 0098-feel-week-of-year-function.dmn
-
-
-
-
- date: during year 2019-09-17
-
-
- 38
-
-
-
-
-
-
- date: @"2003-12-29"
-
-
- 1
-
-
-
-
-
-
- date: @"2003-12-31"
-
-
- 1
-
-
-
-
-
-
- date: @"2004-01-01"
-
-
- 1
-
-
-
-
-
-
- date: @"2010-01-01"
-
-
- 53
-
-
-
-
-
- date: unknown type at compile time with valid date as runtime input
-
- 1970-01-01
-
-
-
- 1
-
-
-
-
-
- date: will accept date as named param
-
-
- 38
-
-
-
-
-
- date: spec examples
-
-
-
-
- -
-
53
-
- -
-
1
-
- -
-
1
-
-
-
-
-
-
-
- datetime: first day of year
-
-
- 1
-
-
-
-
-
- datetime: unknown type at compile time with valid datetime as runtime input
-
- 1970-01-01T10:10:10
-
-
-
- 1
-
-
-
-
-
- datetime: will accept date time as named param
-
-
- 38
-
-
-
-
-
- null param gives null result
-
-
-
-
-
-
-
-
- no param gives null result
-
-
-
-
-
-
-
-
- invalid param type gives null result
-
-
-
-
-
-
-
-
- null value named param gives null result
-
-
-
-
-
-
-
-
- invalid type as named param gives null result
-
-
-
-
-
-
-
-
- invalidly named param gives null result
-
-
-
-
-
-
-
-
- unknown type at compile time with invalid type as runtime input
-
- foo
-
-
-
-
-
-
-
-
-
- too many params gives null result
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0099-arithmetic-negation/translator/standard/0099-arithmetic-negation-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0099-arithmetic-negation/translator/standard/0099-arithmetic-negation-test-01.xml
deleted file mode 100644
index a10a4c19b..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0099-arithmetic-negation/translator/standard/0099-arithmetic-negation-test-01.xml
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
- 0099-arithmetic-negation.dmn
-
-
- negate number
-
-
- -10
-
-
-
-
-
- negate negative number
-
-
- 10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- negate date gives null
-
-
-
-
-
-
-
-
- negate datetime gives null
-
-
-
-
-
-
-
-
- negate time gives null
-
-
-
-
-
-
-
-
- negate context gives null
-
-
-
-
-
-
-
-
- negate string gives null
-
-
-
-
-
-
-
-
- negate singleton list gives null
-
-
-
-
-
-
-
-
- negate range gives null
-
-
-
-
-
-
-
-
- negate expression result
-
-
- -10
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0100-arithmetic/translator/standard/0100-arithmetic-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0100-arithmetic/translator/standard/0100-arithmetic-test-01.xml
deleted file mode 100644
index a81e444fb..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0100-arithmetic/translator/standard/0100-arithmetic-test-01.xml
+++ /dev/null
@@ -1,9792 +0,0 @@
-
-
-
- 0100-arithmetic.dmn
-
-
- multiply_lhs_number_by_rhs_number_001
-
-
- 100
-
-
-
-
-
- multiply_lhs_number_by_rhs_number_002
-
-
- -100
-
-
-
-
-
- multiply_lhs_number_by_rhs_number_003
-
-
- 100
-
-
-
-
-
- multiply_lhs_number_by_rhs_number_004
-
-
- 0
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_001
-
-
- P10D
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_002
-
-
- -P10D
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_003
-
-
- P10D
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_004
-
-
- P1D
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_005
-
-
- P1DT2H
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_006
-
-
- P0D
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_007
-
-
- P6DT1H30M
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_008
-
-
- P2DT9H30M
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_001
-
-
- P10D
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_002
-
-
- -P10D
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_003
-
-
- P10D
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_004
-
-
- P1D
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_005
-
-
- P1DT2H
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_006
-
-
- P0D
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_007
-
-
- P6DT1H30M
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_008
-
-
- P2DT9H30M
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_001
-
-
- P10Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_002
-
-
- -P10Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_003
-
-
- P10Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_004
-
-
- P1Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_005
-
-
- P2Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_006
-
-
- P2Y2M
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_007
-
-
- P0Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_008
-
-
- P3M
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_009
-
-
- -P3M
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_010
-
-
- -P4Y9M
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_001
-
-
- P10Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_002
-
-
- -P10Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_003
-
-
- P10Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_004
-
-
- P1Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_005
-
-
- P2Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_006
-
-
- P2Y2M
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_007
-
-
- P0Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_008
-
-
- P3M
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_009
-
-
- -P3M
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_010
-
-
- -P4Y9M
-
-
-
-
-
- divide_lhs_number_by_rhs_number_001
-
-
- 10
-
-
-
-
-
- divide_lhs_number_by_rhs_number_002
-
-
-
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_number_001
-
-
- P1Y
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_number_002
-
-
-
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_number_003
-
-
- P4Y4M
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_number_004
-
-
- -P4Y4M
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_ymDuration_001
-
-
- 2
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_ymDuration_002
-
-
-
-
-
-
-
-
- divide_lhs_dtDuration_by_rhs_number_001
-
-
- P1D
-
-
-
-
-
- divide_lhs_dtDuration_by_rhs_number_002
-
-
-
-
-
-
-
-
- divide_lhs_dtDuration_by_rhs_number_003
-
-
- P4DT9H12M
-
-
-
-
-
- divide_lhs_dtDuration_by_rhs_dtDuration_001
-
-
- 2
-
-
-
-
-
- divide_lhs_dtDuration_by_rhs_dtDuration_002
-
-
-
-
-
-
-
-
- add_lhs_number_to_rhs_number_001
-
-
- 15
-
-
-
-
-
- add_lhs_number_to_rhs_number_002
-
-
- 5
-
-
-
-
-
- add_lhs_number_to_rhs_number_003
-
-
- -5
-
-
-
-
-
- add_lhs_number_to_rhs_number_004
-
-
- -15
-
-
-
-
-
- add_lhs_number_to_rhs_number_005
-
-
- 3.4685
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_001
-
-
- 2022-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_002
-
-
- 2021-02-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_003
-
-
- 2020-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_004
-
-
- 2020-12-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_005
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_006
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_007
-
-
- 2021-02-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_008
-
-
- 2020-12-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_009
-
-
- 2021-02-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_010
-
-
- -2021-02-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_011
-
-
- -2020-01-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_012
-
-
- -2022-12-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_013
-
-
- -2022-01-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_014
-
-
- -2021-02-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_015
-
-
- -2020-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_016
-
-
- -2022-12-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_017
-
-
- -2022-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_001
-
-
- 2022-01-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_002
-
-
- 2021-02-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_003
-
-
- 2020-01-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_004
-
-
- 2020-12-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_005
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_006
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_007
-
-
- 2021-02-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_008
-
-
- 2020-12-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_009
-
-
- 2021-02-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_010
-
-
- -2021-02-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_011
-
-
- -2020-01-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_012
-
-
- -2022-12-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_013
-
-
- -2022-01-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_014
-
-
- -2021-02-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_015
-
-
- -2020-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_016
-
-
- -2022-12-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_017
-
-
- -2022-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_001
-
-
- 2021-01-13T11:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_002
-
-
- 2021-01-13T11:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_003
-
-
- 2021-01-02T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_004
-
-
- 2021-01-01T11:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_005
-
-
- 2020-12-31T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_006
-
-
- 2021-01-01T09:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_007
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_008
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_009
-
-
- 2021-01-02T00:00:01
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_010
-
-
- 2021-01-01T23:59:59
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_011
-
-
- 2021-01-01T11:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_012
-
-
- 2021-01-01T09:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_013
-
-
- 2021-01-13T11:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_014
-
-
- -2021-01-01T11:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_015
-
-
- -2021-01-02T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_016
-
-
- -2021-01-01T09:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_017
-
-
- -2022-12-31T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_018
-
-
- -2021-01-01T11:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_019
-
-
- -2021-01-02T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_020
-
-
- -2021-01-01T09:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_021
-
-
- -2022-12-31T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_001
-
-
- 2021-01-13T11:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_002
-
-
- 2021-01-13T11:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_003
-
-
- 2021-01-02T10:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_004
-
-
- 2021-01-01T11:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_005
-
-
- 2020-12-31T10:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_006
-
-
- 2021-01-01T09:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_007
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_008
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_009
-
-
- 2021-01-02T00:00:01
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_010
-
-
- 2021-01-01T23:59:59
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_011
-
-
- 2021-01-01T11:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_012
-
-
- 2021-01-01T09:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_013
-
-
- 2021-01-13T11:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_014
-
-
- -2021-01-01T11:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_015
-
-
- -2021-01-02T10:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_016
-
-
- -2021-01-01T09:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_017
-
-
- -2022-12-31T10:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_018
-
-
- -2021-01-01T11:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_019
-
-
- -2021-01-02T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_020
-
-
- -2021-01-01T09:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_021
-
-
- -2022-12-31T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_date_to_rhs_ymDuration_001
-
-
- 2022-01-01
-
-
-
-
-
- add_lhs_date_to_rhs_ymDuration_002
-
-
- 2021-02-01
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_date_001
-
-
- 2022-01-01
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_date_002
-
-
- 2021-02-01
-
-
-
-
-
- add_lhs_date_to_rhs_dtDuration_001
-
-
- 2021-01-02
-
-
-
-
-
- Date + 1.5 days (in hours) gives date + 1 day
-
-
- 2021-01-02
-
-
-
-
-
- Date + 2 days (in hours) gives date + 2 days
-
-
- 2021-01-03
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_date_001
-
-
- 2021-01-02
-
-
-
-
-
- Date + 1.5 days (in hours) gives date + 1 day
-
-
- 2021-01-02
-
-
-
-
-
- Date + 2 days (in hours) gives date + 2 days
-
-
- 2021-01-03
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_001
-
-
- 11:15:00
-
-
-
-
-
- Time + days duration gives time
-
-
- 10:15:00
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_003
-
-
- 10:15:00+11:00
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_004
-
-
- 10:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_005
-
-
- 10:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_006
-
-
- 11:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_007
-
-
- 09:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_001
-
-
- 11:15:00
-
-
-
-
-
- Time + days duration gives time
-
-
- 10:15:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_003
-
-
- 10:15:00+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_004
-
-
- 10:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_005
-
-
- 10:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_006
-
-
- 11:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_007
-
-
- 09:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_001
-
-
- P1Y2M
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_002
-
-
- P10M
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_003
-
-
- -P10M
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_004
-
-
- -P1Y2M
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_005
-
-
- P1Y
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_006
-
-
- P1Y
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dtDuration_001
-
-
- P3D
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dtDuration_002
-
-
- P2D
-
-
-
-
-
- add_lhs_string_to_rhs_string_001
-
-
- foobar
-
-
-
-
-
- add_lhs_string_to_rhs_string_002
-
-
- 11
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_001
-
-
- 5
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_002
-
-
- 15
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_003
-
-
- -15
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_004
-
-
- -5
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_005
-
-
- 0.8889
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_006
-
-
- 1.3579
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_007
-
-
- -0.8889
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dateAndTime_001
-
-
- P1D
-
-
-
-
-
- Both or neither values must have zone info
-
-
-
-
-
-
-
-
- Both or neither values must have zone info
-
-
-
-
-
-
-
-
- Both or neither values must have zone info
-
-
-
-
-
-
-
-
- Both or neither values must have zone info
-
-
-
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dateAndTime_006
-
-
- P1D
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dateAndTime_007
-
-
- P1DT5H
-
-
-
-
-
- Offset datetime is UTC and datetime has zone
-
-
- P1D
-
-
-
-
-
- Offset datetime is UTC and datetime has no zone
-
-
-
-
-
-
-
-
- Date is implicitly UTC 00:00:00
-
-
- P0D
-
-
-
-
-
- year differences are expressed as days and time duration
-
-
- P9498D
-
-
-
-
-
- year differences are expressed as days and time duration
-
-
- P9498DT5H
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_001
-
-
- 2020-01-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_002
-
-
- 2020-12-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_003
-
-
- 2022-01-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_004
-
-
- 2021-02-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_005
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_006
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_007
-
-
- 2020-01-01T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_008
-
-
- 2020-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_009
-
-
- -2022-12-01T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_010
-
-
- -2022-01-01T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_011
-
-
- -2021-02-01T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_012
-
-
- -2020-01-01T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_013
-
-
- -2022-12-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_014
-
-
- -2022-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_015
-
-
- -2021-02-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_016
-
-
- -2020-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- Both must have zone info and date implies UTC
-
-
-
-
-
-
-
-
- datetime has zone and date implies UTC
-
-
- P1DT9H10M10S
-
-
-
-
-
- Offset datetime is UTC and date implies UTC
-
-
- P1DT9H10M10S
-
-
-
-
-
- year differences are expressed as days and time duration
-
-
- P9498DT9H10M10S
-
-
-
-
-
- year differences are expressed as days and time duration
-
-
- P9498DT9H10M10S
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_001
-
-
- 2020-12-31T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_002
-
-
- 2021-01-01T09:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_003
-
-
- 2021-01-01T23:00:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_004
-
-
- 2020-12-31T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_005
-
-
- 2021-01-01T23:59:59
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_006
-
-
- 2021-01-02T00:00:01
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_007
-
-
- 2020-12-31T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_008
-
-
- 2021-01-01T23:59:59
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_009
-
-
- 2021-01-02T00:00:01
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_010
-
-
- -2021-01-01T09:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_011
-
-
- -2022-12-31T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_012
-
-
- -2021-01-01T11:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_013
-
-
- -2021-01-02T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_014
-
-
- -2021-01-01T09:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_015
-
-
- -2022-12-31T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_016
-
-
- -2021-01-01T11:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_017
-
-
- -2021-01-02T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dateAndTime_001
-
-
-
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dateAndTime_002
-
-
- P1DT49M50S
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dateAndTime_003
-
-
- P1DT49M50S
-
-
-
-
-
- Date is implicitly UTC 00:00:00
-
-
- P0D
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dateAndTime_005
-
-
- P9498DT49M50S
-
-
-
-
-
- subtract_lhs_date_minus_rhs_date_001
-
-
- P1D
-
-
-
-
-
- subtract_lhs_date_minus_rhs_date_002
-
-
- P9498D
-
-
-
-
-
- subtract_lhs_date_minus_rhs_date_003
-
-
- P9498D
-
-
-
-
-
- subtract_lhs_date_minus_rhs_ymDuration_001
-
-
- 2020-01-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_ymDuration_002
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_ymDuration_003
-
-
- 2020-12-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_ymDuration_004
-
-
- 2022-01-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_001
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_002
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_003
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_004
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_005
-
-
- 2021-01-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_006
-
-
- 2021-01-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_007
-
-
- 2021-01-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_008
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_009
-
-
- 2020-12-31
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_010
-
-
- 2021-01-03
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_011
-
-
- 2021-01-03
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_012
-
-
- 2020-02-29
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_001
-
-
- PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_002
-
-
- -PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_003
-
-
- -PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_004
-
-
- PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_005
-
-
- -PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_006
-
-
- PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_001
-
-
- 09:10:10
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_002
-
-
- 10:10:10
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_003
-
-
- 10:10:10+11:00
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_004
-
-
- 10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_005
-
-
- 09:10:10+11:00
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_006
-
-
- 09:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_001
-
-
- P10M
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_002
-
-
- -P1Y2M
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_003
-
-
- -P10M
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_004
-
-
- P1Y2M
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_005
-
-
- P1Y
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_006
-
-
- P1Y
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_001
-
-
- PT22H
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_002
-
-
- -P1DT2H
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_003
-
-
- -PT22H
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_004
-
-
- P1DT2H
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_005
-
-
- P1D
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_006
-
-
- P1D
-
-
-
-
-
- exponent_lhs_number_exp_rhs_number_001
-
-
- 25
-
-
-
-
-
- exponent_lhs_number_exp_rhs_number_002
-
-
- 0.04
-
-
-
-
-
- exponent is left associative
-
-
- 3486784401
-
-
-
-
-
- -a**b parses as (-a)**b not -(a**b)
-
-
- 25
-
-
-
-
-
- decimal exponent
-
-
- 60.58617166606
-
-
-
-
-
- decimal exponent permitted if integer
-
-
- 25
-
-
-
-
-
- base may be a decimal number
-
-
- 30.25
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0103-feel-is-function/translator/standard/0103-feel-is-function-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0103-feel-is-function/translator/standard/0103-feel-is-function-test-01.xml
deleted file mode 100644
index 3b649c655..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0103-feel-is-function/translator/standard/0103-feel-is-function-test-01.xml
+++ /dev/null
@@ -1,459 +0,0 @@
-
-
-
- 0103-feel-is-function.dmn
-
-
- number: is equal
-
-
- true
-
-
-
-
-
- number: is not equal
-
-
- false
-
-
-
-
-
- boolean: is equal
-
-
- true
-
-
-
-
-
- boolean: is not equal
-
-
- false
-
-
-
-
-
- string: is equal
-
-
- true
-
-
-
-
-
- string: is not equal
-
-
- false
-
-
-
-
-
- date: is equal
-
-
- true
-
-
-
-
-
- date: is not equal when year differs
-
-
- false
-
-
-
-
-
- date: is not equal when months differs
-
-
- false
-
-
-
-
-
- date: is not equal when days differs
-
-
- false
-
-
-
-
-
- date: is not equal to UTC zero time of same date
-
-
- false
-
-
-
-
-
- time: is equal
-
-
- true
-
-
-
-
-
- time: is equal with same offset
-
-
- true
-
-
-
-
-
- time: is equal with same timezone
-
-
- true
-
-
-
-
-
- time: is equal - UTC zone and UTC offset
-
-
- true
-
-
-
-
-
- time: is not equal - no zone time vs UTC zone time
-
-
- false
-
-
-
-
-
- time: is not equal - @ zone time with same offset zone time
-
-
- false
-
-
-
-
-
- time: is not equal - @ GMT vs zero offset zone time
-
-
- false
-
-
-
-
-
- time: is not equal when hour differs
-
-
- false
-
-
-
-
-
- time: is not equal when minute differs
-
-
- false
-
-
-
-
-
- time: is not equal when second differs
-
-
- false
-
-
-
-
-
- time: is not equal when offset differs
-
-
- false
-
-
-
-
-
- time: is not equal when zone differs but offset is same
-
-
- false
-
-
-
-
-
- time: is not equal when equivalent time in different zones
-
-
- false
-
-
-
-
-
- datetime: is equal with same date and time
-
-
- true
-
-
-
-
-
- datetime: is equal with same date and time and offset
-
-
- true
-
-
-
-
-
- datetime: is equal with same date and time and timezone
-
-
- true
-
-
-
-
-
- datetime: not equals despite being equal points in time
-
-
- false
-
-
-
-
-
- datetime: not equals despite being equal points in time
-
-
- false
-
-
-
-
-
- datetime: not equals despite being equal points in time
-
-
- false
-
-
-
-
-
- datetime: not equals when year differs
-
-
- false
-
-
-
-
-
- datetime: not equals when month differs
-
-
- false
-
-
-
-
-
- datetime: not equals when day differs
-
-
- false
-
-
-
-
-
- datetime: not equals when hour differs
-
-
- false
-
-
-
-
-
- datetime: not equals when minute differs
-
-
- false
-
-
-
-
-
- datetime: not equals when seconds differs
-
-
- false
-
-
-
-
-
- datetime: not equals when offset differs
-
-
- false
-
-
-
-
-
- datetime: not equals when region differs even though offset is same
-
-
- false
-
-
-
-
-
- datetime: is equal - UTC zone vs UTC offset
-
-
- true
-
-
-
-
-
- datetime: is not equal - zone vs offset - DST
-
-
- false
-
-
-
-
-
- datetime: is not equal - zone vs offset - outside DST
-
-
- false
-
-
-
-
-
- days and time duration: same stuff is equal
-
-
- true
-
-
-
-
-
- days and time duration: same duration in different units is equal
-
-
- true
-
-
-
-
-
- years and months duration: not a permitted type
-
-
- true
-
-
-
-
-
- years and months duration: same duration in different units is equal
-
-
- true
-
-
-
-
-
- zero durations are not equal
-
-
- false
-
-
-
-
-
- correct names params okay
-
-
- true
-
-
-
-
-
- value1 param is nullable
-
-
- false
-
-
-
-
-
- value2 param is nullable
-
-
- false
-
-
-
-
-
- will return null when unknown named params
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/0104-allowed-values/translator/standard/0104-allowed-values-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/0104-allowed-values/translator/standard/0104-allowed-values-test-01.xml
deleted file mode 100644
index a720ca853..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/0104-allowed-values/translator/standard/0104-allowed-values-test-01.xml
+++ /dev/null
@@ -1,1224 +0,0 @@
-
-
-
- 0104-allowed-values.dmn
-
-
-
-
- complies with string domain
-
-
- foo
-
-
-
-
-
- does not comply with string domain
-
-
-
-
-
-
-
-
- input value complies with input string domain
-
- foo
-
-
-
- foo
-
-
-
-
-
- input value does not comply with input string domain
-
- baz
-
-
-
-
-
-
-
-
-
-
- complies with copy of type string domain
-
-
- foo
-
-
-
-
-
-
- does not comply with copy string domain
-
-
-
-
-
-
-
-
-
-
- complies with number domain
-
-
- 17
-
-
-
-
-
- does not comply with number domain
-
-
-
-
-
-
-
-
- input value complies with number domain
-
- 17
-
-
-
- 17
-
-
-
-
-
- input value does not comply with number domain
-
- 20
-
-
-
-
-
-
-
-
-
-
-
- complies with date domain
-
-
- 1960-02-01
-
-
-
-
-
- does not comply with date domain
-
-
-
-
-
-
-
-
- input value complies with date domain
-
- 1960-02-01
-
-
-
- 1960-02-01
-
-
-
-
-
- input value does not comply with date domain
-
- 1970-01-01
-
-
-
-
-
-
-
-
-
-
-
- complies with dateTime domain
-
-
- 1960-01-01T00:00:01
-
-
-
-
-
- does not comply with dateTime domain
-
-
-
-
-
-
-
-
- input value complies with dateTime domain
-
- 1960-01-01T00:00:01
-
-
-
- 1960-01-01T00:00:01
-
-
-
-
-
- input value does not comply with dateTime domain
-
- 1970-01-01T00:00:00
-
-
-
-
-
-
-
-
-
-
-
- complies with time domain
-
-
- 10:00:00
-
-
-
-
-
- does not comply with time domain
-
-
-
-
-
-
-
-
- input value complies with time domain
-
- 10:00:00
-
-
-
- 10:00:00
-
-
-
-
-
- input value does not comply with time domain
-
- 13:00:00
-
-
-
-
-
-
-
-
-
-
-
- complies with ymd domain
-
-
- P2Y
-
-
-
-
-
- does not comply with ymd domain
-
-
-
-
-
-
-
-
- input value complies with ymd domain
-
- P2Y
-
-
-
- P2Y
-
-
-
-
-
- input value does not comply with ymd domain
-
- P6Y
-
-
-
-
-
-
-
-
-
-
-
- complies with dtd domain
-
-
- P2D
-
-
-
-
-
- does not comply with dtd domain
-
-
-
-
-
-
-
-
- input value complies with dtd domain
-
- P2D
-
-
-
- P2D
-
-
-
-
-
- input value does not comply with dtd domain
-
- P6D
-
-
-
-
-
-
-
-
-
-
-
- complies with string domain for 'overridden' base type
-
-
- left
-
-
-
-
-
- does not comply with string domain for 'overridden' base type
-
-
-
-
-
-
-
-
-
-
- BKM argument complies with parameter domain
-
- foo
-
-
-
- foo
-
-
-
-
-
- BKM argument does not comply with parameter domain
-
- baz
-
-
-
-
-
-
-
-
-
- BKM return type complies with encapsulatedLogic typed function return type domain
-
- foo
-
-
-
- foo
-
-
-
-
-
- BKM return type does not comply with encapsulatedLogic typed typed function return type domain
-
- baz
-
-
-
-
-
-
-
-
-
- BKM return type complies with variable typeRef function return type domain
-
- foo
-
-
-
- foo
-
-
-
-
-
- BKM return type does not comply with variable typRef function return type domain
-
- baz
-
-
-
-
-
-
-
-
-
-
-
- Decision Service return value complies with return type domain
-
- foo
-
-
-
- foo
-
-
-
-
-
- Decision Service return value does not comply with return type domain
-
- baz
-
-
-
-
-
-
-
-
-
- Decision Service param value complies with param type domain
-
- foo
-
-
-
- foo
-
-
-
-
-
- Decision Service param value does not comply with param type domain
-
- baz
-
-
-
-
-
-
-
-
-
-
-
- lambda argument complies with parameter domain
-
- foo
-
-
-
- foo
-
-
-
-
-
- lambda argument does not comply with parameter domain
-
- baz
-
-
-
-
-
-
-
-
-
- function definition return result complies with function result domain
-
- foo
-
-
-
- foo
-
-
-
-
-
- function definition return result does not comply with function result domain
-
- baz
-
-
-
-
-
-
-
-
-
-
-
- function definition argument complies with parameter domain
-
- foo
-
-
-
- foo
-
-
-
-
-
- function definition argument does not comply with parameter domain
-
- baz
-
-
-
-
-
-
-
-
-
- function definition return result complies with function result domain
-
- foo
-
-
-
- foo
-
-
-
-
-
- function definition return result does not comply with function result domain
-
- baz
-
-
-
-
-
-
-
-
-
-
-
- complies with list type with constrained item type
-
-
-
- -
-
foo
-
- -
-
foo
-
- -
-
bar
-
-
-
-
-
-
-
- does not comply with list type with constrained item type
-
-
-
-
-
-
-
-
- singleton value complies with list type with constrained item type
-
-
-
- -
-
foo
-
-
-
-
-
-
-
-
- singleton value does not comply with list type with constrained item type
-
-
-
-
-
-
-
-
-
- singleton list complies with constrained item type
-
-
- foo
-
-
-
-
-
-
- singleton list does not comply with constained item type
-
-
-
-
-
-
-
-
-
-
- complies with list type with constrained item type
-
-
-
- -
-
foo
-
- -
-
foo
-
- -
-
bar
-
-
-
-
-
-
-
- does not comply with list type with constrained item type
-
-
-
-
-
-
-
-
-
-
- complies with context type with constrained property type
-
-
-
- foo
-
-
-
-
-
-
- does not comply with context type with constrained property type
-
-
-
-
-
-
-
-
- complies with context type with constrained property type
-
-
-
- foo
-
-
-
-
-
-
- does not comply with context type with constrained property type
-
-
-
-
-
-
-
-
- complies with context type with constrained list property type
-
-
-
-
- -
-
foo
-
- -
-
foo
-
- -
-
bar
-
-
-
-
-
-
-
-
- does not comply with context type with constrained list property type
-
-
-
-
-
-
-
-
- does not comply with context type with constrained property type - no singleton list unbox
-
-
-
-
-
-
-
-
- does not comply with context type with constrained property type - no singleton list boxing
-
-
-
-
-
-
-
-
- context input data complies with constrained input type
-
-
- foo
-
-
-
-
-
- foo
-
-
-
-
-
-
- context input data does not comply with constrained input type
-
-
- baz
-
-
-
-
-
-
-
-
-
-
-
-
- literal expression typeRef complies with type
-
- foo
-
-
-
- foo
-
-
-
-
-
- literal expression typeRef does not comply with type
-
- baz
-
-
-
-
-
-
-
-
-
-
-
- context expression typeRef complies with type
-
- foo
-
-
-
-
- foo
-
-
-
-
-
-
- context expression typeRef does not comply with type
-
- baz
-
-
-
-
-
-
-
-
-
-
-
- contextentry expression typeRef complies with type
-
- foo
-
-
-
-
- foo
-
-
-
-
-
-
- contextentry expression typeRef does not comply with type
-
- baz
-
-
-
-
-
-
-
-
-
-
-
-
-
- list expression typeRef complies with type
-
- foo
-
-
-
-
- -
-
foo
-
-
-
-
-
-
-
- list expression typeRef does not comply with type
-
- baz
-
-
-
-
- -
-
-
-
-
-
-
-
-
- list input data complies with constrained input type
-
-
- -
-
foo
-
-
-
-
-
-
- -
-
foo
-
-
-
-
-
-
-
- list input data does not comply with constrained input type
-
-
- -
-
baz
-
-
-
-
-
-
-
-
-
-
-
-
-
- relation expression typeRef complies with type
-
- foo
-
-
-
-
- -
-
- foo
-
-
-
-
-
-
-
-
- relation expression typeRef does not comply with type
-
- baz
-
-
-
-
-
-
-
-
-
-
-
- relation row expression complies with column typeRef
-
- foo
-
-
-
-
- -
-
- foo
-
-
-
-
-
-
-
-
- relation row expression does not comply with column typeRef
-
- baz
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
- DT single output complies with DT typeRef
-
- foo
-
-
-
- foo
-
-
-
-
-
- DT single output complies with DT typeRef
-
- baz
-
-
-
-
-
-
-
-
-
- DT multiple output values complies with output entry typeRef
-
- foo
-
-
-
-
- foo
-
-
- foo
-
-
-
-
-
-
- DT multiple output values do not comply with output entry typeRef
-
- baz
-
-
-
-
-
-
-
- baz
-
-
-
-
-
-
- DT multiple output values complies with output clause typeRef
-
- foo
-
-
-
-
- foo
-
-
- foo
-
-
-
-
-
-
- DT multiple output values do not comply with output clause typeRef
-
- baz
-
-
-
-
-
-
-
- baz
-
-
-
-
-
-
- DT input value complies with input clause clause inputValues
-
- foo
-
-
-
- complies
-
-
-
-
-
- DT input value does not comply with input clause clause inputValues
-
- baz
-
-
-
- does not comply
-
-
-
-
-
- DT output value complies with output clause clause outputValues
-
- foo
-
-
-
- foo
-
-
-
-
-
- DT output value does not comply with output clause clause outputValues
-
- baz
-
-
-
-
-
-
-
-
-
-
-
- Invocation binding value complies with binding type
-
- foo
-
-
-
- foo
-
-
-
-
-
- Invocation binding value does not comply with binding type
-
- baz
-
-
-
-
-
-
-
-
-
- Invocation return value complies with invocation return type
-
- foo
-
-
-
- foo
-
-
-
-
-
- Invocation return value does not comply with invocation return type
-
- baz
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.3/cl3/1130-feel-interval/translator/standard/1130-feel-interval-test-01.xml b/dmn-test-cases/standard/tck/1.3/cl3/1130-feel-interval/translator/standard/1130-feel-interval-test-01.xml
deleted file mode 100644
index 049ec00b9..000000000
--- a/dmn-test-cases/standard/tck/1.3/cl3/1130-feel-interval/translator/standard/1130-feel-interval-test-01.xml
+++ /dev/null
@@ -1,487 +0,0 @@
-
- 1130-feel-interval.dmn
-
- Compliance Level 3
- FEEL: Interval functions
-
-
-
-
-
- true
-
-
- false
-
-
- true
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- true
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- true
-
-
- false
-
-
- true
-
-
- false
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- true
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- false
-
-
- false
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- true
-
-
- false
-
-
- true
-
-
- true
-
-
- true
-
-
- false
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
- false
-
-
- false
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- true
-
-
- false
-
-
- false
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- true
-
-
- false
-
-
- true
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- true
-
-
- false
-
-
- true
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- true
-
-
- false
-
-
- false
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- true
-
-
- false
-
-
- false
-
-
- true
-
-
- true
-
-
- false
-
-
- false
-
-
-
-
-
-
-
-
- true
-
-
- false
-
-
- false
-
-
- false
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/0070-feel-instance-of/translator/standard/0070-feel-instance-of-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/0070-feel-instance-of/translator/standard/0070-feel-instance-of-test-01.xml
deleted file mode 100644
index dc2056c9c..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/0070-feel-instance-of/translator/standard/0070-feel-instance-of-test-01.xml
+++ /dev/null
@@ -1,1596 +0,0 @@
-
-
-
- 0070-feel-instance-of.dmn
-
- Compliance Level 3
- Data Type: any
-
-
-
- null instance of Any is false
-
-
- false
-
-
-
-
-
- null instance of number is false
-
-
- false
-
-
-
-
-
- null instance of string is false
-
-
- false
-
-
-
-
-
- null instance of boolean is false
-
-
- false
-
-
-
-
-
- null instance of date is false
-
-
- false
-
-
-
-
-
- null instance of time is false
-
-
- false
-
-
-
-
-
- null instance of date and time is false
-
-
- false
-
-
-
-
-
- null instance of list is false
-
-
- false
-
-
-
-
-
- null instance of years and months duration is false
-
-
- false
-
-
-
-
-
- null instance of days and time duration is false
-
-
- false
-
-
-
-
-
-
-
- null instance of function is false
-
-
- false
-
-
-
-
-
- number instance of Any is true
-
-
- true
-
-
-
-
-
- number instance of number is true
-
-
- true
-
-
-
-
-
- number instance of string is false
-
-
- false
-
-
-
-
-
- number instance of boolean is false
-
-
- false
-
-
-
-
-
- number instance of date is false
-
-
- false
-
-
-
-
-
- number instance of time is false
-
-
- false
-
-
-
-
-
- number instance of date and time is false
-
-
- false
-
-
-
-
-
- number instance of list is false
-
-
- false
-
-
-
-
-
- number instance of years and months duration is false
-
-
- false
-
-
-
-
-
- number instance of days and time duration is false
-
-
- false
-
-
-
-
-
-
-
- number instance of function is false
-
-
- false
-
-
-
-
-
- type conformance does not take into account allowedValues
-
-
- true
-
-
-
-
-
-
- string instance of Any is true
-
-
- true
-
-
-
-
-
- string instance of number is false
-
-
- false
-
-
-
-
-
- string instance of string is true
-
-
- true
-
-
-
-
-
- string instance of boolean is false
-
-
- false
-
-
-
-
-
- string instance of date is false
-
-
- false
-
-
-
-
-
- string instance of time is false
-
-
- false
-
-
-
-
-
- string instance of date and time is false
-
-
- false
-
-
-
-
-
- string instance of list is false
-
-
- false
-
-
-
-
-
- string instance of years and months duration is false
-
-
- false
-
-
-
-
-
- string instance of days and time duration is false
-
-
- false
-
-
-
-
-
-
-
- string instance of function is false
-
-
- false
-
-
-
-
-
- string type conformance does not take into account allowedValues
-
-
- true
-
-
-
-
-
-
- boolean instance of Any is true
-
-
- true
-
-
-
-
-
- boolean instance of number is false
-
-
- false
-
-
-
-
-
- boolean instance of string is false
-
-
- false
-
-
-
-
-
- boolean instance of boolean is true
-
-
- true
-
-
-
-
-
- boolean instance of date is false
-
-
- false
-
-
-
-
-
- boolean instance of time is false
-
-
- false
-
-
-
-
-
- boolean instance of date and time is false
-
-
- false
-
-
-
-
-
- boolean instance of list is false
-
-
- false
-
-
-
-
-
- boolean instance of years and months duration is false
-
-
- false
-
-
-
-
-
- boolean instance of days and time duration is false
-
-
- false
-
-
-
-
-
-
-
- boolean instance of function is false
-
-
- false
-
-
-
-
-
- date instance of Any is true
-
-
- true
-
-
-
-
-
- date instance of number is false
-
-
- false
-
-
-
-
-
- date instance of string is false
-
-
- false
-
-
-
-
-
-
- date instance of boolean is false
-
-
- false
-
-
-
-
-
- date instance of date is true
-
-
- true
-
-
-
-
-
- date instance of time is false
-
-
- false
-
-
-
-
-
- date instance of date and time is false - spec 1.2 "Examples of equivalence
- and conformance relations" table shows date and confirming to date
- and time - which I believe is wrong - it is the other way around
-
-
- false
-
-
-
-
-
- date instance of list is false
-
-
- false
-
-
-
-
-
- date instance of years and months duration is false
-
-
- false
-
-
-
-
-
- date instance of days and time duration is false
-
-
- false
-
-
-
-
-
-
-
- date instance of function is false
-
-
- false
-
-
-
-
-
- time instance of Any is true
-
-
- true
-
-
-
-
-
- time instance of number is false
-
-
- false
-
-
-
-
-
- time instance of string is false
-
-
- false
-
-
-
-
-
- time instance of boolean is false
-
-
- false
-
-
-
-
-
- time instance of date is false
-
-
- false
-
-
-
-
-
- time instance of time is true
-
-
- true
-
-
-
-
-
- time instance of date and time is false
-
-
- false
-
-
-
-
-
- time instance of list is false
-
-
- false
-
-
-
-
-
- time instance of years and months duration is false
-
-
- false
-
-
-
-
-
- time instance of days and time duration is false
-
-
- false
-
-
-
-
-
-
-
- time instance of function is false
-
-
- false
-
-
-
-
-
- list instance of Any is true
-
-
- true
-
-
-
-
-
- list instance of number is false
-
-
- false
-
-
-
-
-
- list instance of string is false
-
-
- false
-
-
-
-
-
- list instance of boolean is false
-
-
- false
-
-
-
-
-
- list instance of date is false
-
-
- false
-
-
-
-
-
- list instance of time is false
-
-
- false
-
-
-
-
-
- list instance of date and time is false
-
-
- false
-
-
-
-
-
- list instance of list is rrue
-
-
- true
-
-
-
-
-
- list instance of years and months duration is false
-
-
- false
-
-
-
-
-
- list instance of days and time duration is false
-
-
- false
-
-
-
-
-
-
-
- list instance of function is false
-
-
- false
-
-
-
-
-
- list instance with same itemtype is true
-
-
- true
-
-
-
-
-
- list instance with different itemtypes is list Any
-
-
- true
-
-
-
-
-
- empty list is list Any
-
-
- true
-
-
-
-
-
- list instance with different item types is not a list of (say) number
-
-
- false
-
-
-
-
-
- singleton list is not instance of element type
-
-
- false
-
-
-
-
-
- primitive is not instance of list of same type
-
-
- false
-
-
-
-
-
- list is an instance of inline list of itemdefinition context type
-
-
- true
-
-
-
-
-
- list is not an instance of inline list of inline context type
-
-
- false
-
-
-
-
-
- list is an instance of inline list of inline context type
-
-
- true
-
-
-
-
-
-
-
- years and months duration instance of Any is true
-
-
- true
-
-
-
-
-
- years and months duration instance of number is false
-
-
- false
-
-
-
-
-
- years and months duration instance of string is false
-
-
- false
-
-
-
-
-
- years and months duration instance of boolean is false
-
-
- false
-
-
-
-
-
- years and months duration instance of date is false
-
-
- false
-
-
-
-
-
- years and months duration instance of time is false
-
-
- false
-
-
-
-
-
- years and months duration instance of date and time is false
-
-
- false
-
-
-
-
-
- years and months duration instance of list is false
-
-
- false
-
-
-
-
-
- years and months duration instance of years and months duration is true
-
-
- true
-
-
-
-
-
- years and months duration instance of days and time duration is false
-
-
- false
-
-
-
-
-
-
-
- years and months duration instance of function is false
-
-
- false
-
-
-
-
-
- days and time duration instance of Any is true
-
-
- true
-
-
-
-
-
- days and time duration instance of number is false
-
-
- false
-
-
-
-
-
- days and time duration instance of string is false
-
-
- false
-
-
-
-
-
- days and time duration instance of boolean is false
-
-
- false
-
-
-
-
-
- days and time duration instance of date is false
-
-
- false
-
-
-
-
-
- days and time duration instance of time is false
-
-
- false
-
-
-
-
-
- days and time duration instance of date and time is false
-
-
- false
-
-
-
-
-
- days and time durationinstance of list is false
-
-
- false
-
-
-
-
-
- days and time duration instance of years and months duration is false
-
-
- false
-
-
-
-
-
- days and time duration instance of days and time duration is true
-
-
- true
-
-
-
-
-
-
-
- days and time duration instance of function is false
-
-
- false
-
-
-
-
-
- context instance of Any is true
-
-
- true
-
-
-
-
-
- context instance of number is false
-
-
- false
-
-
-
-
-
- context instance of string is false
-
-
- false
-
-
-
-
-
- context instance of boolean is false
-
-
- false
-
-
-
-
-
- context instance of date is false
-
-
- false
-
-
-
-
-
- context instance of time is false
-
-
- false
-
-
-
-
-
- context instance of date and time is false
-
-
- false
-
-
-
-
-
- context instance of list is false
-
-
- false
-
-
-
-
-
- context instance of years and months duration is false
-
-
- false
-
-
-
-
-
- context instance of days and time duration is false
-
-
- false
-
-
-
-
-
-
-
- context instance of function is false
-
-
- false
-
-
-
-
-
- context instance of context with same property names is true
-
-
- true
-
-
-
-
-
- context instance with superset of type property names is true
-
-
- true
-
-
-
-
-
- context instance with subset of type property names is false
-
-
- false
-
-
-
-
-
- context instance with same property names but different types is false
-
-
- false
-
-
-
-
-
-
-
- context instance conforms to equivalent type
-
-
- true
-
-
-
-
-
- context with null value conforms to specific type
-
-
- true
-
-
-
-
-
- context with multiple properties conforms to type with equivalent single property
-
-
- true
-
-
-
-
-
- context with multiple properties conforms to type with equivalent multiple properties
-
-
- true
-
-
-
-
-
- context with non-conforming property does not match type
-
-
- false
-
-
-
-
-
- context with nested context conforms to type
-
-
- true
-
-
-
-
-
- context with nested context dot not conform to type
-
-
- false
-
-
-
-
-
- function instance of Any is true
-
-
- true
-
-
-
-
-
- function instance of number is false
-
-
- false
-
-
-
-
-
- function instance of string is false
-
-
- false
-
-
-
-
-
- function instance of boolean is false
-
-
- false
-
-
-
-
-
- function instance of date is false
-
-
- false
-
-
-
-
-
- function instance of time is false
-
-
- false
-
-
-
-
-
- function instance of date and time is false
-
-
- false
-
-
-
-
-
- function instance of list is false
-
-
- false
-
-
-
-
-
- function instance of years and months duration is false
-
-
- false
-
-
-
-
-
- function instance of days and time duration is false
-
-
- false
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/0072-feel-in/translator/standard/0072-feel-in-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/0072-feel-in/translator/standard/0072-feel-in-test-01.xml
deleted file mode 100644
index b940c9dec..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/0072-feel-in/translator/standard/0072-feel-in-test-01.xml
+++ /dev/null
@@ -1,2664 +0,0 @@
-
-
-
- 0072-feel-in.dmn
-
- Compliance Level 3
- Feel : any
- FEEL Conditionals
- Data Type: any
-
-
-
-
-
- number: e1 in [e2,e3,…] (endpoints)
-
-
- true
-
-
-
-
-
- number: e1 in [e2,e3,…] (endpoints)
-
-
- false
-
-
-
-
-
- number: e1 in [e2,e3,…] (ranges)
-
-
- true
-
-
-
-
-
- number: e1 in [e2,e3,…] (ranges)
-
-
- false
-
-
-
-
-
- number: e1 in <=e2
-
-
- true
-
-
-
-
-
- number: e1 in <=e2
-
-
- true
-
-
-
-
-
- number: e1 in <=e2
-
-
- false
-
-
-
-
-
- number: e1 in <e2
-
-
- true
-
-
-
-
-
- number: e1 in <e2
-
-
- false
-
-
-
-
-
- number: e1 in >=e2
-
-
- true
-
-
-
-
-
- number: e1 in >=e2
-
-
- true
-
-
-
-
-
- number: e1 in >=e2
-
-
- false
-
-
-
-
-
- number: e1 in >e2
-
-
- true
-
-
-
-
-
- number: e1 in >e2
-
-
- false
-
-
-
-
-
- number: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- number: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- number: e1 in (e2..e3)
-
-
- true
-
-
-
-
-
- number: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- number: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- number: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- number: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- number: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- number: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- number: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- number: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- number: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- number: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- number: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- number: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- number: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- number: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- number: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- number: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- number: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- number: e1 in e2
-
-
- true
-
-
-
-
-
- number: e1 in unary tests
-
-
- true
-
-
-
-
-
- number: e1 in unary tests
-
-
- false
-
-
-
-
-
- string: e1 in [e2,e3,…] (endpoints)
-
-
- true
-
-
-
-
-
- string: e1 in [e2,e3,…] (endpoints)
-
-
- false
-
-
-
-
-
- string: e1 in [e2,e3,…] (ranges)
-
-
- true
-
-
-
-
-
- string: e1 in [e2,e3,…] (ranges)
-
-
- false
-
-
-
-
-
- string: e1 in <=e2
-
-
- true
-
-
-
-
-
- string: e1 in <=e2
-
-
- true
-
-
-
-
-
- string: e1 in <=e2
-
-
- false
-
-
-
-
-
- string: e1 in <e2
-
-
- true
-
-
-
-
-
- string: e1 in <e2
-
-
- false
-
-
-
-
-
- string: e1 in >=e2
-
-
- true
-
-
-
-
-
- string: e1 in >=e2
-
-
- true
-
-
-
-
-
- string: e1 in >=e2
-
-
- false
-
-
-
-
-
- string: e1 in >e2
-
-
- true
-
-
-
-
-
- string: e1 in >e2
-
-
- false
-
-
-
-
-
- string: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- string: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- string: e1 in (e2..e3)
-
-
- true
-
-
-
-
-
- string: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- string: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- string: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- string: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- string: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- string: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- string: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- string: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- string: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- string: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- string: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- string: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- string: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- string: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- string: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- string: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- string: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- string: e1 in e2
-
-
- true
-
-
-
-
-
- string: e1 in unary tests
-
-
- true
-
-
-
-
-
- string: e1 in unary tests
-
-
- false
-
-
-
-
-
-
- boolean: e1 in [e2,e3,…] (endpoints)
-
-
- true
-
-
-
-
-
- boolean: e1 in [e2,e3,…] (endpoints)
-
-
- false
-
-
-
-
-
- boolean: e1 in e2
-
-
- true
-
-
-
-
-
- boolean: e1 in unary tests
-
-
- true
-
-
-
-
-
- boolean: e1 in unary tests
-
-
- false
-
-
-
-
-
- date: e1 in [e2,e3,…] (endpoints)
-
-
- true
-
-
-
-
-
- date: e1 in [e2,e3,…] (endpoints)
-
-
- false
-
-
-
-
-
- date: e1 in [e2,e3,…] (ranges)
-
-
- true
-
-
-
-
-
- date: e1 in [e2,e3,…] (ranges)
-
-
- false
-
-
-
-
-
- date: e1 in <=e2
-
-
- true
-
-
-
-
-
- date: e1 in <=e2
-
-
- true
-
-
-
-
-
- date: e1 in <=e2
-
-
- false
-
-
-
-
-
- date: e1 in <e2
-
-
- true
-
-
-
-
-
- date: e1 in <e2
-
-
- false
-
-
-
-
-
- date: e1 in >=e2
-
-
- true
-
-
-
-
-
- date: e1 in >=e2
-
-
- true
-
-
-
-
-
- string: e1 in >=e2
-
-
- false
-
-
-
-
-
- date: e1 in >e2
-
-
- true
-
-
-
-
-
- string: e1 in >e2
-
-
- false
-
-
-
-
-
- date: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- date: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- date: e1 in (e2..e3)
-
-
- true
-
-
-
-
-
- date: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- date: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- date: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- date: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- date: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- date: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- date: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- date: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- date: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- date: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- date: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- date: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- date: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- date: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- date: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- date: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- date: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- date: e1 in e2
-
-
- true
-
-
-
-
-
- date: e1 in unary tests
-
-
- true
-
-
-
-
-
- date: e1 in unary tests
-
-
- false
-
-
-
-
-
- time: e1 in [e2,e3,…] (endpoints)
-
-
- true
-
-
-
-
-
- time: e1 in [e2,e3,…] (endpoints)
-
-
- false
-
-
-
-
-
- time: e1 in [e2,e3,…] (ranges)
-
-
- true
-
-
-
-
-
- time: e1 in [e2,e3,…] (ranges)
-
-
- false
-
-
-
-
-
- time: e1 in <=e2
-
-
- true
-
-
-
-
-
- time: e1 in <=e2
-
-
- true
-
-
-
-
-
- time: e1 in <=e2
-
-
- false
-
-
-
-
-
- time: e1 in <e2
-
-
- true
-
-
-
-
-
- time: e1 in <e2
-
-
- false
-
-
-
-
-
- time: e1 in >=e2
-
-
- true
-
-
-
-
-
- time: e1 in >=e2
-
-
- true
-
-
-
-
-
- time: e1 in >=e2
-
-
- false
-
-
-
-
-
- time: e1 in >e2
-
-
- true
-
-
-
-
-
- time: e1 in >e2
-
-
- false
-
-
-
-
-
- time: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- time: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- time: e1 in (e2..e3)
-
-
- true
-
-
-
-
-
- time: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- time: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- time: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- time: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- time: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- time: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- time: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- time: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- time: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- time: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- time: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- time: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- time: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- time: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- time: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- time: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- time: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- time: e1 in e2
-
-
- true
-
-
-
-
-
- time: e1 in unary tests
-
-
- true
-
-
-
-
-
- time: e1 in unary tests
-
-
- false
-
-
-
-
-
- dateTime: e1 in [e2,e3,…] (endpoints)
-
-
- true
-
-
-
-
-
- dateTime: e1 in [e2,e3,…] (endpoints)
-
-
- false
-
-
-
-
-
- dateTime: e1 in [e2,e3,…] (ranges)
-
-
- true
-
-
-
-
-
- dateTime: e1 in [e2,e3,…] (ranges)
-
-
- false
-
-
-
-
-
- dateTime: e1 in <=e2
-
-
- true
-
-
-
-
-
- dateTime: e1 in <=e2
-
-
- true
-
-
-
-
-
- dateTime: e1 in <=e2
-
-
- false
-
-
-
-
-
- dateTime: e1 in <e2
-
-
- true
-
-
-
-
-
- dateTime: e1 in <e2
-
-
- false
-
-
-
-
-
- dateTime: e1 in >=e2
-
-
- true
-
-
-
-
-
- dateTime: e1 in >=e2
-
-
- true
-
-
-
-
-
- dateTime: e1 in >=e2
-
-
- false
-
-
-
-
-
- dateTime: e1 in >e2
-
-
- true
-
-
-
-
-
- dateTime: e1 in >e2
-
-
- false
-
-
-
-
-
- dateTime: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- dateTime: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- dateTime: e1 in (e2..e3)
-
-
- true
-
-
-
-
-
- dateTime: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- dateTime: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- dateTime: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- dateTime: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- dateTime: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- dateTime: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- dateTime: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- dateTime: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- dateTime: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- dateTime: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- dateTime: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- dateTime: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- dateTime: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- dateTime: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- dateTime: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- dateTime: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- dateTime: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- dateTime: e1 in e2
-
-
- true
-
-
-
-
-
- dateTime: e1 in unary tests
-
-
- true
-
-
-
-
-
- dateTime: e1 in unary tests
-
-
- false
-
-
-
-
-
- list: e1 in [e2,e3,…] (endpoints)
-
-
- true
-
-
-
-
-
- list: e1 in [e2,e3,…] (endpoints)
-
-
- false
-
-
-
-
-
-
-
- list: e1 in e2
-
-
- true
-
-
-
-
-
- list: e1 in e2
-
-
- false
-
-
-
-
-
-
-
- list: e1 in unary tests
-
-
- false
-
-
-
-
-
-
-
- context: e1 in [e2,e3,…] (endpoints)
-
-
- true
-
-
-
-
-
- context: e1 in [e2,e3,…] (endpoints)
-
-
- false
-
-
-
-
-
- context: e1 in e2
-
-
- true
-
-
-
-
-
- context: e1 in unary tests
-
-
- true
-
-
-
-
-
- context: e1 in unary tests
-
-
- false
-
-
-
-
-
- ym_duration: e1 in [e2,e3,…] (endpoints)
-
-
- true
-
-
-
-
-
- ym_duration: e1 in [e2,e3,…] (endpoints)
-
-
- false
-
-
-
-
-
- ym_duration: e1 in [e2,e3,…] (ranges)
-
-
- true
-
-
-
-
-
- ym_duration: e1 in [e2,e3,…] (ranges)
-
-
- false
-
-
-
-
-
- ym_duration: e1 in <=e2
-
-
- true
-
-
-
-
-
- ym_duration: e1 in <=e2
-
-
- true
-
-
-
-
-
- ym_duration: e1 in <=e2
-
-
- false
-
-
-
-
-
- ym_duration: e1 in <e2
-
-
- true
-
-
-
-
-
- ym_duration: e1 in <e2
-
-
- false
-
-
-
-
-
- ym_duration: e1 in >=e2
-
-
- true
-
-
-
-
-
- ym_duration: e1 in >=e2
-
-
- true
-
-
-
-
-
- ym_duration: e1 in >=e2
-
-
- false
-
-
-
-
-
- ym_duration: e1 in >e2
-
-
- true
-
-
-
-
-
- ym_duration: e1 in >e2
-
-
- false
-
-
-
-
-
- ym_duration: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- ym_duration: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- ym_duration: e1 in (e2..e3)
-
-
- true
-
-
-
-
-
- ym_duration: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- ym_duration: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- ym_duration: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- ym_duration: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- ym_duration: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- ym_duration: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- ym_duration: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- ym_duration: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- ym_duration: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- ym_duration: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- ym_duration: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- ym_duration: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- ym_duration: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- ym_duration: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- ym_duration: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- ym_duration: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- ym_duration: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- ym_duration: e1 in e2
-
-
- true
-
-
-
-
-
- ym_duration: e1 in unary tests
-
-
- true
-
-
-
-
-
- ym_duration: e1 in unary tests
-
-
- false
-
-
-
-
-
- dt_duration: e1 in [e2,e3,…] (endpoints)
-
-
- true
-
-
-
-
-
- dt_duration: e1 in [e2,e3,…] (endpoints)
-
-
- false
-
-
-
-
-
- dt_duration: e1 in [e2,e3,…] (ranges)
-
-
- true
-
-
-
-
-
- dt_duration: e1 in [e2,e3,…] (ranges)
-
-
- false
-
-
-
-
-
- dt_duration: e1 in <=e2
-
-
- true
-
-
-
-
-
- dt_duration: e1 in <=e2
-
-
- true
-
-
-
-
-
- dt_duration: e1 in <=e2
-
-
- false
-
-
-
-
-
- dt_duration: e1 in <e2
-
-
- true
-
-
-
-
-
- dt_duration: e1 in <e2
-
-
- false
-
-
-
-
-
- dt_duration: e1 in >=e2
-
-
- true
-
-
-
-
-
- dt_duration: e1 in >=e2
-
-
- true
-
-
-
-
-
- dt_duration: e1 in >=e2
-
-
- false
-
-
-
-
-
- dt_duration: e1 in >e2
-
-
- true
-
-
-
-
-
- dt_duration: e1 in >e2
-
-
- false
-
-
-
-
-
- dt_duration: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- dt_duration: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- dt_duration: e1 in (e2..e3)
-
-
- true
-
-
-
-
-
- dt_duration: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- dt_duration: e1 in (e2..e3)
-
-
- false
-
-
-
-
-
- dt_duration: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- dt_duration: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- dt_duration: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- dt_duration: e1 in (e2..e3]
-
-
- true
-
-
-
-
-
- dt_duration: e1 in (e2..e3]
-
-
- false
-
-
-
-
-
- dt_duration: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- dt_duration: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- dt_duration: e1 in [e2..e3)
-
-
- true
-
-
-
-
-
- dt_duration: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- dt_duration: e1 in [e2..e3)
-
-
- false
-
-
-
-
-
- dt_duration: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- dt_duration: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- dt_duration: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- dt_duration: e1 in [e2..e3]
-
-
- true
-
-
-
-
-
- dt_duration: e1 in [e2..e3]
-
-
- false
-
-
-
-
-
- dt_duration: e1 in e2
-
-
- true
-
-
-
-
-
- dt_duration: e1 in unary tests
-
-
- true
-
-
-
-
-
- dt_duration: e1 in unary tests
-
-
- false
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/0082-feel-coercion/translator/standard/0082-feel-coercion-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/0082-feel-coercion/translator/standard/0082-feel-coercion-test-01.xml
deleted file mode 100644
index 360ece0f1..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/0082-feel-coercion/translator/standard/0082-feel-coercion-test-01.xml
+++ /dev/null
@@ -1,489 +0,0 @@
-
-
-
- 0082-feel-coercion.dmn
-
- Compliance Level 3
- Feel : any
- FEEL TYpe Conformance
-
-
-
- type mismatch - decision return value is null coerced
-
-
-
-
-
-
-
-
-
-
-
- list type mismatch - decision return value is null coerced
-
-
-
-
-
-
-
-
- type permitted - conforming context
-
-
-
- foo
-
-
- bar
-
-
- 10
-
-
-
-
-
-
- context type mismatch - decision return value is null coerced
-
-
-
-
-
-
-
-
-
- decision type is list but return val is non-conforming val - coercion to null
-
-
-
-
-
-
-
-
- decision returns singleton list value but type is not a list - coercion list to val
-
-
- foo
-
-
-
-
-
- decision type is value but return val is non-conforming singleton list - coercion to null
-
-
-
-
-
-
-
-
- decision type is list but return val null - null cannot be coerced so no singleton list coercion
-
-
-
-
-
-
-
-
- pass conforming context type to bkm
-
-
- true
-
-
-
-
-
- pass non-conforming type to bkm - bkm is never invoked
-
-
-
-
-
-
-
-
- BKM logic returns non-conforming value to bkm variable typeRef - bk result is null coerced
-
-
-
-
-
-
-
-
-
- bkm type is list and bkm logic returns non-conforming (non-list) value - coercion to null
-
-
-
-
-
-
-
-
- bkm type is list and bkm logic returns null - null cannot be coerced to result remains null
-
-
-
-
-
-
-
-
- bkm type is non-list and bkm logic returns singleton list of conforming value - coercion list to val
-
-
- 10
-
-
-
-
-
- bkm type is non-list and bkm logic returns singleton list of non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- decision has invocation call to bkm passing
- non-conforming context - bkm is never invoked
-
-
-
-
-
-
-
-
- decision has invocation of bkm passing valid param, but bkm return value
- does not match explicit type on invocation defn - null coercion of result
- of invocation
-
-
-
-
-
-
-
-
-
- invocation type is a list and invoked bkm returns single non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- Ref https://github.com/dmn-tck/tck/pull/238#issuecomment-497744315
-
-
-
-
-
-
-
-
-
-
- invocation type is a non-list and invoked bkm returns singleton array of non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- invocation has binding name that is not a valid formal param name -
- function is never invoked
-
-
-
-
-
-
-
-
- function definition has typed param and is passed a conforming type - no coercion
-
-
- 10
-
-
-
-
-
- function definition has typed param and is passed non-conforming type - coercion to null
-
-
-
-
-
-
-
-
- literal expression has typeRef and result is conforming value - no coercion
-
-
- 10
-
-
-
-
-
- literal expression has typeRef and result is non-conforming value - coercion to null
-
-
-
-
-
-
-
-
-
- literal expression has list typeRef and result is non-conforming value - coercion to null
-
-
-
-
-
-
-
-
- literal expression has non-list typeRef and result is conforming singleton list - coercion to value
-
-
- 10
-
-
-
-
-
- literal expression has non-list typeRef and result is non-conforming singleton list - coercion to null
-
-
-
-
-
-
-
-
- Direct invocation: Decision service returns context that does not confirm to type
-
-
-
-
-
-
-
-
- Direct invocation: Decision service has string input but we pass incorrect type - input is coerced to null
-
- 10
-
-
-
-
-
-
-
-
-
- Indirect invocation: Decision Service has string input but we pass incorrect type - input is coerced to null
-
-
-
-
-
-
-
-
- Direct invocation: Decision service has string input but we pass in singleton list of correct type - input is coerced to string
-
-
- -
-
foo
-
-
-
-
-
- foo
-
-
-
-
-
- Indirect invocation: Decision service has string input but we pass in singleton list of correct type - input is coerced to string
-
-
- foo
-
-
-
-
-
-
-
- Value of context() equivalentTo the decision typeRef
-
-
-
- 1
-
-
- 2
-
-
-
-
-
-
- Value of context() conformsTo the decision typeRef
-
-
-
- 1
-
-
- 2
-
-
-
-
-
-
- Value of context() does not conformsTo the decision typeRef
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/0085-decision-services/translator/standard/0085-decision-services-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/0085-decision-services/translator/standard/0085-decision-services-test-01.xml
deleted file mode 100644
index dd033cecd..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/0085-decision-services/translator/standard/0085-decision-services-test-01.xml
+++ /dev/null
@@ -1,233 +0,0 @@
-
-
-
-
- 0085-decision-services.dmn
-
- Compliance Level 3
- Decision Services
-
-
-
- Direct invocation: with no params
-
-
- foo
-
-
-
-
-
- Direct invocation: with an input decision
-
-
- baz
-
-
-
- foo baz
-
-
-
-
-
-
-
- Direct invocation: with an input decision but supplying no param
-
-
-
-
-
-
-
-
-
- Direct invocation: with an input decision - but supplying a null value
-
-
-
-
-
-
-
-
-
-
-
-
- Direct invocation: with an input decision - but supplying an incorrect param type
-
-
- 1234
-
-
-
-
-
-
-
-
-
- Direct invocation: with two input decisions and an input data
-
-
- B
-
-
- C
-
-
- D
-
-
-
- A B C D
-
-
-
-
-
-
- with no params
-
-
-
- foo
-
-
-
-
-
-
- passing a param when DS has no params
-
-
-
-
-
-
-
-
-
- passing a single input decision param
-
-
-
- foo bar
-
-
-
-
-
-
- passing a single input decision param with incorrect type - decision service is never invoked
-
-
-
-
-
-
-
-
-
- passing no param when DS expects one
-
-
-
-
-
-
-
-
-
- passing named param
-
-
-
- foo bar
-
-
-
-
-
-
- passing badly named param
-
-
-
-
-
-
-
-
-
- input param order: two input decisions and two inputData
-
-
-
- A B C D
-
-
-
-
-
-
- input named param order: two input decisions and two inputData
-
-
-
- A B C D
-
-
-
-
-
-
- decision service input decision and data do not affect global decision and data
-
-
- C
-
-
-
-
- A B
-
-
- C
-
-
- D
-
-
-
-
-
-
-
-
- decision service input decision and data do not affect global decision and data
-
-
- C
-
-
-
-
- C
-
-
- D
-
-
- A B
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/0086-import/translator/standard/0086-import-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/0086-import/translator/standard/0086-import-test-01.xml
deleted file mode 100644
index 6ac22a4c8..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/0086-import/translator/standard/0086-import-test-01.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
- 0086-import.dmn
-
- Compliance Level 3
- DMN Import
-
-
-
- Test import ItemDefinition and BKM for invocation
-
-
- John Doe
-
-
- 21
-
-
-
-
- Hello John Doe!
-
-
-
-
-
- Test import ItemDefinition and BKM for invocation
-
-
- John Doe
-
-
- 47
-
-
-
-
- Respectfully, Hello John Doe!
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/0092-feel-lambda/translator/standard/0092-feel-lambda-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/0092-feel-lambda/translator/standard/0092-feel-lambda-test-01.xml
deleted file mode 100644
index dd94fac79..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/0092-feel-lambda/translator/standard/0092-feel-lambda-test-01.xml
+++ /dev/null
@@ -1,204 +0,0 @@
-
-
-
- 0092-feel-lambda.dmn
-
- Compliance Level 3
- FEEL Functions: lambda
-
-
-
- A decision may return a user-defined-function (UDF) lambda
-
-
- 3
-
-
-
-
-
- A decision may return a Function Definition lambda
-
-
- 4
-
-
-
-
-
- A BKM may return a UDF lambda
-
-
- 5
-
-
-
-
-
- A BKM may return a Function Definition lambda
-
-
- 6
-
-
-
-
-
- A BKM may return a UDF lambda with a closed over formal param
-
-
- 20
-
-
-
-
-
- A BKM may return a Function Definition lambda with a closed over formal param
-
-
- 30
-
-
-
-
-
- A decision may return a UDF lambda with a closed over info requirement value
-
-
- 20
-
-
-
-
- 100
-
-
-
-
-
- A lambda's named params take precedence over scope values where the lambda is created
-
-
- 6
-
-
-
-
-
- A lambda's named params take precedence over scope values where the lambda is invoked
-
-
- 200
-
-
-
-
-
- lambdas (UDF) and closures may go more than one level deep - (currying)
-
-
- 120
-
-
-
-
-
- lambdas (func defn) and closures may go more than one level deep - (currying)
-
-
- 120
-
-
-
-
-
- lambdas (with closures) may be passed as params
-
-
- 10
-
-
-
-
- 5000
-
-
-
-
-
- BKM may be passed as lambda
-
-
- 5000
-
-
-
-
-
- Decision Service may be passed as lambda
-
-
- 5000
-
-
-
-
-
- Built-in function may be passed as lambda
-
-
- 25
-
-
-
-
-
- Invoking passed lambda with incorrect params still gives error
-
-
-
-
-
-
-
-
- Local decision scope values may be closed over and used in built-in func
-
- a
-
-
-
-
- a
- a
- z
- z
-
-
-
-
-
-
- BKM may be passed to sort func
-
-
-
- a
- a
- z
- z
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/0100-arithmetic/translator/standard/0100-arithmetic-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/0100-arithmetic/translator/standard/0100-arithmetic-test-01.xml
deleted file mode 100644
index a81e444fb..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/0100-arithmetic/translator/standard/0100-arithmetic-test-01.xml
+++ /dev/null
@@ -1,9792 +0,0 @@
-
-
-
- 0100-arithmetic.dmn
-
-
- multiply_lhs_number_by_rhs_number_001
-
-
- 100
-
-
-
-
-
- multiply_lhs_number_by_rhs_number_002
-
-
- -100
-
-
-
-
-
- multiply_lhs_number_by_rhs_number_003
-
-
- 100
-
-
-
-
-
- multiply_lhs_number_by_rhs_number_004
-
-
- 0
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_001
-
-
- P10D
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_002
-
-
- -P10D
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_003
-
-
- P10D
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_004
-
-
- P1D
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_005
-
-
- P1DT2H
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_006
-
-
- P0D
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_007
-
-
- P6DT1H30M
-
-
-
-
-
- multiply_lhs_number_by_rhs_dtDuration_008
-
-
- P2DT9H30M
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_001
-
-
- P10D
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_002
-
-
- -P10D
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_003
-
-
- P10D
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_004
-
-
- P1D
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_005
-
-
- P1DT2H
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_006
-
-
- P0D
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_007
-
-
- P6DT1H30M
-
-
-
-
-
- multiply_lhs_dtDuration_by_rhs_number_008
-
-
- P2DT9H30M
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_001
-
-
- P10Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_002
-
-
- -P10Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_003
-
-
- P10Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_004
-
-
- P1Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_005
-
-
- P2Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_006
-
-
- P2Y2M
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_007
-
-
- P0Y
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_008
-
-
- P3M
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_009
-
-
- -P3M
-
-
-
-
-
- multiply_lhs_number_by_rhs_ymDuration_010
-
-
- -P4Y9M
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_001
-
-
- P10Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_002
-
-
- -P10Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_003
-
-
- P10Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_004
-
-
- P1Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_005
-
-
- P2Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_006
-
-
- P2Y2M
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_007
-
-
- P0Y
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_008
-
-
- P3M
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_009
-
-
- -P3M
-
-
-
-
-
- multiply_lhs_ymDuration_by_rhs_number_010
-
-
- -P4Y9M
-
-
-
-
-
- divide_lhs_number_by_rhs_number_001
-
-
- 10
-
-
-
-
-
- divide_lhs_number_by_rhs_number_002
-
-
-
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_number_001
-
-
- P1Y
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_number_002
-
-
-
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_number_003
-
-
- P4Y4M
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_number_004
-
-
- -P4Y4M
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_ymDuration_001
-
-
- 2
-
-
-
-
-
- divide_lhs_ymDuration_by_rhs_ymDuration_002
-
-
-
-
-
-
-
-
- divide_lhs_dtDuration_by_rhs_number_001
-
-
- P1D
-
-
-
-
-
- divide_lhs_dtDuration_by_rhs_number_002
-
-
-
-
-
-
-
-
- divide_lhs_dtDuration_by_rhs_number_003
-
-
- P4DT9H12M
-
-
-
-
-
- divide_lhs_dtDuration_by_rhs_dtDuration_001
-
-
- 2
-
-
-
-
-
- divide_lhs_dtDuration_by_rhs_dtDuration_002
-
-
-
-
-
-
-
-
- add_lhs_number_to_rhs_number_001
-
-
- 15
-
-
-
-
-
- add_lhs_number_to_rhs_number_002
-
-
- 5
-
-
-
-
-
- add_lhs_number_to_rhs_number_003
-
-
- -5
-
-
-
-
-
- add_lhs_number_to_rhs_number_004
-
-
- -15
-
-
-
-
-
- add_lhs_number_to_rhs_number_005
-
-
- 3.4685
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_001
-
-
- 2022-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_002
-
-
- 2021-02-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_003
-
-
- 2020-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_004
-
-
- 2020-12-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_005
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_006
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_007
-
-
- 2021-02-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_008
-
-
- 2020-12-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_009
-
-
- 2021-02-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_010
-
-
- -2021-02-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_011
-
-
- -2020-01-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_012
-
-
- -2022-12-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_013
-
-
- -2022-01-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_014
-
-
- -2021-02-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_015
-
-
- -2020-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_016
-
-
- -2022-12-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_ymDuration_017
-
-
- -2022-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_001
-
-
- 2022-01-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_002
-
-
- 2021-02-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_003
-
-
- 2020-01-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_004
-
-
- 2020-12-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_005
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_006
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_007
-
-
- 2021-02-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_008
-
-
- 2020-12-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_009
-
-
- 2021-02-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_010
-
-
- -2021-02-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_011
-
-
- -2020-01-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_012
-
-
- -2022-12-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_013
-
-
- -2022-01-01T10:10:10+11:00
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_014
-
-
- -2021-02-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_015
-
-
- -2020-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_016
-
-
- -2022-12-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_dateAndTime_017
-
-
- -2022-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_001
-
-
- 2021-01-13T11:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_002
-
-
- 2021-01-13T11:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_003
-
-
- 2021-01-02T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_004
-
-
- 2021-01-01T11:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_005
-
-
- 2020-12-31T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_006
-
-
- 2021-01-01T09:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_007
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_008
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_009
-
-
- 2021-01-02T00:00:01
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_010
-
-
- 2021-01-01T23:59:59
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_011
-
-
- 2021-01-01T11:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_012
-
-
- 2021-01-01T09:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_013
-
-
- 2021-01-13T11:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_014
-
-
- -2021-01-01T11:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_015
-
-
- -2021-01-02T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_016
-
-
- -2021-01-01T09:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_017
-
-
- -2022-12-31T10:10:10+11:00
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_018
-
-
- -2021-01-01T11:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_019
-
-
- -2021-01-02T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_020
-
-
- -2021-01-01T09:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dateAndTime_to_rhs_dtDuration_021
-
-
- -2022-12-31T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_001
-
-
- 2021-01-13T11:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_002
-
-
- 2021-01-13T11:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_003
-
-
- 2021-01-02T10:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_004
-
-
- 2021-01-01T11:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_005
-
-
- 2020-12-31T10:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_006
-
-
- 2021-01-01T09:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_007
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_008
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_009
-
-
- 2021-01-02T00:00:01
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_010
-
-
- 2021-01-01T23:59:59
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_011
-
-
- 2021-01-01T11:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_012
-
-
- 2021-01-01T09:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_013
-
-
- 2021-01-13T11:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_014
-
-
- -2021-01-01T11:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_015
-
-
- -2021-01-02T10:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_016
-
-
- -2021-01-01T09:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_017
-
-
- -2022-12-31T10:10:10+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_018
-
-
- -2021-01-01T11:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_019
-
-
- -2021-01-02T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_020
-
-
- -2021-01-01T09:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dateAndTime_021
-
-
- -2022-12-31T10:10:10@Australia/Melbourne
-
-
-
-
-
- add_lhs_date_to_rhs_ymDuration_001
-
-
- 2022-01-01
-
-
-
-
-
- add_lhs_date_to_rhs_ymDuration_002
-
-
- 2021-02-01
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_date_001
-
-
- 2022-01-01
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_date_002
-
-
- 2021-02-01
-
-
-
-
-
- add_lhs_date_to_rhs_dtDuration_001
-
-
- 2021-01-02
-
-
-
-
-
- Date + 1.5 days (in hours) gives date + 1 day
-
-
- 2021-01-02
-
-
-
-
-
- Date + 2 days (in hours) gives date + 2 days
-
-
- 2021-01-03
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_date_001
-
-
- 2021-01-02
-
-
-
-
-
- Date + 1.5 days (in hours) gives date + 1 day
-
-
- 2021-01-02
-
-
-
-
-
- Date + 2 days (in hours) gives date + 2 days
-
-
- 2021-01-03
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_001
-
-
- 11:15:00
-
-
-
-
-
- Time + days duration gives time
-
-
- 10:15:00
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_003
-
-
- 10:15:00+11:00
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_004
-
-
- 10:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_005
-
-
- 10:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_006
-
-
- 11:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_time_to_rhs_dtDuration_007
-
-
- 09:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_001
-
-
- 11:15:00
-
-
-
-
-
- Time + days duration gives time
-
-
- 10:15:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_003
-
-
- 10:15:00+11:00
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_004
-
-
- 10:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_005
-
-
- 10:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_006
-
-
- 11:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_time_007
-
-
- 09:15:00@Australia/Melbourne
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_001
-
-
- P1Y2M
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_002
-
-
- P10M
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_003
-
-
- -P10M
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_004
-
-
- -P1Y2M
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_005
-
-
- P1Y
-
-
-
-
-
- add_lhs_ymDuration_to_rhs_ymDuration_006
-
-
- P1Y
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dtDuration_001
-
-
- P3D
-
-
-
-
-
- add_lhs_dtDuration_to_rhs_dtDuration_002
-
-
- P2D
-
-
-
-
-
- add_lhs_string_to_rhs_string_001
-
-
- foobar
-
-
-
-
-
- add_lhs_string_to_rhs_string_002
-
-
- 11
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_001
-
-
- 5
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_002
-
-
- 15
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_003
-
-
- -15
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_004
-
-
- -5
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_005
-
-
- 0.8889
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_006
-
-
- 1.3579
-
-
-
-
-
- subtract_lhs_number_minus_rhs_number_007
-
-
- -0.8889
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dateAndTime_001
-
-
- P1D
-
-
-
-
-
- Both or neither values must have zone info
-
-
-
-
-
-
-
-
- Both or neither values must have zone info
-
-
-
-
-
-
-
-
- Both or neither values must have zone info
-
-
-
-
-
-
-
-
- Both or neither values must have zone info
-
-
-
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dateAndTime_006
-
-
- P1D
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dateAndTime_007
-
-
- P1DT5H
-
-
-
-
-
- Offset datetime is UTC and datetime has zone
-
-
- P1D
-
-
-
-
-
- Offset datetime is UTC and datetime has no zone
-
-
-
-
-
-
-
-
- Date is implicitly UTC 00:00:00
-
-
- P0D
-
-
-
-
-
- year differences are expressed as days and time duration
-
-
- P9498D
-
-
-
-
-
- year differences are expressed as days and time duration
-
-
- P9498DT5H
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_001
-
-
- 2020-01-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_002
-
-
- 2020-12-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_003
-
-
- 2022-01-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_004
-
-
- 2021-02-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_005
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_006
-
-
- 2021-01-01T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_007
-
-
- 2020-01-01T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_008
-
-
- 2020-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_009
-
-
- -2022-12-01T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_010
-
-
- -2022-01-01T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_011
-
-
- -2021-02-01T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_012
-
-
- -2020-01-01T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_013
-
-
- -2022-12-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_014
-
-
- -2022-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_015
-
-
- -2021-02-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_ymDuration_016
-
-
- -2020-01-01T10:10:10@Australia/Melbourne
-
-
-
-
-
- Both must have zone info and date implies UTC
-
-
-
-
-
-
-
-
- datetime has zone and date implies UTC
-
-
- P1DT9H10M10S
-
-
-
-
-
- Offset datetime is UTC and date implies UTC
-
-
- P1DT9H10M10S
-
-
-
-
-
- year differences are expressed as days and time duration
-
-
- P9498DT9H10M10S
-
-
-
-
-
- year differences are expressed as days and time duration
-
-
- P9498DT9H10M10S
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_001
-
-
- 2020-12-31T10:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_002
-
-
- 2021-01-01T09:10:10
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_003
-
-
- 2021-01-01T23:00:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_004
-
-
- 2020-12-31T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_005
-
-
- 2021-01-01T23:59:59
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_006
-
-
- 2021-01-02T00:00:01
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_007
-
-
- 2020-12-31T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_008
-
-
- 2021-01-01T23:59:59
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_009
-
-
- 2021-01-02T00:00:01
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_010
-
-
- -2021-01-01T09:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_011
-
-
- -2022-12-31T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_012
-
-
- -2021-01-01T11:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_013
-
-
- -2021-01-02T10:10:10+11:00
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_014
-
-
- -2021-01-01T09:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_015
-
-
- -2022-12-31T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_016
-
-
- -2021-01-01T11:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_dateAndTime_minus_rhs_dtDuration_017
-
-
- -2021-01-02T10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dateAndTime_001
-
-
-
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dateAndTime_002
-
-
- P1DT49M50S
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dateAndTime_003
-
-
- P1DT49M50S
-
-
-
-
-
- Date is implicitly UTC 00:00:00
-
-
- P0D
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dateAndTime_005
-
-
- P9498DT49M50S
-
-
-
-
-
- subtract_lhs_date_minus_rhs_date_001
-
-
- P1D
-
-
-
-
-
- subtract_lhs_date_minus_rhs_date_002
-
-
- P9498D
-
-
-
-
-
- subtract_lhs_date_minus_rhs_date_003
-
-
- P9498D
-
-
-
-
-
- subtract_lhs_date_minus_rhs_ymDuration_001
-
-
- 2020-01-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_ymDuration_002
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_ymDuration_003
-
-
- 2020-12-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_ymDuration_004
-
-
- 2022-01-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_001
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_002
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_003
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_004
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_005
-
-
- 2021-01-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_006
-
-
- 2021-01-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_007
-
-
- 2021-01-02
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_008
-
-
- 2021-01-01
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_009
-
-
- 2020-12-31
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_010
-
-
- 2021-01-03
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_011
-
-
- 2021-01-03
-
-
-
-
-
- subtract_lhs_date_minus_rhs_dtDuration_012
-
-
- 2020-02-29
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_001
-
-
- PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_002
-
-
- -PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_003
-
-
- -PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_004
-
-
- PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_005
-
-
- -PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_time_006
-
-
- PT1H
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_001
-
-
- 09:10:10
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_002
-
-
- 10:10:10
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_003
-
-
- 10:10:10+11:00
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_004
-
-
- 10:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_005
-
-
- 09:10:10+11:00
-
-
-
-
-
- subtract_lhs_time_minus_rhs_dtDuration_006
-
-
- 09:10:10@Australia/Melbourne
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_001
-
-
- P10M
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_002
-
-
- -P1Y2M
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_003
-
-
- -P10M
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_004
-
-
- P1Y2M
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_005
-
-
- P1Y
-
-
-
-
-
- subtract_lhs_ymDuration_minus_rhs_ymDuration_006
-
-
- P1Y
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_001
-
-
- PT22H
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_002
-
-
- -P1DT2H
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_003
-
-
- -PT22H
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_004
-
-
- P1DT2H
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_005
-
-
- P1D
-
-
-
-
-
- subtract_lhs_dtDuration_minus_rhs_dtDuration_006
-
-
- P1D
-
-
-
-
-
- exponent_lhs_number_exp_rhs_number_001
-
-
- 25
-
-
-
-
-
- exponent_lhs_number_exp_rhs_number_002
-
-
- 0.04
-
-
-
-
-
- exponent is left associative
-
-
- 3486784401
-
-
-
-
-
- -a**b parses as (-a)**b not -(a**b)
-
-
- 25
-
-
-
-
-
- decimal exponent
-
-
- 60.58617166606
-
-
-
-
-
- decimal exponent permitted if integer
-
-
- 25
-
-
-
-
-
- base may be a decimal number
-
-
- 30.25
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
- invalid arithmetic combination
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1101-feel-floor-function/translator/standard/1101-feel-floor-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1101-feel-floor-function/translator/standard/1101-feel-floor-function-test-01.xml
deleted file mode 100644
index cc17bb11d..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1101-feel-floor-function/translator/standard/1101-feel-floor-function-test-01.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
- 1101-feel-floor-function.dmn
-
- Compliance Level 3
- Data Type: Number
- Data Type: Function
- FEEL Functions: number
- FEEL Arithmetic
-
-
-
- Will round down positive number to nearest integer when no scale
-
-
- 1
-
-
-
-
-
- Will round down negative number to nearest integer when no scale
-
-
- -2
-
-
-
-
-
- Will round down negative number to nearest integer when no scale
-
-
- 0
-
-
-
-
-
- Will round down positive decimal to given scale
-
-
- 1.5
-
-
-
-
-
- Will round down negative decimal to given scale
-
-
- -1.6
-
-
-
-
-
- Will give null when 'n' is null
-
-
-
-
-
-
-
-
- Will give null when named param 'n' is null
-
-
-
-
-
-
-
-
- Will give null when 'scale' is null
-
-
-
-
-
-
-
-
- Will give null when named param 'scale' is null
-
-
-
-
-
-
-
-
- No params gives null
-
-
-
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
- Additional unknown named param gives null
-
-
-
-
-
-
-
-
- Unknown named param gives null
-
-
-
-
-
-
-
-
- Invalid type for 'n' gives null
-
-
-
-
-
-
-
-
- Invalid type for named param 'n' gives null
-
-
-
-
-
-
-
-
- Invalid type for 'scale' gives null
-
-
-
-
-
-
-
-
- Invalid type for named param 'scale' gives null
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1102-feel-ceiling-function/translator/standard/1102-feel-ceiling-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1102-feel-ceiling-function/translator/standard/1102-feel-ceiling-function-test-01.xml
deleted file mode 100644
index 0d8281fe7..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1102-feel-ceiling-function/translator/standard/1102-feel-ceiling-function-test-01.xml
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
- 1102-feel-ceiling-function.dmn
-
- Compliance Level 3
- Data Type: Number
- FEEL Functions: number
- FEEL Arithmetic
-
-
-
- Will round up positive number to nearest integer when no scale
-
-
- 2
-
-
-
-
-
- Will round up negative number to nearest integer when no scale
-
-
- -1
-
-
-
-
-
- Will round up negative number to nearest integer when no scale
-
-
- 0
-
-
-
-
-
- Will round up positive decimal to given scale
-
-
- 1.6
-
-
-
-
-
- Will round up negative decimal to given scale
-
-
- -1.5
-
-
-
-
-
- Will give null when 'n' is null
-
-
-
-
-
-
-
-
- Will give null when named param 'n' is null
-
-
-
-
-
-
-
-
- Will give null when 'scale' is null
-
-
-
-
-
-
-
-
- Will give null when named param 'scale' is null
-
-
-
-
-
-
-
-
- No params gives null
-
-
-
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
- Additional unknown named param gives null
-
-
-
-
-
-
-
-
- Unknown named param gives null
-
-
-
-
-
-
-
-
- Invalid type for 'n' gives null
-
-
-
-
-
-
-
-
- Invalid type for named param 'n' gives null
-
-
-
-
-
-
-
-
- Invalid type for 'scale' gives null
-
-
-
-
-
-
-
-
- Invalid type for named param 'scale' gives null
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1111-feel-matches-function/translator/standard/1111-feel-matches-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1111-feel-matches-function/translator/standard/1111-feel-matches-function-test-01.xml
deleted file mode 100644
index b6775fff0..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1111-feel-matches-function/translator/standard/1111-feel-matches-function-test-01.xml
+++ /dev/null
@@ -1,427 +0,0 @@
-
-
-
- 1111-feel-matches-function.dmn
-
- Compliance Level 3
- Data Type: String
- Literal Expression
- FEEL Functions: strings
-
-
-
- Evaluates "matches" function with null input
-
-
-
-
-
-
-
-
- Evaluates "matches" function with null pattern
-
-
-
-
-
-
-
-
- Evaluates "matches" function with null flags
-
-
- true
-
-
-
-
-
- Evaluates The "matches" function with the arguments set as follows: $input = xs:string(lower bound)
- $pattern = xs:string(lower bound)
-
-
-
- true
-
-
-
-
-
- Invalid flag for third argument of matches.
-
-
-
-
-
-
-
-
- Check for the correct behavior of ^ and $ in multi-line mode This test case was motivated by the
- resolution of Bug Report 4543
-
-
-
- true
-
-
-
-
-
- Check for the correct behavior of ^ and $ in multi-line mode This test case was motivated by the
- resolution of Bug Report 4543
-
-
-
- true
-
-
-
-
-
-
-
- "." does NOT match CR in default mode
-
-
- false
-
-
-
-
-
- Simple call of matches() with "i" flag
-
-
- true
-
-
-
-
-
- Call of matches() with "i" flag and a character range
-
-
- true
-
-
-
-
-
- Call of matches() with "i" flag and a character range
-
-
- true
-
-
-
-
-
- Call of matches() with "i" flag and Kelvin sign Kelvin sign
-
-
- true
-
-
-
-
-
- Call of matches() with "i" flag and range subtraction
-
-
- true
-
-
-
-
-
- Call of matches() with "i" flag and range subtraction
-
-
- true
-
-
-
-
-
- Call of matches() with "i" flag and range subtraction
-
-
- false
-
-
-
-
-
- Call of matches() with "i" flag and range subtraction
-
-
- false
-
-
-
-
-
- Call of matches() with "i" flag and negation
-
-
- false
-
-
-
-
-
- Call of matches() with "i" flag and negation
-
-
- false
-
-
-
-
-
- The pattern can't be the empty sequence.
-
-
-
-
-
-
-
-
- matches() takes at least two arguments, not one.
-
-
-
-
-
-
-
-
- The third argument cannot be the empty sequence.
-
-
-
-
-
-
-
-
- Only three arguments are accepted.
-
-
-
-
-
-
-
-
- The flags argument cannot contain whitespace.
-
-
-
-
-
-
-
-
- The flags argument cannot contain 'X'.
-
-
-
-
-
-
-
-
- Whitespace in the regexp is collapsed.
-
-
- true
-
-
-
-
-
- Whitespace(before) in the regexp is collapsed, but not inside a character class.
-
-
- true
-
-
-
-
-
- Whitespace(after) in the regexp is collapsed, but not inside a character class.
-
-
- true
-
-
-
-
-
- Whitespace(in the middle) in the regexp is collapsed, but not inside a character class.
-
-
-
- true
-
-
-
-
-
- whitespace in the regexp is collapsed, and should therefore compile.
-
-
- true
-
-
-
-
-
- whitespace in the regexp is collapsed completely, and should therefore compile and match.
-
-
-
- true
-
-
-
-
-
- whitespace in the regexp is not collapsed, and should therefore not compile.
-
-
-
-
-
-
-
-
- Since no string is captured by the back-reference, the single character is matched.
-
-
-
-
-
-
-
-
- Since no string is captured by the back-reference, the single character is matched(#2).
-
-
-
-
-
-
-
-
-
- A non-matching backwards-reference matches the empty string.
-
-
-
-
-
-
-
-
- Use a back reference inside a character class.
-
-
-
-
-
-
-
-
- Use a back reference inside a character class(#2).
-
-
-
-
-
-
-
-
- Use a back reference inside a character class(#3).
-
-
-
-
-
-
-
-
- Use a back reference inside a character class(#3).
-
-
-
-
-
-
-
-
- A negative character class never match a non-character.
-
-
-
- -
-
false
-
- -
-
true
-
-
-
-
-
-
-
-
-
- Caseless match with back-reference.
-
-
- true
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1131-feel-function-invocation/translator/standard/1131-feel-function-invocation-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1131-feel-function-invocation/translator/standard/1131-feel-function-invocation-test-01.xml
deleted file mode 100644
index fa71b9828..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1131-feel-function-invocation/translator/standard/1131-feel-function-invocation-test-01.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
- 1131-feel-function-invocation.dmn
-
- Compliance Level 3
- Data Type: Function
-
-
- Non existing function evaluates to null (10.3.2.13.2)
-
-
-
-
-
-
-
- null evaluates to null
-
-
-
-
-
-
-
- string evaluates to null
-
-
-
-
-
-
-
- string (same name function in scope) evaluates to null
-
-
-
-
-
-
-
- date evaluates to null
-
-
-
-
-
-
-
- number evaluates to null
-
-
-
-
-
-
-
- true evaluates to null
-
-
-
-
-
-
-
- false evaluates to null
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1140-feel-string-join-function/translator/standard/1140-feel-string-join-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1140-feel-string-join-function/translator/standard/1140-feel-string-join-function-test-01.xml
deleted file mode 100644
index a3e4db320..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1140-feel-string-join-function/translator/standard/1140-feel-string-join-function-test-01.xml
+++ /dev/null
@@ -1,212 +0,0 @@
-
-
-
- 1140-feel-string-join-function.dmn
-
- Compliance Level 3
- Data Type: String
- FEEL Functions: string
-
-
-
- Will join
-
-
- abc
-
-
-
-
-
- Will join (with delimiter)
-
-
- a and b and c
-
-
-
-
-
- Will join with empty delimiter
-
-
- abc
-
-
-
-
-
- Will join with null delimiter
-
-
- abc
-
-
-
-
-
- Will join single element list
-
-
- a
-
-
-
-
-
- Will join single element list (with delimiter)
-
-
- a
-
-
-
-
-
- Will ignore null elements in list
-
-
- ac
-
-
-
-
-
- Will ignore null elements in list (with delimiter)
-
-
- aXc
-
-
-
-
-
- Will join empty list as ""
-
-
-
-
-
-
-
-
- Will join empty list as "" (with delimiter)
-
-
-
-
-
-
-
-
- No params gives null
-
-
-
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
- Join with named param
-
-
- ac
-
-
-
-
-
- Join with named params (with delimiter)
-
-
- aXc
-
-
-
-
-
- Incorrect named delimiter param gives null
-
-
-
-
-
-
-
-
- Incorrect named list param gives null
-
-
-
-
-
-
-
-
- null list gives null
-
-
-
-
-
-
-
-
- null list gives null (with delimiter)
-
-
-
-
-
-
-
-
- Incorrect list type gives null
-
-
-
-
-
-
-
-
- Non-list non-string list param gives null
-
-
-
-
-
-
-
-
- Non-list string list param is coerced to list
-
-
- a
-
-
-
-
-
- Non-list string named list param is coerced to list
-
-
- a
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1141-feel-round-up-function/translator/standard/1141-feel-round-up-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1141-feel-round-up-function/translator/standard/1141-feel-round-up-function-test-01.xml
deleted file mode 100644
index 7d012cbbb..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1141-feel-round-up-function/translator/standard/1141-feel-round-up-function-test-01.xml
+++ /dev/null
@@ -1,198 +0,0 @@
-
-
-
- 1141-feel-round-up-function.dmn
-
- Compliance Level 3
- Data Type: Number
- FEEL Functions: number
-
-
-
- Will round to integer
-
-
- 6
-
-
-
-
-
- Will round to negative to integer
-
-
- -6
-
-
-
-
-
- Will round positive to scale
-
-
- 1.13
-
-
-
-
-
- Will round negative to scale
-
-
- -1.13
-
-
-
-
-
- No params gives null
-
-
-
-
-
-
-
-
- Missing scale param gives null
-
-
-
-
-
-
-
-
- null number gives null
-
-
-
-
-
-
-
-
- null scale gives null
-
-
-
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
- named params
-
-
- 6
-
-
-
-
-
- Missing 'n' named param gives null
-
-
-
-
-
-
-
-
- Missing 'scale' named param gives null
-
-
-
-
-
-
-
-
- Incorrect named param gives null
-
-
-
-
-
-
-
-
- Incorrect 'n' type gives null
-
-
-
-
-
-
-
-
- Incorrect 'scale' type gives null
-
-
-
-
-
-
-
-
-
-
-
-
-
- less than min scale gives null
-
-
-
-
-
-
-
-
- Max scale is 6176
-
-
- 5.5
-
-
-
-
-
- Greater than max scale gives null
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1142-feel-round-down-function/translator/standard/1142-feel-round-down-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1142-feel-round-down-function/translator/standard/1142-feel-round-down-function-test-01.xml
deleted file mode 100644
index 4da2c2a75..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1142-feel-round-down-function/translator/standard/1142-feel-round-down-function-test-01.xml
+++ /dev/null
@@ -1,200 +0,0 @@
-
-
-
- 1142-feel-round-down-function.dmn
-
- Compliance Level 3
- Data Type: Number
- FEEL Functions: number
-
-
-
- Will round to integer
-
-
- 5
-
-
-
-
-
- Will round to negative to integer
-
-
- -5
-
-
-
-
-
- Will round positive to scale
-
-
- 1.12
-
-
-
-
-
- Will round negative to scale
-
-
- -1.12
-
-
-
-
-
- No params gives null
-
-
-
-
-
-
-
-
- Missing scale param gives null
-
-
-
-
-
-
-
-
- null number gives null
-
-
-
-
-
-
-
-
- null scale gives null
-
-
-
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
- named params
-
-
- 5
-
-
-
-
-
- Missing 'n' named param gives null
-
-
-
-
-
-
-
-
- Missing 'scale' named param gives null
-
-
-
-
-
-
-
-
- Incorrect named param gives null
-
-
-
-
-
-
-
-
- Incorrect 'n' type gives null
-
-
-
-
-
-
-
-
- Incorrect 'scale' type gives null
-
-
-
-
-
-
-
-
-
-
-
-
-
- less than min scale gives null
-
-
-
-
-
-
-
-
- Max scale is 6176
-
-
- 5.5
-
-
-
-
-
- Greater than max scale gives null
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1143-feel-round-half-up-function/translator/standard/1143-feel-round-half-up-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1143-feel-round-half-up-function/translator/standard/1143-feel-round-half-up-function-test-01.xml
deleted file mode 100644
index dda50d061..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1143-feel-round-half-up-function/translator/standard/1143-feel-round-half-up-function-test-01.xml
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
-
- 1143-feel-round-half-up-function.dmn
-
- Compliance Level 3
- Data Type: Number
- FEEL Functions: number
-
-
-
- Will round to integer
-
-
- 6
-
-
-
-
-
- Will round to negative to integer
-
-
- -6
-
-
-
-
-
- Will round positive to scale
-
-
- 1.12
-
-
-
-
-
- Will round negative to scale
-
-
- -1.13
-
-
-
-
-
- No params gives null
-
-
-
-
-
-
-
-
- Missing scale param gives null
-
-
-
-
-
-
-
-
- null number gives null
-
-
-
-
-
-
-
-
- null scale gives null
-
-
-
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
- named params
-
-
- 6
-
-
-
-
-
- Missing 'n' named param gives null
-
-
-
-
-
-
-
-
- Missing 'scale' named param gives null
-
-
-
-
-
-
-
-
- Incorrect named param gives null
-
-
-
-
-
-
-
-
- Incorrect 'n' type gives null
-
-
-
-
-
-
-
-
- Incorrect 'scale' type gives null
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- less than min scale gives null
-
-
-
-
-
-
-
-
- Max scale is 6176
-
-
- 5.5
-
-
-
-
-
- Greater than max scale gives null
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1144-feel-round-half-down-function/translator/standard/1144-feel-round-half-down-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1144-feel-round-half-down-function/translator/standard/1144-feel-round-half-down-function-test-01.xml
deleted file mode 100644
index d90309b55..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1144-feel-round-half-down-function/translator/standard/1144-feel-round-half-down-function-test-01.xml
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
-
- 1144-feel-round-half-down-function.dmn
-
- Compliance Level 3
- Data Type: Number
- FEEL Functions: number
-
-
-
- Will round to integer
-
-
- 5
-
-
-
-
-
- Will round to negative to integer
-
-
- -5
-
-
-
-
-
- Will round positive to scale
-
-
- 1.12
-
-
-
-
-
- Will round negative to scale
-
-
- -1.13
-
-
-
-
-
- No params gives null
-
-
-
-
-
-
-
-
- Missing scale param gives null
-
-
-
-
-
-
-
-
- null number gives null
-
-
-
-
-
-
-
-
- null scale gives null
-
-
-
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
- named params
-
-
- 5
-
-
-
-
-
- Missing 'n' named param gives null
-
-
-
-
-
-
-
-
- Missing 'scale' named param gives null
-
-
-
-
-
-
-
-
- Incorrect named param gives null
-
-
-
-
-
-
-
-
- Incorrect 'n' type gives null
-
-
-
-
-
-
-
-
- Incorrect 'scale' type gives null
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- less than min scale gives null
-
-
-
-
-
-
-
-
- Max scale is 6176
-
-
- 5.5
-
-
-
-
-
- Greater than max scale gives null
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1145-feel-context-function/translator/standard/1145-feel-context-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1145-feel-context-function/translator/standard/1145-feel-context-function-test-01.xml
deleted file mode 100644
index f08705e67..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1145-feel-context-function/translator/standard/1145-feel-context-function-test-01.xml
+++ /dev/null
@@ -1,208 +0,0 @@
-
-
-
- 1145-feel-context-function.dmn
-
- Compliance Level 3
- Data Type: Context
- FEEL Functions: context
-
-
-
- Will create context from entries
-
-
-
- 1
-
-
- 2
-
-
-
-
-
-
- Will create context from single entry
-
-
-
- 1
-
-
-
-
-
-
-
- Will return null when duplicate entry keys
-
-
-
-
-
-
-
-
- Will create empty context for empty entries array
-
-
- true
-
-
-
-
-
- Will coerce single entry to list
-
-
-
- 1
-
-
-
-
-
-
- Will return null when entry is missing key
-
-
-
-
-
-
-
-
- Will return null when entry key value is null
-
-
-
-
-
-
-
-
- Will return null when entry is missing value
-
-
-
-
-
-
-
-
- Will permit null value
-
-
-
-
-
-
-
-
-
-
- Will permit empty string as key
-
-
-
- 1
-
-
-
-
-
-
- Null entries list gives null
-
-
-
-
-
-
-
-
-
-
-
-
- named params
-
-
-
- 1
-
-
-
-
-
-
- will coerce non-list named param to list
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
- Will ignore extra fields beyond 'key' and 'value'
-
-
-
- 1
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1146-feel-context-put-function/translator/standard/1146-feel-context-put-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1146-feel-context-put-function/translator/standard/1146-feel-context-put-function-test-01.xml
deleted file mode 100644
index 36fec03a7..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1146-feel-context-put-function/translator/standard/1146-feel-context-put-function-test-01.xml
+++ /dev/null
@@ -1,412 +0,0 @@
-
-
-
- 1146-feel-context-put-function.dmn
-
- Compliance Level 3
- Data Type: Context
- FEEL Functions: context
-
-
-
- Will add context entry
-
-
-
- 1
-
-
-
-
-
-
- Will add entry to end of context
-
-
-
- -
-
- a
-
-
- 1
-
-
- -
-
- b
-
-
- 2
-
-
-
-
-
-
-
-
- Will overwrite existing context entry
-
-
-
- 2
-
-
-
-
-
-
- Will maintain key order when overwriting existing context entry
-
-
-
- 1
-
-
- 3
-
-
- 3
-
-
-
-
-
-
- Will permit empty key param
-
-
-
- 1
-
-
-
-
-
-
- Null key param gives null
-
-
-
-
-
-
-
-
- Null context param gives null
-
-
-
-
-
-
-
-
- Will permit null value param
-
-
-
-
-
-
-
-
-
-
- Too few params gives null
-
-
-
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
- named params
-
-
-
- 1
-
-
-
-
-
-
- Incorrect named param gives null
-
-
-
-
-
-
-
-
- Incorrect 'context' type gives null
-
-
-
-
-
-
-
-
- Will return null when key is not a string
-
-
-
-
-
-
-
-
- Will operate on boxed context
-
-
-
- 2
-
-
-
-
-
-
- Will create new copy of boxed context, not mutate it
-
-
-
-
-
- 1
-
-
-
-
-
- 2
-
-
-
-
-
-
-
- Will create new copy of literal context, not mutate it
-
-
-
-
-
- 1
-
-
-
-
-
- 2
-
-
-
-
-
-
-
- will overwrite value in nested context
-
-
-
- 1
-
-
-
- 2
-
-
-
-
-
-
-
- will add value to nested context
-
-
-
- 1
-
-
-
- 0
-
-
- 2
-
-
-
-
-
-
-
- null key gives null (1)
-
-
-
-
-
-
-
-
- null key gives null (2)
-
-
-
-
-
-
-
-
- null key gives null (3)
-
-
-
-
-
-
-
-
- empty keys array gives null
-
-
-
-
-
-
-
-
- will recurse into nested contexts
-
-
-
- 1
-
-
-
-
-
- 2
-
-
-
-
-
-
-
-
-
- named params - with 'keys'
-
-
-
- 1
-
-
-
- 2
-
-
-
-
-
-
-
- named params - array value for 'key' gives null
-
-
-
-
-
-
-
-
- named params - array value for 'key' gives null
-
-
-
-
-
-
-
-
- Will operate on boxed context
-
-
-
-
- 2
-
-
-
-
-
-
-
- Will create new copy of nested boxed context, not mutate it
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
- 2
-
-
-
-
-
-
-
-
- Will create new copy of nested literal context, not mutate it
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
- 2
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1147-feel-context-merge-function/translator/standard/1147-feel-context-merge-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1147-feel-context-merge-function/translator/standard/1147-feel-context-merge-function-test-01.xml
deleted file mode 100644
index 888b936ba..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1147-feel-context-merge-function/translator/standard/1147-feel-context-merge-function-test-01.xml
+++ /dev/null
@@ -1,159 +0,0 @@
-
-
-
- 1147-feel-context-merge-function.dmn
-
- Compliance Level 3
- Data Type: Context
- FEEL Functions: context
-
-
-
- Will merge a context
-
-
-
- 1
-
-
-
-
-
-
- Will merge empty context
-
-
- true
-
-
-
-
-
- Will merge multiple contexts
-
-
-
- 1
-
-
- 2
-
-
-
-
-
-
- Will overwrite existing context entry
-
-
-
- 2
-
-
-
-
-
-
- Will overwrite (not merge) nested contexts
-
-
-
-
- 2
-
-
-
-
-
-
-
- Null contexts param gives null
-
-
-
-
-
-
-
-
- Too few params gives null
-
-
-
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
- named params
-
-
-
- 1
-
-
-
-
-
-
- Incorrect named param gives null
-
-
-
-
-
-
-
-
- Incorrect 'contexts' type gives null
-
-
-
-
-
-
-
-
- Non-context entry in 'contexts' gives null
-
-
-
-
-
-
-
-
- Will coerce single context to list
-
-
-
- 1
-
-
-
-
-
-
- Will coerce single name param entry to list
-
-
-
- 1
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1148-feel-now-function/translator/standard/1148-feel-now-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1148-feel-now-function/translator/standard/1148-feel-now-function-test-01.xml
deleted file mode 100644
index 681efa037..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1148-feel-now-function/translator/standard/1148-feel-now-function-test-01.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
- 1148-feel-now-function.dmn
-
- Compliance Level 3
- Data Type: date and time
- FEEL Functions: miscellaneous
-
-
-
- Will give date and time
-
-
- true
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1149-feel-today-function/translator/standard/1149-feel-today-function-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1149-feel-today-function/translator/standard/1149-feel-today-function-test-01.xml
deleted file mode 100644
index 398ae31bb..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1149-feel-today-function/translator/standard/1149-feel-today-function-test-01.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
- 1149-feel-today-function.dmn
-
- Compliance Level 3
- Data Type: date
- FEEL Functions: miscellaneous
-
-
-
- Will give date
-
-
- true
-
-
-
-
-
- Too many params gives null
-
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1150-boxed-conditional/translator/standard/1150-boxed-conditional-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1150-boxed-conditional/translator/standard/1150-boxed-conditional-test-01.xml
deleted file mode 100644
index 3b4ddaef2..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1150-boxed-conditional/translator/standard/1150-boxed-conditional-test-01.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
- 1150-boxed-conditional.dmn
-
-
- Will return 'then' expression result when if expr is true
-
-
- then
-
-
-
-
-
- Will return 'else' expression result when if expr is false
-
-
- else
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1151-boxed-filter/translator/standard/1151-boxed-filter-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1151-boxed-filter/translator/standard/1151-boxed-filter-test-01.xml
deleted file mode 100644
index d13697817..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1151-boxed-filter/translator/standard/1151-boxed-filter-test-01.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
- 1151-boxed-filter.dmn
-
-
- Will filter 'in' values based on 'match' expression
-
-
-
- -
-
3
-
- -
-
4
-
- -
-
5
-
-
-
-
-
-
-
-
- Will return an empty list when no values match
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1152-boxed-for/translator/standard/1152-boxed-for-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1152-boxed-for/translator/standard/1152-boxed-for-test-01.xml
deleted file mode 100644
index a347e8759..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1152-boxed-for/translator/standard/1152-boxed-for-test-01.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
- 1152-boxed-for.dmn
-
-
- Will map 'in' values based on 'return' expression
-
-
-
- -
-
2
-
- -
-
4
-
- -
-
6
-
- -
-
8
-
- -
-
10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1153-boxed-some/translator/standard/1153-boxed-some-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1153-boxed-some/translator/standard/1153-boxed-some-test-01.xml
deleted file mode 100644
index 66f9394d3..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1153-boxed-some/translator/standard/1153-boxed-some-test-01.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
- 1153-boxed-some.dmn
-
-
- Will report true when 'in' elements satisfy expression
-
-
- true
-
-
-
-
-
- Will report false when no 'in' elements satisfy expression
-
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dmn-test-cases/standard/tck/1.4/cl3/1154-boxed-every/translator/standard/1154-boxed-every-test-01.xml b/dmn-test-cases/standard/tck/1.4/cl3/1154-boxed-every/translator/standard/1154-boxed-every-test-01.xml
deleted file mode 100644
index 0d7de430f..000000000
--- a/dmn-test-cases/standard/tck/1.4/cl3/1154-boxed-every/translator/standard/1154-boxed-every-test-01.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
- 1154-boxed-every.dmn
-
-
- Will report true when all 'in' elements satisfy expression
-
-
- true
-
-
-
-
-
- Will report false when not all 'in' elements satisfy expression
-
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-