def test_get_vertices(self):
     """ Ensures vertices are returned correctly. """
     vertex_one = Vertex(0)
     vertex_two = Vertex(1)
     g = Graph()
     g._vertices = [vertex_one, vertex_two]
     assert g.get_vertices() == [vertex_one, vertex_two]
 def test_get_vertex(self):
     """ Ensure the correct edge is returned with given id. """
     vertex_one = Vertex(0)
     vertex_two = Vertex(1)
     g = Graph()
     g._vertices = [vertex_one, vertex_two]
     assert g.get_vertex(1) is vertex_two
    def test_add_edge(self):
        """ Ensures safety of adding edges to the graph. """
        vertex_one = Vertex(0)
        vertex_two = Vertex(1)
        g = Graph()

        g._vertices = [vertex_one, vertex_two]  # Try with everything correct
        e = Edge(0, vertex_one, vertex_two)
        g.add_edge(e)
        assert g._edges[0] == e

        g._edges.clear()    # Try the case where the vertices are not present
        g._vertices.clear()
        try:
            g.add_edge(e)
            assert False
        except ValueError:
            assert True
        
        try:    # Try case of not passing an edge through.
            g.add_edge(vertex_one)
            assert False
        except TypeError:
            assert True