Support VD
This commit is contained in:
@@ -6334,6 +6334,162 @@ class TestApi:
|
||||
self.leave(p)
|
||||
|
||||
|
||||
def test_virtual_district(self):
|
||||
p = 'test_virtual_district'
|
||||
self.enter(p)
|
||||
|
||||
vd = get_virtual_district(p, 'vd')
|
||||
assert vd == {}
|
||||
|
||||
add_virtual_district(p, ChangeSet({'id': 'vd', 'boundary': [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)]}))
|
||||
vd = get_virtual_district(p, 'vd')
|
||||
assert vd == {}
|
||||
|
||||
add_virtual_district(p, ChangeSet({'id': 'vd', 'boundary': [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)], 'center': 'j0'}))
|
||||
vd = get_virtual_district(p, 'vd')
|
||||
assert vd == {}
|
||||
|
||||
add_junction(p, ChangeSet({'id': 'j0', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
|
||||
|
||||
add_virtual_district(p, ChangeSet({'id': 'vd', 'boundary': [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)], 'center': 'j0', 'nodes' : ['x']}))
|
||||
vd = get_virtual_district(p, 'vd')
|
||||
assert vd == {}
|
||||
|
||||
add_virtual_district(p, ChangeSet({'id': 'vd', 'boundary': [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)], 'center': 'j0', 'nodes': ['j0']}))
|
||||
vd = get_virtual_district(p, 'vd')
|
||||
assert vd['id'] == 'vd'
|
||||
assert vd['boundary'] == [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)]
|
||||
assert vd['center'] == 'j0'
|
||||
assert vd['nodes'] == ['j0']
|
||||
|
||||
add_junction(p, ChangeSet({'id': 'j1', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
|
||||
|
||||
set_virtual_district(p, ChangeSet({'id': 'vd', 'center': 'j1', 'nodes': ['j1']}))
|
||||
vd = get_virtual_district(p, 'vd')
|
||||
assert vd['id'] == 'vd'
|
||||
assert vd['boundary'] == [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)]
|
||||
assert vd['center'] == 'j1'
|
||||
assert vd['nodes'] == ['j1']
|
||||
|
||||
assert get_all_virtual_district_ids(p) == ['vd']
|
||||
vds = get_all_virtual_districts(p)
|
||||
assert len(vds) == 1
|
||||
vd = vds[0]
|
||||
assert vd['id'] == 'vd'
|
||||
assert vd['boundary'] == [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)]
|
||||
assert vd['center'] == 'j1'
|
||||
assert vd['nodes'] == ['j1']
|
||||
|
||||
delete_virtual_district(p, ChangeSet({'id': 'vd'}))
|
||||
vd = get_virtual_district(p, 'vd')
|
||||
assert vd == {}
|
||||
|
||||
self.leave(p)
|
||||
|
||||
|
||||
def test_virtual_district_op(self):
|
||||
p = 'test_virtual_district_op'
|
||||
self.enter(p)
|
||||
|
||||
cs = add_virtual_district(p, ChangeSet({'id': 'vd', 'boundary': [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)]})).operations
|
||||
assert len(cs) == 0
|
||||
|
||||
cs = add_virtual_district(p, ChangeSet({'id': 'vd', 'boundary': [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)], 'center': 'j0'})).operations
|
||||
assert len(cs) == 0
|
||||
|
||||
add_junction(p, ChangeSet({'id': 'j0', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
|
||||
|
||||
cs = add_virtual_district(p, ChangeSet({'id': 'vd', 'boundary': [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)], 'center': 'j0', 'nodes' : ['x']})).operations
|
||||
assert len(cs) == 0
|
||||
|
||||
cs = add_virtual_district(p, ChangeSet({'id': 'vd', 'boundary': [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)], 'center': 'j0', 'nodes': ['j0']})).operations[0]
|
||||
assert cs['operation'] == API_ADD
|
||||
assert cs['type'] == 'virtual_district'
|
||||
assert cs['id'] == 'vd'
|
||||
assert cs['boundary'] == [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)]
|
||||
assert cs['center'] == 'j0'
|
||||
assert cs['nodes'] == ['j0']
|
||||
|
||||
cs = execute_undo(p).operations[0]
|
||||
assert cs['operation'] == API_DELETE
|
||||
assert cs['type'] == 'virtual_district'
|
||||
assert cs['id'] == 'vd'
|
||||
|
||||
cs = execute_redo(p).operations[0]
|
||||
assert cs['operation'] == API_ADD
|
||||
assert cs['type'] == 'virtual_district'
|
||||
assert cs['id'] == 'vd'
|
||||
assert cs['boundary'] == [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)]
|
||||
assert cs['center'] == 'j0'
|
||||
assert cs['nodes'] == ['j0']
|
||||
|
||||
add_junction(p, ChangeSet({'id': 'j1', 'x': 0.0, 'y': 10.0, 'elevation': 20.0}))
|
||||
|
||||
cs = set_virtual_district(p, ChangeSet({'id': 'vd', 'center': 'j1', 'nodes': ['j1']})).operations[0]
|
||||
assert cs['operation'] == API_UPDATE
|
||||
assert cs['type'] == 'virtual_district'
|
||||
assert cs['id'] == 'vd'
|
||||
assert cs['boundary'] == [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)]
|
||||
assert cs['center'] == 'j1'
|
||||
assert cs['nodes'] == ['j1']
|
||||
|
||||
cs = execute_undo(p).operations[0]
|
||||
assert cs['operation'] == API_UPDATE
|
||||
assert cs['type'] == 'virtual_district'
|
||||
assert cs['id'] == 'vd'
|
||||
assert cs['boundary'] == [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)]
|
||||
assert cs['center'] == 'j0'
|
||||
assert cs['nodes'] == ['j0']
|
||||
|
||||
cs = execute_redo(p).operations[0]
|
||||
assert cs['operation'] == API_UPDATE
|
||||
assert cs['type'] == 'virtual_district'
|
||||
assert cs['id'] == 'vd'
|
||||
assert cs['boundary'] == [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)]
|
||||
assert cs['center'] == 'j1'
|
||||
assert cs['nodes'] == ['j1']
|
||||
|
||||
cs = delete_virtual_district(p, ChangeSet({'id': 'vd'})).operations[0]
|
||||
assert cs['operation'] == API_DELETE
|
||||
assert cs['type'] == 'virtual_district'
|
||||
assert cs['id'] == 'vd'
|
||||
|
||||
cs = execute_undo(p).operations[0]
|
||||
assert cs['operation'] == API_ADD
|
||||
assert cs['type'] == 'virtual_district'
|
||||
assert cs['id'] == 'vd'
|
||||
assert cs['boundary'] == [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 0.0)]
|
||||
assert cs['center'] == 'j1'
|
||||
assert cs['nodes'] == ['j1']
|
||||
|
||||
cs = execute_redo(p).operations[0]
|
||||
assert cs['operation'] == API_DELETE
|
||||
assert cs['type'] == 'virtual_district'
|
||||
assert cs['id'] == 'vd'
|
||||
|
||||
self.leave(p)
|
||||
|
||||
|
||||
def test_virtual_district_gen(self):
|
||||
p = 'test_virtual_district_gen'
|
||||
read_inp(p, f'./inp/net3.inp', '3')
|
||||
open_project(p)
|
||||
|
||||
cs = generate_virtual_district(p, ['107', '139', '267', '211']).operations
|
||||
assert len(cs) == 4
|
||||
|
||||
assert len(get_all_virtual_district_ids(p)) == 4
|
||||
assert len(get_all_virtual_districts(p)) == 4
|
||||
|
||||
cs = generate_virtual_district(p, ['107', '139', '267', '211']).operations
|
||||
assert len(cs) == 8
|
||||
|
||||
assert len(get_all_virtual_district_ids(p)) == 4
|
||||
assert len(get_all_virtual_districts(p)) == 4
|
||||
|
||||
self.leave(p)
|
||||
|
||||
|
||||
# 36 water_distribution
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user