mathjs/test/expression/node/SymbolNode.test.js
2014-01-07 21:07:43 +01:00

46 lines
1.2 KiB
JavaScript

// test SymbolNode
var assert = require('assert'),
approx = require('../../../tools/approx'),
math = require('../../../index')(),
Node = require('../../../lib/expression/node/Node'),
ConstantNode = require('../../../lib/expression/node/ConstantNode'),
SymbolNode = require('../../../lib/expression/node/SymbolNode');
describe('SymbolNode', function() {
it ('should throw an error when evaluating an undefined symbol', function () {
var scope = {};
var s = new SymbolNode('foo');
assert.throws(function () {s.compile(math).eval(scope)}, Error);
});
it ('should compile a SymbolNode', function () {
var s = new SymbolNode('a');
var expr = s.compile(math);
var scope = {a: 5};
assert.equal(expr.eval(scope), 5);
assert.throws(function () {expr.eval({})}, Error);
var s2 = new SymbolNode('sqrt');
var expr2 = s2.compile(math);
var scope2 = {};
assert.strictEqual(expr2.eval(scope2), math.sqrt);
});
it ('should find a SymbolNode', function () {
// TODO
});
it ('should match a SymbolNode', function () {
// TODO
});
it ('should stringify a SymbolNode', function () {
var s = new SymbolNode('foo');
assert.equal(s.toString(), 'foo');
});
});