15 lines
748 B
Python
15 lines
748 B
Python
import json
|
|
from gridforge.dsl import Object, Morphism, Functor, TimeMonoid
|
|
from gridforge.core import canonicalize_dsl
|
|
|
|
|
|
def test_canonicalization_basic():
|
|
o1 = Object(id="o1", name="Source", description="test", fields={"voltage": 110})
|
|
o2 = Object(id="o2", name="Sink", description="test", fields={"load": 5})
|
|
m = Morphism(id="m1", name="pipe", source_object_id="o1", target_object_id="o2", schema={"unit": "kW"})
|
|
f = Functor(id="f1", name="to_canonical", map_function="lambda x: x")
|
|
t = TimeMonoid(id="t0", rounds=2, mode="sync")
|
|
canon = canonicalize_dsl([o1, o2], [m], [f], [], [], t)
|
|
assert "objects" in canon and len(canon["objects"]) == 2
|
|
assert canon["time"]["id"] == "t0" or isinstance(canon["time"], dict)
|