Esempio n. 1
0
        public void GapFillTest()
        {
            TimeStampSeries target = new TimeStampSeries(); // TODO: Initialize to an appropriate value


            for (int i = 1; i < 5; i++)
            {
                target.Items.Add(new TimeStampValue(new DateTime(2000, i, 1), i));
            }

            target.Items.Add(new TimeStampValue(new DateTime(2000, 9, 1), 9));

            Assert.AreEqual(5, target.Items.Count);

            target.GapFill(InterpolationMethods.DeleteValue);
            Assert.AreEqual(9, target.Items.Count);

            target.Items.Add(new TimeStampValue(new DateTime(2002, 9, 1), 9));
            target.GapFill(InterpolationMethods.DeleteValue);

            for (int i = 1; i < target.Items.Count; i++)
            {
                Assert.IsTrue(TSTools.GetTimeStep(target.Items[i - 1].Time, target.Items[i].Time) == TimeStepUnit.Month);
            }

            Assert.AreEqual(33, target.Items.Count);
        }
Esempio n. 2
0
        public void DetailedM11Test()
        {
            var _karup = new Model(@"..\..\..\TestData\Karup_Example_DemoMode1.she").Results;

            var m11obs = _karup.Mike11Observations;

            Assert.AreEqual(1, m11obs.Count);

            var scaled = TSTools.ChangeZoomLevel(m11obs.First().Simulation, TimeStepUnit.Month, true);
        }
Esempio n. 3
0
        public void GetTimeStepTest()
        {
            DateTime Start = new DateTime(2000, 1, 1);

            Assert.IsTrue(TimeStepUnit.Second == TSTools.GetTimeStep(Start, new DateTime(2000, 1, 1, 0, 0, 1)));
            Assert.IsTrue(TimeStepUnit.Minute == TSTools.GetTimeStep(Start, new DateTime(2000, 1, 1, 0, 1, 0)));
            Assert.IsTrue(TimeStepUnit.Hour == TSTools.GetTimeStep(Start, new DateTime(2000, 1, 1, 1, 0, 0)));
            Assert.IsTrue(TimeStepUnit.Day == TSTools.GetTimeStep(Start, new DateTime(2000, 1, 2, 0, 0, 0)));
            Assert.IsTrue(TimeStepUnit.Month == TSTools.GetTimeStep(Start, new DateTime(2000, 2, 1, 0, 0, 0)));
            Assert.IsTrue(TimeStepUnit.Year == TSTools.GetTimeStep(Start, new DateTime(2001, 1, 1, 0, 0, 0)));
        }
Esempio n. 4
0
        /// <summary>
        /// Returns the bR-squared value
        /// </summary>
        /// <param name="Other"></param>
        /// <returns></returns>
        public static double?bR2(this FixedTimeStepSeries Me, FixedTimeStepSeries Other)
        {
            double[] val1;
            double[] val2;
            Me.AlignRemoveDeletevalues(Other, out val1, out val2);
            int c = val1.Count();

            if (val1.Count() > 1 & Me.Count > 1)
            {
                var coeff = Fit.Line(val1, val2);
                return(Math.Abs(coeff[1]) * TSTools.R2(val1, val2));
            }
            return(null);
        }
Esempio n. 5
0
        public void ChangeZoomLevelTimespan()
        {
            TimeSpanSeries ts = new TimeSpanSeries();

            ts.Items.Add(new TimeSpanValue(new DateTime(2010, 1, 1, 12, 0, 0), new DateTime(2010, 1, 1, 12, 15, 0), 10));
            ts.Items.Add(new TimeSpanValue(new DateTime(2010, 1, 1, 12, 15, 0), new DateTime(2010, 1, 1, 12, 30, 0), 10));
            ts.Items.Add(new TimeSpanValue(new DateTime(2010, 10, 1, 12, 0, 0), new DateTime(2010, 10, 1, 12, 15, 0), 10));
            ts.TimeStepSize = TimeStepUnit.Minute;

            TimeSpanSeries ts2 = new TimeSpanSeries(TSTools.ChangeZoomLevel(ts, TimeStepUnit.Month, true));

            Assert.AreEqual(20, ts2.Max);
            Assert.AreEqual(2, ts2.Count);
        }
