- Track MiroSociety source: backend (FastAPI), frontend (Vue3/Vite), docs, configs. - Add start.sh / deploy.sh for local dev (uv venv + npm + dev servers on 31400/31401). - Fix pyproject.toml: missing httpx dependency. - Tighten .gitignore: .env, .venv, node_modules, data/, *.log, uv.lock, frontend/dist, etcd. Co-Authored-By: Claude <noreply@anthropic.com>
58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
from app.models.agent import (
|
|
AgentPersona, Personality, LifeState, FamilyMember,
|
|
FormativeEvent, LifePressure,
|
|
)
|
|
|
|
|
|
def test_life_state_defaults():
|
|
ls = LifeState(childhood_summary="Grew up on a farm.", formative_events=[], family=[])
|
|
assert ls.finances == 0.5
|
|
assert ls.career == 0.5
|
|
assert ls.health == 0.5
|
|
assert ls.pressures == []
|
|
assert ls.life_log == []
|
|
|
|
|
|
def test_family_member():
|
|
fm = FamilyMember(name="Maria", relation="spouse", age=34, status="healthy", dependency=0.2)
|
|
assert fm.bond_strength == 0.7
|
|
|
|
|
|
def test_formative_event_trait_modifier():
|
|
fe = FormativeEvent(
|
|
age_at_event=7,
|
|
description="Parents divorced",
|
|
lasting_effect="Distrusts commitment",
|
|
trait_modifier={"conformity": -0.1, "empathy": 0.15},
|
|
)
|
|
assert fe.trait_modifier["conformity"] == -0.1
|
|
|
|
|
|
def test_life_pressure_no_deadline():
|
|
lp = LifePressure(domain="finances", description="Rent overdue", severity=0.6, created_day=1)
|
|
assert lp.deadline_day is None
|
|
|
|
|
|
def test_life_pressure_with_deadline():
|
|
lp = LifePressure(domain="finances", description="Rent overdue", severity=0.6, deadline_day=15, created_day=1)
|
|
assert lp.deadline_day == 15
|
|
|
|
|
|
def test_agent_persona_has_life_state():
|
|
ls = LifeState(childhood_summary="test", formative_events=[], family=[])
|
|
agent = AgentPersona(
|
|
id=0, name="Test", role="Worker", age=30,
|
|
personality=Personality(), background="test",
|
|
life_state=ls,
|
|
)
|
|
assert agent.life_state.finances == 0.5
|
|
assert agent.life_state.childhood_summary == "test"
|
|
|
|
|
|
def test_agent_persona_optional_life_state():
|
|
agent = AgentPersona(
|
|
id=0, name="Test", role="Worker", age=30,
|
|
personality=Personality(), background="test",
|
|
)
|
|
assert agent.life_state is None
|