import yaml
from pathlib import Path
from typing import List
from schemas.simulation_case import SimulationCase
DEFAULT_PATH = Path(__file__).parent / "memory_scenarios.yaml"
def load_memory_scenarios(path: str | Path | None = None) -> List[SimulationCase]:
"""Load memory-focused simulation scenarios from a YAML file."""
path = Path(path) if path else DEFAULT_PATH
if not path.exists():
raise FileNotFoundError(f"Memory scenarios file not found: {path}")
with open(path, "r", encoding="utf-8") as f:
data = yaml.safe_load(f)
cases = []
for i, row in enumerate(data.get("scenarios", [])):
try:
cases.append(SimulationCase(**row))
except Exception as e:
print(f"[ERROR] Memory scenario {i} failed to validate: {e}")
return cases