Ejemplo n.º 1
0
        public void RandomTransitiveClosureAndCompositionTest()
        {
            for (int i = 0; i < RandomTests; i++)
            {
                DirectedGraph <int, DirectedEdge <int> > graph    = GenerateRandomIntegerDirectedGraph(MaxDirectedGraphSize);
                DirectedGraph <int, DirectedEdge <int> > composed = DirectedGraph <int, DirectedEdge <int> > .Compose(graph, graph, (a, b) => new DirectedEdge <int>(a, b));

                DirectedGraph <int, DirectedEdge <int> > closure = graph.TransitiveClosure();
                foreach (Edge <int> edge in composed.Edges)
                {
                    Assert.IsTrue(closure.ContainsEdge(edge.StartVertex, edge.EndVertex), "Failure on run " + i.ToString() + " based on seed " + _seed.ToString() + ".");
                }
            }
        }