Files
gps-denied-onboard/tests/e2e/test_dataset_base.py
T
2026-04-16 21:41:58 +03:00

64 lines
1.4 KiB
Python

"""Tests for DatasetAdapter base contract."""
import pytest
from gps_denied.testing.datasets.base import (
DatasetAdapter,
DatasetCapabilities,
DatasetFrame,
DatasetIMU,
DatasetPose,
DatasetNotAvailableError,
PlatformClass,
)
def test_capabilities_defaults():
cap = DatasetCapabilities(
has_raw_imu=False,
has_rtk_gt=False,
has_loop_closures=False,
platform_class=PlatformClass.FIXED_WING,
)
assert cap.has_raw_imu is False
assert cap.platform_class == PlatformClass.FIXED_WING
def test_adapter_is_abstract():
with pytest.raises(TypeError):
DatasetAdapter() # type: ignore[abstract]
def test_dataset_not_available_error_is_exception():
assert issubclass(DatasetNotAvailableError, Exception)
def test_dataset_frame_dataclass_fields():
frame = DatasetFrame(
frame_idx=0,
timestamp_ns=1_000_000_000,
image_path="/tmp/x.jpg",
)
assert frame.frame_idx == 0
assert frame.timestamp_ns == 1_000_000_000
def test_dataset_imu_dataclass_fields():
imu = DatasetIMU(
timestamp_ns=1_000_000_000,
accel=(0.0, 0.0, -9.81),
gyro=(0.0, 0.0, 0.0),
)
assert imu.accel == (0.0, 0.0, -9.81)
def test_dataset_pose_dataclass_fields():
pose = DatasetPose(
timestamp_ns=1_000_000_000,
lat=49.0,
lon=32.0,
alt=100.0,
qx=0.0, qy=0.0, qz=0.0, qw=1.0,
)
assert pose.lat == 49.0