Skip to content

Commit d58326a

Browse files
Adjust operations to changes in yaramo2
1 parent 5ba2318 commit d58326a

File tree

7 files changed

+304
-278
lines changed

7 files changed

+304
-278
lines changed

test/compare_test.py

Lines changed: 75 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
11
import pytest
22

33
from yaramo.model import (
4-
DbrefGeoNode,
54
Edge,
5+
EuclideanGeoNode,
66
Node,
7-
Route,
87
Signal,
98
SignalDirection,
109
SignalFunction,
1110
SignalKind,
1211
Topology,
13-
Wgs84GeoNode,
1412
)
1513
from yaramo.operations import Compare, CompareMode, CompareResult
1614

1715

1816
def test_identical_topologies():
1917
topology = Topology()
20-
node_1 = Node(geo_node=DbrefGeoNode(0, 0))
21-
node_2 = Node(geo_node=DbrefGeoNode(0, 10))
22-
node_3 = Node(geo_node=DbrefGeoNode(10, 0))
23-
node_4 = Node(geo_node=DbrefGeoNode(20, 0))
24-
node_5 = Node(geo_node=DbrefGeoNode(30, 0))
25-
node_6 = Node(geo_node=DbrefGeoNode(30, 10))
18+
node_1 = Node(geo_node=EuclideanGeoNode(0, 0))
19+
node_2 = Node(geo_node=EuclideanGeoNode(0, 10))
20+
node_3 = Node(geo_node=EuclideanGeoNode(10, 0))
21+
node_4 = Node(geo_node=EuclideanGeoNode(20, 0))
22+
node_5 = Node(geo_node=EuclideanGeoNode(30, 0))
23+
node_6 = Node(geo_node=EuclideanGeoNode(30, 10))
2624
edge_1 = Edge(node_1, node_3)
2725
edge_2 = Edge(node_2, node_3)
2826
edge_3 = Edge(node_4, node_3)
@@ -50,12 +48,12 @@ def test_identical_topologies():
5048

5149
def test_identical_topologies_but_ids():
5250
topology_a = Topology()
53-
node_a1 = Node(geo_node=DbrefGeoNode(0, 0))
54-
node_a2 = Node(geo_node=DbrefGeoNode(0, 10))
55-
node_a3 = Node(geo_node=DbrefGeoNode(10, 0))
56-
node_a4 = Node(geo_node=DbrefGeoNode(20, 0))
57-
node_a5 = Node(geo_node=DbrefGeoNode(30, 0))
58-
node_a6 = Node(geo_node=DbrefGeoNode(30, 10))
51+
node_a1 = Node(geo_node=EuclideanGeoNode(0, 0))
52+
node_a2 = Node(geo_node=EuclideanGeoNode(0, 10))
53+
node_a3 = Node(geo_node=EuclideanGeoNode(10, 0))
54+
node_a4 = Node(geo_node=EuclideanGeoNode(20, 0))
55+
node_a5 = Node(geo_node=EuclideanGeoNode(30, 0))
56+
node_a6 = Node(geo_node=EuclideanGeoNode(30, 10))
5957
edge_a1 = Edge(node_a1, node_a3)
6058
edge_a2 = Edge(node_a2, node_a3)
6159
edge_a3 = Edge(node_a4, node_a3)
@@ -66,12 +64,12 @@ def test_identical_topologies_but_ids():
6664
topology_a.update_edge_lengths()
6765

