Ejemplo n.º 1
0
        public void SolarLighting_SiteLightingForThreeDays()
        {
            var site = new SiteData
            {
                Location = new ServiceCartographic(39.0, -75.77, 0)
            };
            var solarData = new SolarLightingData <SiteData>
            {
                Path          = site,
                AnalysisStart = new DateTimeOffset(2018, 4, 9,
                                                   0, 0, 0, new TimeSpan(0, 0, 0)),
                AnalysisStop = new DateTimeOffset(2018, 4, 11,
                                                  0, 0, 0, new TimeSpan(0, 0, 0)),
                OutputTimeOffset = -4.0f
            };

            var lighting = LightingServices.GetLightingAtASite(solarData).Result;

            // setup expected dates, then test
            var firstSunrise = new DateTimeOffset(2018, 4, 9,
                                                  6, 35, 24, 756, new TimeSpan(-4, 0, 0));
            var firstAstroPmTwilightStop = new DateTimeOffset(2018, 4, 9,
                                                              21, 08, 04, 142, new TimeSpan(-4, 0, 0));

            Assert.That(lighting.Lighting.Count == 3);
            Assert.AreEqual(firstSunrise.ToUnixTimeMilliseconds(),
                            lighting.Lighting[0].Sunrise.ToUnixTimeMilliseconds());
            Assert.AreEqual(firstAstroPmTwilightStop.ToUnixTimeMilliseconds(),
                            lighting.Lighting[0].AstronomicalTwilightPmStop.ToUnixTimeMilliseconds());
            Assert.IsTrue(lighting.Lighting[0].IsRiseDefined);
            Assert.IsTrue(lighting.Lighting[0].IsSetDefined);

            var secondSunset = new DateTimeOffset(2018, 4, 10,
                                                  19, 35, 29, 938, new TimeSpan(-4, 0, 0));

            Assert.AreEqual(secondSunset.ToUnixTimeMilliseconds(),
                            lighting.Lighting[1].Sunset.ToUnixTimeMilliseconds());

            var thirdNauticalPmTwilightStop = new DateTimeOffset(2018, 4, 11,
                                                                 20, 36, 34, 092, new TimeSpan(-4, 0, 0));

            Assert.AreEqual(thirdNauticalPmTwilightStop.ToUnixTimeMilliseconds(),
                            lighting.Lighting[2].NauticalTwilightPmStop.ToUnixTimeMilliseconds());
        }
        public void TestSolarLighting()
        {
            var request = new SolarLightingData <SiteData>();

            request.Path = new SiteData();
            request.Path.Location.Latitude  = 39.0;
            request.Path.Location.Longitude = -104.77;
            request.Path.Location.Altitude  = 1910;
            request.AnalysisStart           = new DateTime(2018, 5, 5);
            request.AnalysisStop            = new DateTime(2018, 5, 5);
            request.OutputTimeOffset        = -6.0f;
            var lightingResult = LightingServices.GetLightingAtASite(request).Result;

            Assert.That(lightingResult != null);
            Assert.That(lightingResult.Lighting[0].Sunrise.Hour == 5);
            Assert.That(lightingResult.Lighting[0].Sunrise.Minute == 56);
            Assert.That(lightingResult.Lighting[0].Sunrise.Second == 20);
            Assert.That(lightingResult.Lighting[0].Sunset.Hour == 19);
            Assert.That(lightingResult.Lighting[0].Sunset.Minute == 55);
            Assert.That(lightingResult.Lighting[0].Sunset.Second == 49);
        }