hatchimera / tests /test_voxel_eval_cli.py
arkai2025's picture
feat(tools): same-model overwrite on eval merge
d4cc485
Raw
History Blame Contribute Delete
1.6 kB
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent.parent / "tools" / "voxel-model-eval"))
import eval as ev
def test_parse_models_arg_single():
assert ev.parse_models_arg("Gemma4-12B=unsloth/gemma-4-12b-it-GGUF") == [
("Gemma4-12B", "unsloth/gemma-4-12b-it-GGUF")
]
def test_parse_models_arg_multiple():
out = ev.parse_models_arg("A=org/a,B=org/b")
assert out == [("A", "org/a"), ("B", "org/b")]
def test_parse_models_arg_empty_returns_empty():
assert ev.parse_models_arg("") == []
def test_parse_models_arg_tolerates_whitespace():
assert ev.parse_models_arg(" A = org/a , B = org/b ") == [("A", "org/a"), ("B", "org/b")]
def test_merge_rows_appends_new_model():
existing = [{"model": "A", "prompt": "cat"}]
new = [{"model": "B", "prompt": "cat"}]
assert ev.merge_rows(existing, new) == existing + new
def test_merge_rows_overwrites_same_model():
# re-testing model A drops ALL its old rows (incl. other themes) then appends
# the fresh run; model B is untouched.
existing = [
{"model": "A", "prompt": "cat"},
{"model": "A", "prompt": "snake"},
{"model": "B", "prompt": "cat"},
]
new = [{"model": "A", "prompt": "cat"}, {"model": "A", "prompt": "snake"}]
out = ev.merge_rows(existing, new)
assert out == [{"model": "B", "prompt": "cat"}] + new
# no duplicate A rows
assert sum(1 for r in out if r["model"] == "A") == 2
def test_merge_rows_into_empty():
new = [{"model": "A", "prompt": "cat"}]
assert ev.merge_rows([], new) == new