6866
topology_b = Topology()
69-
node_b1 = Node(geo_node=DbrefGeoNode(0, 0))
70-
node_b2 = Node(geo_node=DbrefGeoNode(0, 10))
71-
node_b3 = Node(geo_node=DbrefGeoNode(12, 0)) # x differs from Node A3
72-
node_b4 = Node(geo_node=DbrefGeoNode(20, 3)) # y differs from Node A4
73-
node_b5 = Node(geo_node=DbrefGeoNode(30, 0))
74-
node_b6 = Node(geo_node=DbrefGeoNode(30, 10))
67+
node_b1 = Node(geo_node=EuclideanGeoNode(0, 0))
68+
node_b2 = Node(geo_node=EuclideanGeoNode(0, 10))
69+
node_b3 = Node(geo_node=EuclideanGeoNode(12, 0)) # x differs from Node A3
70+
node_b4 = Node(geo_node=EuclideanGeoNode(20, 3)) # y differs from Node A4
71+
node_b5 = Node(geo_node=EuclideanGeoNode(30, 0))
72+
node_b6 = Node(geo_node=EuclideanGeoNode(30, 10))
7573
edge_b1 = Edge(node_b1, node_b3)
7674
edge_b2 = Edge(node_b2, node_b3)
7775
edge_b3 = Edge(node_b4, node_b3)
@@ -98,12 +96,12 @@ def test_identical_topologies_but_ids():
9896

9997
def test_edge_diff_and_signal_distance():
10098
topology_a = Topology()
101-
node_a1 = Node(geo_node=DbrefGeoNode(0, 0))
102-
node_a2 = Node(geo_node=DbrefGeoNode(0, 10))
103-
node_a3 = Node(geo_node=DbrefGeoNode(10, 0))
104-
node_a4 = Node(geo_node=DbrefGeoNode(20, 0))
105-
node_a5 = Node(geo_node=DbrefGeoNode(30, 0))
106-
node_a6 = Node(geo_node=DbrefGeoNode(30, 10))
99+
node_a1 = Node(geo_node=EuclideanGeoNode(0, 0))
100+
node_a2 = Node(geo_node=EuclideanGeoNode(0, 10))
101+
node_a3 = Node(geo_node=EuclideanGeoNode(10, 0))
102+
node_a4 = Node(geo_node=EuclideanGeoNode(20, 0))
103+
node_a5 = Node(geo_node=EuclideanGeoNode(30, 0))
104+
node_a6 = Node(geo_node=EuclideanGeoNode(30, 10))
107105
edge_a1 = Edge(node_a1, node_a3)
108106
edge_a2 = Edge(node_a2, node_a3)
109107
edge_a3 = Edge(node_a3, node_a4)
@@ -142,12 +140,12 @@ def test_edge_diff_and_signal_distance():
142140
topology_a.update_edge_lengths()
143141

144142
topology_b = Topology()
145-
node_b1 = Node(geo_node=DbrefGeoNode(0, 0))
146-
node_b2 = Node(geo_node=DbrefGeoNode(0, 10))
147-
node_b3 = Node(geo_node=DbrefGeoNode(10, 0))
148-
node_b4 = Node(geo_node=DbrefGeoNode(22, 0))
149-
node_b5 = Node(geo_node=DbrefGeoNode(32, 0))
150-
node_b6 = Node(geo_node=DbrefGeoNode(32, 10))
143+
node_b1 = Node(geo_node=EuclideanGeoNode(0, 0))
144+
node_b2 = Node(geo_node=EuclideanGeoNode(0, 10))
145+
node_b3 = Node(geo_node=EuclideanGeoNode(10, 0))
146+
node_b4 = Node(geo_node=EuclideanGeoNode(22, 0))
147+
node_b5 = Node(geo_node=EuclideanGeoNode(32, 0))
148+
node_b6 = Node(geo_node=EuclideanGeoNode(32, 10))
151149
edge_b1 = Edge(node_b1, node_b3)
152150
edge_b2 = Edge(node_b2, node_b3)
153151
edge_b3 = Edge(node_b4, node_b3) # Edge is reversed compared to edge_a3
@@ -195,23 +193,23 @@ def test_edge_diff_and_signal_distance():
195193
assert result.edge_length_difference == 2.0
196194
assert edge_a3 in result.edge_matching.element_matching
197195
assert edge_b3 == result.edge_matching.element_matching[edge_a3]
198-
assert result.signal_distance == 4.0
199196
assert signal_a1 in result.signal_matching.element_matching
200197
assert signal_b1 == result.signal_matching.element_matching[signal_a1]
201198
assert signal_a2 in result.signal_matching.element_matching
202199
assert signal_b2 == result.signal_matching.element_matching[signal_a2]
203200
assert signal_a3 in result.signal_matching.element_matching
204201
assert signal_b3 == result.signal_matching.element_matching[signal_a3]
202+
assert result.signal_distance == 4.0
205203

