Skip to content

Commit 3646d2d

Browse files
committed
python: test the exposed topology api
Signed-off-by: Tristram Gräbener <tristram+git@tristramg.eu>
1 parent eaf0bec commit 3646d2d

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

python/tests/test_read_topology.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
from liblrs_python import Builder, Point, Lrs, SegmentOfTraversal, AnchorOnLrm
2+
3+
def build_lrm() -> Lrs:
4+
"""Helper function that builds an example LRS
5+
6+
It has the following topology:
7+
3
8+
|
9+
0---1---2
10+
11+
0-1-2 is lrm_1
12+
1-3 is lrm_2
13+
"""
14+
15+
16+
builder = Builder()
17+
18+
p0 = Point(0, 0)
19+
p1 = Point(1, 0)
20+
p2 = Point(2, 0)
21+
p3 = Point(1, 1)
22+
23+
builder.add_node("0", p0, {})
24+
builder.add_node("1", p1, {})
25+
builder.add_node("2", p2, {})
26+
builder.add_node("3", p3, {})
27+
28+
29+
segment1 = SegmentOfTraversal(builder.add_segment("s1", [p0, p1], 0, 1), False)
30+
segment2 = SegmentOfTraversal(builder.add_segment("s2", [p2, p1], 1, 2), False)
31+
segment3 = SegmentOfTraversal(builder.add_segment("s1", [p1, p3], 0, 1), False)
32+
33+
traversal1 = builder.add_traversal("traversal1", [segment1, segment2])
34+
traversal2 = builder.add_traversal("traversal2", [segment3])
35+
36+
builder.add_lrm("lrm_1", traversal1, [], {})
37+
builder.add_lrm("lrm_2", traversal2, [], {})
38+
39+
return builder.build_lrs({})
40+
41+
42+
def test_get_topology():
43+
lrs = build_lrm()
44+
nodes = lrs.get_nodes()
45+
assert len(nodes) == 4
46+
47+
n0 = lrs.get_node(0)
48+
assert n0.id == "0"
49+
assert n0.properties == {}
50+
assert n0.geometry is not None
51+
assert n0.geometry.x == 0
52+
assert n0.geometry.y == 0
53+
54+
segments = lrs.get_segments()
55+
assert len(segments) == 3
56+
57+
segment1 = segments[0]
58+
assert segment1.id == "s1"
59+
assert segment1.start_node == 0
60+
assert segment1.end_node == 1

0 commit comments

Comments
 (0)