public void ThreeVerticeGraphHashOneArticulationPoint() { var sut = new TarjansAlgorithm(); var graph = new Algorithms.Graph.Common.UndirectedGraph(3); graph.Connect(0, 1); graph.Connect(1, 2); Assert.Collection <int>(sut.GetArticulationPoints(graph), arg => Assert.Equal(1, arg)); }
public void LinedUpGraph() { var sut = new TarjansAlgorithm(); var graph = new Algorithms.Graph.Common.UndirectedGraph(4); graph.Connect(0, 1); graph.Connect(1, 2); graph.Connect(2, 3); Assert.Collection <int>(sut.GetArticulationPoints(graph), arg => Assert.Equal(1, arg), arg => Assert.Equal(2, arg)); }
public void NonDenseGraph() { var sut = new TarjansAlgorithm(); var graph = new Algorithms.Graph.Common.UndirectedGraph(5); graph.Connect(1, 0); graph.Connect(0, 2); graph.Connect(2, 1); graph.Connect(0, 3); graph.Connect(3, 4); Assert.Collection <int>(sut.GetArticulationPoints(graph), arg => Assert.Equal(0, arg), arg => Assert.Equal(3, arg)); }
public void ThreeVerticeGraphHashHashTwoBiconnectedComponent() { var sut = new TarjansAlgorithmForBiconnectedComponents(); var graph = new Algorithms.Graph.Common.UndirectedGraph(3); graph.Connect(0, 1); graph.Connect(1, 2); var biconnectedComponents = sut.GetBiconnectedComponents(graph); Assert.Collection(biconnectedComponents, arg => { Assert.Collection(arg, arg => Assert.Equal(1, arg), arg => Assert.Equal(2, arg)); }, arg => { Assert.Collection(arg, arg => Assert.Equal(1, arg), arg => Assert.Equal(0, arg)); }); }
public void TwoVerticeGraphHashNoArticulationPoints() { var sut = new TarjansAlgorithm(); var graph = new Algorithms.Graph.Common.UndirectedGraph(2); graph.Connect(0, 1); Assert.Empty(sut.GetArticulationPoints(graph)); }
public void LinedUpGraph() { var sut = new TarjansAlgorithmForBiconnectedComponents(); var graph = new Algorithms.Graph.Common.UndirectedGraph(4); graph.Connect(0, 1); graph.Connect(1, 2); graph.Connect(2, 3); var biconnectedComponents = sut.GetBiconnectedComponents(graph); Assert.Collection(biconnectedComponents, arg => { Assert.Collection(arg, arg => Assert.Equal(2, arg), arg => Assert.Equal(3, arg)); }, arg => { Assert.Collection(arg, arg => Assert.Equal(1, arg), arg => Assert.Equal(2, arg)); }, arg => { Assert.Collection(arg, arg => Assert.Equal(1, arg), arg => Assert.Equal(0, arg)); }); }