Skip to content
Snippets Groups Projects
test_esipp_network.py 71.3 KiB
Newer Older
  • Learn to ignore specific revisions
  •         # directed arcs cannot end on an import node: A -> I
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
                net.add_directed_arc(node_key_a="A", node_key_b="I", arcs=lossless_arcs)
    
            except ValueError:
                error_triggered = True
            assert error_triggered
    
            # import-export nodes cannot have static losses
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
                net.add_directed_arc(node_key_a="I", node_key_b="E", arcs=lossy_arcs)
    
            except ValueError:
                error_triggered = True
            assert error_triggered
    
            # undirected arcs cannot involve import nor export nodes
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
                net.add_undirected_arc(node_key_a="I", node_key_b="A", arcs=lossless_arcs)
    
            except ValueError:
                error_triggered = True
            assert error_triggered
    
            # undirected arcs cannot involve import nor export nodes
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
                net.add_undirected_arc(node_key_a="B", node_key_b="E", arcs=lossless_arcs)
    
            except ValueError:
                error_triggered = True
            assert error_triggered
    
            # *********************************************************************
            # *********************************************************************
    
            # trigger errors using non-identified nodes
    
            # *********************************************************************
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
    
            net.add_export_node(node_key="E1", prices={(0, 0, 0): resource_price})
    
    
            # create an arc starting in that export node
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
                net.add_directed_arc(node_key_a="E1", node_key_b="B", arcs=lossless_arcs)
    
                net.identify_node_types()
            except ValueError:
                error_triggered = True
            assert error_triggered
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
    
            net.remove_edge(u="E1", v="B")
    
    
            # *********************************************************************
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
    
            net.add_import_node(node_key="I1", prices={(0, 0, 0): resource_price})
    
    
            # create an arc ending in that import node
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
                net.add_directed_arc(node_key_a="A", node_key_b="I1", arcs=lossless_arcs)
    
                net.identify_node_types()
            except ValueError:
                error_triggered = True
            assert error_triggered
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
    
            net.remove_edge(u="A", v="I1")
    
    
            # *********************************************************************
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
    
            net.arc_is_undirected(("X", "Y", 1))
    
    
        # *************************************************************************
        # *************************************************************************
    
        def test_pseudo_unique_key_generation(self):
            # create network
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
    
            network.add_waypoint_node(node_key="A")
    
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
    
            network.add_waypoint_node(node_key="B")
    
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
    
            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's avatar
    Pedro L. Magalhães committed
                    u_for_edge="A",
                    v_for_edge="B",
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
                    **{network.KEY_ARC_UND: False, network.KEY_ARC_TECH: None}
                )
    
    
            # use a seed number to trigger more iterations
    
            rand = random.Random()
            rand.seed(360)
            uuid.uuid4 = lambda: uuid.UUID(int=rand.getrandbits(128), version=4)
    
            error_triggered = False
            try:
                _ = network.get_pseudo_unique_arc_key(
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
                    node_key_start="A", node_key_end="B", max_iterations=len(key_list) - 1
                )
    
            except Exception:
                error_triggered = True
            assert error_triggered
    
    
    Pedro L. Magalhães's avatar
    Pedro L. Magalhães committed
    
    # *****************************************************************************
    
    # *****************************************************************************