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)