Add source api and test

This commit is contained in:
WQY\qiong
2022-11-11 20:14:24 +08:00
parent a715b2a9ee
commit 026e582b84
5 changed files with 295 additions and 1 deletions

View File

@@ -2410,6 +2410,172 @@ class TestApi:
self.leave(p)
# 18 source
def test_source(self):
p = 'test_source'
self.enter(p)
add_junction(p, ChangeSet({'id': 'j0', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
add_pattern(p, ChangeSet({'id' : 'p0', 'factors': [1.0, 2.0, 3.0]}))
add_pattern(p, ChangeSet({'id' : 'p1', 'factors': [1.0, 2.0, 3.0]}))
add_source(p, ChangeSet({'node': 'j0', 's_type': SOURCE_TYPE_CONCEN, 'strength': 10.0, 'pattern': 'p0'}))
s = get_source(p, 'j0')
assert s['node'] == 'j0'
assert s['s_type'] == SOURCE_TYPE_CONCEN
assert s['strength'] == 10.0
assert s['pattern'] == 'p0'
set_source(p, ChangeSet({'node': 'j0', 's_type': SOURCE_TYPE_FLOWPACED}))
s = get_source(p, 'j0')
assert s['node'] == 'j0'
assert s['s_type'] == SOURCE_TYPE_FLOWPACED
assert s['strength'] == 10.0
assert s['pattern'] == 'p0'
set_source(p, ChangeSet({'node': 'j0', 'strength': 20.0}))
s = get_source(p, 'j0')
assert s['node'] == 'j0'
assert s['s_type'] == SOURCE_TYPE_FLOWPACED
assert s['strength'] == 20.0
assert s['pattern'] == 'p0'
set_source(p, ChangeSet({'node': 'j0', 'pattern': 'p1'}))
s = get_source(p, 'j0')
assert s['node'] == 'j0'
assert s['s_type'] == SOURCE_TYPE_FLOWPACED
assert s['strength'] == 20.0
assert s['pattern'] == 'p1'
delete_source(p, ChangeSet({'node': 'j0'}))
self.leave(p)
def test_source_op(self):
p = 'test_source_op'
self.enter(p)
add_junction(p, ChangeSet({'id': 'j0', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
add_pattern(p, ChangeSet({'id' : 'p0', 'factors': [1.0, 2.0, 3.0]}))
add_pattern(p, ChangeSet({'id' : 'p1', 'factors': [1.0, 2.0, 3.0]}))
cs = add_source(p, ChangeSet({'node': 'j0', 's_type': SOURCE_TYPE_CONCEN, 'strength': 10.0, 'pattern': 'p0'})).operations[0]
assert cs['operation'] == API_ADD
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_CONCEN
assert cs['strength'] == 10.0
assert cs['pattern'] == 'p0'
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_DELETE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_ADD
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_CONCEN
assert cs['strength'] == 10.0
assert cs['pattern'] == 'p0'
cs = set_source(p, ChangeSet({'node': 'j0', 's_type': SOURCE_TYPE_FLOWPACED})).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_FLOWPACED
assert cs['strength'] == 10.0
assert cs['pattern'] == 'p0'
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_CONCEN
assert cs['strength'] == 10.0
assert cs['pattern'] == 'p0'
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_FLOWPACED
assert cs['strength'] == 10.0
assert cs['pattern'] == 'p0'
cs = set_source(p, ChangeSet({'node': 'j0', 'strength': 20.0})).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_FLOWPACED
assert cs['strength'] == 20.0
assert cs['pattern'] == 'p0'
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_FLOWPACED
assert cs['strength'] == 10.0
assert cs['pattern'] == 'p0'
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_FLOWPACED
assert cs['strength'] == 20.0
assert cs['pattern'] == 'p0'
cs = set_source(p, ChangeSet({'node': 'j0', 'pattern': 'p1'})).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_FLOWPACED
assert cs['strength'] == 20.0
assert cs['pattern'] == 'p1'
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_FLOWPACED
assert cs['strength'] == 20.0
assert cs['pattern'] == 'p0'
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_FLOWPACED
assert cs['strength'] == 20.0
assert cs['pattern'] == 'p1'
cs = delete_source(p, ChangeSet({'node': 'j0'})).operations[0]
assert cs['operation'] == API_DELETE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_ADD
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
assert cs['s_type'] == SOURCE_TYPE_FLOWPACED
assert cs['strength'] == 20.0
assert cs['pattern'] == 'p1'
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_DELETE
assert cs['type'] == 'source'
assert cs['node'] == 'j0'
self.leave(p)
# 21 time