package org.geotools.filter; import java.math.BigDecimal; import junit.framework.TestCase; import org.opengis.filter.PropertyIsEqualTo; import org.opengis.filter.expression.Expression; public class IsEqualsToImplTest extends TestCase { org.opengis.filter.FilterFactory filterFactory = FilterFactoryFinder.createFilterFactory(); public void testOperandsShort() { Expression literalShort42 = filterFactory.literal( (short) 42 ); Expression literalString42 = filterFactory.literal("42"); Expression literalDouble42 = filterFactory.literal( 42.0 ); Expression literalLong42 = filterFactory.literal( (long) 42 ); Expression literalFloat42 = filterFactory.literal( (float) 42 ); assertTrue( filterFactory.equals( literalShort42, literalShort42).evaluate( null ) ); assertTrue( filterFactory.equals( literalShort42, literalString42).evaluate( null ) ); assertTrue( filterFactory.equals( literalShort42, literalDouble42).evaluate( null ) ); assertTrue( filterFactory.equals( literalShort42, literalLong42).evaluate( null ) ); assertTrue( filterFactory.equals( literalShort42, literalFloat42).evaluate( null ) ); assertTrue( filterFactory.equals( literalShort42, literalDouble42).evaluate( null ) ); } public void testOperandsSameType() { Expression e1 = filterFactory.literal(1); Expression e2 = filterFactory.literal(1); PropertyIsEqualTo equal = filterFactory.equals(e1, e2); assertTrue(equal.evaluate(null)); } public void testOperandsIntString() { Expression e1 = filterFactory.literal(1); Expression e2 = filterFactory.literal("1"); PropertyIsEqualTo equal = filterFactory.equals(e1, e2); assertTrue(equal.evaluate(null)); } public void testOperandsLongInt() { Expression e1 = filterFactory.literal(1); Expression e2 = filterFactory.literal(1l); PropertyIsEqualTo equal = filterFactory.equals(e1, e2); assertTrue(equal.evaluate(null)); } public void testOperandsFloatInt() { Expression e1 = filterFactory.literal(1.0f); Expression e2 = filterFactory.literal(1); PropertyIsEqualTo equal = filterFactory.equals(e1, e2); assertTrue(equal.evaluate(null)); } public void testOperandsDoubleLong() { Expression e1 = filterFactory.literal(1.0); Expression e2 = filterFactory.literal(1l); PropertyIsEqualTo equal = filterFactory.equals(e1, e2); assertTrue(equal.evaluate(null)); } public void testOperandsDoubleLongOutOfRange() { Expression e1 = filterFactory.literal(new Double(Long.MAX_VALUE).doubleValue() + 10000.0); Expression e2 = filterFactory.literal(Long.MAX_VALUE); PropertyIsEqualTo equal = filterFactory.equals(e1, e2); assertFalse(equal.evaluate(null)); } }