exports.testProcs = function(test) { test.equal(sjs.evaluate(['+',1,2]), 3); test.done(); }
exports.testSpecialForms = function(test) { // quote test.deepEqual(sjs.evaluate(['quote',1]), 1); test.deepEqual(sjs.evaluate(['quote',[1,2]]), [1,2]); // if test.equal(sjs.evaluate(['if',true,1,2]), 1); test.equal(sjs.evaluate(['if',false,1,2]), 2); test.equal(sjs.execute('(if (> 100 0) 1 2)'), 1); test.equal(sjs.execute('(if (< 100 0) 1 2)'), 2); test.equal(sjs.execute('(if (empty? (list)) 1 2)'), 1); test.equal(sjs.execute('(if (not (empty? (list))) 1 2)'), 2); // define sjs.evaluate(['define','x',99]); test.equal(sjs.evaluate('x'), 99); // set! sjs.evaluate(['set!','x',55]); test.equal(sjs.evaluate('x'), 55); //lambda sjs.evaluate(['define','sqr',['lambda',['x'],['*','x','x']]]); test.equal(sjs.evaluate(['sqr', 5]), 25); //begin test.equal(sjs.evaluate(['begin',['define','y',12],['*','y','y']]), 144); test.done(); }