from quantum_learning.config import project_root def test_start_here_notebook_exists(): assert (project_root() / "notebooks" / "START_HERE.ipynb").exists() def test_reference_notebook_is_archived_out_of_the_course_tree(): assert not (project_root() / "notebooks" / ".reference").exists() assert not (project_root() / "notebooks" / "reference").exists() assert (project_root() / "notebooks" / ".legacy_single_notebook_path" / "PROFESSIONAL_PATH.ipynb").exists() def test_course_blueprint_notebook_exists(): assert (project_root() / "notebooks" / "COURSE_BLUEPRINT.ipynb").exists() def test_course_complete_notebook_exists(): assert (project_root() / "notebooks" / "COURSE_COMPLETE.ipynb").exists() def test_foundations_module_bundles_exist(): foundations_root = project_root() / "notebooks" / "foundations" module_names = [ "module_01_principles_and_circuit_literacy", "module_02_qubit_and_statevector_intuition", "module_03_gates_and_measurement", ] for module_name in module_names: module_root = foundations_root / module_name assert (module_root / "lecture.ipynb").exists() assert (module_root / "lab.ipynb").exists() assert (module_root / "problems.ipynb").exists() assert (module_root / "studio.ipynb").exists() def test_qiskit_engineering_module_bundles_exist(): engineering_root = project_root() / "notebooks" / "qiskit_engineering" module_names = [ "module_01_circuit_construction_and_analysis", "module_02_transpilation_and_visualization", "module_03_simulation_and_noise_models", ] for module_name in module_names: module_root = engineering_root / module_name assert (module_root / "lecture.ipynb").exists() assert (module_root / "lab.ipynb").exists() assert (module_root / "problems.ipynb").exists() assert (module_root / "studio.ipynb").exists() def test_algorithmic_design_module_bundles_exist(): algorithms_root = project_root() / "notebooks" / "algorithms" module_names = [ "module_01_deutsch_family", "module_02_bernstein_vazirani", "module_03_qft", "module_04_grover", ] for module_name in module_names: module_root = algorithms_root / module_name assert (module_root / "lecture.ipynb").exists() assert (module_root / "lab.ipynb").exists() assert (module_root / "problems.ipynb").exists() assert (module_root / "studio.ipynb").exists() def test_professional_design_module_bundles_exist(): professional_root = project_root() / "notebooks" / "professional" module_names = [ "module_01_qiskit_patterns", "module_02_hardware_aware_redesign", "module_03_noise_aware_verification", "module_04_capstone_design_review", ] for module_name in module_names: module_root = professional_root / module_name assert (module_root / "lecture.ipynb").exists() assert (module_root / "lab.ipynb").exists() assert (module_root / "problems.ipynb").exists() assert (module_root / "studio.ipynb").exists() def test_first_run_checklist_exists(): assert (project_root() / "FIRST_RUN.md").exists() def test_operations_guide_exists(): assert (project_root() / "OPERATIONS.md").exists() def test_consumer_app_script_exists(): assert (project_root() / "scripts" / "app.sh").exists() def test_repo_local_jupyter_config_exists(): assert (project_root() / ".jupyter_config" / "jupyter_lab_config.py").exists() assert (project_root() / ".jupyter_config" / "jupyter_server_config.py").exists() def test_mastery_model_exists(): assert (project_root() / "MASTERY_MODEL.md").exists()