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/TestOptimizer.java
TestOptimizer.java | ||
---|---|---|
126 | 126 |
} |
127 | 127 |
|
128 | 128 |
public void testIdentifier2() { |
129 |
Compiler compiler = createCompiler(); |
|
130 |
compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true); |
|
131 |
|
|
129 | 132 |
String source = "[precio]"; |
130 | 133 |
|
131 |
Compiler compiler = createCompiler(); |
|
132 | 134 |
Code code = compiler.compileExpression(source); |
133 | 135 |
assertEquals("\"precio\"", code.toString()); |
134 | 136 |
|
... | ... | |
156 | 158 |
|
157 | 159 |
Compiler compiler = createCompiler(); |
158 | 160 |
Code code = compiler.compileExpression(source); |
159 |
assertEquals("true", code.toString());
|
|
161 |
assertEquals("TRUE", code.toString());
|
|
160 | 162 |
|
161 | 163 |
SymbolTable symbolTable = createSymbolTable(); |
162 | 164 |
Optimizer optimizer = createOptimizer(symbolTable); |
163 | 165 |
Code code2 = optimizer.optimize(code); |
164 |
assertEquals("true", code2.toString());
|
|
166 |
assertEquals("TRUE", code2.toString());
|
|
165 | 167 |
} |
166 | 168 |
|
167 | 169 |
public void testFalse() { |
... | ... | |
169 | 171 |
|
170 | 172 |
Compiler compiler = createCompiler(); |
171 | 173 |
Code code = compiler.compileExpression(source); |
172 |
assertEquals("false", code.toString());
|
|
174 |
assertEquals("FALSE", code.toString());
|
|
173 | 175 |
|
174 | 176 |
SymbolTable symbolTable = createSymbolTable(); |
175 | 177 |
Optimizer optimizer = createOptimizer(symbolTable); |
176 | 178 |
Code code2 = optimizer.optimize(code); |
177 |
assertEquals("false", code2.toString());
|
|
179 |
assertEquals("FALSE", code2.toString());
|
|
178 | 180 |
} |
179 | 181 |
|
180 | 182 |
public void testNull() { |
... | ... | |
182 | 184 |
|
183 | 185 |
Compiler compiler = createCompiler(); |
184 | 186 |
Code code = compiler.compileExpression(source); |
185 |
assertEquals("null", code.toString());
|
|
187 |
assertEquals("NULL", code.toString());
|
|
186 | 188 |
|
187 | 189 |
SymbolTable symbolTable = createSymbolTable(); |
188 | 190 |
Optimizer optimizer = createOptimizer(symbolTable); |
189 | 191 |
Code code2 = optimizer.optimize(code); |
190 |
assertEquals("null", code2.toString());
|
|
192 |
assertEquals("NULL", code2.toString());
|
|
191 | 193 |
} |
192 | 194 |
|
193 | 195 |
public void testNotTrue() { |
... | ... | |
195 | 197 |
|
196 | 198 |
Compiler compiler = createCompiler(); |
197 | 199 |
Code code = compiler.compileExpression(source); |
198 |
assertEquals("not(true)", code.toString());
|
|
200 |
assertEquals("NOT(TRUE)", code.toString());
|
|
199 | 201 |
|
200 | 202 |
SymbolTable symbolTable = createSymbolTable(); |
201 | 203 |
Optimizer optimizer = createOptimizer(symbolTable); |
202 | 204 |
Code code2 = optimizer.optimize(code); |
203 |
assertEquals("false", code2.toString());
|
|
205 |
assertEquals("FALSE", code2.toString());
|
|
204 | 206 |
} |
205 | 207 |
|
206 | 208 |
public void testInteger() { |
... | ... | |
237 | 239 |
operator(">="); |
238 | 240 |
operator("<"); |
239 | 241 |
operator("<="); |
240 |
operator("like"); |
|
241 |
operator("ilike"); |
|
242 |
operator("LIKE"); |
|
243 |
operator("ILIKE"); |
|
244 |
operator("||"); |
|
242 | 245 |
operator("+"); |
243 | 246 |
operator("-"); |
244 | 247 |
operator("*"); |
245 | 248 |
// operator("^"); |
246 |
operator("or");
|
|
247 |
operator("and");
|
|
249 |
operator("OR");
|
|
250 |
operator("AND");
|
|
248 | 251 |
operator("%"); |
249 |
operator("is");
|
|
252 |
operator("IS");
|
|
250 | 253 |
} |
251 | 254 |
|
252 | 255 |
|
... | ... | |
354 | 357 |
Compiler compiler = createCompiler(); |
355 | 358 |
|
356 | 359 |
Code code = compiler.compileExpression(source); |
357 |
assertEquals("+(\"precio\", abs(negate(10)))", code.toString());
|
|
360 |
assertEquals("+(\"precio\", abs(NEGATE(10)))", code.toString());
|
|
358 | 361 |
|
359 | 362 |
SymbolTable symbolTable = createSymbolTable(); |
360 | 363 |
Optimizer optimizer = createOptimizer(symbolTable); |
... | ... | |
404 | 407 |
assertEquals("CONCAT(\"precio\", ' euros')", code2.toString()); |
405 | 408 |
} |
406 | 409 |
|
410 |
public void testConcat2() { |
|
411 |
String source = "CONCAT(precio,' euros')"; |
|
412 |
|
|
413 |
Compiler compiler = createCompiler(); |
|
414 |
|
|
415 |
Code code = compiler.compileExpression(source); |
|
416 |
assertEquals("CONCAT(\"precio\", ' euros')", code.toString()); |
|
417 |
|
|
418 |
SymbolTable symbolTable = createSymbolTable(); |
|
419 |
Optimizer optimizer = createOptimizer(symbolTable); |
|
420 |
Code code2 = optimizer.optimize(code); |
|
421 |
assertEquals("CONCAT(\"precio\", ' euros')", code2.toString()); |
|
422 |
} |
|
423 |
|
|
407 | 424 |
public void testInvokeFunction1() { |
408 | 425 |
String source = "ST_Area(GEOMETRY)"; |
409 | 426 |
|
... | ... | |
454 | 471 |
Code code = compiler.compileExpression(source); |
455 | 472 |
System.out.println(code.toString()); |
456 | 473 |
assertEquals( |
457 |
"and(>(\"campo1\", 10), ST_Intersects(ST_GeomFromWKB(DECODE('000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000', 'hex'), 4326), \"GEOMETRY\"))",
|
|
474 |
"AND(>(\"campo1\", 10), ST_Intersects(ST_GeomFromWKB(DECODE('000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000', 'hex'), 4326), \"GEOMETRY\"))",
|
|
458 | 475 |
code.toString() |
459 | 476 |
); |
460 | 477 |
|
... | ... | |
470 | 487 |
// System.out.println("Tiempo de optimizacion: " + (System.currentTimeMillis() - t1)); |
471 | 488 |
System.out.println(code2.toString()); |
472 | 489 |
assertEquals( |
473 |
"and(>(\"campo1\", 10), ST_Intersects('POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))'::geometry, \"GEOMETRY\"))",
|
|
490 |
"AND(>(\"campo1\", 10), ST_Intersects('POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))'::geometry, \"GEOMETRY\"))",
|
|
474 | 491 |
code2.toString() |
475 | 492 |
); |
476 | 493 |
|
Also available in: Unified diff