- src/homemaker/ → src/homemaker_layout/; all imports updated - pyproject.toml: name = homemaker-layout, entry point updated - .beads/config.yaml: dolt sync.remote updated to homemaker-layout.git - Delete temporary debug/perl scripts from project root - README.md, DESIGN.md: package path references updated - GitHub repo renamed; git remote updated Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
798 B
Python
31 lines
798 B
Python
"""Oracle unit tests that do not invoke perl."""
|
|
|
|
import pytest
|
|
|
|
from homemaker_layout import oracle
|
|
|
|
|
|
def test_fail_lines_sorted_and_filtered():
|
|
s = oracle.Score(fitness=0.5, fails="---\nb fail\n\na fail\n \n")
|
|
assert s.fail_lines == ("a fail", "b fail")
|
|
assert s.n_fails == 2
|
|
|
|
|
|
def test_fail_lines_empty():
|
|
s = oracle.Score(fitness=0.5, fails="")
|
|
assert s.fail_lines == ()
|
|
assert s.n_fails == 0
|
|
|
|
|
|
def test_score_batch_empty_list():
|
|
assert oracle.score_batch([]) == []
|
|
|
|
|
|
def test_score_batch_rejects_cross_directory(tmp_path):
|
|
a = tmp_path / "a" / "x.dom"
|
|
b = tmp_path / "b" / "y.dom"
|
|
for p in (a, b):
|
|
p.parent.mkdir()
|
|
p.write_text("")
|
|
with pytest.raises(ValueError, match="batch spans directories"):
|
|
oracle.score_batch([a, b])
|