private static bool CheckIfPathAlwaysExists(UndirectedGraph <int, Edge <int> > g) { bool pathAlwaysExists = true; bool shouldContinue = true; foreach (var v1 in g.Vertices) { if (!shouldContinue) { break; } foreach (var v2 in g.Vertices) { bool pathFound = EdmondsAlgorithm.DFSSearch(v1, v2, g, out List <Edge <int> > path); if (!pathFound) { pathAlwaysExists = pathFound; shouldContinue = false; break; } } } return(pathAlwaysExists); }
public void GetCycleGraph_CountTest_ShouldRetun_10() { int verticesCount = 10; var generator = new GraphGenerator(); var g = generator.GetCycleGraph(verticesCount); Assert.AreEqual(verticesCount, g.EdgeCount); foreach (var source in g.Vertices) { foreach (var target in g.Vertices) { Assert.IsTrue(EdmondsAlgorithm.DFSSearch(source, target, g, out List <Edge <int> > path)); } } }