Add reaction api and test

This commit is contained in:
WQY\qiong
2022-11-12 10:00:08 +08:00
parent 3d6d8995ef
commit 1631592b0a
6 changed files with 437 additions and 3 deletions

View File

@@ -2576,6 +2576,195 @@ class TestApi:
self.leave(p)
# 19 reaction
def test_global_reaction(self):
p = 'test_global_reaction'
self.enter(p)
gr = get_global_reaction(p)
assert gr['order_bulk'] == None
assert gr['order_wall'] == None
assert gr['order_tank'] == None
assert gr['global_bulk'] == None
assert gr['global_wall'] == None
assert gr['limiting_potential'] == None
assert gr['roughness_correlation'] == None
set_global_reaction(p, ChangeSet({ 'order_bulk' : 10.0 }))
gr = get_global_reaction(p)
assert gr['order_bulk'] == 10.0
assert gr['order_wall'] == None
assert gr['order_tank'] == None
assert gr['global_bulk'] == None
assert gr['global_wall'] == None
assert gr['limiting_potential'] == None
assert gr['roughness_correlation'] == None
set_global_reaction(p, ChangeSet({ 'order_bulk' : None }))
gr = get_global_reaction(p)
assert gr['order_bulk'] == None
assert gr['order_wall'] == None
assert gr['order_tank'] == None
assert gr['global_bulk'] == None
assert gr['global_wall'] == None
assert gr['limiting_potential'] == None
assert gr['roughness_correlation'] == None
self.leave(p)
def test_global_reaction_op(self):
p = 'test_global_reaction_op'
self.enter(p)
cs = set_global_reaction(p, ChangeSet({ 'order_bulk' : 10.0 })).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'global_reaction'
assert cs['order_bulk'] == 10.0
assert cs['order_wall'] == None
assert cs['order_tank'] == None
assert cs['global_bulk'] == None
assert cs['global_wall'] == None
assert cs['limiting_potential'] == None
assert cs['roughness_correlation'] == None
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'global_reaction'
assert cs['order_bulk'] == None
assert cs['order_wall'] == None
assert cs['order_tank'] == None
assert cs['global_bulk'] == None
assert cs['global_wall'] == None
assert cs['limiting_potential'] == None
assert cs['roughness_correlation'] == None
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'global_reaction'
assert cs['order_bulk'] == 10.0
assert cs['order_wall'] == None
assert cs['order_tank'] == None
assert cs['global_bulk'] == None
assert cs['global_wall'] == None
assert cs['limiting_potential'] == None
assert cs['roughness_correlation'] == None
self.leave(p)
def test_pipe_reaction(self):
p = 'test_pipe_reaction'
self.enter(p)
add_junction(p, ChangeSet({'id': 'j1', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
add_junction(p, ChangeSet({'id': 'j2', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
add_pipe(p, ChangeSet({'id': 'p0', 'node1': 'j1', 'node2': 'j2', 'length': 100.0, 'diameter': 10.0, 'roughness': 0.1, 'minor_loss': 0.5, 'status': PIPE_STATUS_OPEN }))
pp = get_pipe_reaction(p, 'p0')
assert pp['pipe'] == 'p0'
assert pp['bulk'] == None
assert pp['wall'] == None
set_pipe_reaction(p, ChangeSet({'pipe': 'p0', 'bulk': 10.0, 'wall': 20.0}))
pp = get_pipe_reaction(p, 'p0')
assert pp['pipe'] == 'p0'
assert pp['bulk'] == 10.0
assert pp['wall'] == 20.0
set_pipe_reaction(p, ChangeSet({'pipe': 'p0', 'bulk': None, 'wall': None}))
pp = get_pipe_reaction(p, 'p0')
assert pp['pipe'] == 'p0'
assert pp['bulk'] == None
assert pp['wall'] == None
self.leave(p)
def test_pipe_reaction_op(self):
p = 'test_pipe_reaction_op'
self.enter(p)
add_junction(p, ChangeSet({'id': 'j1', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
add_junction(p, ChangeSet({'id': 'j2', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
add_pipe(p, ChangeSet({'id': 'p0', 'node1': 'j1', 'node2': 'j2', 'length': 100.0, 'diameter': 10.0, 'roughness': 0.1, 'minor_loss': 0.5, 'status': PIPE_STATUS_OPEN }))
cs = set_pipe_reaction(p, ChangeSet({'pipe': 'p0', 'bulk': 10.0, 'wall': 20.0})).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'pipe_reaction'
assert cs['pipe'] == 'p0'
assert cs['bulk'] == 10.0
assert cs['wall'] == 20.0
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'pipe_reaction'
assert cs['pipe'] == 'p0'
assert cs['bulk'] == None
assert cs['wall'] == None
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'pipe_reaction'
assert cs['pipe'] == 'p0'
assert cs['bulk'] == 10.0
assert cs['wall'] == 20.0
self.leave(p)
def test_tank_reaction(self):
p = 'test_tank_reaction'
self.enter(p)
add_tank(p, ChangeSet({'id': 't0', 'x': 0.0, 'y': 10.0, 'elevation': 20.0, 'init_level': 1.0, 'min_level': 0.0, 'max_level': 2.0, 'diameter': 10.0, 'min_vol': 100.0, 'vol_curve': None, 'overflow': OVERFLOW_NO}))
pt = get_tank_reaction(p, 't0')
assert pt['tank'] == 't0'
assert pt['value'] == None
set_tank_reaction(p, ChangeSet({'tank': 't0', 'value': 10.0}))
pt = get_tank_reaction(p, 't0')
assert pt['tank'] == 't0'
assert pt['value'] == 10.0
set_tank_reaction(p, ChangeSet({'tank': 't0', 'value': None}))
pt = get_tank_reaction(p, 't0')
assert pt['tank'] == 't0'
assert pt['value'] == None
self.leave(p)
def test_tank_reaction_op(self):
p = 'test_tank_reaction_op'
self.enter(p)
add_tank(p, ChangeSet({'id': 't0', 'x': 0.0, 'y': 10.0, 'elevation': 20.0, 'init_level': 1.0, 'min_level': 0.0, 'max_level': 2.0, 'diameter': 10.0, 'min_vol': 100.0, 'vol_curve': None, 'overflow': OVERFLOW_NO}))
cs = set_tank_reaction(p, ChangeSet({'tank': 't0', 'value': 10.0})).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'tank_reaction'
assert cs['tank'] == 't0'
assert cs['value'] == 10.0
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'tank_reaction'
assert cs['tank'] == 't0'
assert cs['value'] == None
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'tank_reaction'
assert cs['tank'] == 't0'
assert cs['value'] == 10.0
self.leave(p)
# 20 mixing