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"