public void Time_at_Altitude_Tests() { //Expected values based off suncalc data Coordinate c = new Coordinate(47.40615, -122.24517, new DateTime(2020, 8, 11, 11, 29, 0)); c.Offset = -7; var t = Celestial.Get_Time_at_Solar_Altitude(c, 50.94); var ts = c.GeoDate - t.Rising; Assert.AreEqual(0, Math.Abs(ts.Value.TotalSeconds), 60, $"Time: {t.Rising}"); Assert.AreEqual(CelestialStatus.RiseAndSet, t.Condition); t = Celestial.Get_Time_at_Solar_Altitude(c.Latitude.ToDouble(), c.Longitude.ToDouble(), c.GeoDate.AddHours(7), 50.94); ts = c.GeoDate.AddHours(7) - t.Rising; Assert.AreEqual(0, Math.Abs(ts.Value.TotalSeconds), 60, $"Time: {t.Rising}"); Assert.AreEqual(CelestialStatus.RiseAndSet, t.Condition); t = Celestial.Get_Time_at_Solar_Altitude(c.Latitude.ToDouble(), c.Longitude.ToDouble(), c.GeoDate, 50.94, c.Offset); ts = c.GeoDate - t.Rising; Assert.AreEqual(0, Math.Abs(ts.Value.TotalSeconds), 60, $"Time: {t.Rising}"); Assert.AreEqual(CelestialStatus.RiseAndSet, t.Condition); //Expected values based on NOAA data c.GeoDate = new DateTime(2020, 8, 11, 18, 02, 10); t = Celestial.Get_Time_at_Solar_Altitude(c, 23.09); ts = c.GeoDate - t.Setting; Assert.AreEqual(0, Math.Abs(ts.Value.TotalSeconds), 240, $"Time: {t.Setting}"); Assert.AreEqual(CelestialStatus.RiseAndSet, t.Condition); }
public void Time_at_Altitude_Condition_Tests() { Coordinate c = new Coordinate(47.40615, -122.24517, new DateTime(2020, 8, 11, 11, 29, 0)); var t = Celestial.Get_Time_at_Solar_Altitude(c, 57.8); Assert.AreEqual(CelestialStatus.DownAllDay, t.Condition); t = Celestial.Get_Time_at_Solar_Altitude(c, -57.8); Assert.AreEqual(CelestialStatus.UpAllDay, t.Condition); c = new Coordinate(75, 45, new DateTime(2020, 11, 5, 10, 7, 0)); c.Offset = -9; t = Celestial.Get_Time_at_Solar_Altitude(c, -.8); Assert.AreEqual(CelestialStatus.NoRise, t.Condition); c = new Coordinate(76, -45, new DateTime(2021, 8, 18, 10, 7, 0)); t = Celestial.Get_Time_at_Solar_Altitude(c, -.8); Assert.AreEqual(CelestialStatus.NoSet, t.Condition); }