mirror of
https://github.com/josdejong/mathjs.git
synced 2026-01-25 15:07:57 +00:00
New generic toString for FunctionAssignmentNode
This commit is contained in:
parent
b1a438fd7f
commit
1f2f42012c
@ -3,6 +3,7 @@
|
||||
var Node = require('./Node');
|
||||
var keywords = require('../keywords');
|
||||
var latex = require('../../util/latex');
|
||||
var operators = require('../operators');
|
||||
var isString = require('../../util/string').isString;
|
||||
var isArray = Array.isArray;
|
||||
|
||||
@ -96,9 +97,15 @@ FunctionAssignmentNode.prototype.clone = function() {
|
||||
* @return {String} str
|
||||
*/
|
||||
FunctionAssignmentNode.prototype.toString = function() {
|
||||
var precedence = operators.getPrecedence(this);
|
||||
var exprPrecedence = operators.getPrecedence(this.expr);
|
||||
|
||||
var expr = this.expr.toString();
|
||||
if ((exprPrecedence !== null) && (exprPrecedence <= precedence)) {
|
||||
expr = '(' + expr + ')';
|
||||
}
|
||||
return 'function ' + this.name +
|
||||
'(' + this.params.join(', ') + ') = ' +
|
||||
this.expr.toString();
|
||||
'(' + this.params.join(', ') + ') = ' + expr;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@ -6,6 +6,7 @@ var assert = require('assert'),
|
||||
ConstantNode = require('../../../lib/expression/node/ConstantNode'),
|
||||
OperatorNode = require('../../../lib/expression/node/OperatorNode'),
|
||||
FunctionAssignmentNode = require('../../../lib/expression/node/FunctionAssignmentNode'),
|
||||
AssignmentNode = require('../../../lib/expression/node/AssignmentNode'),
|
||||
RangeNode = require('../../../lib/expression/node/RangeNode'),
|
||||
SymbolNode = require('../../../lib/expression/node/SymbolNode');
|
||||
|
||||
@ -178,6 +179,15 @@ describe('FunctionAssignmentNode', function() {
|
||||
assert.equal(n.toString(), 'function f(x) = 2 + x');
|
||||
});
|
||||
|
||||
it ('should stringify a FunctionAssignmentNode conataining an AssignmentNode', function () {
|
||||
var a = new ConstantNode(2);
|
||||
|
||||
var n1 = new AssignmentNode('a', a);
|
||||
var n = new FunctionAssignmentNode('f', ['x'], n1);
|
||||
|
||||
assert.equal(n.toString(), 'function f(x) = (a = 2)');
|
||||
});
|
||||
|
||||
it ('should LaTeX a FunctionAssignmentNode', function() {
|
||||
var a = new ConstantNode(2);
|
||||
var x = new SymbolNode('x');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user