gridverse-open-low-code-pla.../tests/test_basic.py

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