Download tests/test_keyframe.py from silas-therapy/small-functional-movement-screening: direct link, hf CLI and curl.
- Browser
- Download file 1.41 kB
-
https://huggingface.co/silas-therapy/small-functional-movement-screening/resolve/refs%2Fpr%2F13/tests/test_keyframe.py
- Command line
-
hf download hf://silas-therapy/small-functional-movement-screening@refs/pr/13/tests/test_keyframe.py
-
curl -L -o test_keyframe.py https://huggingface.co/silas-therapy/small-functional-movement-screening/resolve/refs%2Fpr%2F13/tests/test_keyframe.py
1.41 kB
| """Tests for PoseVisualizer.render_frame — single annotated still.""" | |
| import os | |
| import numpy as np | |
| from formscout.types import IngestResult, Pose2DResult | |
| def _ingest(n=5, h=480, w=640): | |
| frames = [np.zeros((h, w, 3), dtype=np.uint8) for _ in range(n)] | |
| return IngestResult(frames=frames, fps=30.0, duration=n / 30.0, n_people=1, width=w, height=h) | |
| def _pose(n=5): | |
| kps = [] | |
| for i in range(n): | |
| kps.append({j: {"x": float(50 + j * 25), "y": float(80 + j * 18), "conf": 0.9} | |
| for j in range(17)}) | |
| return Pose2DResult(keypoints=kps, fps=30.0, confidence=0.9) | |
| def test_render_frame_writes_png(tmp_path): | |
| from formscout.agents.visualizer import PoseVisualizer | |
| out = str(tmp_path / "key.png") | |
| path = PoseVisualizer().render_frame(_ingest(), _pose(), frame_idx=2, | |
| layers={"skeleton"}, caption="Deep Squat — heels elevated", | |
| out_png=out) | |
| assert path == out | |
| assert os.path.exists(out) | |
| assert os.path.getsize(out) > 0 | |
| def test_render_frame_bad_index_returns_none(tmp_path): | |
| from formscout.agents.visualizer import PoseVisualizer | |
| out = str(tmp_path / "key.png") | |
| path = PoseVisualizer().render_frame(_ingest(n=3), _pose(n=3), frame_idx=99, | |
| layers={"skeleton"}, caption="", out_png=out) | |
| assert path is None | |