diff --git a/test_tjnetwork.py b/test_tjnetwork.py index 0aab61e..6faee5c 100644 --- a/test_tjnetwork.py +++ b/test_tjnetwork.py @@ -249,33 +249,18 @@ class TestApi: open_project(p) - nls : list[tuple[str, str]] = [] - nodes = get_nodes(p) - for node in nodes: - nls.append(('node', node)) - links = get_links(p) for _ in range(10): - random.shuffle(nls) - for nl in nls: - if nl[0] == 'node': - node = nl[1] - if is_junction(p, node): - delete_junction(p, ChangeSet({'id': node})) - if is_reservoir(p, node): - delete_reservoir(p, ChangeSet({'id': node})) - if is_tank(p, node): - delete_tank(p, ChangeSet({'id': node})) - else: - link = nl[1] - if is_pipe(p, link): - delete_pipe(p, ChangeSet({'id': link})) - if is_pump(p, link): - delete_pump(p, ChangeSet({'id': link})) - if is_valve(p, link): - delete_valve(p, ChangeSet({'id': link})) + random.shuffle(nodes) + for node in nodes: + if is_junction(p, node): + delete_junction(p, ChangeSet({'id': node})) + if is_reservoir(p, node): + delete_reservoir(p, ChangeSet({'id': node})) + if is_tank(p, node): + delete_tank(p, ChangeSet({'id': node})) for node in nodes: assert is_node(p, node) == False @@ -302,33 +287,99 @@ class TestApi: open_project(p) - nls : list[tuple[str, str]] = [] - nodes = get_nodes(p) - links = get_links(p) - for link in links: - nls.append(('link', link)) for _ in range(10): - random.shuffle(nls) - for nl in nls: - if nl[0] == 'node': - node = nl[1] - if is_junction(p, node): - delete_junction(p, ChangeSet({'id': node})) - if is_reservoir(p, node): - delete_reservoir(p, ChangeSet({'id': node})) - if is_tank(p, node): - delete_tank(p, ChangeSet({'id': node})) - else: - link = nl[1] - if is_pipe(p, link): - delete_pipe(p, ChangeSet({'id': link})) - if is_pump(p, link): - delete_pump(p, ChangeSet({'id': link})) - if is_valve(p, link): - delete_valve(p, ChangeSet({'id': link})) + random.shuffle(links) + for link in links: + if is_pipe(p, link): + delete_pipe(p, ChangeSet({'id': link})) + if is_pump(p, link): + delete_pump(p, ChangeSet({'id': link})) + if is_valve(p, link): + delete_valve(p, ChangeSet({'id': link})) + + for node in nodes: + assert is_node(p, node) + for link in links: + assert is_link(p, link) == False + + assert get_links(p) == [] + + op = get_restore_operation(p) + pick_operation(p, op) + + for node in nodes: + assert is_node(p, node) + for link in links: + assert is_link(p, link) + + self.leave(p) + + + def test_delete_nodes_then_restore_commands(self): + p = 'test_delete_nodes_then_restore_commands' + read_inp(p, f'./inp/net3.inp', '2') + + open_project(p) + + nodes = get_nodes(p) + links = get_links(p) + + for _ in range(10): + random.shuffle(nodes) + + batch = ChangeSet() + for node in nodes: + if is_junction(p, node): + batch.delete({'type' : 'junction', 'id': node }) + if is_reservoir(p, node): + batch.delete({'type' : 'reservoir', 'id': node }) + if is_tank(p, node): + batch.delete({'type' : 'tank', 'id': node }) + execute_batch_commands(p, batch) + + for node in nodes: + assert is_node(p, node) == False + for link in links: + assert is_link(p, link) == False + + assert get_nodes(p) == [] + assert get_links(p) == [] + + op = get_restore_operation(p) + pick_operation(p, op) + + for node in nodes: + assert is_node(p, node) + for link in links: + assert is_link(p, link) + + self.leave(p) + + + def test_delete_links_then_restore_commands(self): + p = 'test_delete_links_then_restore_commands' + read_inp(p, f'./inp/net3.inp', '2') + + open_project(p) + + nodes = get_nodes(p) + links = get_links(p) + + for _ in range(10): + random.shuffle(links) + + batch = ChangeSet() + for link in links: + if is_pipe(p, link): + batch.delete({'type' : 'pipe', 'id': link }) + if is_pump(p, link): + batch.delete({'type' : 'pump', 'id': link }) + if is_valve(p, link): + batch.delete({'type' : 'valve', 'id': link }) + execute_batch_commands(p, batch) for node in nodes: assert is_node(p, node)