Revision 45739 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/TestJsonInterpreter.java

View differences:

TestJsonInterpreter.java
206 206

  
207 207
    }
208 208
    
209
    public void testLambda1() throws ParseException {
210
        SymbolTable symbolTable = createSymbolTable();
211
        Compiler compiler = createCompiler();
212
        Interpreter interpreter = createInterpreter(symbolTable);
213
        
214
        String source = "begin set x to 10 ; set fn = lambda : x * 2; fn(); end";
215

  
216
        Code code = compiler.compileExpression(source);
217
        assertEquals("BLOCK(LET('x', 10), LET('fn', CREATE_FUNCTION(NULL, (\"x\" * 2))), fn())", code.toString());
218

  
219
        Object v = interpreter.run(code);
220
        assertEquals(20, ((Number)v).intValue());
221
    }
222

  
223
    public void testLambda1WithArgs() throws ParseException {
224
        SymbolTable symbolTable = createSymbolTable();
225
        Compiler compiler = createCompiler();
226
        Interpreter interpreter = createInterpreter(symbolTable);
227
        
228
        String source = "begin set x to 10 ; set fn = lambda n : (x * 2) + n; fn(3); end";
229

  
230
        Code code = compiler.compileExpression(source);
231
        assertEquals("BLOCK(LET('x', 10), LET('fn', CREATE_FUNCTION(LIST('n'), ((\"x\" * 2) + \"n\"))), fn(3))", code.toString());
232

  
233
        Object v = interpreter.run(code);
234
        assertEquals(23, ((Number)v).intValue());
235
    }
236

  
237 209
    public void testMap1() throws ParseException {
238 210
        SymbolTable symbolTable = createSymbolTable();
239 211
        Compiler compiler = createCompiler();

Also available in: Unified diff