public void OneNodeCycle() { var graph = new[] { From(0), }; var res = GraphTools.SortTopology(graph); AssertHasCycle(new[] { 0 }, res); }
public void TwoNodesCycle() { var graph = new[] { From(1), From(0), }; var res = GraphTools.SortTopology(graph); AssertHasCycle(new[] { 0, 1 }, res); }
public void TwoNodesGraphSorting() { //1->0 var graph = new[] { From(1), NoParents }; var res = GraphTools.SortTopology(graph); AssertHasRoute(new[] { 1, 0 }, res); }
public void ThreeNodesInLineSorting() { //2->1->0 var graph = new[] { From(1), From(2), NoParents }; var res = GraphTools.SortTopology(graph); AssertHasRoute(new[] { 2, 1, 0 }, res); }
public void ThreeSeparatedNodesSorting() { //2,1,0 var graph = new[] { NoParents, NoParents, NoParents }; var res = GraphTools.SortTopology(graph); AssertHasRoute(new[] { 0, 1, 2 }, res); }
public void ThreeNodesInLineRevertSorting() { //0->1->2 var graph = new[] { NoParents, From(0), From(1) }; var res = GraphTools.SortTopology(graph); AssertHasRoute(new[] { 0, 1, 2 }, res); }
public void ComplexGraphSorting() { //{5,3}->|6->| // {1,4} ->|0->2 var graph = new[] { From(1, 4, 6), NoParents, From(0), NoParents, NoParents, NoParents, From(5, 3), }; var res = GraphTools.SortTopology(graph); AssertHasRoute(new[] { 1, 4, 5, 3, 6, 0, 2 }, res); }
public void ComplexNodesCycle() { // |<------| //0->1->2->|3->4->5|->6 var graph = new[] { NoParents, From(0), From(1), From(2, 5), //cycle here From(3), From(4), From(5), From(6), }; var res = GraphTools.SortTopology(graph); AssertHasCycle(new[] { 3, 4, 5 }, res); }
public void SeveralComplexGraphSorting() { var graph = new Edge[17][]; //{5,3}->|6->| // {1,4} ->|0->2 graph[0] = From(1, 4, 6); graph[1] = NoParents; graph[2] = From(0); graph[3] = NoParents; graph[4] = NoParents; graph[5] = NoParents; graph[6] = From(5, 3); //{12,8}->|10->| // {9,11} ->|13->7 graph[7] = From(13); graph[8] = NoParents; graph[9] = NoParents; graph[10] = From(12, 8); graph[11] = NoParents; graph[12] = NoParents; graph[13] = From(9, 11, 10); //14 graph[14] = NoParents; //15->16 graph[15] = NoParents; graph[16] = From(15); var res = GraphTools.SortTopology(graph); AssertHasRoute(new[] { 1, 4, 5, 3, 6, 0, 2, 9, 11, 12, 8, 10, 13, 7, 14, 15, 16 }, res); }