| 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) |
| assert child.traits |
| assert child.story |
|
|