38 lines
1020 B
Python
38 lines
1020 B
Python
import pytest
|
|
|
|
from gridverse.registry import ContractRegistry
|
|
from gridverse.adapter_marketplace import DERAdapter, HeatingAdapter
|
|
from gridverse.solver import admm_solve
|
|
from gridverse.delta_sync import reconcile
|
|
|
|
|
|
def test_registry_basic():
|
|
reg = ContractRegistry()
|
|
reg.register_contract("LocalProblem", "0.1", {"type": "object"})
|
|
assert reg.get_contract("LocalProblem", "0.1") == {"type": "object"}
|
|
|
|
|
|
def test_starter_adapters_interface():
|
|
der = DERAdapter()
|
|
heat = HeatingAdapter()
|
|
lp = {"load": 10}
|
|
assert isinstance(der.adapt(lp), dict)
|
|
assert der.contract()["name"] == "DERAdapter"
|
|
assert heat.contract()["version"]
|
|
|
|
|
|
def test_solver_basic():
|
|
lp = {"a": 1}
|
|
sv = {"a": 0}
|
|
delta, updated = admm_solve(lp, sv, rho=0.5)
|
|
assert isinstance(delta, dict)
|
|
assert isinstance(updated, dict)
|
|
|
|
|
|
def test_delta_sync_basic():
|
|
local = {"x": 1}
|
|
remote = {"x": 2, "y": 5}
|
|
merged = reconcile(local, remote)
|
|
assert merged["x"] == 2
|
|
assert merged["y"] == 5
|