Files
2026-06-04 01:36:23 -07:00

48 lines
1.4 KiB
Python

from pathlib import Path
from hef.catalog import Record, save_catalog, load_catalog
from hef.selection import Coordinate, select
REPO_ROOT = Path(__file__).resolve().parent.parent
def _rec(id, mode, left, right, dark, light):
return Record(
id=id,
title=id,
source_url=f"https://example.org/{id}",
source_archive="internet_archive",
license="public_domain",
mode=mode,
left=left,
right=right,
dark=dark,
light=light,
duration_s=600,
file_path=f"/media/{id}.mp4",
)
def test_catalog_round_trip_then_select(tmp_path):
library = [
_rec("lecture", "av", left=4, right=0, dark=1, light=2),
_rec("nebula", "video", left=0, right=4, dark=2, light=3),
_rec("storm", "av", left=0, right=3, dark=4, light=0),
_rec("sunrise", "av", left=1, right=3, dark=0, light=4),
]
path = tmp_path / "library.jsonl"
save_catalog(library, path)
loaded = load_catalog(path)
# A right-brain, very-light tuning should land on "sunrise".
chosen = select(loaded, Coordinate(left=1, right=3, dark=0, light=4), "av")
assert chosen.id == "sunrise"
# The void state returns nothing regardless of library.
assert select(loaded, Coordinate(0, 0, 0, 0), "none") is None
def test_committed_empty_catalog_loads():
path = REPO_ROOT / "catalog" / "library.jsonl"
assert load_catalog(path) == []