public void TopoTest_One() { TopologicalSort.Node node = new TopologicalSort.Node(); List <TopologicalSort.Node> nodes = new List <TopologicalSort.Node> { node }; List <TopologicalSort.Node> sortedNodes = TopologicalSort.Sort(nodes); Assert.AreEqual(sortedNodes[0], nodes[0]); }
public void TopoTest_NoDependencies() { TopologicalSort.Node a = new TopologicalSort.Node(); TopologicalSort.Node b = new TopologicalSort.Node(); List <TopologicalSort.Node> nodes = new List <TopologicalSort.Node> { a, b }; List <TopologicalSort.Node> sortedNodes = TopologicalSort.Sort(nodes); Assert.IsTrue(sortedNodes.Contains(a)); Assert.IsTrue(sortedNodes.Contains(b)); }
public void TopoTest_Circular() { TopologicalSort.Node a = new TopologicalSort.Node(); TopologicalSort.Node b = new TopologicalSort.Node(); a.Dependencies.Add(b); b.Dependencies.Add(a); List <TopologicalSort.Node> nodes = new List <TopologicalSort.Node> { a, b }; // ReSharper disable once UnusedVariable List <TopologicalSort.Node> sortedNodes = TopologicalSort.Sort(nodes); }
public void TopoTest_Two() { TopologicalSort.Node a = new TopologicalSort.Node(); TopologicalSort.Node b = new TopologicalSort.Node(); a.Dependencies.Add(b); List <TopologicalSort.Node> nodes = new List <TopologicalSort.Node> { a, b }; List <TopologicalSort.Node> sortedNodes = TopologicalSort.Sort(nodes); Assert.AreEqual(sortedNodes[0], b); Assert.AreEqual(sortedNodes[1], a); }
public void TopoTest_Multiple() { TopologicalSort.Node a = new TopologicalSort.Node(); TopologicalSort.Node b = new TopologicalSort.Node(); TopologicalSort.Node c = new TopologicalSort.Node(); TopologicalSort.Node d = new TopologicalSort.Node(); a.Dependencies.Add(b); a.Dependencies.Add(c); b.Dependencies.Add(d); List <TopologicalSort.Node> nodes = new List <TopologicalSort.Node> { a, b, c, d }; List <TopologicalSort.Node> sortedNodes = TopologicalSort.Sort(nodes); Assert.IsTrue(sortedNodes.IndexOf(d) < sortedNodes.IndexOf(b)); Assert.IsTrue(sortedNodes.IndexOf(b) < sortedNodes.IndexOf(a)); Assert.IsTrue(sortedNodes.IndexOf(c) < sortedNodes.IndexOf(a)); }