Spaces:
Sleeping
Sleeping
File size: 1,881 Bytes
eb1ebe6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | """Tests for task bank integrity."""
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
from task_bank import (
ALL_TASKS,
ALGORITHMS,
EASY_TASKS,
HARD_TASKS,
MATH_TOPICS,
MEDIUM_TASKS,
ML_CONCEPTS,
STATISTICS_TASKS,
Task,
)
def test_task_counts():
assert len(ML_CONCEPTS) >= 5, f"ML_CONCEPTS has {len(ML_CONCEPTS)} (need >=5)"
assert len(MATH_TOPICS) >= 5, f"MATH_TOPICS has {len(MATH_TOPICS)} (need >=5)"
assert len(ALGORITHMS) >= 3, f"ALGORITHMS has {len(ALGORITHMS)} (need >=3)"
assert len(STATISTICS_TASKS) >= 2, f"STATISTICS_TASKS has {len(STATISTICS_TASKS)} (need >=2)"
assert len(ALL_TASKS) == len(ML_CONCEPTS) + len(MATH_TOPICS) + len(ALGORITHMS) + len(STATISTICS_TASKS)
def test_difficulty_partition():
assert len(EASY_TASKS) + len(MEDIUM_TASKS) + len(HARD_TASKS) == len(ALL_TASKS)
assert len(EASY_TASKS) > 0
assert len(MEDIUM_TASKS) > 0
assert len(HARD_TASKS) > 0
def test_task_fields():
for t in ALL_TASKS:
assert isinstance(t, Task)
assert t.topic, f"empty topic: {t}"
assert t.content, f"empty content: {t}"
assert t.tier in ("beginner", "intermediate", "advanced"), f"bad tier: {t.tier}"
assert t.keywords, f"empty keywords: {t.topic}"
assert t.preferred_format in ("marimo", "manim", None), f"bad format: {t.preferred_format}"
assert t.difficulty in ("easy", "medium", "hard"), f"bad difficulty: {t.difficulty}"
def test_both_formats_present():
formats = {t.preferred_format for t in ALL_TASKS}
assert "marimo" in formats, "no marimo tasks"
assert "manim" in formats, "no manim tasks"
if __name__ == "__main__":
test_task_counts()
test_difficulty_partition()
test_task_fields()
test_both_formats_present()
print("PASS: test_task_bank (4/4)")
|