binary-com/binary-indicators

View on GitHub
src/__tests__/math-test.js

Summary

Maintainability
A
0 mins
Test Coverage
import { 
    mean, 
    stddev, 
    sum, 
    takeLast,
} from '../math';

describe('math', () => {
    it('mean', () => {
        expect(mean([1, 2, 3])).toEqual(2);
        expect(mean([3, 2, 1])).toEqual(2);
    });

    it('stddev', () => {
        expect(stddev([1])).toEqual(0);
        expect(stddev([1, 2, 3])).toBeCloseTo(0.8165);
        expect(stddev([3, 2, 1])).toBeCloseTo(0.8165);

        const data20 = [91.80, 92.66, 92.68, 92.30, 92.77, 92.54, 92.95, 93.20, 91.07,
            89.83, 89.74, 90.40, 90.74, 88.02, 88.09, 88.84, 90.78, 90.54, 91.39, 90.65];
        expect(stddev(data20)).toBeCloseTo(1.55);
    });

    it('sum', () => {
        expect(sum([1, 2, 3])).toEqual(6);
        expect(sum([3, 2, 1])).toEqual(6);
        expect(sum([-10, 10, 0])).toEqual(0);
    });

    it('takeLast', () => {
        expect(takeLast([1], 1)).toEqual([1]);
        expect(takeLast([1, 2, 3], 2)).toEqual([2, 3]);
        expect(takeLast([1, 2, 3], 5)).toEqual([1, 2, 3]);
        expect(takeLast([{ close: 123 }], 1, 'close')).toEqual([123]);
    });

    it('takeField', () => {
        expect(takeLast([{ close: 123 }, { close: 321 }], 2, 'close')).toEqual([123, 321]);
    });
});