REPOSITORY
via/alice-sdv-demo Private
A-SW 코드-배포 파이프라인 검증용 ALICE SDV 예제
https://git.agrithing.ai/via/alice-sdv-demo.git 26a84fb ci: add Python static and dynamic analysis
5cf6f47 ci: add Python static and dynamic analysis
66b95ca chore: synchronize ALICE SDV pipeline sample
e5ffbdf chore: synchronize ALICE SDV pipeline sample
5492626 chore: synchronize ALICE SDV pipeline sample
3dacbfe chore: synchronize ALICE SDV pipeline sample
b3ffe5d chore: synchronize ALICE SDV pipeline sample
ab90e6f tune: harden simulator deployment policy
3703ddb test: validate package and deployment fixtures
7b2437e feat: define local simulator deployment target
8e49864 feat: add deployable package manifest
3e29341 chore: synchronize ALICE SDV pipeline sample
6feeead feat: add ALICE SDV pipeline sample
2 items · main
·/ tests/test_state_machine.py
python · 1.2 KB · c9c2f22 Download
import unittestfrom edge.state_machine import Event, InvalidTransition, PatrolStateMachine, Stateclass PatrolStateMachineTest(unittest.TestCase): def test_nominal_patrol_returns_to_idle(self) -> None: machine = PatrolStateMachine() for event in ( Event.START_PATROL, Event.ENTERED_ROUTE, Event.PATROL_COMPLETED, Event.RETURNED_HOME, ): machine = machine.dispatch(event) self.assertEqual(machine.state, State.IDLE) def test_abort_during_enter_returns_home(self) -> None: machine = PatrolStateMachine().dispatch(Event.START_PATROL) self.assertEqual(machine.dispatch(Event.ABORT).state, State.RETURN) def test_safety_timeout_enters_fault(self) -> None: machine = PatrolStateMachine().dispatch(Event.START_PATROL).dispatch(Event.ENTERED_ROUTE) self.assertEqual(machine.dispatch(Event.SAFETY_TIMEOUT).state, State.FAULT) def test_invalid_transition_is_rejected(self) -> None: with self.assertRaises(InvalidTransition): PatrolStateMachine().dispatch(Event.RETURNED_HOME)if __name__ == "__main__": unittest.main()