public void Initial_TrackStartCalcOneTrack_VelocityAndCourseIsCorrect(int t1x, int t1y, int t2x, int t2y, double result1, double result2) { Track prevtrack = new Track() { Tag = "NIC222", X = t1x, Y = t1y, Altitude = 5000, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture) }; Track newTrack = new Track() { Tag = "NIC222", X = t2x, Y = t2y, Altitude = 5000, TimeStamp = DateTime.ParseExact("20151006213458789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture) }; TrackStartCalEventArgs args = new TrackStartCalEventArgs(prevtrack, newTrack); _updater.TrackStartCal += Raise.EventWith(this, args); Assert.That(_calculatedTrack.Velocity, Is.EqualTo(result1)); Assert.That(_calculatedTrack.Course, Is.EqualTo(result2)); }
private void EvalTrack(object o, TracksFilteredEventArgs args) { if (args.FilteredTracks.Count != 0 && UpdatedTracksList.Count == 0) { foreach (var track in args.FilteredTracks) { UpdatedTracksList.Add(track); TrackEntered?.Invoke(this, new TrackEnteredAirspaceEventArgs(new Event(EventsList, "Track Entered Airspace", track, DateTime.Now))); } } else if (args.FilteredTracks.Count != 0 && UpdatedTracksList.Count != 0) { foreach (var filteredTrack in args.FilteredTracks) { var updatedTrack = UpdatedTracksList.Find(i => i.Tag == filteredTrack.Tag); if (updatedTrack == null) { UpdatedTracksList.Add(filteredTrack); TrackEntered?.Invoke(this, new TrackEnteredAirspaceEventArgs(new Event(EventsList, "Track Entered Airspace", filteredTrack, DateTime.Now))); } else { var newCalEvent = new TrackStartCalEventArgs( UpdatedTracksList[UpdatedTracksList.IndexOf(updatedTrack)], filteredTrack); TrackStartCal?.Invoke(this, newCalEvent); if (newCalEvent.CalculatedTrack != null) { filteredTrack.Course = newCalEvent.CalculatedTrack.Course; filteredTrack.Velocity = newCalEvent.CalculatedTrack.Velocity; UpdatedTracksList[UpdatedTracksList.IndexOf(updatedTrack)] = filteredTrack; } SeperationChecker?.Invoke(this, new SeperationCheckerEventArgs(EventsList, UpdatedTracksList, filteredTrack)); } } } args.UpdatedTracks = UpdatedTracksList; TracksUpdated?.Invoke(this, new TracksUpdatedEventArgs(UpdatedTracksList, EventsList)); }
public void CalTrack(object o, TrackStartCalEventArgs args) { args.CalculatedTrack = args.NewTrack; args.CalculatedTrack.Velocity = CalVelocity(args.PrevTrack, args.NewTrack); args.CalculatedTrack.Course = CalCourse(args.PrevTrack, args.NewTrack); }