hatchimera / tests /test_fallback.py
arkai2025's picture
feat: Build Buddy — voxel pet fusion (AI genetics engine)
357e825
Raw
History Blame Contribute Delete
930 Bytes
import sys; sys.path.insert(0, "src")
from buddy_fusion.fallback import fallback_genome, fuse_fallback
from buddy_fusion.genome import Genome, ARCHETYPES
def test_roll_is_deterministic_for_seed():
assert fallback_genome(7) == fallback_genome(7)
def test_roll_varies_by_seed():
assert fallback_genome(1) != fallback_genome(2)
def test_roll_always_has_valid_archetype():
for s in range(20):
assert fallback_genome(s).archetype in ARCHETYPES
def test_fuse_is_deterministic():
a, b = fallback_genome(1), fallback_genome(2)
assert fuse_fallback(a, b, 5) == fuse_fallback(a, b, 5)
def test_fuse_inherits_archetype_and_mutates():
a, b = fallback_genome(1), fallback_genome(2)
child = fuse_fallback(a, b, 5)
assert child.archetype in (a.archetype, b.archetype) # body plan from a parent
assert child.traits # mutation trait present
assert child.story # lineage flavor present