# Author: Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca from __future__ import annotations import pytest from agentic_valuation.agents.roles import DEFAULT_ROLE_IDS from agentic_valuation.debate.committees import assign, committee_models, pair_for_tier ROLES = list(DEFAULT_ROLE_IDS) def test_homogeneous_committees(): pair = pair_for_tier("mid") assert set(assign(ROLES, "all_anthropic", tx_id="a").values()) == {pair["anthropic"]} assert set(assign(ROLES, "all_openai", tx_id="a").values()) == {pair["openai"]} assert committee_models("mixed_random", "mid") == [pair["anthropic"], pair["openai"]] with pytest.raises(KeyError): assign(ROLES, "all_mistral") def test_mixed_random_is_deterministic_and_balanced(): a1 = assign(ROLES, "mixed_random", seed=1, tx_id="SYN1") a2 = assign(ROLES, "mixed_random", seed=1, tx_id="SYN1") a3 = assign(ROLES, "mixed_random", seed=1, tx_id="SYN2") assert a1 == a2 and list(a1) == ROLES assert a1 != a3 # varies across properties pair = pair_for_tier("mid") assert sum(v == pair["anthropic"] for v in a1.values()) == 6 odd = assign(ROLES[:11], "mixed_random", seed=1, tx_id="x") assert sum(v == pair["anthropic"] for v in odd.values()) in (5, 6)