206204

207205
def test_exact_matching_with_overlapping_graph():
208206
topology_a = Topology()
209-
node_a1 = Node(geo_node=DbrefGeoNode(0, 0))
210-
node_a2 = Node(geo_node=DbrefGeoNode(0, 10))
211-
node_a3 = Node(geo_node=DbrefGeoNode(10, 0))
212-
node_a4 = Node(geo_node=DbrefGeoNode(20, 0))
213-
node_a5 = Node(geo_node=DbrefGeoNode(30, 0))
214-
node_a6 = Node(geo_node=DbrefGeoNode(30, 10))
207+
node_a1 = Node(geo_node=EuclideanGeoNode(0, 0))
208+
node_a2 = Node(geo_node=EuclideanGeoNode(0, 10))
209+
node_a3 = Node(geo_node=EuclideanGeoNode(10, 0))
210+
node_a4 = Node(geo_node=EuclideanGeoNode(20, 0))
211+
node_a5 = Node(geo_node=EuclideanGeoNode(30, 0))
212+
node_a6 = Node(geo_node=EuclideanGeoNode(30, 10))
215213
edge_a1 = Edge(node_a1, node_a3)
216214
edge_a2 = Edge(node_a2, node_a3)
217215
edge_a3 = Edge(node_a3, node_a4)
@@ -222,12 +220,12 @@ def test_exact_matching_with_overlapping_graph():
222220
topology_a.update_edge_lengths()
223221

224222
topology_b = Topology()
225-
node_b1 = Node(geo_node=DbrefGeoNode(0, 0), uuid=node_a1.uuid)
226-
node_b2 = Node(geo_node=DbrefGeoNode(0, 10), uuid=node_a2.uuid)
227-
node_b3 = Node(geo_node=DbrefGeoNode(12, 0), uuid=node_a3.uuid) # x differs to Node A3
228-
node_b4 = Node(geo_node=DbrefGeoNode(20, 1), uuid=node_a4.uuid) # y differs to Node A3
229-
node_b5 = Node(geo_node=DbrefGeoNode(-10, 0))
230-
node_b6 = Node(geo_node=DbrefGeoNode(-10, 10))
223+
node_b1 = Node(geo_node=EuclideanGeoNode(0, 0), uuid=node_a1.uuid)
224+
node_b2 = Node(geo_node=EuclideanGeoNode(0, 10), uuid=node_a2.uuid)
225+
node_b3 = Node(geo_node=EuclideanGeoNode(12, 0), uuid=node_a3.uuid) # x differs to Node A3
226+
node_b4 = Node(geo_node=EuclideanGeoNode(20, 1), uuid=node_a4.uuid) # y differs to Node A3
227+
node_b5 = Node(geo_node=EuclideanGeoNode(-10, 0))
228+
node_b6 = Node(geo_node=EuclideanGeoNode(-10, 10))
231229
edge_b1 = Edge(node_b1, node_b3, uuid=edge_a1.uuid)
232230
edge_b2 = Edge(node_b2, node_b3, uuid=edge_a2.uuid)
233231
edge_b3 = Edge(node_b3, node_b4, uuid=edge_a3.uuid)
@@ -252,12 +250,12 @@ def test_exact_matching_with_overlapping_graph():
252250

