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
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