"""Smoke tests para los enums del core.""" from __future__ import annotations from vmssailor.core.enums import ( AlarmPriority, BusRole, ChannelType, ControlMode, SystemId, UnitSI, VesselType, ) def test_systemid_main_engine_value() -> None: assert SystemId.MAIN_ENGINE.value == "main_engine" def test_channel_type_values() -> None: assert ChannelType.AI.value == "ai" assert ChannelType.DI.value == "di" assert ChannelType.DO.value == "do" assert ChannelType.RPM.value == "rpm" def test_alarm_priority_complete_set() -> None: values = {p.value for p in AlarmPriority} assert values == {"emergency", "high", "low", "info"} def test_busrole_includes_dual_and_bridge() -> None: assert BusRole.DUAL.value == "dual" assert BusRole.BRIDGE.value == "bridge" def test_controlmode_default_states_present() -> None: assert ControlMode.MONITOR.value == "monitor" assert ControlMode.MANUAL.value == "manual" assert ControlMode.AUTO.value == "auto" assert ControlMode.FUTURE.value == "future" def test_vesseltype_complete() -> None: values = {v.value for v in VesselType} assert {"yacht_motor", "yacht_sail", "fishing", "patrol", "ferry", "offshore_support"} <= values def test_unit_si_si_only() -> None: # No deben aparecer unidades imperiales en el enum interno. forbidden = {"ft", "psi", "F", "kt"} values = {u.value.lower() for u in UnitSI} assert not (forbidden & values), f"UnitSI debe ser solo SI. Encontrado: {forbidden & values}"