'use strict'; import chai from 'chai'; import MathUtil from '../../lib/utils/math.js'; const assert = chai.assert; describe('Math', () => { it('should calculate sum', () => { assert.isTrue(MathUtil.sum([1, 2, 3, 4]) == 10); }); it('should calculate average', () => { assert.isTrue(MathUtil.average([1, 2, 3, 4]) == 2.5); }); it('should calculate median', () => { assert.isTrue(MathUtil.median([1, 1, 2, 3, 16, 1, 2]) == 2); assert.isTrue(MathUtil.median([1, 1, 2, 2, 3, 3, 3, 16]) == 2.5); }); it('should calculate variance', () => { let items_1 = [1, 2, 3, 4, 5]; let items_2 = [1, 2, 3, 4, 5, 1]; //Sample Mode assert.isTrue(MathUtil.variance(items_1) == 2.5); assert.isTrue(MathUtil.variance(items_2).toFixed(2) == 2.67); //Population Mode assert.isTrue(MathUtil.variance(items_1, 'population') == 2); assert.isTrue(MathUtil.variance(items_2, 'population').toFixed(2) == 2.22); }); it('should calculate standard deviation', () => { let items_1 = [1, 2, 3, 4, 5]; let items_2 = [1, 2, 3, 4, 5, 1]; //Sample Mode assert.isTrue(MathUtil.standardDeviation(items_1).toFixed(2) == 1.58); assert.isTrue(MathUtil.standardDeviation(items_2).toFixed(2) == 1.63); //Population Mode assert.isTrue(MathUtil.standardDeviation(items_1, 'population').toFixed(2) == 1.41); assert.isTrue(MathUtil.standardDeviation(items_2, 'population').toFixed(2) == 1.49); }); it('should calculate the mean deviation', () => { let items = [3, 6, 6, 7, 8, 11, 15, 16]; assert.isTrue(MathUtil.meanDeviation(items) == 3.75); }); it('should calculate range', () => { let items = [8, 11, 5, 9, 7, 6, 3616]; assert.isTrue(MathUtil.range(items) == 3611); }); it('should calculate mode', () => { let items = [2, 10, 21, 23, 23, 38, 38, 4]; let result = MathUtil.modes(items); assert.isTrue(result.length == 2); assert.isTrue(result.indexOf(23) >= 0 && result.indexOf(38) >= 0); }); });