public void GetDistanceOfRoute_ShouldReturnCorrectValue() { var routeInfo = "AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7"; var target = new RailroadSystem(); target.BuildRoutesGraphWith(routeInfo); var stops = new [] { new [] { 'A', 'B', 'C' } , new [] { 'A', 'D' } , new [] { 'A', 'D', 'C' } , new [] { 'A', 'E', 'B', 'C', 'D' } }; var expected = new [] { 9, 5, 13, 22 }; for (var i = 0; i < stops.Length; i++) { var actual = target.GetDistanceOfRouteWith(stops[i]); Assert.That(actual, Is.EqualTo(expected[i])); } }
public void BuildRouteGraph_ShouldBuildAGraph() { var routeInfo = string.Empty; var target = new RailroadSystem(); target.BuildRoutesGraphWith(routeInfo); var actual = target.RoutesGraph; Assert.That(actual, Is.InstanceOf <Graph>()); }
public void BuildRouteGraph_ShouldBuildCorrectGraph() { var routeInfo = "AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7"; var target = new RailroadSystem(); target.BuildRoutesGraphWith(routeInfo); var actual = target.RoutesGraph; Assert.That(actual.GetNeighborsOf('A'), Is.EquivalentTo(new [] { 'B', 'D', 'E' })); }
public void GetDistanceOfRoute_ShouldReturnMessageIfNoRouteExists() { var routeInfo = "AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7"; var target = new RailroadSystem(); target.BuildRoutesGraphWith(routeInfo); var stops = new [] { 'A', 'E', 'D' }; var actual = target.GetDistanceOfRouteWith(stops); Assert.That(actual, Is.EqualTo("NO SUCH ROUTE")); }
public void GetDistanceOfShortestRoute_IfStartTownAndEndTownAreSameShouldReturnCorrectValue() { var routeInfo = "AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7"; var target = new RailroadSystem(); target.BuildRoutesGraphWith(routeInfo); var startTown = 'B'; var endTown = 'B'; var expected = 9; var actual = target.GetDistanceOfShortestRoute(startTown, endTown); Assert.That(actual, Is.EqualTo(expected)); }
public void GetNumberOfTripsWithMaxStops_ShouldReturCorrectValue() { var routeInfo = "AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7"; var target = new RailroadSystem(); target.BuildRoutesGraphWith(routeInfo); var startTown = 'C'; var endTown = 'C'; var maxStops = 3; var expected = 2; var actual = target.GetNumberOfTripsWithMaxStops(startTown, endTown, maxStops); Assert.That(actual, Is.EqualTo(expected)); }
private static void PrintRailwaySystemInfoInFile(string fileName) { var routes = GetTrainRouteInfoFromFile(fileName); var railroadSystem = new RailroadSystem(); railroadSystem.BuildRoutesGraphWith(routes); Console.WriteLine($"Output #1: {railroadSystem.GetDistanceOfRouteWith('A', 'B', 'C')}"); Console.WriteLine($"Output #2: {railroadSystem.GetDistanceOfRouteWith('A', 'D')}"); Console.WriteLine($"Output #3: {railroadSystem.GetDistanceOfRouteWith('A', 'D', 'C')}"); Console.WriteLine($"Output #4: {railroadSystem.GetDistanceOfRouteWith('A', 'E', 'B', 'C', 'D')}"); Console.WriteLine($"Output #5: {railroadSystem.GetDistanceOfRouteWith('A', 'E', 'D')}"); Console.WriteLine($"Output #6: {railroadSystem.GetNumberOfTripsWithMaxStops('C', 'C', 3)}"); Console.WriteLine($"Output #7: {railroadSystem.GetNumberOfTripsWithExactStops('A', 'C', 4)}"); Console.WriteLine($"Output #8: {railroadSystem.GetDistanceOfShortestRoute('A', 'C')}"); Console.WriteLine($"Output #9: {railroadSystem.GetDistanceOfShortestRoute('B', 'B')}"); Console.WriteLine($"Output #10: {railroadSystem.GetNumberOfTripsWithMaxDistance('C', 'C', 30)}"); }