Revision 44139 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/TestCompiler.java
TestCompiler.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expresionevaluator.impl; |
2 | 2 |
|
3 |
import org.gvsig.expressionevaluator.impl.SQLLexicalAnalyzer; |
|
4 |
import org.gvsig.expressionevaluator.impl.DefaultCompiler; |
|
5 | 3 |
import junit.framework.TestCase; |
6 | 4 |
import org.gvsig.expressionevaluator.LexicalAnalyzer; |
7 | 5 |
import org.gvsig.expressionevaluator.Compiler; |
8 | 6 |
import org.gvsig.expressionevaluator.Code; |
7 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
|
8 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
|
9 | 9 |
import org.gvsig.expressionevaluator.ExpressionSyntaxException; |
10 | 10 |
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer; |
11 | 11 |
|
... | ... | |
30 | 30 |
// TODO add test methods here. The name must begin with 'test'. For example: |
31 | 31 |
// public void testHello() {} |
32 | 32 |
|
33 |
|
|
33 | 34 |
protected LexicalAnalyzer createLexicalAnalyzer() { |
34 |
SQLLexicalAnalyzer lexer = new SQLLexicalAnalyzer(); |
|
35 |
ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
|
36 |
LexicalAnalyzer lexer = manager.createLexicalAnalyzer(); |
|
35 | 37 |
return lexer; |
36 | 38 |
} |
37 |
|
|
38 |
protected Compiler createCompiler() { |
|
39 |
Compiler compiler = new DefaultCompiler(); |
|
39 |
|
|
40 |
protected org.gvsig.expressionevaluator.Compiler createCompiler() { |
|
41 |
ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
|
42 |
Compiler compiler = manager.createCompiler(); |
|
40 | 43 |
compiler.setLexicalAnalyzer(createLexicalAnalyzer()); |
41 | 44 |
return compiler; |
42 | 45 |
} |
43 | 46 |
|
44 |
|
|
45 | 47 |
public void testIdentifier1() { |
46 | 48 |
String source = "precio"; |
47 | 49 |
|
... | ... | |
51 | 53 |
} |
52 | 54 |
|
53 | 55 |
public void testIdentifier2() { |
56 |
Compiler compiler = createCompiler(); |
|
57 |
compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true); |
|
58 |
|
|
54 | 59 |
String source = "[precio]"; |
55 | 60 |
|
56 |
Compiler compiler = createCompiler(); |
|
57 | 61 |
Code code = compiler.compileExpression(source); |
58 | 62 |
assertEquals("\"precio\"", code.toString()); |
59 | 63 |
} |
60 | 64 |
|
61 | 65 |
public void testIdentifier3() { |
66 |
Compiler compiler = createCompiler(); |
|
67 |
|
|
62 | 68 |
String source = "\"precio\""; |
63 | 69 |
|
64 |
Compiler compiler = createCompiler(); |
|
65 | 70 |
Code code = compiler.compileExpression(source); |
66 | 71 |
assertEquals("\"precio\"", code.toString()); |
67 | 72 |
} |
... | ... | |
72 | 77 |
|
73 | 78 |
Compiler compiler = createCompiler(); |
74 | 79 |
Code code = compiler.compileExpression(source); |
75 |
assertEquals("true", code.toString());
|
|
80 |
assertEquals("TRUE", code.toString());
|
|
76 | 81 |
} |
77 | 82 |
|
78 | 83 |
public void testFalse() { |
... | ... | |
80 | 85 |
|
81 | 86 |
Compiler compiler = createCompiler(); |
82 | 87 |
Code code = compiler.compileExpression(source); |
83 |
assertEquals("false", code.toString());
|
|
88 |
assertEquals("FALSE", code.toString());
|
|
84 | 89 |
} |
85 | 90 |
|
86 | 91 |
public void testNull() { |
... | ... | |
88 | 93 |
|
89 | 94 |
Compiler compiler = createCompiler(); |
90 | 95 |
Code code = compiler.compileExpression(source); |
91 |
assertEquals("null", code.toString());
|
|
96 |
assertEquals("NULL", code.toString());
|
|
92 | 97 |
} |
93 | 98 |
|
94 | 99 |
public void testNotTrue() { |
... | ... | |
96 | 101 |
|
97 | 102 |
Compiler compiler = createCompiler(); |
98 | 103 |
Code code = compiler.compileExpression(source); |
99 |
assertEquals("not(true)", code.toString());
|
|
104 |
assertEquals("NOT(TRUE)", code.toString());
|
|
100 | 105 |
} |
101 | 106 |
|
102 | 107 |
public void testInteger() { |
... | ... | |
123 | 128 |
operator(">="); |
124 | 129 |
operator("<"); |
125 | 130 |
operator("<="); |
126 |
operator("like"); |
|
127 |
operator("ilike"); |
|
131 |
operator("LIKE"); |
|
132 |
operator("ILIKE"); |
|
133 |
operator("||"); |
|
128 | 134 |
operator("+"); |
129 | 135 |
operator("-"); |
130 | 136 |
operator("*"); |
131 |
// operator("^"); |
|
132 |
operator("or"); |
|
133 |
operator("and"); |
|
137 |
operator("OR"); |
|
138 |
operator("AND"); |
|
134 | 139 |
operator("%"); |
135 |
operator("is"); |
|
140 |
operator("IS"); |
|
141 |
|
|
142 |
operator("~"); |
|
136 | 143 |
} |
137 | 144 |
|
138 | 145 |
public void testAddMul() { |
... | ... | |
168 | 175 |
Compiler compiler = createCompiler(); |
169 | 176 |
|
170 | 177 |
Code code = compiler.compileExpression(source); |
171 |
assertEquals("+(\"precio\", abs(negate(10)))", code.toString());
|
|
178 |
assertEquals("+(\"precio\", abs(NEGATE(10)))", code.toString());
|
|
172 | 179 |
} |
173 | 180 |
|
174 | 181 |
public void testPI() { |
... | ... | |
189 | 196 |
assertEquals("+(\"precio\", CEIL(PI()))", code.toString()); |
190 | 197 |
} |
191 | 198 |
|
199 |
public void testGetitem1() { |
|
200 |
String source = "LIST('uno','dos','tres')[1]" ; |
|
201 |
|
|
202 |
Compiler compiler = createCompiler(); |
|
203 |
|
|
204 |
Code code = compiler.compileExpression(source); |
|
205 |
assertEquals("GETITEM(LIST('uno', 'dos', 'tres'), 1)", code.toString()); |
|
206 |
} |
|
207 |
|
|
192 | 208 |
public void testConcat() { |
193 | 209 |
String source = "CONCAT(precio,' euros')"; |
194 | 210 |
|
... | ... | |
208 | 224 |
} |
209 | 225 |
|
210 | 226 |
public void test2() { |
227 |
Compiler compiler = createCompiler(); |
|
228 |
compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true); |
|
229 |
|
|
211 | 230 |
String source = "[1990] = 0.168873933773767"; |
212 | 231 |
|
213 |
Compiler compiler = createCompiler(); |
|
214 |
|
|
215 | 232 |
Code code = compiler.compileExpression(source); |
216 | 233 |
assertEquals("=(\"1990\", 0.168873933773767)", code.toString()); |
217 | 234 |
} |
218 | 235 |
|
219 | 236 |
public void test2fields() { |
237 |
Compiler compiler = createCompiler(); |
|
238 |
compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true); |
|
239 |
|
|
220 | 240 |
String source = "[1990] = [precio]"; |
221 | 241 |
|
222 |
Compiler compiler = createCompiler(); |
|
223 |
|
|
224 | 242 |
Code code = compiler.compileExpression(source); |
225 | 243 |
assertEquals("=(\"1990\", \"precio\")", code.toString()); |
226 | 244 |
} |
Also available in: Unified diff