File size: 1,245 Bytes
0ffbb74 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | """The evaluation summary and the hero figure are generated, not hand-made."""
import importlib.util
import sys
from pathlib import Path
REPO = Path(__file__).resolve().parents[1]
def _script(name: str):
spec = importlib.util.spec_from_file_location(name, REPO / "scripts" / f"{name}.py")
module = importlib.util.module_from_spec(spec)
sys.modules[name] = module
spec.loader.exec_module(module)
return module
def test_committed_summary_matches_the_result_files() -> None:
summary = _script("make_evaluation_summary")
data = {v: summary.load(summary.RESULT_FILES[v]) for v in summary.VERSIONS}
expected = summary.summary(data)
committed = summary.OUT.read_text(encoding="utf-8").replace("\r\n", "\n")
assert committed == expected, "run scripts/make_evaluation_summary.py"
assert len(data["v1"]) == len(data["v2"]) == 83
def test_hero_figure_builds_from_the_saved_run() -> None:
hero = _script("make_hero_figure")
fig = hero.make_figure(hero.RUN, hero.FRAME_ID)
caustic, frame = fig.axes
assert "iso_compliant" in caustic.get_title()
assert "re-simulated" in frame.get_title()
assert frame.get_images()[0].get_array().shape == (512, 512)
|