svn-gvsig-desktop / 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 / TestCodeToValue.java @ 44885
History | View | Annotate | Download (7.35 KB)
1 |
package org.gvsig.expresionevaluator.impl; |
---|---|
2 |
|
3 |
import junit.framework.TestCase; |
4 |
import org.gvsig.expressionevaluator.Code; |
5 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
6 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
7 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
8 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
9 |
import org.gvsig.expressionevaluator.LexicalAnalyzer; |
10 |
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer; |
11 |
|
12 |
public class TestCodeToValue extends TestCase { |
13 |
|
14 |
public TestCodeToValue(String testName) { |
15 |
super(testName);
|
16 |
} |
17 |
|
18 |
@Override
|
19 |
protected void setUp() throws Exception { |
20 |
super.setUp();
|
21 |
new DefaultLibrariesInitializer().fullInitialize();
|
22 |
} |
23 |
|
24 |
@Override
|
25 |
protected void tearDown() throws Exception { |
26 |
super.tearDown();
|
27 |
} |
28 |
|
29 |
// TODO add test methods here. The name must begin with 'test'. For example:
|
30 |
// public void testHello() {}
|
31 |
|
32 |
protected LexicalAnalyzer createLexicalAnalyzer() {
|
33 |
ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
34 |
LexicalAnalyzer lexer = manager.createLexicalAnalyzer(); |
35 |
return lexer;
|
36 |
} |
37 |
|
38 |
protected org.gvsig.expressionevaluator.Compiler createCompiler() {
|
39 |
ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
40 |
org.gvsig.expressionevaluator.Compiler compiler = manager.createCompiler(); |
41 |
compiler.setLexicalAnalyzer(createLexicalAnalyzer()); |
42 |
return compiler;
|
43 |
} |
44 |
|
45 |
public Code compileExpression(String source) { |
46 |
org.gvsig.expressionevaluator.Compiler compiler = createCompiler(); |
47 |
Code code = compiler.compileExpression(source); |
48 |
return code;
|
49 |
} |
50 |
|
51 |
public void testIdentifier1() { |
52 |
String source = "precio"; |
53 |
|
54 |
Code code = compileExpression(source); |
55 |
assertEquals("\"precio\"", code.toValue().toString());
|
56 |
} |
57 |
|
58 |
public void testIdentifier2() { |
59 |
org.gvsig.expressionevaluator.Compiler compiler = createCompiler(); |
60 |
compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true);
|
61 |
|
62 |
String source = "[precio]"; |
63 |
|
64 |
Code code = compiler.compileExpression(source); |
65 |
assertEquals("\"precio\"", code.toValue().toString());
|
66 |
} |
67 |
|
68 |
public void testIdentifier3() { |
69 |
String source = "\"precio\""; |
70 |
|
71 |
Code code = compileExpression(source); |
72 |
assertEquals("\"precio\"", code.toValue().toString());
|
73 |
} |
74 |
|
75 |
|
76 |
public void testTrue() { |
77 |
String source = "true"; |
78 |
|
79 |
Code code = compileExpression(source); |
80 |
assertEquals("TRUE", code.toValue().toString());
|
81 |
} |
82 |
|
83 |
public void testFalse() { |
84 |
String source = "false"; |
85 |
|
86 |
Code code = compileExpression(source); |
87 |
assertEquals("FALSE", code.toValue().toString());
|
88 |
} |
89 |
|
90 |
public void testNull() { |
91 |
String source = "null"; |
92 |
|
93 |
Code code = compileExpression(source); |
94 |
assertEquals("NULL", code.toValue().toString());
|
95 |
} |
96 |
|
97 |
public void testNotTrue() { |
98 |
String source = "not true"; |
99 |
|
100 |
Code code = compileExpression(source); |
101 |
assertEquals("NOT(TRUE)", code.toValue().toString());
|
102 |
} |
103 |
|
104 |
public void testInteger() { |
105 |
String source = "23"; |
106 |
|
107 |
Code code = compileExpression(source); |
108 |
assertEquals("23", code.toValue().toString());
|
109 |
} |
110 |
|
111 |
public void operator(String operatorName) { |
112 |
String source = "precio " + operatorName + " 23"; |
113 |
|
114 |
Code code = compileExpression(source); |
115 |
assertEquals("(\"precio\" "+ operatorName + " 23)", code.toValue().toString()); |
116 |
} |
117 |
|
118 |
public void testOperators() { |
119 |
|
120 |
operator("=");
|
121 |
operator("<>");
|
122 |
operator(">");
|
123 |
operator(">=");
|
124 |
operator("<");
|
125 |
operator("<=");
|
126 |
operator("LIKE");
|
127 |
operator("ILIKE");
|
128 |
operator("||");
|
129 |
operator("+");
|
130 |
operator("-");
|
131 |
operator("*");
|
132 |
operator("OR");
|
133 |
operator("AND");
|
134 |
// operator("%");
|
135 |
operator("IS");
|
136 |
|
137 |
operator("~");
|
138 |
} |
139 |
|
140 |
// public void testILike() {
|
141 |
// String source = "precio ILike 23";
|
142 |
//
|
143 |
// Code code = compileExpression(source);
|
144 |
// assertEquals("LOWER(\"precio\") LIKE LOWER(23)", code.toValue().toString());
|
145 |
// }
|
146 |
|
147 |
public void testAddMul() { |
148 |
String source = "precio + 10 * 2 + 20 + 30"; |
149 |
|
150 |
Code code = compileExpression(source); |
151 |
assertEquals("(((\"precio\" + (10 * 2)) + 20) + 30)", code.toValue().toString());
|
152 |
} |
153 |
|
154 |
public void testAddMulPar() { |
155 |
String source = "(precio + 10) * 2 + 20 + 30"; |
156 |
|
157 |
Code code = compileExpression(source); |
158 |
assertEquals("((((\"precio\" + 10) * 2) + 20) + 30)", code.toValue().toString());
|
159 |
} |
160 |
|
161 |
public void testAbs() { |
162 |
String source = "precio + abs(10)"; |
163 |
|
164 |
Code code = compileExpression(source); |
165 |
assertEquals("(\"precio\" + abs(10))", code.toValue().toString());
|
166 |
} |
167 |
|
168 |
public void testAbs2() { |
169 |
String source = "precio + abs(-10)"; |
170 |
|
171 |
Code code = compileExpression(source); |
172 |
assertEquals("(\"precio\" + abs(-10))", code.toValue().toString());
|
173 |
} |
174 |
|
175 |
public void testPI() { |
176 |
String source = "precio + PI()"; |
177 |
|
178 |
Code code = compileExpression(source); |
179 |
assertEquals("(\"precio\" + PI())", code.toValue().toString());
|
180 |
} |
181 |
|
182 |
public void testCeil() { |
183 |
String source = "precio + CEIL(PI())"; |
184 |
|
185 |
Code code = compileExpression(source); |
186 |
assertEquals("(\"precio\" + CEIL(PI()))", code.toValue().toString());
|
187 |
} |
188 |
|
189 |
public void testGetitem1() { |
190 |
String source = "LIST('uno','dos','tres')[1]" ; |
191 |
|
192 |
Code code = compileExpression(source); |
193 |
assertEquals("GETITEM(LIST('uno', 'dos', 'tres'), 1)", code.toValue().toString());
|
194 |
} |
195 |
|
196 |
public void testConcat() { |
197 |
String source = "CONCAT(precio,' euros')"; |
198 |
|
199 |
Code code = compileExpression(source); |
200 |
assertEquals("CONCAT(\"precio\", ' euros')", code.toValue().toString());
|
201 |
} |
202 |
|
203 |
public void test1() { |
204 |
String source = "NOMBRE03 = 'Torre d''En Besora (la)'"; |
205 |
|
206 |
Code code = compileExpression(source); |
207 |
assertEquals("(\"NOMBRE03\" = 'Torre d''En Besora (la)')", code.toValue().toString());
|
208 |
} |
209 |
|
210 |
public void test2() { |
211 |
org.gvsig.expressionevaluator.Compiler compiler = createCompiler(); |
212 |
compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true);
|
213 |
|
214 |
String source = "[1990] = 0.168873933773767"; |
215 |
|
216 |
Code code = compiler.compileExpression(source); |
217 |
assertEquals("(\"1990\" = 0.168873933773767)", code.toValue().toString());
|
218 |
} |
219 |
|
220 |
public void test2fields() { |
221 |
org.gvsig.expressionevaluator.Compiler compiler = createCompiler(); |
222 |
compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true);
|
223 |
|
224 |
String source = "[1990] = [precio]"; |
225 |
|
226 |
Code code = compiler.compileExpression(source); |
227 |
assertEquals("(\"1990\" = \"precio\")", code.toValue().toString());
|
228 |
} |
229 |
|
230 |
|
231 |
public void testInvokeFunction1() { |
232 |
String source = "ST_Area(GEOMETRY)"; |
233 |
|
234 |
Code code = compileExpression(source); |
235 |
assertEquals("ST_Area(\"GEOMETRY\")", code.toValue().toString());
|
236 |
} |
237 |
|
238 |
} |