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

View differences:

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