| """Tests for Body3DAgent β graceful fallback when model unavailable."""
|
| import numpy as np
|
|
|
| from formscout.agents.body3d import Body3DAgent
|
| from formscout.types import Body3DResult, Pose2DResult
|
|
|
|
|
| def _dummy_pose():
|
| return Pose2DResult(
|
| keypoints=[{0: {"x": 320.0, "y": 240.0, "conf": 0.9}}],
|
| fps=30.0, confidence=0.9,
|
| )
|
|
|
|
|
| def _dummy_frames(n=5):
|
| return [np.zeros((480, 640, 3), dtype=np.uint8) for _ in range(n)]
|
|
|
|
|
| class TestBody3DAgent:
|
| def test_disabled_returns_not_used(self):
|
| agent = Body3DAgent(enable_3d=False)
|
| result = agent.run(_dummy_pose(), masks=[], frames=_dummy_frames())
|
| assert isinstance(result, Body3DResult)
|
| assert result.used is False
|
| assert result.joints_3d == []
|
|
|
| def test_unavailable_checkpoint_returns_not_used(self):
|
| agent = Body3DAgent(enable_3d=True)
|
|
|
| result = agent.run(_dummy_pose(), masks=[], frames=_dummy_frames())
|
| assert result.used is False
|
| assert result.confidence == 0.0
|
|
|
| def test_no_frames_returns_not_used(self):
|
| agent = Body3DAgent(enable_3d=True)
|
| result = agent.run(_dummy_pose(), masks=[], frames=[])
|
| assert result.used is False
|
|
|
| def test_result_type(self):
|
| agent = Body3DAgent(enable_3d=False)
|
| result = agent.run(_dummy_pose(), masks=[])
|
| assert isinstance(result, Body3DResult)
|
|
|