public void TopologicalTest3() { var graf = new Graf<char>(); var mVertex = new Vertex<char>('m'); var nVertex = new Vertex<char>('n'); var oVertex = new Vertex<char>('o'); var pVertex = new Vertex<char>('p'); var qVertex = new Vertex<char>('q'); var rVertex = new Vertex<char>('r'); var sVertex = new Vertex<char>('s'); var tVertex = new Vertex<char>('t'); var uVertex = new Vertex<char>('u'); var vVertex = new Vertex<char>('v'); var wVertex = new Vertex<char>('w'); var xVertex = new Vertex<char>('x'); var yVertex = new Vertex<char>('y'); var zVertex = new Vertex<char>('z'); mVertex.AddDirectedEdge(1, qVertex); mVertex.AddDirectedEdge(1, rVertex); mVertex.AddDirectedEdge(1, xVertex); nVertex.AddDirectedEdge(1, qVertex); nVertex.AddDirectedEdge(1, uVertex); nVertex.AddDirectedEdge(1, oVertex); oVertex.AddDirectedEdge(1, rVertex); oVertex.AddDirectedEdge(1, sVertex); pVertex.AddDirectedEdge(1, oVertex); pVertex.AddDirectedEdge(1, sVertex); pVertex.AddDirectedEdge(1, zVertex); qVertex.AddDirectedEdge(1, tVertex); rVertex.AddDirectedEdge(1, uVertex); rVertex.AddDirectedEdge(1, yVertex); sVertex.AddDirectedEdge(1, rVertex); uVertex.AddDirectedEdge(1, tVertex); vVertex.AddDirectedEdge(1, wVertex); vVertex.AddDirectedEdge(1, xVertex); wVertex.AddDirectedEdge(1, zVertex); yVertex.AddDirectedEdge(1, vVertex); graf.AddVertex(mVertex); graf.AddVertex(nVertex); graf.AddVertex(oVertex); graf.AddVertex(pVertex); graf.AddVertex(qVertex); graf.AddVertex(rVertex); graf.AddVertex(sVertex); graf.AddVertex(tVertex); graf.AddVertex(uVertex); graf.AddVertex(vVertex); graf.AddVertex(wVertex); graf.AddVertex(xVertex); graf.AddVertex(yVertex); graf.AddVertex(zVertex); graf.DFS(); var topologicalSort = graf.GetTopologicalSort().ToList(); Assert.NotNull(topologicalSort); Assert.Equal(14, topologicalSort.Count); Assert.Equal('p', topologicalSort.First().Key); Assert.Equal(27, topologicalSort.First().DiscoveryTime); Assert.Equal(28, topologicalSort.First().FinishingTime); Assert.Equal('t', topologicalSort.Last().Key); Assert.Equal(3, topologicalSort.Last().DiscoveryTime); Assert.Equal(4, topologicalSort.Last().FinishingTime); var grafT = graf.GetGrafT(); var components = grafT.GetStronglyConnectedComponents(topologicalSort); Assert.Equal(14, components.Count); }