test(P.3.5): initial — lib-core.camera-test v0.1.0 (16 assertions, P.3.1 pattern)
This commit is contained in:
64
init.lua
Normal file
64
init.lua
Normal file
@@ -0,0 +1,64 @@
|
||||
-- lib-core.camera-test — P.3.5
|
||||
-- 16 assertions: 3 state-setters + 3 bounds-clamping + 6 pan_enabled + 2 pan_invert + 2 engine-surface.
|
||||
-- Pattern follows P.3.1 Test-Module-Pattern; TAP output via engine.test.*
|
||||
|
||||
local camera = require("lib-core.camera")
|
||||
local T = engine.test
|
||||
|
||||
function init(ctx)
|
||||
-- State setters/getters (3)
|
||||
camera.set_target(100, 200)
|
||||
local t = camera.target()
|
||||
T.assert(t.x == 100 and t.y == 200, "set_target -> target")
|
||||
|
||||
camera.set_zoom(2.0)
|
||||
T.equals(camera.zoom(), 2.0, "set_zoom -> zoom")
|
||||
|
||||
camera.set_pan_speed(500)
|
||||
T.equals(camera.pan_speed(), 500, "set_pan_speed -> pan_speed")
|
||||
|
||||
-- Bounds-Clamping (3)
|
||||
camera.set_bounds(0, 0, 1000, 1000)
|
||||
camera.set_target(2000, -50)
|
||||
local t1 = camera.target()
|
||||
T.assert(t1.x == 1000 and t1.y == 0, "set_target clamped to bounds")
|
||||
|
||||
camera.clear_bounds()
|
||||
camera.set_target(-100, -100)
|
||||
local t2 = camera.target()
|
||||
T.assert(t2.x == -100 and t2.y == -100, "clear_bounds -> unclamped")
|
||||
|
||||
camera.set_bounds(0, 0, 100, 100)
|
||||
local t3 = camera.target()
|
||||
T.assert(t3.x == 0 and t3.y == 0, "set_bounds clamps current target immediately")
|
||||
|
||||
-- pan_enabled state (6)
|
||||
-- (NOTE: bind_pan_keys above this point would have enabled "keys", so reset first.)
|
||||
camera.set_pan_enabled("keys", false)
|
||||
camera.set_pan_enabled("edge", false)
|
||||
camera.set_pan_enabled("drag", false)
|
||||
T.assert(camera.pan_enabled("keys") == false, "keys disabled state")
|
||||
T.assert(camera.pan_enabled("edge") == false, "edge disabled state")
|
||||
T.assert(camera.pan_enabled("drag") == false, "drag disabled state")
|
||||
camera.bind_pan_keys("a", "b", "c", "d")
|
||||
T.assert(camera.pan_enabled("keys") == true, "bind_pan_keys auto-enables")
|
||||
camera.set_pan_enabled("keys", false)
|
||||
T.assert(camera.pan_enabled("keys") == false, "set_pan_enabled('keys', false) disables")
|
||||
camera.set_pan_enabled("keys", true)
|
||||
T.assert(camera.pan_enabled("keys") == true, "set_pan_enabled('keys', true) re-enables")
|
||||
|
||||
-- pan_invert state (2)
|
||||
camera.set_pan_invert(false)
|
||||
T.assert(camera.pan_invert() == false, "pan_invert false")
|
||||
camera.set_pan_invert(true)
|
||||
T.assert(camera.pan_invert() == true, "pan_invert true after set")
|
||||
|
||||
-- Engine-Surface existence (2)
|
||||
T.assert(type(engine.input.get_mouse_delta) == "function",
|
||||
"engine.input.get_mouse_delta is function")
|
||||
T.assert(type(engine.window.size) == "function",
|
||||
"engine.window.size is function")
|
||||
|
||||
-- Hygiene: reset bounds for any subsequent loads (init-only-lifecycle but defensive)
|
||||
camera.clear_bounds()
|
||||
end
|
||||
Reference in New Issue
Block a user