policymesh-policy-driven-fe.../tests/test_basic.py

33 lines
1.0 KiB
Python

import json
from policy_mesh.core import LocalPolicySet, GlobalConstraints, PolicyMesh
def test_basic_policymesh_flow():
pm = PolicyMesh()
# Create two local domains
lp1 = LocalPolicySet(domain="district-a", policies={"energy_budget": 100.0, "ramp_rate": 1.0}, version="v0")
lp2 = LocalPolicySet(domain="district-b", policies={"energy_budget": 80.0, "ramp_rate": 0.8}, version="v0")
pm.add_local_policy(lp1)
pm.add_local_policy(lp2)
# Global constraint placeholder
gc = GlobalConstraints(constraints={"mesh_budget": 180.0}, version="v0")
pm.set_global_constraints(gc)
# Run a couple of ADMM steps (mocked)
pm.admm_step(rho=1.0)
pm.admm_step(rho=1.0)
state = pm.get_state()
# basic assertions about stored state
assert "local_problems" in state
assert "district-a" in state["local_problems"]
assert state["global_constraints"]["version"] == "v0" if state["global_constraints"] else True
# ensure ledger has entries from admm steps
ledger = pm.get_ledger()
assert len(ledger) >= 2