Spaces:
Sleeping
Sleeping
| """ | |
| Unit tests for the self-healing adapter. | |
| """ | |
| import pytest | |
| from modules.adaptation import Adapter | |
| def adapter(): | |
| return Adapter() | |
| class TestAdapter: | |
| """Tests for the prompt adaptation engine.""" | |
| def test_normal_returns_base_prompt(self, adapter): | |
| prompt = adapter.adapt_prompt("normal") | |
| assert "RetailMind" in prompt | |
| assert "ACTIVE ADAPTATION" not in prompt | |
| def test_price_sensitive_injects_rules(self, adapter): | |
| prompt = adapter.adapt_prompt("price_sensitive") | |
| assert "PRICE SENSITIVITY" in prompt | |
| assert "cheapest" in prompt.lower() | |
| def test_summer_shift_injects_rules(self, adapter): | |
| prompt = adapter.adapt_prompt("summer_shift") | |
| assert "SEASONAL SHIFT" in prompt | |
| assert "lightweight" in prompt.lower() | |
| def test_eco_trend_injects_rules(self, adapter): | |
| prompt = adapter.adapt_prompt("eco_trend") | |
| assert "SUSTAINABILITY" in prompt | |
| assert "recycled" in prompt.lower() or "organic" in prompt.lower() | |
| def test_explanation_differs_per_state(self, adapter): | |
| explanations = set() | |
| for state in ["normal", "price_sensitive", "summer_shift", "eco_trend"]: | |
| explanations.add(adapter.get_explanation(state)) | |
| assert len(explanations) == 4, "Each state should produce a unique explanation" | |
| def test_label_differs_per_state(self, adapter): | |
| labels = set() | |
| for state in ["normal", "price_sensitive", "summer_shift", "eco_trend"]: | |
| labels.add(adapter.get_label(state)) | |
| assert len(labels) == 4, "Each state should produce a unique label" | |
| def test_base_prompt_contains_anti_hallucination(self, adapter): | |
| prompt = adapter.adapt_prompt("normal") | |
| assert "ONLY recommend" in prompt or "only recommend" in prompt.lower() | |