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

40 lines
1.2 KiB
Python

import pytest
from gridverse_open_low_code_platform_for_cro.core import Object, Morphism, Functor
from gridverse_open_low_code_platform_for_cro.adapters.starter_der_adapter import StarterDERAdapter
from gridverse_open_low_code_platform_for_cro.adapter import Adapter
def test_object_creation():
o = Object(id="obj1", name="LocalProblem", data={"load": 10})
assert o.id == "obj1"
assert o.name == "LocalProblem"
assert o.data["load"] == 10
def test_morphism_apply_transforms_payload():
a = Object(id="src", name="Source")
b = Object(id="dst", name="Destination")
def trans(payload):
payload["aug"] = True
return payload
m = Morphism(id="m1", src=a, dst=b, transform=trans)
out = m.apply({"value": 1})
assert out.get("aug") is True
assert out["value"] == 1
def test_functor_mapping_stub():
def map_obj(o: Object) -> Object:
return Object(id=o.id, name=o.name + "-mapped", data=o.data)
def map_m(m: Morphism) -> Morphism:
return Morphism(id=m.id + "-mapped", src=m.src, dst=m.dst, transform=m.transform)
f = Functor(id="f1", name="Map", map_object=map_obj, map_morphism=map_m)
o = Object(id="o1", name="One")
mapped = f.map(o)
assert mapped.name == "One-mapped"