gridforge-low-code-platform.../tests/test_basic.py

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)