emergence-mini-dilles/tests/test_agents.py
Jeuners ddf9598518 Emergence-Mini: minimaler Klon von Emergence-World
4 Agenten, 14 Landmarks, 15 Tools, 240x240 Grid, SQLite-Persistenz.
Round-Robin Turn-Manager mit Reactive Triggern, Town-Hall-Voting
(70%-Threshold) mit Live-Constitution-Amendment.

- engine/: db, world, agents, needs, tools, reasoning, governance, turn
- web/: Canvas-basierte Live-View mit WebSocket-Stream
- server.py: FastAPI + WebSocket auf 127.0.0.1:8080
- tests/: 70 Unit + Integration Tests (pytest), alle gruen
- smoke_test.py: 50+ End-to-End-Checks
- README: Quickstart, Architektur, Security, Tests, Lizenz
- .gitignore: DB, Cache, Logs

Basiert auf https://github.com/EmergenceAI/Emergence-World
(Lizenz: CC-BY-NC-4.0, Research-only)
2026-06-15 01:07:38 +02:00

68 lines
2 KiB
Python

"""Agent module tests: bootstrap, state, personality."""
import json
def test_bootstrap_creates_4_agents(tmp_db):
from engine import agents as agents_mod
agents = agents_mod.all_agents()
assert len(agents) == 4
ids = {a["id"] for a in agents}
assert ids == {"anchor", "flora", "lovely", "spark"}
def test_initial_state(tmp_db):
from engine import agents as agents_mod
a = agents_mod.get("anchor")
assert a["energy"] == 100.0
assert a["knowledge"] == 100.0
assert a["influence"] == 100.0
assert a["credits"] == 10.0
assert a["alive"] == 1
# anchor has 4 personality traits
traits = json.loads(a["personality"])
assert len(traits) == 4
assert "diplomatic" in traits
def test_agents_spawn_at_home(tmp_db):
from engine import agents as agents_mod
spawns = {
"anchor": (30, 30), # home_anchor
"flora": (210, 30), # home_flora
"lovely": (30, 210), # home_lovely
"spark": (210, 210), # home_spark
}
for aid, (x, y) in spawns.items():
a = agents_mod.get(aid)
assert (a["x"], a["y"]) == (x, y), f"{aid} not at home"
def test_update_position(tmp_db):
from engine import agents as agents_mod
agents_mod.update_position("anchor", 100, 100)
a = agents_mod.get("anchor")
assert (a["x"], a["y"]) == (100, 100)
def test_update_state(tmp_db):
from engine import agents as agents_mod
agents_mod.update_state("anchor", energy=42.0, mood="happy")
a = agents_mod.get("anchor")
assert a["energy"] == 42.0
assert a["mood"] == "happy"
# other fields unchanged
assert a["knowledge"] == 100.0
def test_personality_loader(tmp_db):
from engine import agents as agents_mod
traits = agents_mod.personality("spark")
assert "bold" in traits
assert "creative" in traits
# Unknown agent -> empty list
assert agents_mod.personality("nope") == []
def test_get_unknown_agent(tmp_db):
from engine import agents as agents_mod
assert agents_mod.get("does_not_exist") is None