hatchimera / tests /test_runtime_fusion.py
arkai2025's picture
fix: AI tweak no-op on the real model when the edit is empty
21edc83
Raw
History Blame Contribute Delete
2.4 kB
import sys, os; sys.path.insert(0, "src")
os.environ["BUDDY_FORCE_FAKE_RUNTIME"] = "1"
from buddy_fusion.runtime import default_runtime, LlamaCppBuddyRuntime
from buddy_fusion.fallback import fallback_genome
from buddy_fusion.genome import genome_to_dict, genome_from_dict, ARCHETYPES
def test_fake_fuse_returns_valid_genome_dict():
rt = default_runtime()
a, b = genome_to_dict(fallback_genome(1)), genome_to_dict(fallback_genome(2))
child, status = rt.fuse_genomes(a, b)
g = genome_from_dict(child)
assert g.archetype in ARCHETYPES
assert status.used_fallback is True
def test_fake_interpret_command_adds_part():
rt = default_runtime()
g = genome_to_dict(fallback_genome(1, "chick"))
out, status = rt.interpret_genome_command(g, "add two horns")
assert any(p.kind == "horn" for p in genome_from_dict(out).parts)
def test_fake_interpret_command_changes_archetype():
rt = default_runtime()
g = genome_to_dict(fallback_genome(1, "chick"))
out, _ = rt.interpret_genome_command(g, "turn it into a frog")
assert genome_from_dict(out).archetype == "frog"
def test_fake_interpret_command_unknown_is_noop():
rt = default_runtime()
g = genome_to_dict(fallback_genome(1, "chick"))
out, _ = rt.interpret_genome_command(g, "hello there")
assert genome_from_dict(out).archetype == "chick"
def test_real_runtime_empty_edit_falls_back_to_keyword_editor():
# A small model often returns a valid-but-empty edit. The success path must
# not silently keep the original (the bug seen on the Space); when the model
# changes nothing, the deterministic keyword editor takes over so the tweak
# still lands on screen.
rt = LlamaCppBuddyRuntime()
rt._chat_json = lambda *a, **k: {} # model produced nothing usable
g = genome_to_dict(fallback_genome(1, "chick"))
out, status = rt.interpret_genome_command(g, "add two horns")
assert any(p.kind == "horn" for p in genome_from_dict(out).parts)
assert status.used_fallback is True
def test_real_runtime_uses_model_edit_when_it_changes_the_look():
rt = LlamaCppBuddyRuntime()
rt._chat_json = lambda *a, **k: {"archetype": "frog"}
g = genome_to_dict(fallback_genome(1, "chick"))
out, status = rt.interpret_genome_command(g, "make it a frog")
assert genome_from_dict(out).archetype == "frog"
assert status.used_fallback is False