private static void AssertTrackZ(WaypointList wptList) { var edge = wptList.GetEdge(GetEdgeIndex("NATZ", "SOORY", wptList)); var expectedDis = new ICoordinate[] { wptList[wptList.FindById("SOORY")], new LatLon(42.0, -50.0), new LatLon(44.0, -40.0), new LatLon(44.0, -30.0), new LatLon(46.0, -20.0), new LatLon(46.0, -15.0), wptList[wptList.FindById("SEPAL")], wptList[wptList.FindById("LAPEX")] }.TotalDistance(); // Distance Assert.AreEqual(expectedDis, edge.Value.Distance, 0.01); // Start, end waypoints are correct Assert.IsTrue(wptList[edge.FromNodeIndex].ID == "SOORY"); Assert.IsTrue(wptList[edge.ToNodeIndex].ID == "LAPEX"); // Start, end waypoints are connected Assert.IsTrue(wptList.EdgesFromCount(edge.FromNodeIndex) > 0); Assert.IsTrue(wptList.EdgesToCount(edge.ToNodeIndex) > 0); // Airway is correct Assert.IsTrue(edge.Value.Airway == "NATZ"); }
private static void AssertTrackJ(WaypointList wptList) { var edge = wptList.GetEdge(GetEdgeIndex("PACOTJ", "ALCOA", wptList)); // Distance var expectedDis = new ICoordinate[] { wptList[wptList.FindById("ALCOA")], wptList[wptList.FindById("CEPAS")], wptList[wptList.FindById("COBAD")], new LatLon(41, -140), new LatLon(42, -150), new LatLon(40, -160), new LatLon(37, -170), new LatLon(33, 180), new LatLon(29, 170), new LatLon(27, 160), new LatLon(26, 150), new LatLon(27, 140), wptList[wptList.FindById("BIXAK")] }.TotalDistance(); Assert.AreEqual(expectedDis, edge.Value.Distance, 0.01); // Start, end waypoints are correct Assert.IsTrue(wptList[edge.FromNodeIndex].ID == "ALCOA"); Assert.IsTrue(wptList[edge.ToNodeIndex].ID == "BIXAK"); // Start, end waypoints are connected Assert.IsTrue(wptList.EdgesFromCount(edge.FromNodeIndex) > 0); Assert.IsTrue(wptList.EdgesToCount(edge.ToNodeIndex) > 0); // Airway is correct Assert.IsTrue(edge.Value.Airway == "PACOTJ"); }
private static void AssertTrackC(WaypointList wptList) { var edge = wptList.GetEdge(GetEdgeIndex("NATC", "ETARI", wptList)); // Distance var expectedDis = new ICoordinate[] { wptList[wptList.FindById("ETARI")], new LatLon(55.5, -20), new LatLon(55.5, -30), new LatLon(55.5, -40), new LatLon(54.5, -50), wptList[wptList.FindById("MELDI")] }.TotalDistance(); Assert.AreEqual(expectedDis, edge.Value.Distance, 0.01); // Start, end waypoints are correct Assert.IsTrue(wptList[edge.FromNodeIndex].ID == "ETARI"); Assert.IsTrue(wptList[edge.ToNodeIndex].ID == "MELDI"); // Start, end waypoints are connected Assert.IsTrue(wptList.EdgesFromCount(edge.FromNodeIndex) > 0); Assert.IsTrue(wptList.EdgesToCount(edge.ToNodeIndex) > 0); // Airway is correct Assert.IsTrue(edge.Value.Airway == "NATC"); }
private static void AssertTrack11(WaypointList wptList) { var edge = wptList.GetEdge(GetEdgeIndex("PACOT11", "SEALS", wptList)); // Distance var expectedDis = new ICoordinate[] { wptList[wptList.FindById("SEALS")], new LatLon(36, 150), new LatLon(37, 160), new LatLon(36, 170), new LatLon(33, 180), new LatLon(29, -170), wptList[wptList.FindById("DANNO")] }.TotalDistance(); Assert.AreEqual(expectedDis, edge.Value.Distance, 0.01); // Start, end waypoints are correct Assert.IsTrue(wptList[edge.FromNodeIndex].ID == "SEALS"); Assert.IsTrue(wptList[edge.ToNodeIndex].ID == "DANNO"); // Start, end waypoints are connected Assert.IsTrue(wptList.EdgesFromCount(edge.FromNodeIndex) > 0); Assert.IsTrue(wptList.EdgesToCount(edge.ToNodeIndex) > 0); // Airway is correct Assert.IsTrue(edge.Value.Airway == "PACOT11"); }
private static void AssertTrackBP14(WaypointList wptList) { var edge = wptList.GetEdge(GetEdgeIndex("AUSOTBP14", "TAXEG", wptList)); var expectedDistance = new[] { "TAXEG", "PASTA", "TAROR", "WR", "ENTRE", "MALLY", "NSM" }.Select(id => wptList[wptList.FindById(id)]).TotalDistance(); // Distance Assert.AreEqual(expectedDistance, edge.Value.Distance, 0.01); // Start, end waypoints are correct Assert.IsTrue(wptList[edge.FromNodeIndex].ID == "TAXEG"); Assert.IsTrue(wptList[edge.ToNodeIndex].ID == "NSM"); // Start, end waypoints are connected Assert.IsTrue(wptList.EdgesFromCount(edge.FromNodeIndex) > 0); Assert.IsTrue(wptList.EdgesToCount(edge.ToNodeIndex) > 0); // Airway is correct Assert.IsTrue(edge.Value.Airway == "AUSOTBP14"); }
private static void AssertTrackMY14(WaypointList wptList) { var edge = wptList.GetEdge(GetEdgeIndex("AUSOTMY14", "JAMOR", wptList)); // Distance var expectedDistance = new[] { "JAMOR", "IBABI", "LEC", "OOD", "ARNTU", "KEXIM", "CIN", "ATMAP" }.Select(id => wptList[wptList.FindById(id)]).TotalDistance(); Assert.AreEqual(expectedDistance, edge.Value.Distance, 0.01); // Start, end waypoints are correct Assert.IsTrue(wptList[edge.FromNodeIndex].ID == "JAMOR"); Assert.IsTrue(wptList[edge.ToNodeIndex].ID == "ATMAP"); // Start, end waypoints are connected Assert.IsTrue(wptList.EdgesFromCount(edge.FromNodeIndex) > 0); Assert.IsTrue(wptList.EdgesToCount(edge.ToNodeIndex) > 0); // Airway is correct Assert.IsTrue(edge.Value.Airway == "AUSOTMY14"); }
public void WhenRouteUseDirectAnalyzeCorrectness() { // setup var wpts = new[] { new Waypoint("P01", 0.0, 15.0), new Waypoint("P02", 0.0, 16.0), new Waypoint("P03", 0.5, 16.5) }; var wptList = new WaypointList(); foreach (var i in wpts) { wptList.AddWaypoint(i); } var analyzer = new BasicRouteAnalyzer( GetRouteString("P01", "P02", "P03"), wptList, wptList.FindById("P01")); // invoke var route = analyzer.Analyze(); // assert var expected = GetRoute( wpts[0], "DCT", -1.0, wpts[1], "DCT", -1.0, wpts[2]); Assert.IsTrue(route.Equals(expected)); }
private static int GetEdgeIndex(string ID, string firstWpt, WaypointList wptList) { foreach (var i in wptList.EdgesFrom(wptList.FindById(firstWpt))) { if (wptList.GetEdge(i).Value.Airway == ID) { return(i); } } return(-1); }
private static void AssertDct(WaypointList wptList, string from, string to) { foreach (var i in wptList.EdgesFrom(wptList.FindById(from))) { if (wptList[wptList.GetEdge(i).ToNodeIndex].ID == to) { return; } } Assert.Fail("{0} is not connected to {1}", from, to); }
private static int TryAddWpt(WaypointList wptList, string id) { int x = wptList.FindById(id); if (x < 0) { var rd = new Random(123); return(wptList.AddWaypoint(new Waypoint(id, rd.Next(-90, 91), rd.Next(-180, 181)))); } return(x); }
public void SingleEntryInRoute() { // setup var wptList = new WaypointList(); var p = new Waypoint("P", 20.0, 100.0); wptList.AddWaypoint(p); var analyzer = new BasicRouteAnalyzer( GetRouteString("P"), wptList, wptList.FindById("P")); // invoke var route = analyzer.Analyze(); // assert Assert.AreEqual(1, route.Count); Assert.IsTrue(route.FirstWaypoint.Equals(p)); }
public void WhenRouteUseAirwaysAnalyzeCorrectness() { // setup var wpts = new[] { new Waypoint("P01", 0.0, 15.0), new Waypoint("P02", 0.0, 16.0), new Waypoint("P03", 0.0, 17.0), new Waypoint("P04", 0.0, 18.0) }; var wptList = new WaypointList(); var indices = wpts.Select(w => wptList.AddWaypoint(w)).ToList(); wptList.AddNeighbor(indices[0], "A01", indices[1]); wptList.AddNeighbor(indices[1], "A02", indices[2]); // Added so that there are 2 airways to choose from at P03. wptList.AddNeighbor(indices[1], "A03", indices[3]); var analyzer = new BasicRouteAnalyzer( GetRouteString("P01", "A01", "P02", "A02", "P03"), wptList, wptList.FindById("P01")); // invoke var route = analyzer.Analyze(); // assert var expected = GetRoute( wpts[0], "A01", -1.0, wpts[1], "A02", -1.0, wpts[2]); Assert.IsTrue(route.Equals(expected)); }