Add label api and test

This commit is contained in:
WQY\qiong
2022-11-04 16:01:28 +08:00
parent 789136a881
commit 1d465b8a64
5 changed files with 238 additions and 3 deletions

View File

@@ -2488,6 +2488,121 @@ class TestApi:
self.leave(p)
# 26 label
def test_label(self):
p = 'test_label'
self.enter(p)
l = get_label(p, 0.0, 0.0)
assert l['x'] == 0.0
assert l['y'] == 0.0
assert l['label'] == None
assert l['node'] == None
add_junction(p, ChangeSet({'id': 'j0', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
add_label(p, ChangeSet({'x': 0.0, 'y': 0.0, 'label': 'x', 'node': 'j0'}))
l = get_label(p, 0.0, 0.0)
assert l['x'] == 0.0
assert l['y'] == 0.0
assert l['label'] == 'x'
assert l['node'] == 'j0'
add_junction(p, ChangeSet({'id': 'j1', 'x': 1.0, 'y': 20.0, 'elevation': 20.0}))
set_label(p, ChangeSet({'x': 0.0, 'y': 0.0, 'label': 'xxx', 'node': 'j1'}))
l = get_label(p, 0.0, 0.0)
assert l['x'] == 0.0
assert l['y'] == 0.0
assert l['label'] == 'xxx'
assert l['node'] == 'j1'
delete_label(p, ChangeSet({'x': 0.0, 'y': 0.0}))
l = get_label(p, 0.0, 0.0)
assert l['x'] == 0.0
assert l['y'] == 0.0
assert l['label'] == None
assert l['node'] == None
self.leave(p)
def test_label_op(self):
p = 'test_label_op'
self.enter(p)
add_junction(p, ChangeSet({'id': 'j0', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
add_junction(p, ChangeSet({'id': 'j1', 'x': 1.0, 'y': 20.0, 'elevation': 20.0}))
cs = add_label(p, ChangeSet({'x': 0.0, 'y': 0.0, 'label': 'x', 'node': 'j0'})).operations[0]
assert cs['operation'] == API_ADD
assert cs['type'] == 'label'
assert cs['x'] == 0.0
assert cs['y'] == 0.0
assert cs['label'] == 'x'
assert cs['node'] == 'j0'
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_DELETE
assert cs['type'] == 'label'
assert cs['x'] == 0.0
assert cs['y'] == 0.0
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_ADD
assert cs['type'] == 'label'
assert cs['x'] == 0.0
assert cs['y'] == 0.0
assert cs['label'] == 'x'
assert cs['node'] == 'j0'
cs = set_label(p, ChangeSet({'x': 0.0, 'y': 0.0, 'label': 'xxx', 'node': 'j1'})).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'label'
assert cs['x'] == 0.0
assert cs['y'] == 0.0
assert cs['label'] == 'xxx'
assert cs['node'] == 'j1'
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'label'
assert cs['x'] == 0.0
assert cs['y'] == 0.0
assert cs['label'] == 'x'
assert cs['node'] == 'j0'
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'label'
assert cs['x'] == 0.0
assert cs['y'] == 0.0
assert cs['label'] == 'xxx'
assert cs['node'] == 'j1'
cs = delete_label(p, ChangeSet({'x': 0.0, 'y': 0.0})).operations[0]
assert cs['operation'] == API_DELETE
assert cs['type'] == 'label'
assert cs['x'] == 0.0
assert cs['y'] == 0.0
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_ADD
assert cs['type'] == 'label'
assert cs['x'] == 0.0
assert cs['y'] == 0.0
assert cs['label'] == 'xxx'
assert cs['node'] == 'j1'
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_DELETE
assert cs['type'] == 'label'
assert cs['x'] == 0.0
assert cs['y'] == 0.0
self.leave(p)
# 27 backdrop
@@ -2525,7 +2640,5 @@ class TestApi:
self.leave(p)
if __name__ == '__main__':
pytest.main()