48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
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
|