253251
def test_non_isomorphic_topologies_different_node_and_edge_count():
254252
topology_a = Topology()
255-
node_a1 = Node(geo_node=DbrefGeoNode(0, 0))
256-
node_a2 = Node(geo_node=DbrefGeoNode(0, 10))
257-
node_a3 = Node(geo_node=DbrefGeoNode(10, 0))
258-
node_a4 = Node(geo_node=DbrefGeoNode(20, 0))
259-
node_a5 = Node(geo_node=DbrefGeoNode(30, 0))
260-
node_a6 = Node(geo_node=DbrefGeoNode(30, 10))
253+
node_a1 = Node(geo_node=EuclideanGeoNode(0, 0))
254+
node_a2 = Node(geo_node=EuclideanGeoNode(0, 10))
255+
node_a3 = Node(geo_node=EuclideanGeoNode(10, 0))
256+
node_a4 = Node(geo_node=EuclideanGeoNode(20, 0))
257+
node_a5 = Node(geo_node=EuclideanGeoNode(30, 0))
258+
node_a6 = Node(geo_node=EuclideanGeoNode(30, 10))
261259
edge_a1 = Edge(node_a1, node_a3)
262260
edge_a2 = Edge(node_a2, node_a3)
263261
edge_a3 = Edge(node_a4, node_a3)
@@ -267,10 +265,10 @@ def test_non_isomorphic_topologies_different_node_and_edge_count():
267265
topology_a.add_edges([edge_a1, edge_a2, edge_a3, edge_a4, edge_a5])
268266

269267
topology_b = Topology()
270-
node_b1 = Node(geo_node=DbrefGeoNode(0, 0))
271-
node_b2 = Node(geo_node=DbrefGeoNode(0, 10))
272-
node_b3 = Node(geo_node=DbrefGeoNode(10, 0))
273-
node_b4 = Node(geo_node=DbrefGeoNode(20, 0))
268+
node_b1 = Node(geo_node=EuclideanGeoNode(0, 0))
269+
node_b2 = Node(geo_node=EuclideanGeoNode(0, 10))
270+
node_b3 = Node(geo_node=EuclideanGeoNode(10, 0))
271+
node_b4 = Node(geo_node=EuclideanGeoNode(20, 0))
274272
edge_b1 = Edge(node_b1, node_b3)
275273
edge_b2 = Edge(node_b2, node_b3)
276274
edge_b3 = Edge(node_b4, node_b3)
@@ -285,29 +283,29 @@ def test_non_isomorphic_topologies_different_node_and_edge_count():
285283

286284
def test_non_isomorphic_topologies_same_node_and_edge_count():
287285
topology_a = Topology()
288-
node_a1 = Node(geo_node=DbrefGeoNode(0, 0))
289-
node_a2 = Node(geo_node=DbrefGeoNode(10, 0))
290-
node_a3 = Node(geo_node=DbrefGeoNode(20, 0))
291-
node_a4 = Node(geo_node=DbrefGeoNode(30, 0))
292-
node_a5 = Node(geo_node=DbrefGeoNode(40, 10))
293-
node_a6 = Node(geo_node=DbrefGeoNode(40, 0))
286+
node_a1 = Node(geo_node=EuclideanGeoNode(0, 0))
287+
node_a2 = Node(geo_node=EuclideanGeoNode(10, 0))
288+
node_a3 = Node(geo_node=EuclideanGeoNode(20, 0))
289+
node_a4 = Node(geo_node=EuclideanGeoNode(30, 0))
290+
node_a5 = Node(geo_node=EuclideanGeoNode(40, 10))
291+
node_a6 = Node(geo_node=EuclideanGeoNode(40, 0))
294292
edge_a1 = Edge(node_a1, node_a2)
295293
edge_a2 = Edge(node_a2, node_a3)
296294
edge_a2b = Edge(node_a2, node_a3)
297-
edge_a2b.intermediate_geo_nodes.extend([DbrefGeoNode(12, 5), DbrefGeoNode(18, 5)])
295+
edge_a2b.intermediate_geo_nodes.extend([EuclideanGeoNode(12, 5), EuclideanGeoNode(18, 5)])
298296
edge_a3 = Edge(node_a3, node_a4)
299297
edge_a4 = Edge(node_a4, node_a5)
300298
edge_a5 = Edge(node_a4, node_a6)
301299
topology_a.add_nodes([node_a1, node_a2, node_a3, node_a4, node_a5, node_a6])
302300
topology_a.add_edges([edge_a1, edge_a2, edge_a2b, edge_a3, edge_a4, edge_a5])
303301

