Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }