1
0
mirror of https://github.com/robonen/tools.git synced 2026-03-20 02:44:45 +00:00
Files
tools/packages/stdlib/src/math/basic/lerp/index.test.ts

62 lines
1.5 KiB
TypeScript

import {describe, it, expect} from 'vitest';
import {inverseLerp, lerp} from '.';
describe('lerp', () => {
it('interpolates between two values', () => {
const result = lerp(0, 10, 0.5);
expect(result).toBe(5);
});
it('returns start value when t is 0', () => {
const result = lerp(0, 10, 0);
expect(result).toBe(0);
});
it('returns end value when t is 1', () => {
const result = lerp(0, 10, 1);
expect(result).toBe(10);
});
it('handles negative interpolation values', () => {
const result = lerp(0, 10, -0.5);
expect(result).toBe(-5);
});
it('handles interpolation values greater than 1', () => {
const result = lerp(0, 10, 1.5);
expect(result).toBe(15);
});
});
describe('inverseLerp', () => {
it('returns 0 when value is start', () => {
const result = inverseLerp(0, 10, 0);
expect(result).toBe(0);
});
it('returns 1 when value is end', () => {
const result = inverseLerp(0, 10, 10);
expect(result).toBe(1);
});
it('interpolates correctly between two values', () => {
const result = inverseLerp(0, 10, 5);
expect(result).toBe(0.5);
});
it('handles values less than start', () => {
const result = inverseLerp(0, 10, -5);
expect(result).toBe(-0.5);
});
it('handles values greater than end', () => {
const result = inverseLerp(0, 10, 15);
expect(result).toBe(1.5);
});
it('handles same start and end values', () => {
const result = inverseLerp(10, 10, 10);
expect(result).toBe(0);
});
});