Ejemplo n.º 1
0
        public double CalculateSpeed(ISSPosition a, ISSPosition b)
        {
            if (a.Timestamp == 0 || b.Timestamp == 0)
            {
                throw new ArgumentOutOfRangeException($"Incorrect passed positions.");
            }
            int    deltaTime = b.Timestamp - a.Timestamp;
            double distance  = CalculatePath(a.ISS_Position, b.ISS_Position);

            return(distance / (deltaTime));
        }
Ejemplo n.º 2
0
        public void CalculateSpeed_CorrectParameters_ReturnsValue(double lat1, double long1, int time1, double lat2, double long2, int time2, double speed)
        {
            ISSPosition issPosition1 = new ISSPosition();

            issPosition1.ISS_Position = new Position(lat1, long1);
            issPosition1.Timestamp    = time1;
            ISSPosition issPosition2 = new ISSPosition();

            issPosition2.ISS_Position = new Position(lat2, long2);
            issPosition2.Timestamp    = time2;
            LatLongCalculator pathCalculator = new LatLongCalculator();

            Assert.AreEqual(speed, pathCalculator.CalculateSpeed(issPosition1, issPosition2), 0.5);
        }
Ejemplo n.º 3
0
        public void CalculateSpeed_IncorrectParameters_Throws(double lat1, double long1, int time1, double lat2, double long2, int time2)
        {
            ISSPosition issPosition1 = new ISSPosition();

            issPosition1.ISS_Position = new Position(lat1, long1);
            issPosition1.Timestamp    = time1;
            ISSPosition issPosition2 = new ISSPosition();

            issPosition2.ISS_Position = new Position(lat2, long2);
            issPosition2.Timestamp    = time2;
            LatLongCalculator pathCalculator = new LatLongCalculator();

            Assert.Throws <ArgumentOutOfRangeException>(() => pathCalculator.CalculateSpeed(issPosition1, issPosition2));
        }
Ejemplo n.º 4
0
        //private double GetPositionAngle(StationStat forecast, ISSPosition position)
        //{
        //}
        private void AddMarker(StationStat forecast, ISSPosition startPosition, Color color)
        {
            SpotData spotData;
            // ArrorMarkerControl rectangle;
            Point point;

            spotData = this.GetSpotData(forecast.Start, forecast.Brightness);

            var rectangle = new ArrorMarkerControl { Width = 120, Height = 450 }; // new Rectangle { Width = 90, Height = 90, RadiusX = 90, RadiusY = 60, Fill = new SolidColorBrush(color) };
            //   var rectangle =new Rectangle { Width = 90, Height = 90, RadiusX = 90, RadiusY = 60, Fill = new SolidColorBrush(color) };
            arPanel.Children.Add(rectangle);

            point = new Point(startPosition.Altitute, startPosition.Azimuth);
            ARPanel.SetDirection(rectangle, point);
            rectangle.DataContext = spotData;
            //rectangle.Tap += (s, e) =>
            //{

            //};
        }
Ejemplo n.º 5
0
        private SpotData GetSpotData(ISSPosition position, double brightness)
        {
            SpotData d = new SpotData();
            d.Altitute = position.Altitute;
            d.Azimuth = position.Azimuth;
            d.Brightness = brightness;
            d.StartTime = position.Time;
            d.TimeRemaining = position.Time - DateTime.Now;

            if (d.TimeRemaining < TimeSpan.Zero)
            {
                d.TimeRemaining = TimeSpan.Zero;
            }

            return d;
        }
Ejemplo n.º 6
0
        public async Task AddRecord()
        {
            ISSPosition position = await DataReceiver.GetISSPositionAsync(url);

            history.AddRecord(position);
        }
Ejemplo n.º 7
0
        public async Task GetDataAsync_GetData()
        {
            ISSPosition position = await DataReceiver.GetISSPositionAsync("http://api.open-notify.org/iss-now.json");

            Assert.AreEqual("success", position.Message);
        }