public void TestGetTempIPs()
        {
            MonthlyMeansOverYearsStepIntegratorFacade a = new MonthlyMeansOverYearsStepIntegratorFacade();
            var ips = a.GetTempIPs(new TimeSegment(1931, 1932, 106, 166, 0, 24)); //16 april till 15 Jun

            Assert.AreEqual(3, ips.Indices.Length);
            Assert.AreEqual(3, ips.Indices[0]);
            Assert.AreEqual(4, ips.Indices[1]);
            Assert.AreEqual(5, ips.Indices[2]);
            Assert.AreEqual(ips.Weights[1], ips.Weights[0] * 2.0);
            Assert.AreEqual(ips.Weights[1], ips.Weights[2] * 2.0);


            ips = a.GetTempIPs(new TimeSegment(1944, 1944, 107, 167, 0, 24)); //16 april till 15 Jun
            Assert.AreEqual(3, ips.Indices.Length);
            Assert.AreEqual(3, ips.Indices[0]);
            Assert.AreEqual(4, ips.Indices[1]);
            Assert.AreEqual(5, ips.Indices[2]);
            Assert.AreEqual(ips.Weights[1], ips.Weights[0] * 2.0);
            Assert.AreEqual(ips.Weights[1], ips.Weights[2] * 2.0);

            ips = a.GetTempIPs(new TimeSegment(1931, 1931, 244, 273, 0, 24)); //september
            Assert.AreEqual(1, ips.Indices.Length);
            Assert.AreEqual(8, ips.Indices[0]);

            ips = a.GetTempIPs(new TimeSegment(1931, 1932, 305, 59, 0, 24)); //from start of november till end of feburary
            Assert.AreEqual(4, ips.Indices.Length);
            int[] indeces = new int[] { 0, 1, 10, 11 };
            for (int i = 0; i < 4; i++)
            {
                Assert.AreEqual(ips.Weights[0], ips.Weights[i]);
                Assert.IsTrue(indeces.Contains(ips.Indices[i]));
            }
        }
        public void TestYearsRange()
        {
            var a = new MonthlyMeansOverYearsStepIntegratorFacade(2000, 2005);
            var t = new TimeRegionExtensions.TimeSegment(2000, 2005, 1, 31, 0, 24);
            var c = a.GetCoverage(t);

            Assert.AreEqual(DataCoverageResult.DataWithUncertainty, c);
        }
        public void TestGetBoundingBox()
        {
            MonthlyMeansOverYearsStepIntegratorFacade a = new MonthlyMeansOverYearsStepIntegratorFacade();
            IndexBoundingBox ibb = a.GetBoundingBox(new TimeSegment(1931, 1932, 106, 166, 0, 24));

            Assert.AreEqual(3, ibb.first);
            Assert.AreEqual(5, ibb.last);

            ibb = a.GetBoundingBox(new TimeSegment(1944, 1944, 107, 167, 0, 24));
            Assert.AreEqual(3, ibb.first);
            Assert.AreEqual(5, ibb.last);

            ibb = a.GetBoundingBox(new TimeSegment(1931, 1931, 244, 273, 0, 24));
            Assert.AreEqual(8, ibb.first);
            Assert.AreEqual(8, ibb.last);

            ibb = a.GetBoundingBox(new TimeSegment(1931, 1932, 305, 59, 0, 24));
            Assert.AreEqual(0, ibb.first);
            Assert.AreEqual(11, ibb.last);
        }