36 lines
1.1 KiB
Python
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
|