Mi2dRPGamEng/tests/test_camera.py

36 lines
1.1 KiB
Python

from engine.camera import OrthoCamera
def test_zoom_defaults_target_to_initial_tiles_visible_y():
camera = OrthoCamera(800, 600, tiles_visible_y=12.0)
assert camera.target_tiles_visible_y == 12.0
def test_set_zoom_target_does_not_snap_immediately():
camera = OrthoCamera(800, 600, tiles_visible_y=12.0)
camera.set_zoom_target(20.0)
assert camera.tiles_visible_y == 12.0
assert camera.target_tiles_visible_y == 20.0
def test_update_zoom_moves_toward_the_target_over_time():
camera = OrthoCamera(800, 600, tiles_visible_y=12.0)
camera.set_zoom_target(20.0)
camera.update_zoom(dt=0.1)
assert 12.0 < camera.tiles_visible_y < 20.0
def test_update_zoom_snaps_once_close_enough():
camera = OrthoCamera(800, 600, tiles_visible_y=12.0)
camera.set_zoom_target(20.0)
for _ in range(100):
camera.update_zoom(dt=0.1)
assert camera.tiles_visible_y == 20.0
def test_update_zoom_can_zoom_back_in():
camera = OrthoCamera(800, 600, tiles_visible_y=20.0)
camera.set_zoom_target(12.0)
camera.update_zoom(dt=0.1)
assert 12.0 < camera.tiles_visible_y < 20.0