Esempio n. 6
0
        public void TestMethod1()
        {
            DFS0 df      = new DFS0(@"C:\Users\Jacob\Downloads\gridKlima20148.dfs0");
            var  monthly = TSTools.ChangeZoomLevel(df.GetTimeSpanSeries(1), TimeStepUnit.Month, true);

            using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\Users\Jacob\Downloads\Monthly_20148.csv"))
            {
                sw.WriteLine("Year,Month,Precip");
                foreach (var v in monthly.Items)
                {
                    sw.WriteLine(v.Time.Year + "," + v.Time.Month + "," + v.Value);
                }
            }
        }
Esempio n. 7
0
        public void ChangeZoomLevelTest()
        {
            FixedTimeStepSeries Data = new FixedTimeStepSeries()
            {
                TimeStepSize = TimeStepUnit.Month
            };

            Data.AddRange(new DateTime(2010, 1, 1), new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 });

            var actual = TSTools.ChangeZoomLevel(Data, TimeStepUnit.Year, true);

            Assert.AreEqual(78, actual.GetValue(Data.StartTime));
            actual = TSTools.ChangeZoomLevel(Data, TimeStepUnit.Year, false);
            Assert.AreEqual(6.5, actual.GetValue(Data.StartTime), 1e-10);
            Assert.AreEqual(Data.DeleteValue, actual.GetValue(Data.StartTime.AddDays(400)));
        }
Esempio n. 8
0
        public void AlignTest()
        {
            TimeStampSeries ts1 = new TimeStampSeries();
            TimeStampSeries ts2 = new TimeStampSeries();

            for (int i = 0; i < 100; i++)
            {
                ts1.Items.Add(new TimeStampValue(new DateTime(2010, 1, 1).AddDays(i), i));
                ts2.Items.Add(new TimeStampValue(new DateTime(2010, 2, 1).AddDays(i), i));
            }

            TimeStampValue[] t1;
            TimeStampValue[] t2;

            TSTools.AlignSeries(ts1, ts2, out t1, out t2);

            Assert.AreEqual(t1.Count(), t2.Count());
        }
Esempio n. 9
0
        public void SubstractTest()
        {
            FixedTimeStepSeries ts1 = new FixedTimeStepSeries();
            FixedTimeStepSeries ts2 = new FixedTimeStepSeries();

            ts1.StartTime = new DateTime(2010, 1, 1);
            ts1.AddRange(new double[] { 2, 3, 4 });
            ts1.TimeStepSize = TimeStepUnit.Month;

            ts2.StartTime = new DateTime(2010, 1, 1);
            ts2.AddRange(new double[] { 1, 1, 1 });
            ts2.TimeStepSize = TimeStepUnit.Month;


            FixedTimeStepSeries actual;

            actual = TSTools.Substract(ts1, ts2);
            Assert.AreEqual(1, actual.GetValue(new DateTime(2010, 1, 1)));
            Assert.AreEqual(2, actual.GetValue(new DateTime(2010, 2, 1)));
        }
        public void LoadTest()
        {
            FixedTimeStepSeries fxt = new FixedTimeStepSeries();

            fxt.StartTime    = new DateTime(1990, 1, 1);
            fxt.TimeStepSize = TimeStepUnit.Month;

            using (StreamReader sr = new StreamReader(@"D:\OldWork\HydroNumerics\Core\UnitTest\ts.csv"))
            {
                sr.ReadLine();
                while (!sr.EndOfStream)
                {
                    fxt.Items.Add(new ValueDouble(double.Parse(sr.ReadLine().Split(';')[1])));
                }
            }
            var yearly = TSTools.ChangeZoomLevel(fxt, TimeStepUnit.Year, true);

            Assert.AreEqual(4733123.6582, yearly.GetValue(new DateTime(2010, 5, 5)), 0.1);
            Assert.AreEqual(4733123.6582, yearly.GetValue(new DateTime(2010, 1, 1)), 0.1);
            Assert.AreEqual(4733123.6582, yearly.GetValue(new DateTime(2010, 12, 31)), 0.1);
        }
