40 lines
1.2 KiB
Python
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"
|