public void TestAlgorthim() { MemoizationTable memoTable = new MemoizationTable(); Vertex initialVertex = new Vertex(); Vertex secondaryVertex = new Vertex(); Vertex tertiaryVertex = new Vertex(); Vertex quaternaryVertex = new Vertex(); initialVertex.AddEdgeTowardsOtherVertex(secondaryVertex, 3); initialVertex.AddEdgeTowardsOtherVertex(tertiaryVertex, 15); secondaryVertex.AddEdgeTowardsOtherVertex(tertiaryVertex, 7); secondaryVertex.AddEdgeTowardsOtherVertex(quaternaryVertex, 4); tertiaryVertex.AddEdgeTowardsOtherVertex(initialVertex, 1); tertiaryVertex.AddEdgeTowardsOtherVertex(secondaryVertex, 1); tertiaryVertex.AddEdgeTowardsOtherVertex(tertiaryVertex, 1); tertiaryVertex.AddEdgeTowardsOtherVertex(quaternaryVertex, 1); memoTable.AddVertex(initialVertex); memoTable.AddVertex(secondaryVertex); memoTable.AddVertex(tertiaryVertex); memoTable.AddVertex(quaternaryVertex); memoTable.CalculateShortestPath(initialVertex); Assert.Equal(0, memoTable.ShortestPathsTable.FirstOrDefault(x => x.Vertex == initialVertex).LowestCostPath); Assert.Equal(3, memoTable.ShortestPathsTable.FirstOrDefault(x => x.Vertex == secondaryVertex).LowestCostPath); Assert.Equal(10, memoTable.ShortestPathsTable.FirstOrDefault(x => x.Vertex == tertiaryVertex).LowestCostPath); Assert.Equal(7, memoTable.ShortestPathsTable.FirstOrDefault(x => x.Vertex == quaternaryVertex).LowestCostPath); }