const test = require('tape') const helpers = require('./helpers') const AST = require('../src/ast') test('compiles numbers', t => { t.plan(1) const result = helpers.compile('5') t.equal(result, '5') }) test('compiles strings', t => { t.plan(1) const result = helpers.compile('"hello world"') t.equal(result, 'hello world') }) test('compiles core function applications', t => { t.plan(4) let result = helpers.compile('(+ 10 8)') t.equal(result, '18') result = helpers.compile('(- 7 3)') t.equal(result, '4') result = helpers.compile('(* 9 3)') t.equal(result, '27') result = helpers.compile('(/ 10 2)') t.equal(result, '5') }) test('compiles lambda expressions in the function position', t => { t.plan(2) let result = helpers.compile('((lambda (x) (+ x 1)) 2)') t.equal(result, '3') result = helpers.compile('((lambda (x y) (+ x y)) 2 3)') t.equal(result, '5') })