Revision 47598 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.geometry/org.gvsig.expressionevaluator.geometry.lib/org.gvsig.expressionevaluator.geometry.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestInterpreter.java
TestInterpreter.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expresionevaluator.impl; |
2 | 2 |
|
3 | 3 |
import junit.framework.TestCase; |
4 |
import org.cresques.cts.IProjection; |
|
4 | 5 |
import org.gvsig.expressionevaluator.LexicalAnalyzer; |
5 | 6 |
import org.gvsig.expressionevaluator.Compiler; |
6 | 7 |
import org.gvsig.expressionevaluator.SymbolTable; |
... | ... | |
8 | 9 |
import org.gvsig.expressionevaluator.Code; |
9 | 10 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
10 | 11 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
12 |
import org.gvsig.expressionevaluator.GeometryExpressionBuilder; |
|
13 |
import org.gvsig.expressionevaluator.GeometryExpressionUtils; |
|
11 | 14 |
import org.gvsig.expressionevaluator.MutableSymbolTable; |
15 |
import org.gvsig.fmap.crs.CRSFactory; |
|
16 |
import org.gvsig.fmap.geom.Geometry; |
|
17 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
18 |
import org.gvsig.fmap.geom.GeometryManager; |
|
19 |
import org.gvsig.fmap.geom.primitive.Point; |
|
12 | 20 |
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer; |
13 | 21 |
|
14 | 22 |
public class TestInterpreter extends TestCase { |
... | ... | |
46 | 54 |
} |
47 | 55 |
|
48 | 56 |
|
49 |
protected SymbolTable createSymbolTable() { |
|
57 |
protected MutableSymbolTable createSymbolTable() {
|
|
50 | 58 |
ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
51 | 59 |
MutableSymbolTable symbolTable = manager.createSymbolTable(); |
52 | 60 |
symbolTable.setVar("precio", 200); |
... | ... | |
60 | 68 |
interpreter.setSymbolTable(symbolTable); |
61 | 69 |
return interpreter; |
62 | 70 |
} |
71 |
|
|
72 |
protected GeometryExpressionBuilder createExpressionBuilder() { |
|
73 |
GeometryExpressionBuilder builder = GeometryExpressionUtils.createExpressionBuilder(); |
|
74 |
return builder; |
|
75 |
} |
|
63 | 76 |
|
64 | 77 |
public void testIdentifier1() { |
65 | 78 |
SymbolTable symbolTable = createSymbolTable(); |
... | ... | |
297 | 310 |
assertEquals(190, ((Number)v).intValue()); |
298 | 311 |
} |
299 | 312 |
|
313 |
@SuppressWarnings({"UseSpecificCatch", "CallToPrintStackTrace"}) |
|
314 |
public void testAndAnd1() throws Throwable { |
|
315 |
try { |
|
316 |
GeometryExpressionBuilder builder = createExpressionBuilder(); |
|
317 |
|
|
318 |
GeometryManager geometryManager = GeometryLocator.getGeometryManager(); |
|
319 |
IProjection proj = CRSFactory.getCRS("EPSG:4326"); |
|
320 |
|
|
321 |
Point point = geometryManager.createPoint(-0.1779813, 51.6122315, Geometry.SUBTYPES.GEOM2D); |
|
322 |
Geometry point_buffer = point.buffer(0.001); |
|
323 |
|
|
324 |
builder.and( |
|
325 |
builder.andand( |
|
326 |
builder.column("geometry"), |
|
327 |
builder.geometry(point_buffer, proj) |
|
328 |
) |
|
329 |
); |
|
330 |
|
|
331 |
MutableSymbolTable symbolTable = createSymbolTable(); |
|
332 |
Compiler compiler = createCompiler(); |
|
333 |
Interpreter interpreter = createInterpreter(symbolTable); |
|
334 |
|
|
335 |
symbolTable.setVar("geometry", point); |
|
336 |
String source = builder.toString(); |
|
337 |
|
|
338 |
Code code = compiler.compileExpression(source); |
|
339 |
Object v = interpreter.run(code); |
|
340 |
assertEquals(true, ((Boolean)v).booleanValue()); |
|
341 |
} catch(Throwable t) { |
|
342 |
t.printStackTrace(); |
|
343 |
throw t; |
|
344 |
} |
|
345 |
} |
|
346 |
|
|
300 | 347 |
public void testMul1() { |
301 | 348 |
SymbolTable symbolTable = createSymbolTable(); |
302 | 349 |
Compiler compiler = createCompiler(); |
Also available in: Unified diff