Newer
Older
Pedro L. Magalhães
committed
assert error_triggered
Pedro L. Magalhães
committed
# directed arcs cannot end on an import node: A -> I
Pedro L. Magalhães
committed
error_triggered = False
try:
net.add_directed_arc(node_key_a="A", node_key_b="I", arcs=lossless_arcs)
Pedro L. Magalhães
committed
except ValueError:
error_triggered = True
assert error_triggered
Pedro L. Magalhães
committed
# import-export nodes cannot have static losses
Pedro L. Magalhães
committed
error_triggered = False
try:
net.add_directed_arc(node_key_a="I", node_key_b="E", arcs=lossy_arcs)
Pedro L. Magalhães
committed
except ValueError:
error_triggered = True
assert error_triggered
Pedro L. Magalhães
committed
# undirected arcs cannot involve import nor export nodes
Pedro L. Magalhães
committed
error_triggered = False
try:
net.add_undirected_arc(node_key_a="I", node_key_b="A", arcs=lossless_arcs)
Pedro L. Magalhães
committed
except ValueError:
error_triggered = True
assert error_triggered
Pedro L. Magalhães
committed
# undirected arcs cannot involve import nor export nodes
Pedro L. Magalhães
committed
error_triggered = False
try:
net.add_undirected_arc(node_key_a="B", node_key_b="E", arcs=lossless_arcs)
Pedro L. Magalhães
committed
except ValueError:
error_triggered = True
assert error_triggered
Pedro L. Magalhães
committed
# *********************************************************************
# *********************************************************************
Pedro L. Magalhães
committed
# trigger errors using non-identified nodes
Pedro L. Magalhães
committed
# *********************************************************************
Pedro L. Magalhães
committed
# create a new export node
net.add_export_node(node_key="E1", prices={(0, 0, 0): resource_price})
Pedro L. Magalhães
committed
# create an arc starting in that export node
Pedro L. Magalhães
committed
error_triggered = False
try:
net.add_directed_arc(node_key_a="E1", node_key_b="B", arcs=lossless_arcs)
Pedro L. Magalhães
committed
net.identify_node_types()
except ValueError:
error_triggered = True
assert error_triggered
Pedro L. Magalhães
committed
# remove the troublesome arc
Pedro L. Magalhães
committed
# *********************************************************************
Pedro L. Magalhães
committed
# create a new import node
net.add_import_node(node_key="I1", prices={(0, 0, 0): resource_price})
Pedro L. Magalhães
committed
# create an arc ending in that import node
Pedro L. Magalhães
committed
error_triggered = False
try:
net.add_directed_arc(node_key_a="A", node_key_b="I1", arcs=lossless_arcs)
Pedro L. Magalhães
committed
net.identify_node_types()
except ValueError:
error_triggered = True
assert error_triggered
Pedro L. Magalhães
committed
# remove the troublesome arc
Pedro L. Magalhães
committed
# *********************************************************************
Pedro L. Magalhães
committed
# check non-existent arc
Pedro L. Magalhães
committed
# *************************************************************************
# *************************************************************************
Pedro L. Magalhães
committed
def test_pseudo_unique_key_generation(self):
# create network
Pedro L. Magalhães
committed
network = Network()
Pedro L. Magalhães
committed
# add node A
Pedro L. Magalhães
committed
# add node B
Pedro L. Magalhães
committed
# identify nodes
Pedro L. Magalhães
committed
network.identify_node_types()
Pedro L. Magalhães
committed
# add arcs
key_list = [
"3e225573-4e78-48c8-bb08-efbeeb795c22",
"f6d30428-15d1-41e9-a952-0742eaaa5a31",
"8c29b906-2518-41c5-ada8-07b83508b5b8",
"f9a72a39-1422-4a02-af97-906ce79c32a3",
"b6941a48-10cc-465d-bf53-178bd2939bd1",
]
Pedro L. Magalhães
committed
for key in key_list:
network.add_edge(
Pedro L. Magalhães
committed
key=key,
**{network.KEY_ARC_UND: False, network.KEY_ARC_TECH: None}
)
Pedro L. Magalhães
committed
# use a seed number to trigger more iterations
Pedro L. Magalhães
committed
import uuid
Pedro L. Magalhães
committed
rand = random.Random()
rand.seed(360)
uuid.uuid4 = lambda: uuid.UUID(int=rand.getrandbits(128), version=4)
Pedro L. Magalhães
committed
error_triggered = False
try:
_ = network.get_pseudo_unique_arc_key(
node_key_start="A", node_key_end="B", max_iterations=len(key_list) - 1
)
Pedro L. Magalhães
committed
except Exception:
error_triggered = True
assert error_triggered
# *****************************************************************************
Pedro L. Magalhães
committed
# *****************************************************************************