コード例 #1
0
ファイル: Filter.cs プロジェクト: Chr1000/ATM
        public void FilterTrack(object o, TracksChangedEventArgs args)
        {
            List <Track> newFilteredTracks = new List <Track>();

            foreach (var track in args.Tracks)
            {
                var newEvent = new IsTrackInAirspaceEventArgs(track);
                IsTrackInAirspace?.Invoke(this, newEvent);
                if (newEvent.IsInAirspace)
                {
                    newFilteredTracks.Add(track);
                }
                else
                {
                    foreach (var trackInUpdatedList in UpdatedTracksList)
                    {
                        if (track.Tag == trackInUpdatedList.Tag)
                        {
                            TrackLeft?.Invoke(this, new TrackLeftAirspaceEventArgs(track));
                            break;
                        }
                    }
                }
            }
            TracksFilteredEventArgs Args = new TracksFilteredEventArgs(newFilteredTracks);

            TracksFiltered?.Invoke(this, Args);
            UpdatedTracksList = Args.UpdatedTracks;
        }
コード例 #2
0
ファイル: FilterUnitTest.cs プロジェクト: Chr1000/ATM
        public void Initial_TracksLeftOneTrack_TrackLeftIsCorrect()
        {
            List <Track> listToTest = new List <Track>();
            Track        track      = new Track()
            {
                Tag       = "NIC888",
                X         = 25000,
                Y         = 10005,
                Altitude  = 5000,
                TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            };

            listToTest.Add(track);
            TracksChangedEventArgs args = new TracksChangedEventArgs(listToTest);

            _parser.TracksChanged += Raise.EventWith(this, args);

            List <Track> listToTest2 = new List <Track>();
            Track        newTrack    = new Track()
            {
                Tag       = "NIC888",
                X         = 25010,
                Y         = 9990,
                Altitude  = 4980,
                TimeStamp = DateTime.ParseExact("20151006213456800", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            };

            listToTest2.Add(newTrack);
            TracksChangedEventArgs args2 = new TracksChangedEventArgs(listToTest2);

            _parser.TracksChanged += Raise.EventWith(this, args2);

            Assert.That(_trackLeft.Tag, Is.EqualTo(track.Tag));
        }
コード例 #3
0
        public void Initial_TracksFilteredFiveTracks_TracksCountIsCorrect()
        {
            List <Track> listToTest = new List <Track>();

            _filter = new Filter(_parser);
            listToTest.Add(new Track()
            {
                Tag = "NIC111", X = 25000, Y = 65000, Altitude = 15000, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            listToTest.Add(new Track()
            {
                Tag = "GJO222", X = 35000, Y = 55000, Altitude = 5000, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            listToTest.Add(new Track()
            {
                Tag = "ASD333", X = 45000, Y = 45000, Altitude = 7000, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            listToTest.Add(new Track()
            {
                Tag = "ASD444", X = 55000, Y = 8000, Altitude = 9000, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            listToTest.Add(new Track()
            {
                Tag = "NIP111", X = 5000, Y = 25000, Altitude = 3000, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            TracksChangedEventArgs args = new TracksChangedEventArgs(listToTest);

            _parser.TracksChanged += Raise.EventWith(args);

            Assert.That(_tracksFilteredList.Count, Is.EqualTo(3));
        }
コード例 #4
0
        public void FilterTrack_TrackOutsideAirspace_NotAddedToFilteredTracks()
        {
            List <Track> testTracks = new List <Track>();

            testTracks.Add(outsideLowerBoundry);
            var args = new TracksChangedEventArgs(testTracks);

            _dataReader.TracksChanged += Raise.EventWith(args);

            Assert.That(!_filteredTracks.Contains(outsideLowerBoundry));
        }
コード例 #5
0
        public void FilterTrack_OneTracksInAirspace_AddedToFilteredTracks()
        {
            List <Track> testTracks = new List <Track>();

            testTracks.Add(insideMiddle);
            var args = new TracksChangedEventArgs(testTracks);

            _dataReader.TracksChanged += Raise.EventWith(args);

            Assert.That(_filteredTracks.Contains(insideMiddle));
        }
コード例 #6
0
        public void FilterTrack_ThreeTracksInAirspace_AddedToFilteredTracks()
        {
            List <Track> testTracks = new List <Track>();

            testTracks.Add(insideLowerBoundry);
            testTracks.Add(insideMiddle);
            testTracks.Add(insideUpperBoundry);
            var args = new TracksChangedEventArgs(testTracks);

            _dataReader.TracksChanged += Raise.EventWith(args);

            Assert.That(_filteredTracks.Count, Is.EqualTo(3));
        }
コード例 #7
0
        public void FilterTrack_TracksAddedTwice_NumberOfEventsReceivedIsCorrect()
        {
            List <Track> testTracks = new List <Track>();

            testTracks.Add(insideLowerBoundry);
            var args = new TracksChangedEventArgs(testTracks);

            _dataReader.TracksChanged += Raise.EventWith(args);
            args.Tracks.Add(insideUpperBoundry);
            _dataReader.TracksChanged += Raise.EventWith(args);

            Assert.That(_nEventsRecieved, Is.EqualTo(2));
        }
コード例 #8
0
ファイル: Filter.cs プロジェクト: Chr1000/ATM
        public void FilterTrack(object o, TracksChangedEventArgs args)
        {
            foreach (var track in args.Tracks)
            {
                if (_airspace.IsTrackInAirspace(track))
                {
                    FilteredTracksList.Add(track);
                }
            }
            var handler = TracksFiltered;

            handler?.Invoke(this, new TracksFilteredEventArgs(FilteredTracksList));
        }
コード例 #9
0
        public void Initial_IsTrackInAirspaceOneTrack_TracksIsCorrect()
        {
            List <Track> listToTest = new List <Track>();
            Track        track      = new Track()
            {
                Tag = "NIC111", X = 25000, Y = 25000, Altitude = 5000, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            };

            listToTest.Add(track);
            TracksChangedEventArgs args = new TracksChangedEventArgs(listToTest);

            _parser.TracksChanged += Raise.EventWith(args);

            Assert.That(_track, Is.EqualTo(track));
        }
コード例 #10
0
        public void Initial_SeperationCheckerTwoTracks_TracksIsCorrect()
        {
            List <Track> listToTest = new List <Track>();
            Track        track      = new Track()
            {
                Tag       = "NIC444",
                X         = 25000,
                Y         = 20000,
                Altitude  = 5000,
                TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            };

            listToTest.Add(track);
            TracksChangedEventArgs args = new TracksChangedEventArgs(listToTest);

            _parser.TracksChanged += Raise.EventWith(this, args);

            List <Track> listToTest2 = new List <Track>();
            Track        newTrack1   = new Track()
            {
                Tag       = "NIC444",
                X         = 25010,
                Y         = 20020,
                Altitude  = 4980,
                TimeStamp = DateTime.ParseExact("20151006213456800", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            };
            Track newTrack2 = new Track()
            {
                Tag       = "GOG123",
                X         = 34010,
                Y         = 15000,
                Altitude  = 4980,
                TimeStamp = DateTime.ParseExact("20151006213456800", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            };

            listToTest2.Add(newTrack1);
            listToTest2.Add(newTrack2);
            TracksChangedEventArgs args2 = new TracksChangedEventArgs(listToTest2);

            _parser.TracksChanged += Raise.EventWith(this, args2);

            Assert.That(_sepTrack.Tag, Is.EqualTo(newTrack1.Tag));
            Assert.That(_tracksUpdatedeInSeperationList[1].Tag, Is.EqualTo(newTrack2.Tag));
        }
コード例 #11
0
ファイル: FilterUnitTest.cs プロジェクト: Chr1000/ATM
        public void Initial_TracksFilteredOneTrack_TrackIsCorrect(int x, int y, int alt, bool result)
        {
            List <Track> listToTest = new List <Track>();
            Track        track      = new Track()
            {
                Tag       = "NIC111",
                X         = x,
                Y         = y,
                Altitude  = alt,
                TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            };

            listToTest.Add(track);
            TracksChangedEventArgs args = new TracksChangedEventArgs(listToTest);

            _parser.TracksChanged += Raise.EventWith(args);

            Assert.That(_tracksFilteredList.Contains(track), Is.EqualTo(result));
        }
コード例 #12
0
        public void Initial_TracksUpdatedThreeTracks_TracksCountIsCorrect()
        {
            List <Track> listToTest = new List <Track>();

            listToTest.Add(new Track()
            {
                Tag = "NIC111", X = 25000, Y = 65000, Altitude = 15000, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            listToTest.Add(new Track()
            {
                Tag = "GJO222", X = 35000, Y = 55000, Altitude = 5000, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            listToTest.Add(new Track()
            {
                Tag = "ASD333", X = 45000, Y = 45000, Altitude = 7000, TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            TracksChangedEventArgs args = new TracksChangedEventArgs(listToTest);

            _parser.TracksChanged += Raise.EventWith(this, args);

            List <Track> listToTest2 = new List <Track>();

            listToTest2.Add(new Track()
            {
                Tag = "NIC111", X = 25010, Y = 64987, Altitude = 14998, TimeStamp = DateTime.ParseExact("20151006213456800", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            listToTest2.Add(new Track()
            {
                Tag = "GJO222", X = 35005, Y = 55015, Altitude = 5010, TimeStamp = DateTime.ParseExact("20151006213456800", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            listToTest2.Add(new Track()
            {
                Tag = "ASD333", X = 45008, Y = 44994, Altitude = 7002, TimeStamp = DateTime.ParseExact("20151006213456800", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            });
            TracksChangedEventArgs args2 = new TracksChangedEventArgs(listToTest2);

            _parser.TracksChanged += Raise.EventWith(this, args2);

            Assert.That(_updatedTrackList.Count, Is.EqualTo(3));
        }