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)); }
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); }
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)); }
//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) => //{ //}; }
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; }
public async Task AddRecord() { ISSPosition position = await DataReceiver.GetISSPositionAsync(url); history.AddRecord(position); }
public async Task GetDataAsync_GetData() { ISSPosition position = await DataReceiver.GetISSPositionAsync("http://api.open-notify.org/iss-now.json"); Assert.AreEqual("success", position.Message); }