aseprite-atlas
Version:
Aseprite sprite atlas parser and animator for browser and Node.js.
307 lines (297 loc) • 8.67 kB
text/typescript
import {NumberUtil} from './NumberUtil'
describe('wrap()', () => {
test.each(
// prettier-ignore
[
// Negative to zero range.
[ -5 , -1, 0, -1 ],
[ -4.5, -1, 0, -.5],
[ -4 , -1, 0, -1 ],
[ -3.5, -1, 0, -.5],
[ -3 , -1, 0, -1 ],
[ -2.5, -1, 0, -.5],
[ -2 , -1, 0, -1 ],
[ -1.5, -1, 0, -.5],
[ -1 , -1, 0, -1 ],
[ -.5, -1, 0, -.5],
[ 0 , -1, 0, -1 ],
[ .5, -1, 0, -.5],
[ 1 , -1, 0, -1 ],
[ 1.5, -1, 0, -.5],
[ 2 , -1, 0, -1 ],
[ 2.5, -1, 0, -.5],
[ 3 , -1, 0, -1 ],
[ 3.5, -1, 0, -.5],
[ 4 , -1, 0, -1 ],
[ 4.5, -1, 0, -.5],
[ 5 , -1, 0, -1 ],
// Zero to positive range.
[ -5 , 0, 1, 0 ],
[ -4.5, 0, 1, .5],
[ -4 , 0, 1, 0 ],
[ -3.5, 0, 1, .5],
[ -3 , 0, 1, 0 ],
[ -2.5, 0, 1, .5],
[ -2 , 0, 1, 0 ],
[ -1.5, 0, 1, .5],
[ -1 , 0, 1, 0 ],
[ -.5, 0, 1, .5],
[ 0 , 0, 1, 0 ],
[ .5, 0, 1, .5],
[ 1 , 0, 1, 0 ],
[ 1.5, 0, 1, .5],
[ 2 , 0, 1, 0 ],
[ 2.5, 0, 1, .5],
[ 3 , 0, 1, 0 ],
[ 3.5, 0, 1, .5],
[ 4 , 0, 1, 0 ],
[ 4.5, 0, 1, .5],
[ 5 , 0, 1, 0 ],
// Negative to positive range.
[ -5 , -1, 1, -1 ],
[ -4.5, -1, 1, -.5],
[ -4 , -1, 1, 0 ],
[ -3.5, -1, 1, .5],
[ -3 , -1, 1, -1 ],
[ -2.5, -1, 1, -.5],
[ -2 , -1, 1, 0 ],
[ -1.5, -1, 1, .5],
[ -1 , -1, 1, -1 ],
[ -.5, -1, 1, -.5],
[ 0 , -1, 1, 0 ],
[ .5, -1, 1, .5],
[ 1 , -1, 1, -1 ],
[ 1.5, -1, 1, -.5],
[ 2 , -1, 1, 0 ],
[ 2.5, -1, 1, .5],
[ 3 , -1, 1, -1 ],
[ 3.5, -1, 1, -.5],
[ 4 , -1, 1, 0 ],
[ 4.5, -1, 1, .5],
[ 5 , -1, 1, -1 ],
// Lesser negative range.
[ -7 , -6, -4, -5 ],
[ -6.5, -6, -4, -4.5],
[ -6 , -6, -4, -6 ],
[ -5.5, -6, -4, -5.5],
[ -5 , -6, -4, -5 ],
[ -4.5, -6, -4, -4.5],
[ -4 , -6, -4, -6 ],
[ -3.5, -6, -4, -5.5],
[ -3 , -6, -4, -5 ],
[ -2.5, -6, -4, -4.5],
[ -2 , -6, -4, -6 ],
[ -1.5, -6, -4, -5.5],
[ -1 , -6, -4, -5 ],
[ -.5, -6, -4, -4.5],
[ 0 , -6, -4, -6 ],
[ .5, -6, -4, -5.5],
[ 1 , -6, -4, -5 ],
[ 1.5, -6, -4, -4.5],
[ 2 , -6, -4, -6 ],
[ 2.5, -6, -4, -5.5],
[ 3 , -6, -4, -5 ],
[ 3.5, -6, -4, -4.5],
[ 4 , -6, -4, -6 ],
[ 4.5, -6, -4, -5.5],
[ 5 , -6, -4, -5 ],
[ 5.5, -6, -4, -4.5],
[ 6 , -6, -4, -6 ],
[ 6.5, -6, -4, -5.5],
[ 7 , -6, -4, -5 ],
// Negative range.
[-10 , -3, -1, -2 ],
[ -9.5, -3, -1, -1.5],
[ -9 , -3, -1, -3 ],
[ -8.5, -3, -1, -2.5],
[ -8 , -3, -1, -2 ],
[ -7.5, -3, -1, -1.5],
[ -7 , -3, -1, -3 ],
[ -6.5, -3, -1, -2.5],
[ -6 , -3, -1, -2 ],
[ -5.5, -3, -1, -1.5],
[ -5 , -3, -1, -3 ],
[ -4.5, -3, -1, -2.5],
[ -4 , -3, -1, -2 ],
[ -3.5, -3, -1, -1.5],
[ -3 , -3, -1, -3 ],
[ -2.5, -3, -1, -2.5],
[ -2 , -3, -1, -2 ],
[ -1.5, -3, -1, -1.5],
[ -1 , -3, -1, -3 ],
[ -.5, -3, -1, -2.5],
[ 0 , -3, -1, -2 ],
[ .5, -3, -1, -1.5],
[ 1 , -3, -1, -3 ],
[ 1.5, -3, -1, -2.5],
[ 2 , -3, -1, -2 ],
[ 2.5, -3, -1, -1.5],
[ 3 , -3, -1, -3 ],
[ 3.5, -3, -1, -2.5],
[ 4 , -3, -1, -2 ],
[ 4.5, -3, -1, -1.5],
[ 5 , -3, -1, -3 ],
// Positive range.
[ -5 , 1, 3, 1 ],
[ -4.5, 1, 3, 1.5],
[ -4 , 1, 3, 2 ],
[ -3.5, 1, 3, 2.5],
[ -3 , 1, 3, 1 ],
[ -2.5, 1, 3, 1.5],
[ -2 , 1, 3, 2 ],
[ -1.5, 1, 3, 2.5],
[ -1 , 1, 3, 1 ],
[ -.5, 1, 3, 1.5],
[ 0 , 1, 3, 2 ],
[ .5, 1, 3, 2.5],
[ 1 , 1, 3, 1 ],
[ 1.5, 1, 3, 1.5],
[ 2 , 1, 3, 2 ],
[ 2.5, 1, 3, 2.5],
[ 3 , 1, 3, 1 ],
[ 3.5, 1, 3, 1.5],
[ 4 , 1, 3, 2 ],
[ 4.5, 1, 3, 2.5],
[ 5 , 1, 3, 1 ],
// Greater positive range.
[ -7 , 4, 6, 5 ],
[ -6.5, 4, 6, 5.5],
[ -6 , 4, 6, 4 ],
[ -5.5, 4, 6, 4.5],
[ -5 , 4, 6, 5 ],
[ -4.5, 4, 6, 5.5],
[ -4 , 4, 6, 4 ],
[ -3.5, 4, 6, 4.5],
[ -3 , 4, 6, 5 ],
[ -2.5, 4, 6, 5.5],
[ -2 , 4, 6, 4 ],
[ -1.5, 4, 6, 4.5],
[ -1 , 4, 6, 5 ],
[ -.5, 4, 6, 5.5],
[ 0 , 4, 6, 4 ],
[ .5, 4, 6, 4.5],
[ 1 , 4, 6, 5 ],
[ 1.5, 4, 6, 5.5],
[ 2 , 4, 6, 4 ],
[ 2.5, 4, 6, 4.5],
[ 3 , 4, 6, 5 ],
[ 3.5, 4, 6, 5.5],
[ 4 , 4, 6, 4 ],
[ 4.5, 4, 6, 4.5],
[ 5 , 4, 6, 5 ],
[ 5.5, 4, 6, 5.5],
[ 6 , 4, 6, 4 ],
[ 6.5, 4, 6, 4.5],
[ 7 , 4, 6, 5 ],
// Even greater positive range.
[ 88 , 90, 95, 93 ],
[ 88.5, 90, 95, 93.5],
[ 89 , 90, 95, 94 ],
[ 89.5, 90, 95, 94.5],
[ 90 , 90, 95, 90 ],
[ 90.5, 90, 95, 90.5],
[ 91 , 90, 95, 91 ],
[ 91.5, 90, 95, 91.5],
[ 92 , 90, 95, 92 ],
[ 92.5, 90, 95, 92.5],
[ 93 , 90, 95, 93 ],
[ 93.5, 90, 95, 93.5],
[ 94 , 90, 95, 94 ],
[ 94.5, 90, 95, 94.5],
[ 95 , 90, 95, 90 ],
[ 95.5, 90, 95, 90.5],
[ 96 , 90, 95, 91 ],
[ 96.5, 90, 95, 91.5],
[ 97 , 90, 95, 92 ],
[ 97.5, 90, 95, 92.5],
[ 98 , 90, 95, 93 ],
[ 98.5, 90, 95, 93.5],
[ 99 , 90, 95, 94 ],
[ 99.5, 90, 95, 94.5],
// Negative to positive range with many inputs.
[-20 , -3, 3, -2 ],
[-19.5, -3, 3, -1.5],
[-19 , -3, 3, -1 ],
[-18.5, -3, 3, -.5],
[-18 , -3, 3, 0 ],
[-17.5, -3, 3, .5],
[-17 , -3, 3, 1 ],
[-16.5, -3, 3, 1.5],
[-16 , -3, 3, 2 ],
[-15.5, -3, 3, 2.5],
[-15 , -3, 3, -3 ],
[-14.5, -3, 3, -2.5],
[-14 , -3, 3, -2 ],
[-13.5, -3, 3, -1.5],
[-13 , -3, 3, -1 ],
[-12.5, -3, 3, -.5],
[-12 , -3, 3, 0 ],
[-11.5, -3, 3, .5],
[-11 , -3, 3, 1 ],
[-10.5, -3, 3, 1.5],
[-10 , -3, 3, 2 ],
[ -9.5, -3, 3, 2.5],
[ -9 , -3, 3, -3 ],
[ -8.5, -3, 3, -2.5],
[ -8 , -3, 3, -2 ],
[ -7.5, -3, 3, -1.5],
[ -7 , -3, 3, -1 ],
[ -6.5, -3, 3, -.5],
[ -6 , -3, 3, 0 ],
[ -5.5, -3, 3, .5],
[ -5 , -3, 3, 1 ],
[ -4.5, -3, 3, 1.5],
[ -4 , -3, 3, 2 ],
[ -3.5, -3, 3, 2.5],
[ -3 , -3, 3, -3 ],
[ -2.5, -3, 3, -2.5],
[ -2 , -3, 3, -2 ],
[ -1.5, -3, 3, -1.5],
[ -1 , -3, 3, -1 ],
[ -.5, -3, 3, -.5],
[ 0 , -3, 3, 0 ],
[ .5, -3, 3, .5],
[ 1 , -3, 3, 1 ],
[ 1.5, -3, 3, 1.5],
[ 2 , -3, 3, 2 ],
[ 2.5, -3, 3, 2.5],
[ 3 , -3, 3, -3 ],
[ 3.5, -3, 3, -2.5],
[ 4 , -3, 3, -2 ],
[ 4.5, -3, 3, -1.5],
[ 5 , -3, 3, -1 ],
[ 5.5, -3, 3, -.5],
[ 6 , -3, 3, 0 ],
[ 6.5, -3, 3, .5],
[ 7 , -3, 3, 1 ],
[ 7.5, -3, 3, 1.5],
[ 8 , -3, 3, 2 ],
[ 8.5, -3, 3, 2.5],
[ 9 , -3, 3, -3 ],
[ 9.5, -3, 3, -2.5],
[ 10 , -3, 3, -2 ],
[ 10.5, -3, 3, -1.5],
[ 11 , -3, 3, -1 ],
[ 11.5, -3, 3, -.5],
[ 12 , -3, 3, 0 ],
[ 12.5, -3, 3, .5],
[ 13 , -3, 3, 1 ],
[ 13.5, -3, 3, 1.5],
[ 14 , -3, 3, 2 ],
[ 14.5, -3, 3, 2.5],
[ 15 , -3, 3, -3 ],
[ 15.5, -3, 3, -2.5],
[ 16 , -3, 3, -2 ],
[ 16.5, -3, 3, -1.5],
[ 17 , -3, 3, -1 ],
[ 17.5, -3, 3, -.5],
[ 18 , -3, 3, 0 ],
[ 18.5, -3, 3, .5],
[ 19 , -3, 3, 1 ],
[ 19.5, -3, 3, 1.5],
[ 20 , -3, 3, 2 ]
]
)('%#) %p wrap [%p,%p]', (x, min, max, expected) =>
expect(NumberUtil.wrap(x, min, max)).toStrictEqual(expected)
)
})