44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
from didactopus.artifact_registry import discover_domain_packs
|
|
from didactopus.learning_graph import (
|
|
build_merged_learning_graph,
|
|
generate_learner_roadmap,
|
|
namespaced_concept,
|
|
)
|
|
|
|
|
|
def _acyclic_results():
|
|
return [
|
|
r for r in discover_domain_packs(["domain-packs"])
|
|
if r.manifest and r.manifest.name in {
|
|
"foundations-statistics",
|
|
"bayes-extension",
|
|
"override-foundations",
|
|
}
|
|
]
|
|
|
|
|
|
def test_namespaced_concept() -> None:
|
|
assert namespaced_concept("pack", "concept") == "pack::concept"
|
|
|
|
|
|
def test_build_merged_learning_graph() -> None:
|
|
merged = build_merged_learning_graph(_acyclic_results())
|
|
assert "foundations-statistics::probability-basics" in merged.concept_data
|
|
assert "bayes-extension::posterior" in merged.concept_data
|
|
assert len(merged.stage_catalog) >= 3
|
|
assert len(merged.project_catalog) >= 3
|
|
|
|
|
|
def test_override_updates_target_concept() -> None:
|
|
merged = build_merged_learning_graph(_acyclic_results())
|
|
data = merged.concept_data["foundations-statistics::descriptive-statistics"]
|
|
assert data["title"] == "Descriptive Statistics (Overridden)"
|
|
assert data["pack"] == "override-foundations"
|
|
|
|
|
|
def test_generate_learner_roadmap() -> None:
|
|
merged = build_merged_learning_graph(_acyclic_results())
|
|
roadmap = generate_learner_roadmap(merged)
|
|
assert len(roadmap) >= 3
|
|
assert all("concept_key" in item for item in roadmap)
|