@@ -89,11 +89,7 @@ def validate_practice_variants(generated_practice_dir: Path) -> None:
|
||||
if not generated_practice_dir.exists():
|
||||
return
|
||||
expected_names = {key.lower().replace("#", "sharp") + ".json" for key in TARGET_KEYS}
|
||||
for practice_type in ('melody', 'chord'):
|
||||
root = generated_practice_dir / practice_type
|
||||
for exercise_dir in sorted(path for path in root.rglob("*") if path.is_dir()):
|
||||
json_names = {path.name for path in exercise_dir.glob("*.json")}
|
||||
if not json_names:
|
||||
continue
|
||||
if json_names != expected_names:
|
||||
raise ValueError(f"{practice_type} practice generator drift in {exercise_dir}: expected {sorted(expected_names)}, found {sorted(json_names)}")
|
||||
for exercise_dir in sorted(path for path in generated_practice_dir.iterdir() if path.is_dir()):
|
||||
json_names = {path.name for path in exercise_dir.glob("*.json")}
|
||||
if json_names != expected_names:
|
||||
raise ValueError(f"practice generator drift in {exercise_dir}: expected {sorted(expected_names)}, found {sorted(json_names)}")
|
||||
|
||||
Reference in New Issue
Block a user