Skip to content

Commit f29a6f8

Browse files
committed
in operator does not handle numbers correctly #63
1 parent c1f04da commit f29a6f8

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

src/main/java/com/dashjoin/jsonata/Jsonata.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -976,7 +976,8 @@ Object evaluateIncludesExpression(Object lhs, Object rhs) {
976976
}
977977

978978
for(var i = 0; i < ((List)rhs).size(); i++) {
979-
if(((List)rhs).get(i).equals(lhs)) {
979+
Object tmp = evaluateEqualityExpression(lhs, ((List)rhs).get(i), "=");
980+
if (Boolean.TRUE.equals(tmp)) {
980981
result = true;
981982
break;
982983
}

src/test/java/com/dashjoin/jsonata/TypesTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212

1313
public class TypesTest {
1414

15-
// https://github.com/dashjoin/jsonata-java/issues/63
16-
@Disabled
1715
@Test
1816
public void castTestIn() {
1917
Assertions.assertFalse((boolean)jsonata("3 in $").evaluate(Arrays.asList(1.0, 2.0)));
@@ -24,6 +22,10 @@ public void castTestIn() {
2422
public void castTestEquals() {
2523
Assertions.assertTrue((boolean)jsonata("1 = $").evaluate(1.0));
2624
Assertions.assertFalse((boolean)jsonata("1 = $").evaluate(2.0));
25+
Assertions.assertTrue( (boolean)jsonata("{'x':1 } = {'x':1 }").evaluate(null) );
26+
Assertions.assertFalse( (boolean)jsonata("{'x':1 } = {'x':2 }").evaluate(null) );
27+
Assertions.assertTrue( (boolean)jsonata("[1,null] = [1,null]").evaluate(null) );
28+
Assertions.assertFalse( (boolean)jsonata("[1,null] = [2,null]").evaluate(null) );
2729
}
2830

2931
@Test

0 commit comments

Comments
 (0)