diff --git a/tests/test_energi_bridge.py b/tests/test_energi_bridge.py index 122fec5..7f896b3 100644 --- a/tests/test_energi_bridge.py +++ b/tests/test_energi_bridge.py @@ -1,24 +1,29 @@ -import pytest - +import time from gridverse.energi_bridge import EnergiBridge -from gridverse.registry import GraphContractRegistry -from gridverse.bridge_energia import bootstrap_contracts -def test_to_ir_from_ir_roundtrip(): - payload = {"site_id": "site-1", "description": "test"} - ir = EnergiBridge.to_ir("LocalProblem", payload) +def test_to_ir_and_from_ir_roundtrip(): + contract_type = "LocalProblem" + payload = {"id": "lp-1", "name": "test", "variables": {"p": 1}} + + ir = EnergiBridge.to_ir(contract_type, payload) + assert isinstance(ir, dict) + assert ir.get("ir_type") == contract_type + assert ir.get("ir_payload") == payload + assert "metadata" in ir - contract_type, recovered = EnergiBridge.from_ir(ir) - assert contract_type == "LocalProblem" - assert recovered == payload + back_type, back_payload = EnergiBridge.from_ir(ir) + assert back_type == contract_type + assert back_payload == payload -def test_bootstrap_contracts_registers_basic_schemas(): - reg = GraphContractRegistry() - bootstrap_contracts(reg) - # Basic contracts should be registered with a non-empty schema payload - assert reg.get_contract("LocalProblem", "0.1") is not None - assert reg.get_contract("SharedVariables", "0.1") is not None - assert reg.get_contract("PlanDelta", "0.1") is not None +def test_map_gridverse_to_catopt_basic(): + gridverse_contract = { + "type": "LocalProblem", + "payload": {"id": "lp-2", "name": "second"}, + } + ir = EnergiBridge.map_gridverse_to_catopt(gridverse_contract) + assert isinstance(ir, dict) + assert ir.get("ir_type") == "LocalProblem" + assert ir.get("ir_payload") == gridverse_contract["payload"] diff --git a/tests/test_registry_meta.py b/tests/test_registry_meta.py new file mode 100644 index 0000000..562481a --- /dev/null +++ b/tests/test_registry_meta.py @@ -0,0 +1,16 @@ +from gridverse.registry import GraphContractRegistry + + +def test_contract_with_meta_roundtrip(): + registry = GraphContractRegistry() + contract_type = "LocalProblem" + version = "0.2" + payload = {"id": "lp-3", "name": "third"} + metadata = {"owner": "team-A", "source": "unit-test"} + + registry.register_contract_with_meta(contract_type, version, payload, metadata) + + entry = registry.get_contract_with_meta(contract_type, version) + assert isinstance(entry, dict) + assert entry.get("payload") == payload + assert entry.get("metadata").get("owner") == "team-A"