svn-gvsig-desktop / 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 / TestCodeToValue.java @ 44644
History | View | Annotate | Download (3.48 KB)
1 | 44006 | jjdelcerro | package org.gvsig.expresionevaluator.impl; |
---|---|---|---|
2 | 43128 | jjdelcerro | |
3 | 44006 | jjdelcerro | import junit.framework.TestCase; |
4 | 43128 | jjdelcerro | import org.cresques.cts.IProjection; |
5 | 44198 | jjdelcerro | import org.gvsig.expressionevaluator.Code; |
6 | import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
||
7 | import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
||
8 | 44644 | jjdelcerro | import org.gvsig.expressionevaluator.GeometryExpressionBuilder; |
9 | import org.gvsig.expressionevaluator.GeometryExpressionUtils; |
||
10 | 44198 | jjdelcerro | import org.gvsig.expressionevaluator.LexicalAnalyzer; |
11 | 43128 | jjdelcerro | import org.gvsig.fmap.crs.CRSFactory; |
12 | 44198 | jjdelcerro | import org.gvsig.fmap.geom.GeometryUtils; |
13 | 43128 | jjdelcerro | import org.gvsig.fmap.geom.exception.CreateGeometryException; |
14 | import org.gvsig.fmap.geom.primitive.Point; |
||
15 | 44006 | jjdelcerro | import org.gvsig.tools.library.impl.DefaultLibrariesInitializer; |
16 | 43128 | jjdelcerro | |
17 | 44198 | jjdelcerro | public class TestCodeToValue extends TestCase { |
18 | |||
19 | public TestCodeToValue(String testName) { |
||
20 | 44006 | jjdelcerro | super(testName);
|
21 | } |
||
22 | |||
23 | 43128 | jjdelcerro | @Override
|
24 | 44006 | jjdelcerro | protected void setUp() throws Exception { |
25 | super.setUp();
|
||
26 | new DefaultLibrariesInitializer().fullInitialize();
|
||
27 | } |
||
28 | 43128 | jjdelcerro | |
29 | 44006 | jjdelcerro | @Override
|
30 | protected void tearDown() throws Exception { |
||
31 | super.tearDown();
|
||
32 | 43128 | jjdelcerro | } |
33 | 44006 | jjdelcerro | |
34 | // TODO add test methods here. The name must begin with 'test'. For example:
|
||
35 | // public void testHello() {}
|
||
36 | 43128 | jjdelcerro | |
37 | 44198 | jjdelcerro | protected LexicalAnalyzer createLexicalAnalyzer() {
|
38 | ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
||
39 | LexicalAnalyzer lexer = manager.createLexicalAnalyzer(); |
||
40 | return lexer;
|
||
41 | 43128 | jjdelcerro | } |
42 | 44198 | jjdelcerro | |
43 | protected org.gvsig.expressionevaluator.Compiler createCompiler() {
|
||
44 | ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
||
45 | org.gvsig.expressionevaluator.Compiler compiler = manager.createCompiler(); |
||
46 | compiler.setLexicalAnalyzer(createLexicalAnalyzer()); |
||
47 | return compiler;
|
||
48 | } |
||
49 | 43128 | jjdelcerro | |
50 | 44198 | jjdelcerro | public Code compileExpression(String source) { |
51 | org.gvsig.expressionevaluator.Compiler compiler = createCompiler(); |
||
52 | Code code = compiler.compileExpression(source); |
||
53 | return code;
|
||
54 | 43128 | jjdelcerro | } |
55 | |||
56 | public void test3() throws CreateGeometryException { |
||
57 | 44644 | jjdelcerro | GeometryExpressionBuilder builder = GeometryExpressionUtils.createExpressionBuilder(); |
58 | 44198 | jjdelcerro | |
59 | 43128 | jjdelcerro | IProjection proj = CRSFactory.getCRS("EPSG:4326");
|
60 | 44198 | jjdelcerro | Point point = GeometryUtils.createPoint(10, 20); |
61 | |||
62 | 43128 | jjdelcerro | builder.set( |
63 | builder.ST_Intersects( |
||
64 | builder.geometry(point,proj), |
||
65 | builder.variable("the_geom")
|
||
66 | ) |
||
67 | ); |
||
68 | 44198 | jjdelcerro | Code code = compileExpression(builder.toString()); |
69 | 43128 | jjdelcerro | assertEquals( |
70 | 44198 | jjdelcerro | "ST_Intersects(ST_GeomFromWKB(DECODE('000000000140240000000000004034000000000000', 'hex'), 4326), \"the_geom\")",
|
71 | code.toValue().toString() |
||
72 | 43128 | jjdelcerro | ); |
73 | } |
||
74 | |||
75 | public void test4() throws CreateGeometryException { |
||
76 | 44644 | jjdelcerro | GeometryExpressionBuilder builder = GeometryExpressionUtils.createExpressionBuilder(); |
77 | 44198 | jjdelcerro | |
78 | 43128 | jjdelcerro | IProjection proj = CRSFactory.getCRS("EPSG:4326");
|
79 | 44198 | jjdelcerro | Point point = GeometryUtils.createPoint(10, 20); |
80 | |||
81 | builder.set( |
||
82 | builder.function("ST_Intersects2",
|
||
83 | builder.geometry(point,proj), |
||
84 | builder.variable("the_geom")
|
||
85 | ) |
||
86 | 43128 | jjdelcerro | ); |
87 | 44198 | jjdelcerro | Code code = compileExpression(builder.toString()); |
88 | 43128 | jjdelcerro | assertEquals( |
89 | 44198 | jjdelcerro | "ST_Intersects2(ST_GeomFromWKB(DECODE('000000000140240000000000004034000000000000', 'hex'), 4326), \"the_geom\")",
|
90 | code.toValue().toString() |
||
91 | 43128 | jjdelcerro | ); |
92 | } |
||
93 | 44198 | jjdelcerro | |
94 | 43128 | jjdelcerro | } |