76 lines
2.3 KiB
Python
76 lines
2.3 KiB
Python
import copy
|
|
|
|
import mgp
|
|
import mgp_mock
|
|
import test_utils
|
|
|
|
|
|
@mgp.read_proc
|
|
def compare_apis(ctx: mgp.ProcCtx) -> mgp.Record(results_dict=mgp.Map):
|
|
mock_ctx = test_utils.get_mock_proc_ctx(is_write=False)
|
|
results = dict()
|
|
|
|
START_ID = 0
|
|
start_vertex = test_utils.get_vertex(ctx, permanent_id=START_ID)
|
|
mock_start_vertex = mock_ctx.graph.get_vertex_by_id(START_ID)
|
|
path = mgp.Path(start_vertex)
|
|
mock_path = mgp_mock.Path(mock_start_vertex)
|
|
|
|
results["is_valid"] = test_utils.all_equal(
|
|
path.is_valid(),
|
|
mock_path.is_valid(),
|
|
True,
|
|
)
|
|
|
|
EDGE_ID = 0
|
|
edge_to_add = test_utils.get_edge(ctx, permanent_id=EDGE_ID)
|
|
mock_edge_to_add = test_utils.get_mock_edge(mock_ctx, id=EDGE_ID)
|
|
path.expand(edge_to_add)
|
|
mock_path.expand(mock_edge_to_add)
|
|
results["expand"] = test_utils.all_equal(
|
|
(len(path.vertices), len(path.edges)),
|
|
(len(mock_path.vertices), len(mock_path.edges)),
|
|
(2, 1),
|
|
)
|
|
|
|
path.pop()
|
|
mock_path.pop()
|
|
results["pop"] = test_utils.all_equal(
|
|
(len(path.vertices), len(path.edges)),
|
|
(len(mock_path.vertices), len(mock_path.edges)),
|
|
(1, 0),
|
|
)
|
|
path.expand(edge_to_add)
|
|
mock_path.expand(mock_edge_to_add)
|
|
|
|
NEXT_ID = 1
|
|
results["vertices"] = test_utils.all_equal(
|
|
all(isinstance(vertex, mgp.Vertex) for vertex in path.vertices),
|
|
all(isinstance(vertex, mgp_mock.Vertex) for vertex in mock_path.vertices),
|
|
True,
|
|
) and test_utils.all_equal(
|
|
[vertex.properties["permanent_id"] for vertex in path.vertices],
|
|
[vertex.properties["permanent_id"] for vertex in mock_path.vertices],
|
|
[START_ID, NEXT_ID],
|
|
)
|
|
|
|
results["edges"] = test_utils.all_equal(
|
|
all(isinstance(edge, mgp.Edge) for edge in path.edges),
|
|
all(isinstance(edge, mgp_mock.Edge) for edge in mock_path.edges),
|
|
True,
|
|
) and test_utils.all_equal(
|
|
[edge.properties["permanent_id"] for edge in path.edges],
|
|
[edge.properties["permanent_id"] for edge in mock_path.edges],
|
|
[0],
|
|
)
|
|
|
|
path_copy = copy.copy(path)
|
|
mock_path_copy = copy.copy(mock_path)
|
|
results["__copy__"] = test_utils.all_equal(
|
|
path_copy.is_valid(),
|
|
mock_path_copy.is_valid(),
|
|
True,
|
|
)
|
|
|
|
return mgp.Record(results_dict=results)
|