Exemplo n.º 1
0
        public void CompareStreamAndLakes()
        {
            var StreamNetwork = NetworkBuilder.CreateBranch(10);
            var LakeNetwork   = NetworkBuilder.CreateConnectedLakes(10);

            Model Streams = new Model();

            Streams._waterBodies.AddRange(StreamNetwork.Cast <IWaterBody>());
            Model Lakes = new Model();

            Lakes._waterBodies.AddRange(LakeNetwork.Cast <IWaterBody>());

            SinkSourceBoundary b1 = new SinkSourceBoundary(100);

            StreamNetwork.First().Sources.Add(b1);
            LakeNetwork.First().Sources.Add(b1);

            Stopwatch SW  = new Stopwatch();
            Stopwatch SW2 = new Stopwatch();


            DateTime Start = new DateTime(2000, 1, 1);
            DateTime End   = new DateTime(2000, 1, 10);

            Streams.SetState("Initial", Start, new WaterPacket(1));
            Lakes.SetState("Initial", Start, new WaterPacket(1));

            SW.Start();
            Streams.MoveInTime(End, TimeSpan.FromHours(5));
            SW.Stop();
            SW2.Start();
            Lakes.MoveInTime(End, TimeSpan.FromHours(5));
            SW2.Stop();

            TimespanSeries TS1 = StreamNetwork.Last().Output.Items.First() as TimespanSeries;
            TimespanSeries TS2 = LakeNetwork.Last().Output.Items.First() as TimespanSeries;

            for (int i = 0; i < TS1.Items.Count; i++)
            {
                Assert.AreEqual(TS1.Items[i].Value, TS2.Items[i].Value, 0.000001);
                Assert.AreEqual(TS1.Items[i].StartTime, TS2.Items[i].StartTime);
            }
        }
Exemplo n.º 2
0
        public void MoveInTimeTest1()
        {
            var Network = NetworkBuilder.CreateBranch(10);


            Network.First().Sources.Add(new SinkSourceBoundary(1));

            Model target = new Model();

            target._waterBodies.AddRange(Network.Cast <IWaterBody>());

            DateTime Start    = new DateTime(2010, 1, 1);
            DateTime End      = new DateTime(2010, 1, 10);
            TimeSpan TimeStep = new TimeSpan(1, 0, 0, 0);

            target.SetState("Initial", Start, new WaterPacket(1));
            target.MoveInTime(End, TimeStep);

            Assert.AreEqual(Network.First().CurrentStoredWater.Volume, Network.Last().CurrentStoredWater.Volume, 0.0001);
            Assert.AreEqual(End, Network.First().CurrentTime);
        }