import pytest from aarecommon.models.models import SampleCameraSettings, ZoomModel def test_get_camera_settings_exact_match(): model = ZoomModel( z={ 100: SampleCameraSettings(gain=1.0, exposure=0.1), 200: SampleCameraSettings(gain=2.0, exposure=0.2), } ) settings = model.get_camera_settings(100) assert settings.gain == 1.0 assert settings.exposure == 0.1 def test_get_camera_settings_interpolates(): model = ZoomModel( z={ 100: SampleCameraSettings(gain=0.0, exposure=0.1), 200: SampleCameraSettings(gain=2.0, exposure=0.3), } ) settings = model.get_camera_settings(150) assert settings.gain == 1.0 assert settings.exposure == 0.2 def test_get_camera_settings_raises_when_empty(): model = ZoomModel(z={}) with pytest.raises(ValueError): model.get_camera_settings(100) def test_get_camera_settings_below_minimum_returns_first(): model = ZoomModel( z={ 100: SampleCameraSettings(gain=1.0, exposure=0.1), 200: SampleCameraSettings(gain=2.0, exposure=0.2), } ) settings = model.get_camera_settings(50) assert settings.gain == 1.0 assert settings.exposure == 0.1