304302
topology_b = Topology()
305-
node_b1 = Node(geo_node=DbrefGeoNode(0, 0))
306-
node_b2 = Node(geo_node=DbrefGeoNode(10, 0))
307-
node_b3 = Node(geo_node=DbrefGeoNode(20, 0))
308-
node_b4 = Node(geo_node=DbrefGeoNode(30, 0))
309-
node_b5 = Node(geo_node=DbrefGeoNode(13, 5))
310-
node_b6 = Node(geo_node=DbrefGeoNode(23, 5))
303+
node_b1 = Node(geo_node=EuclideanGeoNode(0, 0))
304+
node_b2 = Node(geo_node=EuclideanGeoNode(10, 0))
305+
node_b3 = Node(geo_node=EuclideanGeoNode(20, 0))
306+
node_b4 = Node(geo_node=EuclideanGeoNode(30, 0))
307+
node_b5 = Node(geo_node=EuclideanGeoNode(13, 5))
308+
node_b6 = Node(geo_node=EuclideanGeoNode(23, 5))
311309
edge_b1 = Edge(node_b1, node_b2)
312310
edge_b2 = Edge(node_b2, node_b3)
313311
edge_b3 = Edge(node_b3, node_b4)
@@ -325,21 +323,21 @@ def test_non_isomorphic_topologies_same_node_and_edge_count():
325323

326324
def test_isomorphic_topologies_without_given_node_matching():
327325
topology_a = Topology()
328-
node_a1 = Node(geo_node=DbrefGeoNode(0, 0))
329-
node_a2 = Node(geo_node=DbrefGeoNode(0, 10))
330-
node_a3 = Node(geo_node=DbrefGeoNode(10, 0))
331-
node_a4 = Node(geo_node=DbrefGeoNode(20, 0))
326+
node_a1 = Node(geo_node=EuclideanGeoNode(0, 0))
327+
node_a2 = Node(geo_node=EuclideanGeoNode(0, 10))
328+
node_a3 = Node(geo_node=EuclideanGeoNode(10, 0))
329+
node_a4 = Node(geo_node=EuclideanGeoNode(20, 0))
332330
edge_a1 = Edge(node_a1, node_a3)
333331
edge_a2 = Edge(node_a2, node_a3)
334332
edge_a3 = Edge(node_a4, node_a3)
335333
topology_a.add_nodes([node_a1, node_a2, node_a3, node_a4])
336334
topology_a.add_edges([edge_a1, edge_a2, edge_a3])
337335

338336
topology_b = Topology()
339-
node_b1 = Node(geo_node=DbrefGeoNode(0, 0))
340-
node_b2 = Node(geo_node=DbrefGeoNode(0, 10))
341-
node_b3 = Node(geo_node=DbrefGeoNode(10, 0))
342-
node_b4 = Node(geo_node=DbrefGeoNode(20, 0))
337+
node_b1 = Node(geo_node=EuclideanGeoNode(0, 0))
338+
node_b2 = Node(geo_node=EuclideanGeoNode(0, 10))
339+
node_b3 = Node(geo_node=EuclideanGeoNode(10, 0))
340+
node_b4 = Node(geo_node=EuclideanGeoNode(20, 0))
343341
edge_b1 = Edge(node_b1, node_b3)
344342
edge_b2 = Edge(node_b2, node_b3)
345343
edge_b3 = Edge(node_b3, node_b4)

0 commit comments

Comments
 (0)