Add reservoir test case

This commit is contained in:
wqy
2022-09-17 19:38:43 +08:00
parent 89ffd15b7b
commit b8d2efdc66
6 changed files with 57 additions and 20 deletions

View File

@@ -23,10 +23,7 @@ def get_node_coord(name: str, id: str) -> dict[str, float] | None:
return _to_point(coord) return _to_point(coord)
def set_node_coord(name: str, id: str, x: float, y: float) -> ChangeSet: def set_node_coord(name: str, node_type: str, id: str, x: float, y: float) -> ChangeSet:
if not is_junction(name, id):
return ChangeSet()
old = get_node_coord(name, id) old = get_node_coord(name, id)
if old == None: if old == None:
return ChangeSet() return ChangeSet()
@@ -42,5 +39,5 @@ def set_node_coord(name: str, id: str, x: float, y: float) -> ChangeSet:
add_operation(name, redo, undo) add_operation(name, redo, undo)
change = ChangeSet() change = ChangeSet()
change.update('junction', id, 'coord', 'point', str({'x': x, 'y': y})) change.update(node_type, id, 'coord', 'point', str({'x': x, 'y': y}))
return change return change

View File

@@ -85,4 +85,7 @@ def set_junction_pattern(name: str, id: str, pattern: str) -> ChangeSet:
def set_junction_coord(name: str, id: str, x: float, y: float) -> ChangeSet: def set_junction_coord(name: str, id: str, x: float, y: float) -> ChangeSet:
return set_node_coord(name, id, x, y) if not is_junction(name, id):
return ChangeSet()
return set_node_coord(name, JUNCTION, id, x, y)

View File

@@ -72,4 +72,7 @@ def set_reservoir_pattern(name: str, id: str, pattern: str) -> ChangeSet:
def set_reservoir_coord(name: str, id: str, x: float, y: float) -> ChangeSet: def set_reservoir_coord(name: str, id: str, x: float, y: float) -> ChangeSet:
return set_node_coord(name, id, x, y) if not is_reservoir(name, id):
return ChangeSet()
return set_node_coord(name, RESERVOIR, id, x, y)

View File

@@ -142,4 +142,7 @@ def set_tank_overflow(name: str, id: str, overflow: str) -> ChangeSet:
def set_tank_coord(name: str, id: str, x: float, y: float) -> ChangeSet: def set_tank_coord(name: str, id: str, x: float, y: float) -> ChangeSet:
return set_node_coord(name, id, x, y) if not is_tank(name, id):
return ChangeSet()
return set_node_coord(name, TANK, id, x, y)

View File

