mathjs
Version:
Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser and offers an integrated solution to work with numbers, big numbers, complex numbers, units, and matrices.
42 lines (31 loc) • 1.27 kB
JavaScript
var assert = require('assert');
var math = require('../../../index');
describe('Fraction', function () {
it('should have a property isFraction', function () {
var a = new math.type.Fraction(1,3);
assert.strictEqual(a.isFraction, true);
});
it('should have a property type', function () {
var a = new math.type.Fraction(1,3);
assert.strictEqual(a.type, 'Fraction');
});
it('should have a valueOf method', function () {
var a = new math.type.Fraction(1,2);
assert.strictEqual(a.valueOf(), 0.5);
});
it('toJSON', function () {
assert.deepEqual(new math.type.Fraction(0.375).toJSON(), {'mathjs': 'Fraction', n: 3, d: 8});
assert.deepEqual(new math.type.Fraction(-0.375).toJSON(), {'mathjs': 'Fraction', n: -3, d: 8});
});
it('fromJSON', function () {
var b = math.type.Fraction.fromJSON({n: 3, d: 8});
assert.ok(b instanceof math.type.Fraction);
assert.strictEqual(b.toString(), '0.375');
var c = math.type.Fraction.fromJSON({n: -3, d: 8});
assert.ok(c instanceof math.type.Fraction);
assert.strictEqual(c.toString(), '-0.375');
var d = math.type.Fraction.fromJSON({n: 3, d: -8});
assert.ok(d instanceof math.type.Fraction);
assert.strictEqual(d.toString(), '-0.375');
});
});