| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- local vec3 = require "modules.vec3"
- local utils = require "modules.utils"
- local constants = require "modules.constants"
- local function tolerance(v, t)
- return math.abs(v - t) < 1e-6
- end
- describe("utils:", function()
- it("interpolates between two numbers", function()
- assert.is_true(tolerance(utils.lerp(0, 1, 0.5), 0.5))
- end)
- it("interpolates between two vectors", function()
- local a = vec3(0, 0, 0)
- local b = vec3(1, 1, 1)
- local c = vec3(0.5, 0.5, 0.5)
- assert.is.equal(utils.lerp(a, b, 0.5), c)
- a = vec3(5, 5, 5)
- b = vec3(0, 0, 0)
- c = vec3(2.5, 2.5, 2.5)
- assert.is.equal(utils.lerp(a, b, 0.5), c)
- end)
- it("decays exponentially", function()
- local v = utils.decay(0, 1, 0.5, 1)
- assert.is_true(tolerance(v, 0.39346934028737))
- end)
- end)
- --[[
- clamp(value, min, max)
- deadzone(value, size)
- threshold(value, threshold)
- tolerance(value, threshold)
- map(value, min_in, max_in, min_out, max_out)
- lerp(progress, low, high)
- smoothstep(progress, low, high)
- round(value, precision)
- wrap(value, limit)
- is_pot(value)
- project_on(out, a, b)
- project_from(out, a, b)
- mirror_on(out, a, b)
- reflect(out, i, n)
- refract(out, i, n, ior)
- angle_to(a, b)
- angle_between(a, b)
- --]]
|