示例#1
0
        public Dictionary <string, FlightData> Calculate(Dictionary <String, FlightData> flightData, List <TrackData> trackData)
        {
            foreach (TrackData track in trackData)
            {
                if (flightData.TryGetValue(track.Tag, out FlightData flight))
                {
                    flight.Velocity         = _velocityCalculator.CalculateSpeed(flight.CurrentTrackData, track);
                    flight.CompassCourse    = _directionCalculator.CalculateDirection(flight.CurrentTrackData, track);
                    flight.CurrentTrackData = track;
                }
                else
                {
                    flightData.Add(track.Tag, new FlightData(track));
                }
            }

            Dictionary <string, FlightData> newFlightData = new Dictionary <string, FlightData>();

            foreach (KeyValuePair <string, FlightData> entry in flightData)
            {
                if (trackData.Contains(entry.Value.CurrentTrackData))
                {
                    newFlightData.Add(entry.Key, entry.Value);
                }
            }
            return(newFlightData);
        }
示例#2
0
        public void DirectionCalculatorNoMovementNoTimeReturns0Test()
        {
            TrackData prev = new TrackData(dummyTag, dummyX, dummyY, dummyAltitude, dummyTimestamp);
            TrackData curr = new TrackData(dummyTag, dummyX, dummyY, dummyAltitude, dummyTimestamp);

            Assert.AreEqual(0, uut.CalculateDirection(prev, curr));
        }
示例#3
0
        public void Setup()
        {
            _fakeVelocityCalculator  = Substitute.For <IVelocityCalculator>();
            _fakeDirectionCalculator = Substitute.For <IDirectionCalculator>();
            _fakeCollisionDetector   = Substitute.For <ICollisionDetector>();

            _fakeVelocityCalculator.CalculateSpeed(Arg.Any <TrackData>(), Arg.Any <TrackData>()).Returns(1000);
            _fakeDirectionCalculator.CalculateDirection(Arg.Any <TrackData>(), Arg.Any <TrackData>()).Returns(45);


            uut = new FlightCalculator(_fakeVelocityCalculator, _fakeDirectionCalculator);
        }
示例#4
0
        private LocationUpdateResponseNearbyPlayerDTO CreateNearbyPlayerDTO(Location me, Location other)
        {
            var latDistance   = me.lat - other.lat;
            var lonDistance   = me.lon - other.lon;
            var totalDistance = Math.Sqrt(Math.Pow(latDistance, 2) + Math.Pow(lonDistance, 2));

            return(new LocationUpdateResponseNearbyPlayerDTO()
            {
                dist = (float)totalDistance,
                dir = (int)dir.CalculateDirection(me, other),
                vel_nearing = 3
            });
        }