public void Graph_with_one_edge() { g.Insert(new Edge {v = 0, w = 1}); var sut = new ReverseTopologicalSort(g); Assert.That(sut.Order(0), Is.EqualTo(1)); Assert.That(sut.Order(1), Is.EqualTo(0)); Assert.That(sut.Relabel(0), Is.EqualTo(1)); Assert.That(sut.Relabel(1), Is.EqualTo(0)); }
public void Empty_graph() { var sut = new ReverseTopologicalSort(g); Assert.That(sut.Order(0), Is.EqualTo(0)); Assert.That(sut.Order(1), Is.EqualTo(1)); Assert.That(sut.Order(2), Is.EqualTo(2)); Assert.That(sut.Relabel(0), Is.EqualTo(0)); Assert.That(sut.Relabel(1), Is.EqualTo(1)); Assert.That(sut.Relabel(2), Is.EqualTo(2)); }
public void Graph_with_two_edges_from_same_vertex() { g.Insert(new Edge {v = 0, w = 1}); g.Insert(new Edge {v = 0, w = 2}); var sut = new ReverseTopologicalSort(g); Assert.That(sut.Order(0), Is.EqualTo(1)); Assert.That(sut.Order(1), Is.EqualTo(2)); Assert.That(sut.Order(2), Is.EqualTo(0)); Assert.That(sut.Relabel(0), Is.EqualTo(2)); Assert.That(sut.Relabel(1), Is.EqualTo(0)); Assert.That(sut.Relabel(2), Is.EqualTo(1)); }
public void Diamond_graph() { g.Insert(new Edge {v = 0, w = 1}); g.Insert(new Edge {v = 0, w = 2}); g.Insert(new Edge {v = 1, w = 3}); g.Insert(new Edge {v = 2, w = 3}); var sut = new ReverseTopologicalSort(g); Assert.That(sut.Order(0), Is.EqualTo(3)); Assert.That(sut.Order(1), Is.EqualTo(1)); Assert.That(sut.Order(2), Is.EqualTo(2)); Assert.That(sut.Order(3), Is.EqualTo(0)); Assert.That(sut.Relabel(0), Is.EqualTo(3)); Assert.That(sut.Relabel(1), Is.EqualTo(1)); Assert.That(sut.Relabel(2), Is.EqualTo(2)); Assert.That(sut.Relabel(3), Is.EqualTo(0)); }
public void Graph_with_cycle() { g.Insert(new Edge {v = 0, w = 1}); g.Insert(new Edge {v = 1, w = 2}); g.Insert(new Edge {v = 2, w = 0}); var sut = new ReverseTopologicalSort(g); Assert.That(sut.Order(0), Is.EqualTo(2)); Assert.That(sut.Order(1), Is.EqualTo(1)); Assert.That(sut.Order(2), Is.EqualTo(0)); Assert.That(sut.Relabel(0), Is.EqualTo(2)); Assert.That(sut.Relabel(1), Is.EqualTo(1)); Assert.That(sut.Relabel(2), Is.EqualTo(0)); }