QuantumLearning/tests/test_curriculum.py

101 lines
3.2 KiB
Python

from quantum_learning.curriculum import load_curriculum
def test_load_curriculum_exposes_bands_and_bundle_modules():
curriculum = load_curriculum()
assert curriculum.title == "QuantumLearning"
assert len(curriculum.bands) >= 5
assert len(curriculum) >= 15
assert [band.identifier for band in curriculum.bands[:3]] == [
"00-orientation",
"01-foundations",
"02-qiskit-engineering",
]
assert curriculum[0].identifier == "00-course-blueprint"
assert curriculum[-1].identifier == "15-capstone-circuit-design-review"
assert curriculum[-1].mastery_gate
def test_foundations_modules_have_full_ready_bundles():
curriculum = load_curriculum()
modules = curriculum.modules[2:5]
assert [module.identifier for module in modules] == [
"02-principles-and-circuit-literacy",
"03-qubit-and-statevector-intuition",
"04-gates-and-measurement",
]
for module in modules:
assert module.status == "ready"
assert [notebook.kind for notebook in module.bundle] == [
"lecture",
"lab",
"problems",
"studio",
]
assert all(notebook.status == "ready" for notebook in module.bundle)
def test_qiskit_engineering_modules_have_full_ready_bundles():
curriculum = load_curriculum()
modules = curriculum.modules[5:8]
assert [module.identifier for module in modules] == [
"05-circuit-construction-and-analysis",
"06-transpilation-and-visualization",
"07-simulation-and-noise-models",
]
for module in modules:
assert module.status == "ready"
assert [notebook.kind for notebook in module.bundle] == [
"lecture",
"lab",
"problems",
"studio",
]
assert all(notebook.status == "ready" for notebook in module.bundle)
def test_algorithmic_design_modules_have_full_ready_bundles():
curriculum = load_curriculum()
modules = curriculum.modules[8:12]
assert [module.identifier for module in modules] == [
"08-deutsch-family-and-oracle-thinking",
"09-bernstein-vazirani-and-structured-oracles",
"10-qft-and-periodic-structure",
"11-grover-and-amplitude-amplification",
]
for module in modules:
assert module.status == "ready"
assert [notebook.kind for notebook in module.bundle] == [
"lecture",
"lab",
"problems",
"studio",
]
assert all(notebook.status == "ready" for notebook in module.bundle)
def test_professional_design_modules_have_full_ready_bundles():
curriculum = load_curriculum()
modules = curriculum.modules[12:16]
assert [module.identifier for module in modules] == [
"12-qiskit-patterns-and-workflow-design",
"13-hardware-aware-redesign-studio",
"14-noise-aware-verification-and-mitigation",
"15-capstone-circuit-design-review",
]
for module in modules:
assert module.status == "ready"
assert [notebook.kind for notebook in module.bundle] == [
"lecture",
"lab",
"problems",
"studio",
]
assert all(notebook.status == "ready" for notebook in module.bundle)