REPOSITORY
agerobotics/high-lift-mobile-platform Private
[참조 MVP] 고소작업 이동 플랫폼 — 주행·시저리프트·충전 상태를 단일 플랫폼 상태로 조정하는 참조 MVP입니다.
https://git.agrithing.ai/agerobotics/high-lift-mobile-platform.git 00cd734 feat: 고소작업 이동 플랫폼 구체 MVP 구현
5b12bc4 ci: add static dynamic and evidence gates
44bd3b7 feat: add executable institution reference MVP
6c4ec50 docs: define product role and interface contract
1 items · feat/concrete-mvp-v2
·/ tests/test_component.py
python · 1.2 KB · b7a62c9 Download
from __future__ import annotationsimport jsonimport unittestfrom pathlib import Pathfrom asw_component import executeROOT = Path(__file__).resolve().parents[1]class ComponentTest(unittest.TestCase): def test_reference_scenario(self): payload = json.loads((ROOT / "examples/input.json").read_text(encoding="utf-8")) result = execute(payload) self.assertTrue(result["accepted"]) self.assertEqual(result["component"], "agerobotics/high-lift-mobile-platform") self.assertEqual(result["target"], "mcu") self.assertEqual(result["command"], "LIFT") self.assertEqual(result["deltaM"], 0.2) self.assertEqual(result["blockingReasons"], []) def test_safety_or_failure_path(self): payload = json.loads((ROOT / "examples/failure-input.json").read_text(encoding="utf-8")) result = execute(payload) self.assertEqual(result["component"], "agerobotics/high-lift-mobile-platform") self.assertFalse(result["accepted"]) self.assertEqual(result["status"], "INTERLOCK") self.assertIn("DRIVE_NOT_HELD", result["blockingReasons"])if __name__ == "__main__": unittest.main()