public void GroundwaterBoundaryTest()
    {
      Stream stream = new Stream("S", 1,1,1);
      stream.WaterLevel =2;
      GroundWaterBoundary gwb = new GroundWaterBoundary(stream, 2, 4, 5, XYPolygon.GetSquare(23) );
      gwb.WaterSample = new WaterPacket(1);

      GroundWaterBoundary gwb2 = (GroundWaterBoundary)ReadWrite(gwb);
      Assert.AreEqual(gwb.IsSource(DateTime.Now), gwb2.IsSource(DateTime.Now));
      WaterEquals(gwb.GetSourceWater(DateTime.Now, TimeSpan.FromDays(1)), gwb2.GetSourceWater(DateTime.Now, TimeSpan.FromDays(1)));
      
    }
Esempio n. 2
0
    public void RoutingOfGroundwaterTest()
    {

      Lake S = new Lake("L",100);

      S.SetState("Initial", DateTime.Now, new WaterPacket(100));

      Lake storage = new Lake("Storage",10000);
      S.AddDownStreamWaterBody(storage);

      TimeSpan ts = new TimeSpan(1,0,0);

      int Id = 2;
      IWaterPacket expected = new WaterPacket(Id, 200);
      IWaterPacket actual;

      S.WaterLevel = 8;
      GroundWaterBoundary b = new GroundWaterBoundary(S, 0.001, 100, 10, XYPolygon.GetSquare(2.5));
      b.WaterSample = expected;
      S.GroundwaterBoundaries.Add(b);
      S.Update(S.CurrentTime.Add(ts));

      actual = storage.CurrentStoredWater;
      double ExpectedVolume = b.GetSourceWater(DateTime.Now, ts).Volume;

      Assert.AreEqual(expected.Composition.Keys.First(), actual.Composition.Keys.First());
      Assert.AreEqual(ExpectedVolume, actual.Volume, 0.000001);

      S.Update(S.CurrentTime.Add(new TimeSpan(2,0,0)));

      actual = storage.CurrentStoredWater;
      Assert.AreEqual(expected.Composition.Keys.First(), actual.Composition.Keys.First());
      Assert.AreEqual(0.54, actual.Volume, 0.000001);

      S.AddWaterPacket(DateTime.Now, DateTime.Now, expected);
      S.Update(S.CurrentTime.Add(new TimeSpan(2, 0, 0)));
      actual = storage.CurrentStoredWater;

      Assert.AreEqual(200.9, actual.Volume, 0.000001);


    }
Esempio n. 3
0
    public void RoutingOfGroundwaterTest()
    {

      Stream S = new Stream("S", 100,1,1);

      S.SetState("Initial", DateTime.Now, new WaterPacket(100));

      TimeSpan ts = new TimeSpan(0,1,0);

      int Id = 2;
      IWaterPacket expected = new WaterPacket(Id, 200);
      IWaterPacket actual;

      S.WaterLevel = 8;
      GroundWaterBoundary b = new GroundWaterBoundary(S, 0.001, 10, 100, XYPolygon.GetSquare(250));
      b.WaterSample = expected;
      S.GroundwaterBoundaries.Add(b);
      S.Update(S.CurrentTime.Add(ts));

      actual = S.CurrentStoredWater;
      double ExpectedVolume = b.GetSourceWater(DateTime.Now, ts).Volume;

      Assert.AreEqual(expected.Composition.Keys.First(), actual.Composition.Keys.First());
      Assert.AreEqual(100, actual.Volume, 0.000001);

      S.Update(S.CurrentTime.Add(ts));

      actual = S.CurrentStoredWater;
      Assert.AreEqual(expected.Composition.Keys.First(), actual.Composition.Keys.First());
      Assert.AreEqual(100, actual.Volume, 0.000001);

      S.AddWaterPacket(DateTime.Now, DateTime.Now, expected);
      S.Update(S.CurrentTime.Add(ts));
      actual = S.CurrentStoredWater;

      Assert.AreEqual(100, actual.Volume, 0.000001);

    }