Exemplo n.º 1
0
exports.testProcs = function(test)
{
    test.equal(sjs.evaluate(['+',1,2]), 3);
    
    test.done();
}
Exemplo n.º 2
0
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();
}