public void TarjanIsBiConnected_Smoke_Test() { var graph = new Graph <char>(); graph.AddVertex('A'); graph.AddVertex('B'); graph.AddVertex('C'); graph.AddEdge('A', 'B'); graph.AddEdge('A', 'C'); graph.AddEdge('B', 'C'); var algo = new TarjansBiConnected <char>(); var result = algo.IsBiConnected(graph); Assert.IsTrue(result); graph.AddVertex('D'); graph.AddVertex('E'); graph.AddVertex('F'); graph.AddVertex('G'); graph.AddVertex('H'); graph.AddEdge('C', 'D'); graph.AddEdge('D', 'E'); graph.AddEdge('E', 'F'); graph.AddEdge('F', 'G'); graph.AddEdge('G', 'E'); graph.AddEdge('F', 'H'); result = algo.IsBiConnected(graph); Assert.IsFalse(result); }
public void TarjanIsBiConnected_AdjacencyListGraph_Smoke_Test() { var graph = new Advanced.Algorithms.DataStructures.Graph.AdjacencyList.Graph <char>(); graph.AddVertex('A'); graph.AddVertex('B'); graph.AddVertex('C'); graph.AddEdge('A', 'B'); graph.AddEdge('A', 'C'); graph.AddEdge('B', 'C'); var algorithm = new TarjansBiConnected <char>(); var result = algorithm.IsBiConnected(graph); Assert.IsTrue(result); graph.AddVertex('D'); graph.AddVertex('E'); graph.AddVertex('F'); graph.AddVertex('G'); graph.AddVertex('H'); graph.AddEdge('C', 'D'); graph.AddEdge('D', 'E'); graph.AddEdge('E', 'F'); graph.AddEdge('F', 'G'); graph.AddEdge('G', 'E'); graph.AddEdge('F', 'H'); result = algorithm.IsBiConnected(graph); Assert.IsFalse(result); }