@@ -36,7 +36,7 @@ class TestApi:
change_set = add_junction(p, "j0", 0.0, 10.0, 20.0) change_set = add_junction(p, "j0", 0.0, 10.0, 20.0)
assert len(change_set.added) == 1 assert len(change_set.added) == 1
assert change_set.added[0]['type'] == 'junction' assert change_set.added[0]['type'] == JUNCTION
assert change_set.added[0]['id'] == "j0" assert change_set.added[0]['id'] == "j0"
coord = get_junction_coord(p, 'j0') coord = get_junction_coord(p, 'j0')
assert coord['x'] == 0.0 assert coord['x'] == 0.0
@@ -48,16 +48,18 @@ class TestApi:
assert get_junction_demand(p, 'j0') == "NULL" assert get_junction_demand(p, 'j0') == "NULL"
change_set = set_junction_demand(p, 'j0', 100.0) change_set = set_junction_demand(p, 'j0', 100.0)
assert len(change_set.updated) == 1 assert len(change_set.updated) == 1
assert change_set.updated[0]['type'] == 'junction' assert change_set.updated[0]['type'] == JUNCTION
assert change_set.updated[0]['id'] == 'j0' assert change_set.updated[0]['id'] == 'j0'
assert change_set.updated[0]['property'] == 'demand' assert change_set.updated[0]['property'] == 'demand'
assert change_set.updated[0]['property_type'] == 'float' assert change_set.updated[0]['property_type'] == 'float'
assert change_set.updated[0]['property_value'] == str(100.0) assert change_set.updated[0]['property_value'] == str(100.0)
assert get_junction_demand(p, 'j0') == 100.0 assert get_junction_demand(p, 'j0') == 100.0
# TODO: pattern
change_set = add_junction(p, "j1", 0.0, 10.0, 20.0) change_set = add_junction(p, "j1", 0.0, 10.0, 20.0)
assert len(change_set.added) == 1 assert len(change_set.added) == 1
assert change_set.added[0]['type'] == 'junction' assert change_set.added[0]['type'] == JUNCTION
assert change_set.added[0]['id'] == "j1" assert change_set.added[0]['id'] == "j1"
nodes = get_nodes(p) nodes = get_nodes(p)
@@ -67,7 +69,7 @@ class TestApi:
change_set = delete_junction(p, 'j1') change_set = delete_junction(p, 'j1')
assert len(change_set.deleted) == 1 assert len(change_set.deleted) == 1
assert change_set.deleted[0]['type'] == 'junction' assert change_set.deleted[0]['type'] == JUNCTION
assert change_set.deleted[0]['id'] == "j1" assert change_set.deleted[0]['id'] == "j1"
nodes = get_nodes(p) nodes = get_nodes(p)
@@ -76,7 +78,7 @@ class TestApi:
change_set = delete_junction(p, 'j0') change_set = delete_junction(p, 'j0')
assert len(change_set.deleted) == 1 assert len(change_set.deleted) == 1
assert change_set.deleted[0]['type'] == 'junction' assert change_set.deleted[0]['type'] == JUNCTION
assert change_set.deleted[0]['id'] == "j0" assert change_set.deleted[0]['id'] == "j0"
nodes = get_nodes(p) nodes = get_nodes(p)
@@ -84,10 +86,39 @@ class TestApi:
self.leave(p) self.leave(p)
pass
def test_reservoir(self): def test_reservoir(self):
pass p = "test_reservoir"
self.enter(p)
change_set = add_reservoir(p, "r0", 0.0, 10.0, 20.0)
assert len(change_set.added) == 1
assert change_set.added[0]['type'] == RESERVOIR
assert change_set.added[0]['id'] == "r0"
assert get_reservoir_head(p, 'r0') == 20.0
change_set = set_reservoir_head(p, 'r0', 100.0)
assert change_set.updated[0]['type'] == RESERVOIR
assert change_set.updated[0]['id'] == 'r0'
assert change_set.updated[0]['property'] == 'head'
assert change_set.updated[0]['property_type'] == 'float'
assert change_set.updated[0]['property_value'] == str(100.0)
assert get_reservoir_head(p, 'r0') == 100.0
assert get_reservoir_coord(p, 'r0') == { 'x': 0.0, 'y': 10.0 }
change_set = set_reservoir_coord(p, 'r0', 100.0, 200.0)
assert change_set.updated[0]['type'] == RESERVOIR
assert change_set.updated[0]['id'] == 'r0'
assert change_set.updated[0]['property'] == 'coord'
assert change_set.updated[0]['property_type'] == 'point'
assert change_set.updated[0]['property_value'] == str({'x': 100.0, 'y': 200.0})
assert get_reservoir_coord(p, 'r0') == { 'x': 100.0, 'y': 200.0 }
change_set = delete_reservoir(p, 'r0')
assert len(change_set.deleted) == 1
assert change_set.deleted[0]['type'] == RESERVOIR
assert change_set.deleted[0]['id'] == "r0"
self.leave(p)
def test_tank(self): def test_tank(self):
pass pass

View File

@@ -189,8 +189,8 @@ def set_junction_coord(name: str, junction_id: str, x: float, y: float) -> Chang
# reservoir 3.[RESERVOIRS] # reservoir 3.[RESERVOIRS]
############################################################ ############################################################
def add_reservoir(name: str, reservoir_id: str, x: float, y: float, elevation: float) -> ChangeSet: def add_reservoir(name: str, reservoir_id: str, x: float, y: float, head: float) -> ChangeSet:
return api.add_reservoir(name, reservoir_id, x, y, elevation) return api.add_reservoir(name, reservoir_id, x, y, head)
def delete_reservoir(name: str, reservoir_id: str) -> ChangeSet: def delete_reservoir(name: str, reservoir_id: str) -> ChangeSet:
return api.delete_reservoir(name, reservoir_id) return api.delete_reservoir(name, reservoir_id)
@@ -204,8 +204,8 @@ def get_reservoir_pattern(name: str, reservoir_id: str) -> str | None:
def get_reservoir_coord(name: str, reservoir_id: str) -> dict[str, float] | None: def get_reservoir_coord(name: str, reservoir_id: str) -> dict[str, float] | None:
return api.get_reservoir_coord(name, reservoir_id) return api.get_reservoir_coord(name, reservoir_id)
def set_reservoir_head(name: str, reservoir_id: str, elevation: float) -> ChangeSet: def set_reservoir_head(name: str, reservoir_id: str, head: float) -> ChangeSet:
return api.set_reservoir_head(name, reservoir_id, elevation) return api.set_reservoir_head(name, reservoir_id, head)
def set_reservoir_pattern(name: str, reservoir_id: str, pattern: str) -> ChangeSet: def set_reservoir_pattern(name: str, reservoir_id: str, pattern: str) -> ChangeSet:
return api.set_reservoir_pattern(name, reservoir_id, pattern) return api.set_reservoir_pattern(name, reservoir_id, pattern)