コード例 #1
0
        public void Update(Tos obj)
        {
            var recievedTracks = obj.RecievedTracks;

            foreach (var track in recievedTracks)
            {
                if (_airSpace.IsInValidAirSpace(track))
                {
                    if (_trackStorage.Contains(track))
                    {
                        _trackStorage.Update(track);
                    }
                    else
                    {
                        _trackStorage.Add(track);
                    }
                }
                else if (_trackStorage.Contains(track) && !_airSpace.IsInValidAirSpace(track))
                {
                    _trackStorage.Remove(track);
                }
            }

            _collisonDetector.CheckForCollision(_trackStorage.GetAllTracks());
            _render.PrintTrackData(_trackStorage.GetAllTracks());
        }
コード例 #2
0
        public void CheckForCollision_SeparationEventRaised_SeparationCounterIsTwo()
        {
            //Reset event counters
            SeparationEventCounter   = 0;
            NotCollidingEventCounter = 0;
            //Add colliding tracks to list
            var tracks = new List <ITrack>
            {
                new Track {
                    PositionX = 5000, PositionY = 5000, Tag = "AAA", Timestamp = DateTime.Now, Altitude = 1000
                },
                new Track {
                    PositionX = 5000, PositionY = 5000, Tag = "BBB", Timestamp = DateTime.Now, Altitude = 1000
                },
            };

            _uut.CheckForCollision(tracks);

            //Is equal to two because both tracks cause the event.
            Assert.That(SeparationEventCounter, Is.EqualTo(2));
        }