public async Task BuildGraph() { await Task.Run(() => { _network = new FlightNetwork(_airportCount, _airports, _routes); }); }
public void TestInitialize() { Loader data = new Loader("test"); GraphNetwork graph = new GraphNetwork(data); flightNet = new FlightNetwork(data, graph); }
public void Should_invalidate_circular_reference() { var line = "AAA,AAA,180"; var network = new FlightNetwork(); var result = network.LoadFrom(new[] { line }); Assert.AreEqual("CIRCULAR_REFERENCE > AAA, AAA", result.Errors.First()); }
public void Should_upper_case_all_routes_inputed() { var line = "gru,brc,10"; var network = new FlightNetwork(); var result = network.LoadFrom(new[] { line }); Assert.IsFalse(result.HasErrors); Assert.IsNotNull(network.Hubs["GRU"]); }
public void Should_read_a_line_and_convert_to_properly_format() { var line = "GRU,BRC,10"; var network = new FlightNetwork(); var result = network.LoadFrom(new[] { line }); Assert.IsFalse(result.HasErrors); Assert.IsNotEmpty(network.Hubs); }
private Result CalculateRoute(string from, string to) { var routes = RouteFile.ReadFile(CSV_FILE); var network = new FlightNetwork(); var loadResult = network.LoadFrom(routes); if (loadResult.HasErrors) { return(loadResult); } return(network.CheapRoute(from, to)); }
public void Should_not_import_lines_with_mismatch_format() { var line = "GRU,BRC,AAA"; var network = new FlightNetwork(); var result = network.LoadFrom(new[] { line }); Assert.IsTrue(result.HasErrors); var expected = "Line [1] input format mismatch 'string, string, uint' > GRU,BRC,AAA"; Assert.AreEqual(expected, result.Errors.First()); }
public void Should_return_error_when_there_arent_connection_between_points() { var network = new FlightNetwork(); var lines = new[] { "GRU,BRC,10", "BRC,SCL,5", "LAX,CDG,75" }; network.LoadFrom(lines); var cheapestRoute = network.CheapRoute("GRU", "CDG"); Assert.IsTrue(cheapestRoute.HasErrors); Assert.AreEqual("NO_ROUTE", cheapestRoute.Errors.First()); }
public void Should_return_error_when_destination_dont_exists() { var network = new FlightNetwork(); var lines = new[] { "LAX,BRC,10", "BRC,SCL,5", "LAX,CDG,75", "LAX,SCL,20", "LAX,ORL,56", "ORL,CDG,5", "SCL,ORL,20" }; network.LoadFrom(lines); var cheapestRoute = network.CheapRoute("LAX", "WOW"); Assert.IsTrue(cheapestRoute.HasErrors); Assert.AreEqual("NO_DESTINATION_FOUND > WOW", cheapestRoute.Errors.First()); }
static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine("File with routes must be provided"); } var routes = RouteFile.ReadFile(args[0]); var network = new FlightNetwork(); var loadResult = network.LoadFrom(routes); if (loadResult.HasErrors) { Console.WriteLine(string.Join(Environment.NewLine, loadResult.Errors)); } else { while (true) { Console.Write("please enter the route: "); var route = Console.ReadLine(); if (!ValidateRoute(route)) { Console.WriteLine("Invalid route input format, you should try AAA-AAA"); continue; } var splitedRoutes = route.Split("-"); var routeResult = network.CheapRoute(splitedRoutes[0], splitedRoutes[1]); if (routeResult.HasErrors) { Console.WriteLine(string.Join(Environment.NewLine, routeResult.Errors)); } else { Console.WriteLine(routeResult.ToString()); } } } }
public void Should_find_shortest_path_from_a_valid_graph() { var network = new FlightNetwork(); var lines = new[] { "GRU,BRC,10", "BRC,SCL,5", "GRU,CDG,75", "GRU,SCL,20", "GRU,ORL,56", "ORL,CDG,5", "SCL,ORL,20" }; network.LoadFrom(lines); var cheapestRoute = network.CheapRoute("BRC", "CDG"); Assert.IsFalse(cheapestRoute.HasErrors); Assert.AreEqual(30, cheapestRoute.Cost); Assert.AreEqual("BRC - SCL - ORL - CDG > $30", cheapestRoute.ToString()); }
public void TestCleanup() { flightNet = null; }