const test = require('tape') const helpers = require('./helpers') const AST = require('../src/ast') const OsloError = require('../src/osloError') test('list function', t => { t.plan(1) const tree = helpers.evaluate('(list 1 2 3)') t.deepEqual(tree[0], new AST.List({ elements: [ new AST.Number({ value: 1, line: 1 }), new AST.Number({ value: 2, line: 1 }), new AST.Number({ value: 3, line: 1 }), ] })) }) test('length function', t => { t.plan(2) let tree = helpers.evaluate('(length (list 1 2 3))') t.deepEqual(tree[0], new AST.Number({ value: 3 })) tree = helpers.evaluate('(length 5)') t.deepEqual( tree, new OsloError({ line: 1, message: 'length: argument is not a list' }) ) })