idea151-aidmesh-federated-p.../tests/test_core.py

43 lines
1.6 KiB
Python

import time
from dataclasses import asdict
from idea151_aidmesh_federated_privacy.core import LocalProblem, SharedSignals, DualVariables, AuditLog, PlanDelta, GoC, PolicyBlock
from idea151_aidmesh_federated_privacy.adapters import SupplyDepotController, FieldDistributionPlanner
from idea151_aidmesh_federated_privacy.solver import admm_step
def test_datamodel_instantiation():
lp = LocalProblem(
id="lp-1",
domain="water-allocation",
assets={"water": 100.0, "food": 50.0},
objectives=["minimize_delivery_time"],
constraints={"max_distance": 500}
)
ss = SharedSignals(forecast={"water": 120.0}, capacity_proxies={"water": 60.0}, privacy_budget=0.1, version=1)
dual = DualVariables(multipliers={"water": 1.0})
contract_id = lp.id
pd = admm_step(contract_id, lp, ss, dual)
assert isinstance(pd, PlanDelta)
assert contract_id == pd.contract_id
assert isinstance(pd.delta, dict)
def test_adapters_compile_and_generate_plan():
lp = LocalProblem(
id="lp-2",
domain="shelter-allocation",
assets={"shelter": 20.0},
objectives=["maximize_coverage"],
constraints={}
)
ss = SharedSignals(forecast={"shelter": 25.0}, capacity_proxies={"shelter": 10.0}, privacy_budget=0.05, version=1)
dual = DualVariables(multipliers={"shelter": 1.0})
cfg1 = SupplyDepotController("dep-1").propose_plan("lp-2", lp, ss, dual)
cfg2 = FieldDistributionPlanner("planner-1").propose_plan("lp-2", lp, ss, dual)
assert isinstance(cfg1, PlanDelta)
assert isinstance(cfg2, PlanDelta)
assert cfg1.contract_id == "lp-2"
assert cfg2.contract_id == "lp-2"