From 3665e15c92e45432530da3a6db20c442092c54b1 Mon Sep 17 00:00:00 2001 From: "WQY\\qiong" Date: Wed, 1 Mar 2023 23:20:04 +0800 Subject: [PATCH] Setting of valve [GPV] should be string --- api/s7_valves.py | 12 ++++++------ script/sql/create/7.valves.sql | 2 +- test_tjnetwork.py | 28 ++++++++++++++-------------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/api/s7_valves.py b/api/s7_valves.py index ebf0bd0..8eb4fb3 100644 --- a/api/s7_valves.py +++ b/api/s7_valves.py @@ -16,7 +16,7 @@ def get_valve_schema(name: str) -> dict[str, dict[str, Any]]: 'node2' : {'type': 'str' , 'optional': False , 'readonly': False}, 'diameter' : {'type': 'float' , 'optional': False , 'readonly': False}, 'v_type' : {'type': 'str' , 'optional': False , 'readonly': False}, - 'setting' : {'type': 'float' , 'optional': False , 'readonly': False}, + 'setting' : {'type': 'str' , 'optional': False , 'readonly': False}, 'minor_loss' : {'type': 'float' , 'optional': False , 'readonly': False} } @@ -28,7 +28,7 @@ def get_valve(name: str, id: str) -> dict[str, Any]: d['node2'] = str(p['node2']) d['diameter'] = float(p['diameter']) d['v_type'] = str(p['type']) - d['setting'] = float(p['setting']) + d['setting'] = str(p['setting']) d['minor_loss'] = float(p['minor_loss']) return d @@ -41,7 +41,7 @@ class Valve(object): self.node2 = str(input['node2']) self.diameter = float(input['diameter']) self.v_type = str(input['v_type']) - self.setting = float(input['setting']) + self.setting = str(input['setting']) self.minor_loss = float(input['minor_loss']) self.f_type = f"'{self.type}'" @@ -50,7 +50,7 @@ class Valve(object): self.f_node2 = f"'{self.node2}'" self.f_diameter = self.diameter self.f_v_type = f"'{self.v_type}'" - self.f_setting = self.setting + self.f_setting = f"'{self.setting}'" self.f_minor_loss = self.minor_loss def as_dict(self) -> dict[str, Any]: @@ -126,7 +126,7 @@ def delete_valve(name: str, cs: ChangeSet) -> ChangeSet: # [EPANET2][IN][OUT] # id node1 node2 diam type setting (lcoeff lcurve) # for GPV, setting is string = head curve id -# for PCV, add loss curve if present +# [NOT SUPPORT] for PCV, add loss curve if present #-------------------------------------------------------------- class InpValve: def __init__(self, line: str) -> None: @@ -141,7 +141,7 @@ class InpValve: self.node2 = str(tokens[2]) self.diameter = float(tokens[3]) self.v_type = str(tokens[4].upper()) - self.setting = float(tokens[5]) + self.setting = str(tokens[5]) self.minor_loss = float(tokens[6]) self.desc = str(tokens[-1]) if has_desc else None diff --git a/script/sql/create/7.valves.sql b/script/sql/create/7.valves.sql index aab70ed..a815214 100644 --- a/script/sql/create/7.valves.sql +++ b/script/sql/create/7.valves.sql @@ -9,7 +9,7 @@ create table valves , node2 varchar(32) references _node(id) not null , diameter numeric not null , type valves_type not null -, setting numeric not null +, setting text not null , minor_loss numeric not null ); diff --git a/test_tjnetwork.py b/test_tjnetwork.py index 322530c..1730aed 100644 --- a/test_tjnetwork.py +++ b/test_tjnetwork.py @@ -1347,13 +1347,13 @@ class TestApi: assert is_junction(p, 'j3') assert is_junction(p, 'j4') - add_valve(p, ChangeSet({'id': 'v0', 'node1': 'j1', 'node2': 'j2', 'diameter': 10.0, 'v_type': VALVES_TYPE_FCV, 'setting': 0.1, 'minor_loss': 0.5 })) + add_valve(p, ChangeSet({'id': 'v0', 'node1': 'j1', 'node2': 'j2', 'diameter': 10.0, 'v_type': VALVES_TYPE_FCV, 'setting': '0.1', 'minor_loss': 0.5 })) v0 = get_valve(p, 'v0') assert v0['node1'] == 'j1' assert v0['node2'] == 'j2' assert v0['diameter'] == 10.0 assert v0['v_type'] == VALVES_TYPE_FCV - assert v0['setting'] == 0.1 + assert v0['setting'] == '0.1' assert v0['minor_loss'] == 0.5 set_valve(p, ChangeSet({'id': 'v0', 'node1': 'j3', 'node2': 'j4'})) @@ -1369,15 +1369,15 @@ class TestApi: v0 = get_valve(p, 'v0') assert v0['v_type'] == VALVES_TYPE_GPV - set_valve(p, ChangeSet({'id': 'v0', 'setting': 0.2})) + set_valve(p, ChangeSet({'id': 'v0', 'setting': '0.2'})) v0 = get_valve(p, 'v0') - assert v0['setting'] == 0.2 + assert v0['setting'] == '0.2' set_valve(p, ChangeSet({'id': 'v0', 'minor_loss': 0.1})) v0 = get_valve(p, 'v0') assert v0['minor_loss'] == 0.1 - add_valve(p, ChangeSet({'id': 'v1', 'node1': 'j1', 'node2': 'j2', 'diameter': 10.0, 'v_type': VALVES_TYPE_FCV, 'setting': 0.1, 'minor_loss': 0.5 })) + add_valve(p, ChangeSet({'id': 'v1', 'node1': 'j1', 'node2': 'j2', 'diameter': 10.0, 'v_type': VALVES_TYPE_FCV, 'setting': '0.1', 'minor_loss': 0.5 })) links = get_links(p) assert len(links) == 2 assert links[0] == 'v0' @@ -1410,7 +1410,7 @@ class TestApi: assert is_junction(p, 'j3') assert is_junction(p, 'j4') - cs = add_valve(p, ChangeSet({'id': 'v0', 'node1': 'j1', 'node2': 'j2', 'diameter': 10.0, 'v_type': VALVES_TYPE_FCV, 'setting': 0.1, 'minor_loss': 0.5 })).operations[0] + cs = add_valve(p, ChangeSet({'id': 'v0', 'node1': 'j1', 'node2': 'j2', 'diameter': 10.0, 'v_type': VALVES_TYPE_FCV, 'setting': '0.1', 'minor_loss': 0.5 })).operations[0] assert cs['operation'] == 'add' assert cs['type'] == VALVE assert cs['id'] == 'v0' @@ -1418,7 +1418,7 @@ class TestApi: assert cs['node2'] == 'j2' assert cs['diameter'] == 10.0 assert cs['v_type'] == VALVES_TYPE_FCV - assert cs['setting'] == 0.1 + assert cs['setting'] == '0.1' assert cs['minor_loss'] == 0.5 cs = execute_undo(p).operations[0] @@ -1434,7 +1434,7 @@ class TestApi: assert cs['node2'] == 'j2' assert cs['diameter'] == 10.0 assert cs['v_type'] == VALVES_TYPE_FCV - assert cs['setting'] == 0.1 + assert cs['setting'] == '0.1' assert cs['minor_loss'] == 0.5 cs = execute_undo(p, True).operations[0] @@ -1448,7 +1448,7 @@ class TestApi: links = get_links(p) assert len(links) == 0 - add_valve(p, ChangeSet({'id': 'v0', 'node1': 'j1', 'node2': 'j2', 'diameter': 10.0, 'v_type': VALVES_TYPE_FCV, 'setting': 0.1, 'minor_loss': 0.5 })) + add_valve(p, ChangeSet({'id': 'v0', 'node1': 'j1', 'node2': 'j2', 'diameter': 10.0, 'v_type': VALVES_TYPE_FCV, 'setting': '0.1', 'minor_loss': 0.5 })) links = get_links(p) assert len(links) == 1 @@ -1466,7 +1466,7 @@ class TestApi: assert cs['node2'] == 'j2' assert cs['diameter'] == 10.0 assert cs['v_type'] == VALVES_TYPE_FCV - assert cs['setting'] == 0.1 + assert cs['setting'] == '0.1' assert cs['minor_loss'] == 0.5 cs = execute_redo(p).operations[0] @@ -1482,7 +1482,7 @@ class TestApi: assert cs['node2'] == 'j2' assert cs['diameter'] == 10.0 assert cs['v_type'] == VALVES_TYPE_FCV - assert cs['setting'] == 0.1 + assert cs['setting'] == '0.1' assert cs['minor_loss'] == 0.5 cs = execute_redo(p) @@ -1499,7 +1499,7 @@ class TestApi: assert cs['node2'] == 'j4' assert cs['diameter'] == 10.0 assert cs['v_type'] == VALVES_TYPE_FCV - assert cs['setting'] == 0.1 + assert cs['setting'] == '0.1' assert cs['minor_loss'] == 0.5 cs = execute_undo(p).operations[0] @@ -1510,7 +1510,7 @@ class TestApi: assert cs['node2'] == 'j2' assert cs['diameter'] == 10.0 assert cs['v_type'] == VALVES_TYPE_FCV - assert cs['setting'] == 0.1 + assert cs['setting'] == '0.1' assert cs['minor_loss'] == 0.5 self.leave(p) @@ -1522,7 +1522,7 @@ class TestApi: add_junction(p, ChangeSet({'id': 'j0', 'x': 0.0, 'y': 10.0, 'elevation': 20.0})) add_junction(p, ChangeSet({'id': 'j1', 'x': 0.0, 'y': 10.0, 'elevation': 20.0})) - add_valve(p, ChangeSet({'id': 'v0', 'node1': 'j0', 'node2': 'j1', 'diameter': 10.0, 'v_type': VALVES_TYPE_FCV, 'setting': 0.1, 'minor_loss': 0.5 })) + add_valve(p, ChangeSet({'id': 'v0', 'node1': 'j0', 'node2': 'j1', 'diameter': 10.0, 'v_type': VALVES_TYPE_FCV, 'setting': '0.1', 'minor_loss': 0.5 })) set_tag(p, ChangeSet({'t_type': TAG_TYPE_LINK, 'id': 'v0', 'tag': 'v0t' })) set_status(p, ChangeSet({'link': 'v0', 'status': LINK_STATUS_OPEN, 'setting': 10.0})) set_vertex(p, ChangeSet({'link' : 'v0', 'coords': [{'x': 1.0, 'y': 2.0}, {'x': 2.0, 'y': 1.0}]}))