evaluate("3L == new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3.0d == new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3L == new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d == new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d == new java.math.BigDecimal('3.0')",true,Boolean.class);
evaluate("3.0f == 3.0d",true,Boolean.class);
evaluate("10 == '10'",false,Boolean.class);
evaluate("'abc' == 'abc'",true,Boolean.class);
evaluate("'abc' == new java.lang.StringBuilder('abc')",true,Boolean.class);
evaluate("'abc' == 'def'",false,Boolean.class);
evaluate("'abc' == null",false,Boolean.class);
evaluate("new org.springframework.expression.spel.OperatorTests$SubComparable() == new org.springframework.expression.spel.OperatorTests$OtherSubComparable()",true,Boolean.class);
evaluate("3 eq 5",false,Boolean.class);
evaluate("5 eQ 3",false,Boolean.class);
evaluate("6 Eq 6",true,Boolean.class);
evaluate("3.0f eq 5.0f",false,Boolean.class);
evaluate("3.0f EQ 3.0f",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') eq new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('3') eq new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("new java.math.BigDecimal('5') eq new java.math.BigDecimal('3')",false,Boolean.class);
evaluate("3 eq new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3L eq new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3.0d eq new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3L eq new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d eq new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d eq new java.math.BigDecimal('3.0')",true,Boolean.class);
evaluate("3.0f eq 3.0d",true,Boolean.class);
evaluate("10 eq '10'",false,Boolean.class);
evaluate("'abc' eq 'abc'",true,Boolean.class);
evaluate("'abc' eq new java.lang.StringBuilder('abc')",true,Boolean.class);
evaluate("'abc' eq 'def'",false,Boolean.class);
evaluate("'abc' eq null",false,Boolean.class);
evaluate("new org.springframework.expression.spel.OperatorTests$SubComparable() eq new org.springframework.expression.spel.OperatorTests$OtherSubComparable()",true,Boolean.class);
}
@Test
publicvoidtestRealLiteral(){
evaluate("3.5",3.5d,Double.class);
publicvoidtestNotEqual(){
evaluate("3 != 5",true,Boolean.class);
evaluate("5 != 3",true,Boolean.class);
evaluate("6 != 6",false,Boolean.class);
evaluate("3.0f != 5.0f",true,Boolean.class);
evaluate("3.0f != 3.0f",false,Boolean.class);
evaluate("new java.math.BigDecimal('5') != new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("new java.math.BigDecimal('3') != new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') != new java.math.BigDecimal('3')",true,Boolean.class);
evaluate("3 != new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("3L != new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("3.0d != new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("3L != new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d != new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d != new java.math.BigDecimal('3.0')",false,Boolean.class);
evaluate("3.0f != 3.0d",false,Boolean.class);
evaluate("10 != '10'",true,Boolean.class);
evaluate("'abc' != 'abc'",false,Boolean.class);
evaluate("'abc' != new java.lang.StringBuilder('abc')",false,Boolean.class);
evaluate("'abc' != 'def'",true,Boolean.class);
evaluate("'abc' != null",true,Boolean.class);
evaluate("new org.springframework.expression.spel.OperatorTests$SubComparable() != new org.springframework.expression.spel.OperatorTests$OtherSubComparable()",false,Boolean.class);
evaluate("3 ne 5",true,Boolean.class);
evaluate("5 nE 3",true,Boolean.class);
evaluate("6 Ne 6",false,Boolean.class);
evaluate("3.0f NE 5.0f",true,Boolean.class);
evaluate("3.0f ne 3.0f",false,Boolean.class);
evaluate("new java.math.BigDecimal('5') ne new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("new java.math.BigDecimal('3') ne new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') ne new java.math.BigDecimal('3')",true,Boolean.class);
evaluate("3 ne new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('3') ne 5",true,Boolean.class);
evaluate("3L ne new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("3.0d ne new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("3L ne new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d ne new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d ne new java.math.BigDecimal('3.0')",false,Boolean.class);
evaluate("3.0f ne 3.0d",false,Boolean.class);
evaluate("10 ne '10'",true,Boolean.class);
evaluate("'abc' ne 'abc'",false,Boolean.class);
evaluate("'abc' ne new java.lang.StringBuilder('abc')",false,Boolean.class);
evaluate("'abc' ne 'def'",true,Boolean.class);
evaluate("'abc' ne null",true,Boolean.class);
evaluate("new org.springframework.expression.spel.OperatorTests$SubComparable() ne new org.springframework.expression.spel.OperatorTests$OtherSubComparable()",false,Boolean.class);
}
@Test
publicvoidtestLessThan(){
evaluate("5 < 5",false,Boolean.class);
evaluate("3 < 5",true,Boolean.class);
evaluate("5 < 3",false,Boolean.class);
@ -51,8 +141,6 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -51,8 +141,6 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("5L < 3L",false,Boolean.class);
evaluate("3.0d < 5.0d",true,Boolean.class);
evaluate("5.0d < 3.0d",false,Boolean.class);
evaluate("'abc' < 'def'",true,Boolean.class);
evaluate("'def' < 'abc'",false,Boolean.class);
evaluate("new java.math.BigDecimal('3') < new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') < new java.math.BigDecimal('3')",false,Boolean.class);
evaluate("3 < new java.math.BigDecimal('5')",true,Boolean.class);
@ -62,6 +150,9 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -62,6 +150,9 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("3L < new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d < new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d < new java.math.BigDecimal('3.0')",false,Boolean.class);
evaluate("'abc' < 'def'",true,Boolean.class);
evaluate("'abc' < new java.lang.StringBuilder('def')",true,Boolean.class);
evaluate("'def' < 'abc'",false,Boolean.class);
evaluate("3 lt 5",true,Boolean.class);
evaluate("5 lt 3",false,Boolean.class);
@ -69,8 +160,6 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -69,8 +160,6 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("5L lt 3L",false,Boolean.class);
evaluate("3.0d lT 5.0d",true,Boolean.class);
evaluate("5.0d Lt 3.0d",false,Boolean.class);
evaluate("'abc' LT 'def'",true,Boolean.class);
evaluate("'def' lt 'abc'",false,Boolean.class);
evaluate("new java.math.BigDecimal('3') lt new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') lt new java.math.BigDecimal('3')",false,Boolean.class);
evaluate("3 lt new java.math.BigDecimal('5')",true,Boolean.class);
@ -80,6 +169,9 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -80,6 +169,9 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("3L lt new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d lt new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d lt new java.math.BigDecimal('3.0')",false,Boolean.class);
evaluate("'abc' LT 'def'",true,Boolean.class);
evaluate("'abc' lt new java.lang.StringBuilder('def')",true,Boolean.class);
evaluate("'def' lt 'abc'",false,Boolean.class);
}
@Test
@ -93,9 +185,6 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -93,9 +185,6 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("3.0d <= 5.0d",true,Boolean.class);
evaluate("5.0d <= 3.0d",false,Boolean.class);
evaluate("5.0d <= 5.0d",true,Boolean.class);
evaluate("'abc' <= 'def'",true,Boolean.class);
evaluate("'def' <= 'abc'",false,Boolean.class);
evaluate("'abc' <= 'abc'",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') <= new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('3') <= new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') <= new java.math.BigDecimal('3')",false,Boolean.class);
@ -106,6 +195,9 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -106,6 +195,9 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("3L <= new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d <= new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d <= new java.math.BigDecimal('3.0')",true,Boolean.class);
evaluate("'abc' <= 'def'",true,Boolean.class);
evaluate("'def' <= 'abc'",false,Boolean.class);
evaluate("'abc' <= 'abc'",true,Boolean.class);
evaluate("3 le 5",true,Boolean.class);
evaluate("5 le 3",false,Boolean.class);
@ -116,9 +208,6 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -116,9 +208,6 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("3.0d LE 5.0d",true,Boolean.class);
evaluate("5.0d lE 3.0d",false,Boolean.class);
evaluate("5.0d Le 5.0d",true,Boolean.class);
evaluate("'abc' Le 'def'",true,Boolean.class);
evaluate("'def' LE 'abc'",false,Boolean.class);
evaluate("'abc' le 'abc'",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') le new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('3') le new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') le new java.math.BigDecimal('3')",false,Boolean.class);
@ -129,78 +218,50 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -129,78 +218,50 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("3L le new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d le new java.math.BigDecimal('3.1')",true,Boolean.class);
evaluate("3.0d le new java.math.BigDecimal('3.0')",true,Boolean.class);
evaluate("'abc' Le 'def'",true,Boolean.class);
evaluate("'def' LE 'abc'",false,Boolean.class);
evaluate("'abc' le 'abc'",true,Boolean.class);
}
@Test
publicvoidtestEqual(){
evaluate("3 == 5",false,Boolean.class);
evaluate("5 == 3",false,Boolean.class);
evaluate("6 == 6",true,Boolean.class);
evaluate("3.0f == 5.0f",false,Boolean.class);
evaluate("3.0f == 3.0f",true,Boolean.class);
evaluate("'abc' == null",false,Boolean.class);
evaluate("new java.math.BigDecimal('5') == new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('3') == new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("new java.math.BigDecimal('5') == new java.math.BigDecimal('3')",false,Boolean.class);
evaluate("3 == new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3L gt new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3.0d gt new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3L gt new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d gt new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d gt new java.math.BigDecimal('3.0')",false,Boolean.class);
evaluate("'abc' Gt 'def'",false,Boolean.class);
evaluate("'abc' gt new java.lang.StringBuilder('def')",false,Boolean.class);
evaluate("'def' GT 'abc'",true,Boolean.class);
}
@Test
@ -213,10 +274,7 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -213,10 +274,7 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("5L >= 5L",true,Boolean.class);
evaluate("3.0d >= 5.0d",false,Boolean.class);
evaluate("5.0d >= 3.0d",true,Boolean.class);
evaluate("5.0d <= 5.0d",true,Boolean.class);
evaluate("'abc' >= 'def'",false,Boolean.class);
evaluate("'def' >= 'abc'",true,Boolean.class);
evaluate("'abc' >= 'abc'",true,Boolean.class);
evaluate("5.0d >= 5.0d",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') >= new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('3') >= new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("new java.math.BigDecimal('5') >= new java.math.BigDecimal('3')",true,Boolean.class);
@ -227,11 +285,19 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -227,11 +285,19 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("3L >= new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d >= new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d >= new java.math.BigDecimal('3.0')",true,Boolean.class);
evaluate("'abc' >= 'def'",false,Boolean.class);
evaluate("'def' >= 'abc'",true,Boolean.class);
evaluate("'abc' >= 'abc'",true,Boolean.class);
evaluate("3 GE 5",false,Boolean.class);
evaluate("5 gE 3",true,Boolean.class);
evaluate("6 Ge 6",true,Boolean.class);
evaluate("3L ge 5L",false,Boolean.class);
evaluate("5L ge 3L",true,Boolean.class);
evaluate("5L ge 5L",true,Boolean.class);
evaluate("3.0d ge 5.0d",false,Boolean.class);
evaluate("5.0d ge 3.0d",true,Boolean.class);
evaluate("5.0d ge 5.0d",true,Boolean.class);
evaluate("new java.math.BigDecimal('5') ge new java.math.BigDecimal('5')",true,Boolean.class);
evaluate("new java.math.BigDecimal('3') ge new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("new java.math.BigDecimal('5') ge new java.math.BigDecimal('3')",true,Boolean.class);
@ -242,41 +308,19 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -242,41 +308,19 @@ public class OperatorTests extends AbstractExpressionTests {
evaluate("3L ge new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d ge new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d ge new java.math.BigDecimal('3.0')",true,Boolean.class);
evaluate("'abc' ge 'def'",false,Boolean.class);
evaluate("'def' ge 'abc'",true,Boolean.class);
evaluate("'abc' ge 'abc'",true,Boolean.class);
}
@Test
publicvoidtestGreaterThan(){
evaluate("3 > 5",false,Boolean.class);
evaluate("5 > 3",true,Boolean.class);
evaluate("3L > 5L",false,Boolean.class);
evaluate("5L > 3L",true,Boolean.class);
evaluate("3.0d > 5.0d",false,Boolean.class);
evaluate("5.0d > 3.0d",true,Boolean.class);
evaluate("'abc' > 'def'",false,Boolean.class);
evaluate("'def' > 'abc'",true,Boolean.class);
evaluate("new java.math.BigDecimal('3') > new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("new java.math.BigDecimal('5') > new java.math.BigDecimal('3')",true,Boolean.class);
evaluate("3 > new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3L gt new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3.0d gt new java.math.BigDecimal('5')",false,Boolean.class);
evaluate("3L gt new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d gt new java.math.BigDecimal('3.1')",false,Boolean.class);
evaluate("3.0d gt new java.math.BigDecimal('3.0')",false,Boolean.class);
@Test
publicvoidtestRealLiteral(){
evaluate("3.5",3.5d,Double.class);
}
@Test
@ -527,10 +571,10 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -527,10 +571,10 @@ public class OperatorTests extends AbstractExpressionTests {
@Test
publicvoidtestStrings(){
evaluate("'abc' == 'abc'",true,Boolean.class);
evaluate("'abc' == 'def'",false,Boolean.class);
evaluate("'abc' != 'abc'",false,Boolean.class);
evaluate("'abc' != 'def'",true,Boolean.class);
evaluate("'abc' == 'abc'",true,Boolean.class);
evaluate("'abc' == 'def'",false,Boolean.class);
evaluate("'abc' != 'abc'",false,Boolean.class);
evaluate("'abc' != 'def'",true,Boolean.class);
}
@Test
@ -544,25 +588,41 @@ public class OperatorTests extends AbstractExpressionTests {
@@ -544,25 +588,41 @@ public class OperatorTests extends AbstractExpressionTests {