Add more test cases for restore
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
import random
|
||||||
from tjnetwork import *
|
from tjnetwork import *
|
||||||
|
|
||||||
class TestApi:
|
class TestApi:
|
||||||
@@ -242,6 +243,221 @@ class TestApi:
|
|||||||
self.leave(p)
|
self.leave(p)
|
||||||
|
|
||||||
|
|
||||||
|
def test_delete_nodes_then_restore(self):
|
||||||
|
p = 'test_delete_nodes_then_restore'
|
||||||
|
read_inp(p, f'./inp/net3.inp', '2')
|
||||||
|
|
||||||
|
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(100):
|
||||||
|
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}))
|
||||||
|
|
||||||
|
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(self):
|
||||||
|
p = 'test_delete_links_then_restore'
|
||||||
|
read_inp(p, f'./inp/net3.inp', '2')
|
||||||
|
|
||||||
|
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(100):
|
||||||
|
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}))
|
||||||
|
|
||||||
|
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_links_then_restore_v2(self):
|
||||||
|
p = 'test_delete_nodes_links_then_restore_v2'
|
||||||
|
read_inp(p, f'./inp/net3.inp', '2')
|
||||||
|
|
||||||
|
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 link in links:
|
||||||
|
nls.append(('link', link))
|
||||||
|
|
||||||
|
for _ in range(100):
|
||||||
|
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}))
|
||||||
|
|
||||||
|
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_nodes_links_then_restore_v3(self):
|
||||||
|
p = 'test_delete_nodes_links_then_restore_v3'
|
||||||
|
read_inp(p, f'./inp/net3.inp', '3')
|
||||||
|
|
||||||
|
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 link in links:
|
||||||
|
nls.append(('link', link))
|
||||||
|
|
||||||
|
for _ in range(100):
|
||||||
|
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}))
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
|
||||||
# 1 title
|
# 1 title
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user