コード例 #1
0
        public void TestTimeSeries1()
        {
            long[] ifltab = new long[250];
            ZStructTimeSeriesWrapper tss1, tss2, tss3, tss4;

            float[]  fvalues = new float[200];
            double[] dvalues = new double[300];
            int[]    itimes = new int[300];
            string   cdate = new string('1', 13);
            string   ctime = new string('1', 10);
            int      valueTime, status;

            DSS.ZOpen(ref ifltab, "dotnet_example7.dss");
            for (int i = 0; i < 200; i++)
            {
                fvalues[i] = (float)i;
            }
            tss1 = DSS.ZStructTsNewRegFloats("/Basin/Location/Flow//1Hour/C Test/", ref fvalues, 200, "21Jan2001", "1200", "cfs", "Inst-Val");
            Assert.IsTrue(tss1.StartJulianDate == 36911);
            Assert.IsTrue(tss1.StartTimeSeconds == 43200);
            status = DSS.ZTsStore(ref ifltab, ref tss1, 0);
            // ZStructTimeSeriesWrapper tss;
            Assert.IsTrue(status == 0);
            for (int i = 0; i < 300; i++)
            {
                dvalues[i] = (double)i;
                itimes[i]  = i * 1440;
            }
            tss2 = DSS.ZStructTsNewIrregDoubles("/Basin/Location/Flow//~1Day/C Example/", ref dvalues, 300, ref itimes, 60, "20April2012", "cfs", "Inst-Val");
            Assert.IsTrue(HecDateTime.Undefined(tss2.StartJulianDate));
            Assert.IsTrue(tss2.StartTimeSeconds == -1);
            status = DSS.ZTsStore(ref ifltab, ref tss2, 0);
            Assert.IsTrue(status == 0);
            tss3 = DSS.ZStructTsNew("/Basin/Location/Flow/01Jan2001/1Hour/C Test/");
            Assert.IsTrue(HecDateTime.Undefined(tss3.StartJulianDate));
            Assert.IsTrue(tss3.StartTimeSeconds == -1);
            status = DSS.ZTsRetrieve(ref ifltab, ref tss3, -1, 1, 0);
            Assert.IsTrue(status == 0);
            valueTime = tss3.StartTimeSeconds;
            Assert.IsTrue(valueTime == 43200);
            Assert.IsTrue(tss3.NumberValues == 200);
            for (int i = 0; i < tss3.NumberValues; i++)
            {
                DSS.GetDateAndTime(valueTime, 1, tss3.StartJulianDate, ref cdate, 13, ref ctime, 10);
                Assert.IsTrue(tss3.FloatValues[i] == (double)i);
                if (i == 0)
                {
                    Assert.IsTrue(cdate == "21Jan2001");
                    Assert.IsTrue(ctime == "12:00:00");
                }
                else if (i == 8)
                {
                    Assert.IsTrue(cdate == "21Jan2001");
                    Assert.IsTrue(ctime == "20:00:00");
                }
                else if (i == 136)
                {
                    Assert.IsTrue(cdate == "27Jan2001");
                    Assert.IsTrue(ctime == "04:00:00");
                }
                valueTime += 3600;
            }
            tss4   = DSS.ZStructTsNewTimes("/Basin/Location/Flow//~1Day/C Example/", "19April2012", "2400", "01July2013", "2400");
            status = DSS.ZTsRetrieve(ref ifltab, ref tss4, 0, 2, 0);
            Assert.IsTrue(status == 0);
            for (int i = 0; i < tss4.NumberValues; i++)
            {
                DSS.GetDateAndTime(tss4.Times[i], tss4.TimeGranularitySeconds, tss4.JulianBaseDate, ref cdate, 13, ref ctime, 10);
                Assert.IsTrue(tss4.DoubleValues[i] == (double)i);
                Assert.IsTrue(ctime == "2400");
                if (i == 0)
                {
                    Assert.IsTrue(cdate == "19Apr2012");
                }

                else if (i == 8)
                {
                    Assert.IsTrue(cdate == "27Apr2012");
                }

                else if (i == 153)
                {
                    Assert.IsTrue(cdate == "19Sep2012");
                }
            }
            DSS.ZClose(ifltab);
        }