Spaces:
Build error
Build error
| """Tests for the prompt-builder module.""" | |
| from signbridge.recognizer.prompts import ( | |
| build_single_frame_prompt, | |
| build_multi_frame_prompt, | |
| ) | |
| from signbridge.vocab import VOCAB_SET # noqa: F401 — reserved for future vocab-coverage tests | |
| class TestSingleFramePrompt: | |
| def test_returns_string(self): | |
| assert isinstance(build_single_frame_prompt(), str) | |
| def test_mentions_asl(self): | |
| assert "ASL" in build_single_frame_prompt() | |
| def test_includes_vocab_tokens(self): | |
| prompt = build_single_frame_prompt() | |
| for token in ("A", "Z", "0", "9", "hello", "thank_you", "unknown"): | |
| assert token in prompt, f"missing {token!r}" | |
| def test_demands_single_token_output(self): | |
| prompt = build_single_frame_prompt() | |
| assert any(s in prompt for s in ("Single token only", "single token", "ONE token")) | |
| def test_includes_domain_priming(self): | |
| prompt = build_single_frame_prompt() | |
| assert "ASL" in prompt | |
| assert any(p in prompt for p in ("fingerspelled", "fingerspelling")) | |
| class TestMultiFramePrompt: | |
| def test_returns_string(self): | |
| assert isinstance(build_multi_frame_prompt(4), str) | |
| def test_includes_frame_markers(self): | |
| prompt = build_multi_frame_prompt(4) | |
| for i in range(1, 5): | |
| assert f"Frame {i}" in prompt, f"missing 'Frame {i}' marker" | |
| def test_mentions_motion(self): | |
| prompt = build_multi_frame_prompt(4) | |
| assert "motion" in prompt.lower() or "across" in prompt.lower() | |
| def test_demands_single_token_output(self): | |
| prompt = build_multi_frame_prompt(4) | |
| assert any(s in prompt for s in ("Single token only", "single token", "ONE token")) | |
| def test_includes_vocab(self): | |
| prompt = build_multi_frame_prompt(4) | |
| for token in ("A", "hello", "unknown"): | |
| assert token in prompt | |
| def test_n_frames_parameter(self): | |
| p2 = build_multi_frame_prompt(2) | |
| p4 = build_multi_frame_prompt(4) | |
| assert p2 != p4 | |
| assert "Frame 1" in p2 and "Frame 2" in p2 and "Frame 3" not in p2 | |
| assert "Frame 4" in p4 | |
| def test_too_few_frames_raises(self): | |
| import pytest | |
| with pytest.raises(ValueError): | |
| build_multi_frame_prompt(1) | |
| with pytest.raises(ValueError): | |
| build_multi_frame_prompt(0) | |