basic-calculator
Version:
A basic calculator module.
122 lines (116 loc) • 4.35 kB
JavaScript
var should = require('chai').should(),
maths = require('../index');
describe('#correct', function() {
it('verifies 1 + 1 = 2', function() {
a = 1;
maths.add(a, a).should.equal(2);
});
it('verifies 1 - 1 = 0', function() {
a = 1;
maths.sub(a, a).should.equal(0);
});
it('verifies 1 / 2 = 0.5', function() {
maths.div(1, 2).should.equal(0.5);
});
it('verifies 5 * 2 = 10', function() {
maths.mult(5, 2).should.equal(10);
});
it('verifies 10 is the max of [0,2,4,6,8,10]', function() {
a = [0,2,4,6,8,10];
maths.max(a).should.equal(10);
});
it('verifies 0 is the min of [0,2,4,6,8,10]', function() {
a = [0,2,4,6,8,10];
maths.min(a).should.equal(0);
});
it('verifies 5 % 2 = 1', function() {
maths.mod(5, 2).should.equal(1);
});
it('verifies 2 ^ 10 = 1024', function() {
maths.pow(2, 10).should.equal(1024);
});
it('verifies 1 is 20% of 5', function() {
maths.perc(5, 1).should.equal(20);
});
it('verifies -1.2 is the slope of [1,-4],[-4,2]', function() {
var a = [1, -4];
var b = [-4, 2];
maths.slope(a, b).should.equal(-1.2);
});
it('verifies 5 is the mean of [3,4,5,6,7]', function() {
var a = [3,4,5,6,7];
maths.mean(a).should.equal(5);
});
it('verifies [5] is the mode of [1,1,2,3,4,4,5,5,5]', function() {
var a = [1,1,2,3,4,4,5,5,5];
result = maths.mode(a)
result[0].should.equal(5);
});
it('verifies [1, 5] is the mode of [1,1,1,2,3,4,4,5,5,5]', function() {
var a = [1,1,1,2,3,4,4,5,5,5];
result = maths.mode(a)
result[0].should.equal(1);
result[1].should.equal(5);
});
it('verifies 4 is the median of [1,1,4,1,1]', function() {
var a = [1,1,4,1,1];
maths.median(a).should.equal(4);
});
it('verifies 4,5 is the median of [1,1,4,5,1,1]', function() {
var a = [1,1,4,5,1,1];
result = maths.median(a);
result[0].should.equal(5);
result[1].should.equal(4);
});
it('verifies 6.5 is rounded to 7', function() {
var a = 6.5;
maths.round(a).should.equal(7);
});
it('verifies 6.49 is rounded to 6', function() {
var a = 6.49;
maths.round(a).should.equal(6);
});
it('verifies standard deviation of [9, 2, 5, 4, 12, 7, 8, 11, 9, 3, 7, 4, 12, 5, 4, 10, 9, 6, 9, 4] = 3.0607876523260447', function() {
var a = [9, 2, 5, 4, 12, 7, 8, 11, 9, 3, 7, 4, 12, 5, 4, 10, 9, 6, 9, 4];
maths.sdeviation(a).should.equal(3.0607876523260447);
});
it('verifies population standard deviation of [9, 2, 5, 4, 12, 7, 8, 11, 9, 3, 7, 4, 12, 5, 4, 10, 9, 6, 9, 4] = 2.9832867780352594', function() {
var a = [9, 2, 5, 4, 12, 7, 8, 11, 9, 3, 7, 4, 12, 5, 4, 10, 9, 6, 9, 4];
maths.psdeviation(a).should.equal(2.9832867780352594);
});
it('verifies sdeviation to precision 5 = 3.06079', function() {
var a = [9, 2, 5, 4, 12, 7, 8, 11, 9, 3, 7, 4, 12, 5, 4, 10, 9, 6, 9, 4];
var psd = maths.sdeviation(a);
maths.roundTo(psd, 5).should.equal(3.06079);
});
it('verifies psdeviation to precision 5 = 2.98329', function() {
var a = [9, 2, 5, 4, 12, 7, 8, 11, 9, 3, 7, 4, 12, 5, 4, 10, 9, 6, 9, 4];
var sd = maths.psdeviation(a);
maths.roundTo(sd, 5).should.equal(2.98329);
});
it('verifies sdeviation variance to precision 4 is 9.3684', function() {
var a = [9, 2, 5, 4, 12, 7, 8, 11, 9, 3, 7, 4, 12, 5, 4, 10, 9, 6, 9, 4];
var variance = maths.variance(a, "standard")
maths.roundTo(variance, 4).should.equal(9.3684);
});
it('verifies psdeviation variance is 8.9', function() {
var a = [9, 2, 5, 4, 12, 7, 8, 11, 9, 3, 7, 4, 12, 5, 4, 10, 9, 6, 9, 4];
maths.variance(a, "population").should.equal(8.9);
});
it('verifies random numbers fall within proper range', function() {
var min = 1;
var max = 100;
var rand = maths.random(min, max);
var mincheck = (rand - min) > 0;
var maxcheck = (max - rand) > 0;
mincheck.should.equal(true);
maxcheck.should.equal(true);
});
it('verifies random number defaults are set to 1 and 10', function() {
var rand = maths.random();
var mincheck = (rand - 1) > 0;
var maxcheck = (10 - rand) > 0;
mincheck.should.equal(true);
maxcheck.should.equal(true);
});
});