Esempio n. 11
0
        public void ChangeZoomLevelTest3()
        {
            FixedTimeStepSeries Data = new FixedTimeStepSeries()
            {
                TimeStepSize = TimeStepUnit.Month
            };

            Data.StartTime = new DateTime(2010, 1, 1);

            for (int i = 0; i < 36; i++)
            {
                Data.Add(i);
            }

            Assert.AreEqual(new DateTime(2012, 12, 1), Data.EndTime);

            var yearly = TSTools.ChangeZoomLevel(Data, TimeStepUnit.Year, false);

            Assert.AreEqual(5.5, yearly.Items[0].Value);
            Assert.AreEqual(17.5, yearly.Items[1].Value);
            Assert.AreEqual(29.5, yearly.Items[2].Value);
        }
        public void ConstructorTest()
        {
            TimeSpanSeries ts = new TimeSpanSeries();

            ts.Items.Add(new TimeSpanValue(new DateTime(2014, 1, 1, 12, 0, 0), new DateTime(2014, 1, 1, 12, 12, 0), 10));
            ts.Items.Add(new TimeSpanValue(new DateTime(2014, 1, 1, 13, 1, 0), new DateTime(2014, 1, 1, 13, 12, 0), 10));
            ts.Items.Add(new TimeSpanValue(new DateTime(2014, 1, 2, 12, 0, 0), new DateTime(2014, 1, 2, 12, 12, 0), 10));
            ts.Items.Add(new TimeSpanValue(new DateTime(2014, 1, 3, 12, 0, 0), new DateTime(2014, 1, 3, 12, 12, 0), 10));
            ts.Items.Add(new TimeSpanValue(new DateTime(2014, 1, 4, 12, 0, 0), new DateTime(2014, 1, 4, 12, 12, 0), 10));
            ts.Items.Add(new TimeSpanValue(new DateTime(2014, 1, 4, 12, 12, 0), new DateTime(2014, 1, 4, 12, 24, 0), 10));
            ts.Items.Add(new TimeSpanValue(new DateTime(2014, 1, 12, 12, 12, 0), new DateTime(2014, 1, 12, 12, 24, 0), 10));

            FixedTimeStepSeries fx = new FixedTimeStepSeries(ts, true);

            var daily = TSTools.ChangeZoomLevel(fx, TimeStepUnit.Day, true);

            Assert.AreEqual(5, daily.TimeSpanValues.Count());

            var monthly = TSTools.ChangeZoomLevel(fx, TimeStepUnit.Month, true);
            var yearly  = TSTools.ChangeZoomLevel(fx, TimeStepUnit.Year, true);

            Assert.AreEqual(ts.Sum, monthly.Sum);

            ts = new TimeSpanSeries()
            {
                TimeStepSize = TimeStepUnit.Minute
            };
            ts.Items.Add(new TimeSpanValue(new DateTime(2014, 1, 1, 12, 15, 0), new DateTime(2014, 1, 1, 12, 30, 0), 10));
            ts.Items.Add(new TimeSpanValue(new DateTime(2014, 1, 1, 12, 30, 0), new DateTime(2014, 1, 1, 12, 45, 0), 10));
            ts.Items.Add(new TimeSpanValue(new DateTime(2014, 1, 1, 14, 45, 0), new DateTime(2014, 1, 1, 15, 00, 0), 10));
            ts.GapFill(InterpolationMethods.DeleteValue, TimeSpan.FromMinutes(15));

            fx = new FixedTimeStepSeries(ts, false);

            Assert.AreEqual(10, fx.Items[0].Value);
        }