import { assert } from 'chai'; import { bound, interpolate, interpolate2 } from '../../../lib/math/functions'; describe('math.functions', () => { describe('bound', () => { test.each([ [2, 1, 8, 2], [2, 2, 8, 2], [2, 4, 8, 4], [2, 8, 8, 8], [2, 10, 8, 8], [2, 1, 2, 2], [2, 2, 2, 2], [2, 4, 2, 2], [4, 1, 2, 4], [4, 3, 2, 4], [4, 6, 2, 4], [0, 0, 1, 0], ])('bound#%#', (min: number, val: number, max: number, result: number) => { assert.strictEqual(bound(min, val, max), result); }); }); describe('interpolate', () => { test.each([ [0, 10, 0, 0], [0, 10, 1, 10], [0, 10, 0.5, 5], [0, 10, 2, 20], [0, 10, -0.5, -5], ])('interpolate#%#', (from: number, to: number, progress: number, result: number) => { assert.strictEqual(interpolate(from, to, progress), result); }); }); describe('interpolate2', () => { test.each([ [0, 10, 0, 0], [0, 10, 1, 10], [0, 10, 0.5, 5], [0, 10, 2, 20], [0, 10, -0.5, -5], ])('interpolate2#%#', (from: number, to: number, progress: number, result: number) => { assert.strictEqual(interpolate2(from, to, progress), result); }); }); });