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

View differences:

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