This is an automated email from the ASF dual-hosted git repository.

yamer pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git


The following commit(s) were added to refs/heads/main by this push:
     new ffc421a65c [incubator-kie-issues#1744] Don't fail a range comparison 
in FEEL when a unary test range is used (#6231)
ffc421a65c is described below

commit ffc421a65ce34a96dc50bb47fceee3519f91fc51
Author: Gabriele Cardosi <[email protected]>
AuthorDate: Mon Jan 27 09:18:32 2025 +0100

    [incubator-kie-issues#1744] Don't fail a range comparison in FEEL when a 
unary test range is used (#6231)
    
    * [incubator-kie-issues#1744] WIP
    
    * [incubator-kie-issues#1744] Disabling uncompatible (?) test. Add 
comparison test.
    
    ---------
    
    Co-authored-by: Gabriele-Cardosi <[email protected]>
---
 .../test/java/org/kie/dmn/core/DMNDecisionTableRuntimeTest.java  | 2 ++
 .../java/org/kie/dmn/feel/parser/feel11/ASTBuilderVisitor.java   | 4 +++-
 .../src/test/java/org/kie/dmn/feel/runtime/FEELRangesTest.java   | 1 +
 .../java/org/kie/dmn/feel/runtime/FEELValuesComparisonTest.java  | 9 +++++----
 4 files changed, 11 insertions(+), 5 deletions(-)

diff --git 
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNDecisionTableRuntimeTest.java
 
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNDecisionTableRuntimeTest.java
index b184e95f8c..e772dcf592 100644
--- 
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNDecisionTableRuntimeTest.java
+++ 
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNDecisionTableRuntimeTest.java
@@ -30,6 +30,7 @@ import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
 
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Timeout;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
@@ -680,6 +681,7 @@ public class DMNDecisionTableRuntimeTest extends 
BaseInterpretedVsCompiledTest {
 
     @ParameterizedTest
     @MethodSource("params")
+    @Disabled("Disabled due to required clarifications on DMN specs")
     void dTand(boolean useExecModelCompiler) {
         init(useExecModelCompiler);
         final DMNRuntime runtime = DMNRuntimeUtil.createRuntime("DTand.dmn", 
this.getClass());
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ASTBuilderVisitor.java
 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ASTBuilderVisitor.java
index 64465e00d0..ffd0755afa 100644
--- 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ASTBuilderVisitor.java
+++ 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ASTBuilderVisitor.java
@@ -184,7 +184,9 @@ public class ASTBuilderVisitor
     public BaseNode 
visitPositiveUnaryTestIneq(FEEL_1_1Parser.PositiveUnaryTestIneqContext ctx) {
         BaseNode value = visit( ctx.endpoint() );
         String op = ctx.op.getText();
-        return ASTBuilderFactory.newUnaryTestNode( ctx, op, value );
+        UnaryOperator unaryOperator = UnaryOperator.determineOperator(op);
+        return unaryOperator.equals(UnaryOperator.EQ) ? 
ASTBuilderFactory.newIntervalNode(ctx, RangeNode.IntervalBoundary.CLOSED, 
value, value, RangeNode.IntervalBoundary.CLOSED) :
+                ASTBuilderFactory.newUnaryTestNode( ctx, op, value );
     }
 
     @Override
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELRangesTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELRangesTest.java
index b2419f5263..601bd26f84 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELRangesTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELRangesTest.java
@@ -44,6 +44,7 @@ public class FEELRangesTest extends BaseFEELTest {
     private static Collection<Object[]> data() {
         final Object[][] cases = new Object[][]{
                 // when converting from unary tests, boundaries are dictated 
by comparison
+                {"(=1)", new RangeImpl(Range.RangeBoundary.CLOSED, 
BigDecimal.ONE, BigDecimal.ONE, Range.RangeBoundary.CLOSED), null},
                 {"(>1)", new RangeImpl(Range.RangeBoundary.OPEN, 
BigDecimal.ONE, new UndefinedValueComparable(), Range.RangeBoundary.OPEN), 
null},
                 {"(>=1)", new RangeImpl(Range.RangeBoundary.CLOSED, 
BigDecimal.ONE, new UndefinedValueComparable(), Range.RangeBoundary.OPEN), 
null},
                 {"(<1)", new RangeImpl(Range.RangeBoundary.OPEN, new 
UndefinedValueComparable(), BigDecimal.ONE, Range.RangeBoundary.OPEN), null},
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELValuesComparisonTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELValuesComparisonTest.java
index bd2582d075..d10b7f9cbb 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELValuesComparisonTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELValuesComparisonTest.java
@@ -64,13 +64,14 @@ public class FEELValuesComparisonTest extends BaseFEELTest {
                 { "false != false", Boolean.FALSE , null},
                 { "false != true", Boolean.TRUE , null},
                 { "true != false", Boolean.TRUE , null},
-                
+
                 // other comparisons
                 { "duration(\"P1Y\") < duration(\"P2Y\")", Boolean.TRUE , 
null},
                 { "duration(\"P1Y\") > duration(\"P2Y\")", Boolean.FALSE , 
null},
 
                 // other types of equalities
                 { "[ 1..3 ] = [ 1..3 ]", Boolean.TRUE , null},
+                { "(=10) = (=10)", Boolean.TRUE , null},
                 { "[ \"1\"..\"3\" ] = [ \"1\"..\"3\" ]", Boolean.TRUE , null},
                 { "[\"1978-09-12\"..\"1978-10-12\"] = 
[\"1978-09-12\"..\"1978-10-12\"]", Boolean.TRUE, null},
                 { "[ 1, 2, 3] = [1, 2, 3]", Boolean.TRUE , null},
@@ -107,12 +108,12 @@ public class FEELValuesComparisonTest extends 
BaseFEELTest {
                 { "null = null", Boolean.TRUE , null},
                 { "null != null", Boolean.FALSE , null},
 
-                // RHDM-1119 
+                // RHDM-1119
                 { "{ m: <18 }.m(16)", true, null}, // Working expression, for 
the expr raising compilation Warn test have been moved.
                 { "{list : 1, r: list < 3}.r", Boolean.TRUE , null}, // 
strange name for a number literal, intended this way.
-                { "{list : 1, r: list< 3}.r", Boolean.TRUE , null}, 
+                { "{list : 1, r: list< 3}.r", Boolean.TRUE , null},
                 { "{context : 1, r: context < 3}.r", Boolean.TRUE , null}, // 
strange name for a number literal, intended this way.
-                { "{context : 1, r: context< 3}.r", Boolean.TRUE , null}, 
+                { "{context : 1, r: context< 3}.r", Boolean.TRUE , null},
         };
         return addAdditionalParameters(cases, false);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to