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); } }
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); }