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"