public void Validate_Failure_Test(string xml) { // Arrange var graph = new GraphProvider().Load<DijkstraGraph>(xml); graph.Validate(); graph.Markup(); var dijkstra = new ShortestWay.Dijkstra.Dijkstra(); // Assert dijkstra.Compute(graph).GetShortestWay(graph); }
public void Compute_MarkCurrentNodeAsVisited_Test() { // Arrange var current = Mock.Of<DijkstraNode>(); var graph = Mock.Of<DijkstraGraph>(t => t.HasUnvisited() == true && t.Linked(current) == new DijkstraNode[0]); Mock.Get(graph).Setup(t => t.NearestUnvisited()).Returns(current).Callback(() => Mock.Get(graph).Setup(t => t.HasUnvisited()).Returns(false)); var dijkstra = new ShortestWay.Dijkstra.Dijkstra(); // Act dijkstra.Compute(graph); // Assert Assert.True(current.IsVisited); }
public void Compute_ChangeLinkedPreviousByCurrent_IfThisWayShorter_Test() { // Arrange var linked = Mock.Of<DijkstraNode>(t => t.TotalWeigth == 30); var current = Mock.Of<DijkstraNode>(t => t.TotalWeigth == 10 && t.LinkWeight(linked) == 10); var graph = Mock.Of<DijkstraGraph>(t => t.HasUnvisited() == true && t.Linked(current) == new[] { linked }); Mock.Get(graph).Setup(t => t.NearestUnvisited()).Returns(current).Callback(() => Mock.Get(graph).Setup(t => t.HasUnvisited()).Returns(false)); var dijkstra = new ShortestWay.Dijkstra.Dijkstra(); // Act dijkstra.Compute(graph); // Assert Assert.AreEqual(linked.Previous, current); }
public void SimpleSample_Test() { // Arrange var graph = new GraphProvider().Load<DijkstraGraph>(@"xml\simple-valid.xml"); graph.Validate(); graph.Markup(); var dijkstra = new ShortestWay.Dijkstra.Dijkstra(); // Act var way = dijkstra.Compute(graph) .GetShortestWay(graph); // Assert Assert.AreEqual(way[0].Id, 1); Assert.AreEqual(way[1].Id, 3); Assert.AreEqual(way[2].Id, 5); Assert.AreEqual(way.Count, 3); Assert.AreEqual((way[2] as DijkstraNode).TotalWeigth, 20); }
public void AcceptanceSample_Test() { // Arrange var graph = new GraphProvider().Load<DijkstraGraph>(@"xml\shortestway-sample.xml"); graph.Validate(); graph.Markup(); var dijkstra = new ShortestWay.Dijkstra.Dijkstra(); // Act var way = dijkstra.Compute(graph) .GetShortestWay(graph); // Assert Assert.AreEqual(way[0].Id, 1); Assert.AreEqual(way[1].Id, 6); Assert.AreEqual(way[2].Id, 8); Assert.AreEqual(way[3].Id, 9); Assert.AreEqual(way[4].Id, 10); Assert.AreEqual(way.Count, 5); Assert.AreEqual((way[4] as DijkstraNode).TotalWeigth, 22); }
public void Compute_UpdateLinkedMark_IfLinkedMarkIsinfinity_Test() { // Arrange var linked = Mock.Of<DijkstraNode>(t => t.TotalWeigth == null); var current = Mock.Of<DijkstraNode>(t => t.TotalWeigth == 10 && t.LinkWeight(linked) == 10); var graph = Mock.Of<DijkstraGraph>(t => t.HasUnvisited() == true && t.Linked(current) == new[] { linked }); Mock.Get(graph).Setup(t => t.NearestUnvisited()).Returns(current).Callback(() => Mock.Get(graph).Setup(t => t.HasUnvisited()).Returns(false)); var dijkstra = new ShortestWay.Dijkstra.Dijkstra(); // Act dijkstra.Compute(graph); // Assert Assert.AreEqual(linked.TotalWeigth, 20); }
public void Compute_ReturnsItSelf_WhenGraphHasNotUnvisited_Test() { // Arrange var graph = Mock.Of<DijkstraGraph>(t => t.HasUnvisited() == false); var dijkstra = new ShortestWay.Dijkstra.Dijkstra(); // Assert Assert.AreEqual(dijkstra, dijkstra.Compute(graph)); }