Revision 47099 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestInterpreter.java
TestInterpreter.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expresionevaluator.impl; |
2 | 2 |
|
3 |
import java.util.List; |
|
4 | 3 |
import java.util.Map; |
5 | 4 |
import junit.framework.TestCase; |
6 | 5 |
import org.apache.commons.lang3.StringUtils; |
6 |
import org.apache.commons.lang3.tuple.ImmutablePair; |
|
7 |
import org.apache.commons.lang3.tuple.Pair; |
|
7 | 8 |
import org.gvsig.expressionevaluator.AttributeHandler; |
8 | 9 |
import org.gvsig.expressionevaluator.LexicalAnalyzer; |
9 | 10 |
import org.gvsig.expressionevaluator.Compiler; |
... | ... | |
729 | 730 |
assertEquals( 2, v); |
730 | 731 |
} |
731 | 732 |
|
733 |
public void testLike() { |
|
734 |
Pair<String, Boolean>[] sources = new Pair[] { |
|
735 |
// new ImmutablePair<>("'\\110?' LIKE '\\\\%?'", Boolean.TRUE), |
|
736 |
new ImmutablePair<>("'1.3' LIKE '%||%'", Boolean.FALSE), |
|
737 |
new ImmutablePair<>("'1.3||' LIKE '%||%'", Boolean.TRUE), |
|
738 |
new ImmutablePair<>("'1.3' LIKE '%.%'", Boolean.TRUE), |
|
739 |
new ImmutablePair<>("'123' LIKE '%.%'", Boolean.FALSE), |
|
740 |
new ImmutablePair<>("'123' LIKE '%[%'", Boolean.FALSE), |
|
741 |
new ImmutablePair<>("'12[3]' LIKE '%[%'", Boolean.TRUE), |
|
742 |
new ImmutablePair<>("'12[3]' LIKE '%]%'", Boolean.TRUE), |
|
743 |
new ImmutablePair<>("'123]' LIKE '%[%'", Boolean.FALSE), |
|
744 |
new ImmutablePair<>("'(1{3}|3)' LIKE '(%{%}|%)'", Boolean.TRUE), |
|
745 |
new ImmutablePair<>("'(1{3}|3' LIKE '(%{%}|%)'", Boolean.FALSE), |
|
746 |
new ImmutablePair<>("'1*?' LIKE '%*&%?'", Boolean.FALSE), |
|
747 |
new ImmutablePair<>("'1*&10?' LIKE '%*&%?'", Boolean.TRUE), |
|
748 |
}; |
|
749 |
|
|
750 |
MutableSymbolTable symbolTable = createSymbolTable(); |
|
751 |
Compiler compiler = createCompiler(); |
|
752 |
Interpreter interpreter = createInterpreter(symbolTable); |
|
753 |
|
|
754 |
for (Pair<String, Boolean> source : sources) { |
|
755 |
Code code = compiler.compileExpression(source.getLeft()); |
|
756 |
Object v = interpreter.run(code); |
|
757 |
assertEquals(source.getLeft(), source.getRight(), v); |
|
758 |
} |
|
759 |
} |
|
760 |
|
|
761 |
public void testNotLike1() { |
|
762 |
String source = "NOT ( FIELD LIKE '%||%' )"; |
|
763 |
|
|
764 |
MutableSymbolTable symbolTable = createSymbolTable(); |
|
765 |
symbolTable.setVar("FIELD", "1.3"); |
|
766 |
Compiler compiler = createCompiler(); |
|
767 |
Interpreter interpreter = createInterpreter(symbolTable); |
|
768 |
|
|
769 |
Code code = compiler.compileExpression(source); |
|
770 |
Object v = interpreter.run(code); |
|
771 |
assertEquals( true, v); |
|
772 |
} |
|
732 | 773 |
} |
Also available in: Unified diff