from pathlib import Path ROOTS = (Path("src"), Path("testing"), Path("examples")) SOURCE_SUFFIXES = {".c", ".cc", ".cpp", ".h", ".hpp"} def _is_under(path: Path, parent: Path) -> bool: try: path.relative_to(parent) except ValueError: return False return True def test_untyped_visual_compatibility_is_fixture_only() -> None: patterns = ( "dvz_frame_plan_render_allow_untyped_visual" "_compat(", "allow_untyped_visual" "_compat", "_scene_untyped" "_compat", ) checked = False for root in ROOTS: if not root.exists(): continue for path in sorted(root.rglob("*")): if path.suffix not in SOURCE_SUFFIXES: continue checked = True text = path.read_text(encoding="utf-8") for pattern in patterns: assert pattern not in text, f"{path} enables untyped visual compatibility" assert checked, "scene architecture source guard did not check any source files" def test_panel_emit_routes_generated_visuals_from_attachment_policy() -> None: panel_emit = Path("src/scene/scene_emit/panel.c") assert panel_emit.exists(), "missing panel emitter source" text = panel_emit.read_text(encoding="utf-8") required_patterns = ( "_scene_visual_generated_policy(", "attach->has_generated_role", "attach->generated_role", "_scene_visual_explicit_clip_rect(", "_scene_visual_explicit_viewport_rect(", ) for pattern in required_patterns: assert pattern in text, f"{panel_emit} is missing attachment routing pattern {pattern!r}" forbidden_pointer_scans = ( "background_visual", "border_visual", "axis->", "colorbar->", "legend->", "scalebar->", "bounds_visual", "_scene_visual_is_axis", "_scene_visual_is_colorbar", "_scene_visual_is_legend", ) for pattern in forbidden_pointer_scans: assert pattern not in text, f"{panel_emit} contains generated-visual pointer scan {pattern!r}" def test_panel_render_policy_lives_in_planner() -> None: panel_emit = Path("src/scene/scene_emit/panel.c") planner_header = Path("src/scene/scene_emit/panel_render_plan.h") planner_source = Path("src/scene/scene_emit/panel_render_plan.c") assert panel_emit.exists(), "missing panel emitter source" assert planner_header.exists(), "missing panel render planner header" assert planner_source.exists(), "missing panel render planner source" panel_text = panel_emit.read_text(encoding="utf-8") planner_header_text = planner_header.read_text(encoding="utf-8") planner_source_text = planner_source.read_text(encoding="utf-8") assert "DvzPanelRenderPlan" in planner_header_text assert "_scene_panel_render_plan_build(" in planner_source_text forbidden_panel_policy = ( "_scene_visual_pass_caps_from_visual(", "_scene_technique_gbuffer_enabled(", "_scene_technique_ssao_state(", "_scene_technique_msaa_state(", "_scene_technique_edl_state(", "_scene_panel_has_visible_scene_occlusion_target(", "_scene_panel_has_visible_volume_occlusion_target(", ) for pattern in forbidden_panel_policy: assert pattern not in panel_text, f"{panel_emit} owns planner policy {pattern!r}"