1- from yaramo .model import Edge , Node , Topology
1+ from yaramo .model import (
2+ Edge ,
3+ Node ,
4+ Route ,
5+ Signal ,
6+ SignalDirection ,
7+ SignalFunction ,
8+ SignalKind ,
9+ Topology ,
10+ Wgs84GeoNode ,
11+ )
212
313from .helper import create_edge , create_geo_node , create_node
414
@@ -19,8 +29,11 @@ def test_get_edge_by_nodes():
1929 assert len (topology .edges ) == 1
2030
2131 def _test_edge (_node_a , _node_b , _expected_edge ):
22- _edge = topology .get_edge_by_nodes (_node_a , _node_b )
23- assert _edge == _expected_edge
32+ _edge_list = topology .get_edge_by_nodes (_node_a , _node_b )
33+ if not _edge_list :
34+ assert _expected_edge is None
35+ else :
36+ assert _edge_list [0 ] == _expected_edge
2437
2538 _test_edge (node_a , node_b , edge )
2639 _test_edge (node_b , node_a , edge )
@@ -83,3 +96,45 @@ def test_station_topology():
8396 assert point_b .connected_edge_on_left == edge_2a
8497 assert len (end_b .connected_edges ) == 1
8598 assert end_b .connected_edge_on_head == edge_3
99+
100+
101+ def test_contains_method ():
102+ topology = Topology ()
103+ node_1 = Node (geo_node = Wgs84GeoNode (0 , 0 ))
104+ node_2 = Node (geo_node = Wgs84GeoNode (0 , 5 ))
105+ node_3 = Node (geo_node = Wgs84GeoNode (10 , 0 )) # Point
106+ node_4 = Node (geo_node = Wgs84GeoNode (20 , 0 ))
107+ edge_1 = Edge (node_1 , node_3 )
108+ edge_2 = Edge (node_2 , node_3 )
109+ edge_3 = Edge (node_3 , node_4 )
110+
111+ signal_1 = Signal (
112+ edge_1 , 5.0 , SignalDirection .IN , SignalFunction .Block_Signal , SignalKind .Hauptsignal
113+ )
114+ edge_1 .signals .append (signal_1 )
115+ signal_2 = Signal (
116+ edge_3 , 3.0 , SignalDirection .IN , SignalFunction .Block_Signal , SignalKind .Hauptsignal
117+ )
118+ edge_3 .signals .append (signal_2 )
119+ route_1 = Route (signal_1 )
120+ route_1 .edges .add (edge_1 )
121+ route_1 .edges .add (edge_3 )
122+ route_1 .end_signal = signal_2
123+
124+ topology .add_nodes ([node_1 , node_2 , node_3 , node_4 ])
125+ topology .add_edges ([edge_1 , edge_2 , edge_3 ])
126+ topology .add_signals ([signal_1 , signal_2 ])
127+ topology .add_routes ([route_1 ])
128+ assert node_1 in topology
129+ assert node_1 .uuid in topology
130+ assert node_2 in topology
131+ assert [node_3 , node_4 ] in topology
132+ assert [node_3 .uuid , node_4 .uuid ] in topology
133+ assert edge_1 in topology
134+ assert [edge_2 , edge_3 ] in topology
135+ assert signal_1 in topology
136+ assert signal_2 in topology
137+ assert route_1 in topology
138+ assert "test" not in topology
139+ assert ["test" ] not in topology
140+ assert [node_1 , "test" ] not in topology
0 commit comments