Exemplo n.º 1
0
    static void Main(string[] args)
    {
        List <int> input = Console.ReadLine().Split(new string[] { ",", " " }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();
        Lake <int> lake  = new Lake <int>(input);

        Console.WriteLine(string.Join(", ", lake));
    }
Exemplo n.º 2
0
    static void Main()
    {
        var input = Console.ReadLine()
                    .Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries)
                    .Select(int.Parse)
                    .ToList();

        var lake = new Lake <int>(input);

        var jumps = new Queue <int>();

        var index = 0;

        foreach (var stoneNum in lake)
        {
            if (index % 2 == 0)
            {
                jumps.Enqueue(stoneNum);
            }
            index++;
        }

        index = input.Count % 2 == 0 ? 0 : 1;
        foreach (var stoneNum in lake.Reverse())
        {
            if (index % 2 == 0)
            {
                jumps.Enqueue(stoneNum);
            }
            index++;
        }

        Console.WriteLine(string.Join(", ", jumps));
    }
        public void GetLakeFromService_AndReturnDefaultView()
        {
            // Arrange
            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();

            var mockedLake = new Lake()
            {
                Name = "Test lake", Info = "Test info"
            };
            var mockedLakeService = new Mock <ILakeService>();

            mockedLakeService.Setup(s => s.FindByName(It.IsAny <string>())).Returns(mockedLake).Verifiable();

            var mockedLocationService = new Mock <ILocationService>();

            var mockedFishService = new Mock <IFishService>();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);

            // Act
            var result = controller.Edit(It.IsAny <string>()) as ViewResult;
            var model  = result.ViewData.Model as EditLakeViewModel;

            // Assert
            Assert.AreEqual("", result.ViewName);
            Assert.AreEqual(mockedLake.Name, model.LakeName);
            Assert.AreEqual(mockedLake.Info, model.LakeInfo);
        }
Exemplo n.º 4
0
    public static void Main()
    {
        int[] stones = Console.ReadLine().Split(", ").Select(int.Parse).ToArray();
        var   lake   = new Lake <int>(stones);

        Console.WriteLine(string.Join(", ", lake));
    }
        public void AddLakeToDbContext()
        {
            // Arrange
            var lake = new Lake()
            {
                Name = "Test lake"
            };
            var mockedCollection = new List <Lake>();
            var mockedDbSet      = MockDbSet.Mock(mockedCollection.AsQueryable());

            mockedDbSet.Setup(d => d.Add(It.IsAny <Lake>())).Callback <Lake>((l) => mockedCollection.Add(l));

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.Lakes).Returns(mockedDbSet.Object);

            var lakeService = new LakeService(mockedDbContext.Object);

            // Act
            lakeService.Add(lake);

            // Assert
            Assert.IsTrue(mockedCollection.Count == 1);
            Assert.AreEqual(lake, mockedCollection[0]);
        }
Exemplo n.º 6
0
        private void lbl_start_Click(object sender, EventArgs e)
        {
            ReservoirCreator classCreator = type ? new Water.LakeCreator(): (ReservoirCreator)(new Water.PondCreator());
            var obj = classCreator.reservoir();

            if (obj.GetType().ToString() == "Water.Lake")
            {
                Lake lake = new Lake();
                lake.Name        = txt_name.Text;
                lake.Square      = int.Parse(txt_sq.Text);
                lake.Number      = int.Parse(txt_river.Text);
                lake.WeightWater = int.Parse(txt_weight.Text);
                lake.MaxDepth    = int.Parse(txt_.Text);
                reservoirList.Add(lake);
            }

            else if (obj.GetType().ToString() == "Water.Pond")
            {
                Pond lake = new Pond();
                lake.Name        = txt_name.Text;
                lake.Square      = int.Parse(txt_sq.Text);
                lake.Number      = int.Parse(txt_river.Text);
                lake.WeightWater = int.Parse(txt_weight.Text);
                lake.MaxDepth    = int.Parse(txt_.Text);
                reservoirList.Add(lake);
            }

            lbl_see.Visible = true;
        }
Exemplo n.º 7
0
        public void SetNewValuesToLake_AndSetSuccessMessage_InTempData_IfEditNotFailed()
        {
            // Arrange
            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();

            var mockedLake = new Lake()
            {
                Name = "Test lake", Info = "Test info"
            };
            var mockedLakeService = new Mock <ILakeService>();

            mockedLakeService.Setup(s => s.FindByName(It.IsAny <string>())).Returns(mockedLake).Verifiable();
            mockedLakeService.Setup(s => s.Save()).Verifiable();

            var mockedLocationService = new Mock <ILocationService>();
            var mockedFishService     = new Mock <IFishService>();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);
            var model      = new EditLakeViewModel()
            {
                LakeName = "Test name", OldName = "Test name", LakeInfo = "Test info"
            };

            // Act
            var result = controller.Edit(model, model.OldName) as ViewResult;

            // Assert
            Assert.AreEqual(model.LakeName, mockedLake.Name);
            Assert.AreEqual(model.LakeInfo, mockedLake.Info);
            Assert.AreEqual(GlobalMessages.EditLakeSuccessMessage, result.TempData[GlobalMessages.SuccessEditKey]);

            mockedLakeService.Verify(s => s.FindByName(It.IsAny <string>()), Times.Once);
            mockedLakeService.Verify(s => s.Save(), Times.Once);
        }
Exemplo n.º 8
0
        public ActionResult CreateLake(Lake model, List <String> Fishes, List <String> Boats)
        {
            if (model.Id != 0 && IsAdmin)
            {
                var lake = db.Lakes.First(x => x.Id == model.Id);
                lake.Name        = model.Name;
                lake.Description = model.Description;
                lake.Image       = model.Image;

                if (Fishes != null)
                {
                    lake.Fishes.RemoveAll(x => x.Id != -1);
                    Fishes?.ForEach(x => lake.Fishes.Add(db.Fishes.First(y => y.Name == x)));
                }
                if (Boats != null)
                {
                    lake.Boats.RemoveAll(x => x.Id != -1);
                    Boats?.ForEach(x => lake.Boats.Add(db.Boats.First(y => y.Name == x)));
                }

                db.SaveChanges();
            }
            else if (db.Lakes.FirstOrDefault(x => x.Name == model.Name) == null)
            {
                Fishes?.ForEach(x => model.Fishes.Add(db.Fishes.First(y => y.Name == x)));
                Boats?.ForEach(x => model.Boats.Add(db.Boats.First(y => y.Name == x)));
                db.Lakes.Add(model);
                db.SaveChanges();

                return(RedirectToAction("AdminPanel"));
            }
            return(RedirectToAction($"Lake/{model.Id}"));
        }
Exemplo n.º 9
0
    static void Main() // 100/100 - !!!
    {
        var input = Console.ReadLine().Split(", ").Select(int.Parse).ToArray();
        var lake  = new Lake(input);

        Console.WriteLine(string.Join(", ", lake));
    }
Exemplo n.º 10
0
        public void Vedsted3()
        {
            WaterPacket GroundWater = new WaterPacket(1);

            GroundWater.AddChemical(ChemicalFactory.Instance.GetChemical(ChemicalNames.Radon), 0.01);

            Model m       = ModelFactory.GetModel(testDataPath + "VedstedNoGroundwater.xml");
            Lake  Vedsted = (Lake)m._waterBodies[0];

            Vedsted.Precipitation.First().WaterSample.IDForComposition = 2;
            Vedsted.Sources.First().WaterSample.IDForComposition = 3;

            GroundWaterBoundary Inflow = new GroundWaterBoundary(Vedsted, 1e-6, 1, 46.7, XYPolygon.GetSquare(Vedsted.Area / 2));

            Inflow.Name        = "Inflow";
            Inflow.ID          = 4;
            Inflow.WaterSample = GroundWater;
            Inflow.WaterSample.IDForComposition = 4;

            GroundWaterBoundary Outflow = new GroundWaterBoundary(Vedsted, 1e-6, 1, 44.7, XYPolygon.GetSquare(Vedsted.Area / 2));

            Outflow.Name        = "Outflow";
            Outflow.ID          = 5;
            Outflow.WaterSample = GroundWater;

            Vedsted.GroundwaterBoundaries.Add(Inflow);
            Vedsted.GroundwaterBoundaries.Add(Outflow);

            DateTime End = new DateTime(2009, 12, 31);

            m.MoveInTime(End, TimeSpan.FromDays(30));

            ModelFactory.SaveModel(testDataPath + "Vedsted3.xml", m);
        }
Exemplo n.º 11
0
        public void RoutingOfRecievedWaterTest()
        {
            Lake S = new Lake("L", 100);

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

            S.SetState("Initial", Start, new WaterPacket(100));
            Lake storage = new Lake("storage", 10000);

            S.AddDownStreamWaterBody(storage);

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

            WaterPacket WaterProvider = new WaterPacket(2, 200);

            IWaterPacket actual;

            S.AddWaterPacket(DateTime.Now, DateTime.Now, WaterProvider.DeepClone(200));

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

            actual = S.CurrentStoredWater;
            Assert.AreEqual(100, actual.Volume);

            Assert.AreEqual(200, storage.CurrentStoredWater.Volume);
            Assert.AreEqual(200.0 / 300.0, storage.CurrentStoredWater.Composition[2], 0.000001);

            //In the next timestep there will be no water to route
            S.Update(S.CurrentTime.Add(ts));
            Assert.AreEqual(200, storage.CurrentStoredWater.Volume);
            Assert.AreEqual(200.0 / 300.0, storage.CurrentStoredWater.Composition[2], 0.000001);

            Assert.AreEqual(1, S.Output.GetStorageTime(Start, Start.AddHours(2)).TotalHours, 0.001);
        }
Exemplo n.º 12
0
        public void RadonDeg()
        {
            var rn = ChemicalFactory.Instance.GetChemical(ChemicalNames.Radon);
            var cl = ChemicalFactory.Instance.GetChemical(ChemicalNames.Cl);

            DateTime Start = new DateTime(2005, 1, 1);
            Lake     L     = new Lake("test", 10);

            L.SetState("Initial", Start, new WaterPacket(0));
            SinkSourceBoundary sb = new SinkSourceBoundary(10.0 / 86400);

            ((WaterPacket)sb.WaterSample).AddChemical(rn, 2.3);
            ((WaterPacket)sb.WaterSample).AddChemical(cl, 2.3);
            L.Sources.Add(sb);
            L.Output.LogAllChemicals = true;
            L.Output.LogComposition  = true;

            Model M = new Model();

            M._waterBodies.Add(L);
            M.Save("temp.xml");

            L.Update(Start.AddDays(1));

            Assert.AreEqual(2.3, L.Output.ChemicalsToLog[cl].GetSiValue(L.CurrentTime), 1e-5);
            Assert.AreNotEqual(2.3, L.Output.ChemicalsToLog[rn].GetSiValue(L.CurrentTime), 1e-5);

            var  M2 = ModelFactory.GetModel("temp.xml");
            Lake L2 = M2._waterBodies.First() as Lake;

            L2.Update(Start.AddDays(1));

            Assert.AreEqual(2.3, L2.Output.ChemicalsToLog[cl].GetSiValue(L2.CurrentTime), 1e-5);
            Assert.AreNotEqual(2.3, L2.Output.ChemicalsToLog[rn].GetSiValue(L2.CurrentTime), 1e-5);
        }
    // Start is called before the first frame update
    void Start()
    {
        InitializeTerrainVariables();

        for (int i = 0; i < numMountains; i++)
        {
            GenerateMountain(180);
        }

        for (int i = 0; i < numParentLakes; i++)
        {
            Lake parentLake = GenerateLakeParent(0.0f);
            for (int j = 0; j < numChildLakes; j++)
            {
                Lake childLake = GenerateLakeChild(0.05f, parentLake);
                for (int k = 0; k < numChildOfChildLakes; k++)
                {
                    Lake childchildLake = GenerateLakeChild(0.1f, childLake);
                    GenerateRiver(childLake, childchildLake);
                }

                GenerateRiver(parentLake, childLake);
            }
        }

        SetTerrainHeight();
    }
Exemplo n.º 14
0
    public static void Main()
    {
        Lake lake = new Lake(Console.ReadLine().Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList());

        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine(string.Join(", ", lake));
    }
Exemplo n.º 15
0
    static void Main(string[] args)
    {
        var input  = Console.ReadLine().Split(", ").Select(int.Parse).ToList();
        var stones = new Lake <int>(input);

        Console.WriteLine(string.Join(", ", stones));
    }
Exemplo n.º 16
0
        public void RunOnstoredData()
        {
            Lake L = new Lake("Test", 1000);
            GroundWaterBoundary gwb = new GroundWaterBoundary(L, 14 - 5, 1, 10, (XYPolygon)L.Geometry);

            L.WaterLevel = 9;
            DateTime Start = new DateTime(2000, 1, 1);
            DateTime End   = new DateTime(2000, 2, 1);

            L.GroundwaterBoundaries.Add(gwb);
            Model m = new Model();

            m._waterBodies.Add(L);
            m.SetState("Initial", Start, new WaterPacket(1));
            m.MoveInTime(End, TimeSpan.FromDays(1));

            DateTime Mid = new DateTime(2000, 1, 15);

            double flow = L.Output.GroundwaterInflow.GetValue(Mid);

            gwb.FlowType = GWType.Flow;
            gwb.HydraulicConductivity = 1;
            gwb.GroundwaterHead       = 1;

            m.RestoreState("Initial");
            m.MoveInTime(End, TimeSpan.FromDays(1));
            Assert.AreEqual(flow, L.Output.GroundwaterInflow.GetValue(Mid));
        }
Exemplo n.º 17
0
        public void RoutingOfInflow()
        {
            Stream   S     = new Stream("S", 10, 1, 1);
            DateTime Start = DateTime.Now;

            S.SetState("Initial", Start, new WaterPacket(1, 10));

            Stream s2 = new Stream("s2", 10, 1, 1);


            Lake Storage = new Lake("storage", 100000);

            S.AddDownStreamWaterBody(s2);
            s2.AddDownStreamWaterBody(Storage);

            SinkSourceBoundary FB = new SinkSourceBoundary(5.0 / 60);

            FB.WaterSample = new WaterPacket(5, 5);

            S.Sources.Add(FB);

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

            WaterPacket WaterProvider = new WaterPacket(2, 5);

            S.AddWaterPacket(Start, Start.AddDays(1), WaterProvider.DeepClone(15));
            S.Update(S.CurrentTime.Add(ts));
            s2.Update(S.CurrentTime.Add(ts));

            Assert.AreEqual(10, S.CurrentStoredWater.Volume, 0.00001);
            Assert.AreEqual(0.137, S.CurrentStoredWater.Composition[5], 0.001);
            Assert.AreEqual(0.863, S.CurrentStoredWater.Composition[2], 0.001);
            Assert.AreEqual(0.1309, s2.CurrentStoredWater.Composition[1], 0.001);
        }
Exemplo n.º 18
0
    public static void Main()
    {
        int[] stones = Console.ReadLine().Split(new [] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
        Lake  lake   = new Lake(stones);

        Console.WriteLine(string.Join(", ", lake));
    }
Exemplo n.º 19
0
 public PhotoManager()
 {
     InitializeComponent();
     _lake = Lake.FindAll()[0];
     LoadBoats();
     LoadPhotos();
 }
Exemplo n.º 20
0
        public void SetErrorMessage_InTempData_IfEditFailed()
        {
            // Arrange
            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();

            var mockedLake = new Lake()
            {
                Name = "Test lake", Info = "Test info"
            };
            var mockedLakeService = new Mock <ILakeService>();

            mockedLakeService.Setup(s => s.FindByName(It.IsAny <string>())).Returns(mockedLake).Verifiable();
            mockedLakeService.Setup(s => s.Save()).Throws <Exception>();

            var mockedLocationService = new Mock <ILocationService>();
            var mockedFishService     = new Mock <IFishService>();

            var controller = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);
            var model      = new EditLakeViewModel()
            {
                LakeName = "Test name", OldName = "Test name", LakeInfo = "Test info"
            };

            // Act
            var result = controller.Edit(model, model.OldName) as ViewResult;

            // Assert
            Assert.AreEqual(GlobalMessages.EditLakeFailMessage, result.TempData[GlobalMessages.FailKey]);
        }
Exemplo n.º 21
0
    public static void Main()
    {
        var input = Console.ReadLine().Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
        var lake  = new Lake <int>(input);

        Console.WriteLine(string.Join(", ", lake));
    }
Exemplo n.º 22
0
 public Map()
 {
     Forest   = new Forest();
     Mountain = new Mountain();
     Lake     = new Lake();
     Castle   = new Castle();
     Cave     = new Cave();
 }
Exemplo n.º 23
0
    static void Main(string[] args)
    {
        int[] numbers = Console.ReadLine().Split(new[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();

        Lake lake = new Lake(numbers);

        lake.Jump();
    }
Exemplo n.º 24
0
    public static void Main(string[] args)
    {
        var input     = Console.ReadLine();
        var separated = input.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
        var lake      = new Lake(separated);

        Console.WriteLine(string.Join(", ", lake));
    }
Exemplo n.º 25
0
    static void Main(string[] args)
    {
        List <int> listOfStones = Console.ReadLine().Split(new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();

        Lake lakeList = new Lake(listOfStones);

        Console.WriteLine(string.Join(", ", lakeList));
    }
        public static void Main()
        {
            var input = Console.ReadLine().Split(", ", StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();

            var numbers = new Lake(input);

            Console.WriteLine(string.Join(", ", numbers));
        }
Exemplo n.º 27
0
    public static void Main()
    {
        var stones = Console.ReadLine().Split(", ").Select(int.Parse).ToList();

        Lake lake = new Lake(stones);

        Console.WriteLine(string.Join(", ", lake));
    }
Exemplo n.º 28
0
        private static void Main(string[] args)
        {
            var stones = Console.ReadLine().Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse);

            Lake lake = new Lake(stones);

            Console.WriteLine(string.Join(", ", lake));
        }
Exemplo n.º 29
0
 public void MergeInto(Lake lake)
 {
     Lakes.Remove(this);
     foreach (int i in this.Points)
     {
         lake.Points.Add(i);
     }
 }
    public static void Main()
    {
        var numbers = Console.ReadLine().Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse);

        var stones = new Lake(numbers.ToList());

        Console.WriteLine(string.Join(", ", stones));
    }
Exemplo n.º 31
0
    public void TestMethod1()
    {
      Lake L = new Lake("Deep lake", XYPolygon.GetSquare(10000));
      L.Depth = 4;
      L.Output.LogAllChemicals = true;

      Lake L2 = new Lake("Shallow lake", XYPolygon.GetSquare(40000));
      L2.Depth = 1;
      L2.Output.LogAllChemicals = true;

      SinkSourceBoundary flow = new SinkSourceBoundary(L.Volume / (15.0 * 86400.0));

      L.Sources.Add(flow);
      L2.Sources.Add(flow);

      Chemical rn = ChemicalFactory.Instance.GetChemical(ChemicalNames.Radon);
      Chemical cl = ChemicalFactory.Instance.GetChemical(ChemicalNames.Cl);
      WaterPacket groundwater = new WaterPacket(1);
      groundwater.SetConcentration(rn, 200);
      groundwater.SetConcentration(cl, 200);
      SinkSourceBoundary gwflow = new SinkSourceBoundary(L.Volume / (15.0 * 86400.0));
      gwflow.WaterSample = groundwater;

      L.Sources.Add(gwflow);
      L2.Sources.Add(gwflow);

      Model M = new Model();
      M.WaterBodies.Add(L);
      M.WaterBodies.Add(L2);

      DateTime start = new DateTime(2010,1,1);

      M.SetState("Initial", start, new WaterPacket(1));
      M.MoveInTime(new DateTime(2010, 12, 31), TimeSpan.FromDays(5));
      M.Save(@"..\..\..\TestData\Radon.xml");

    }
Exemplo n.º 32
0
    public void TracerTest()
    {
      int count = 3;
      double length = 10870;
      DateTime Start= new DateTime(2000,1,1);

      List<Lake> lakes = NetworkBuilder.CreateConnectedLakes(count);
      
      foreach (Lake L in lakes)
      {
        L.SurfaceArea = XYPolygon.GetSquare(length / count);
        L.Depth = 1;
        L.SetState("Initial",Start, new WaterPacket(L.Volume));
      }
      Chemical c = ChemicalFactory.Instance.GetChemical(ChemicalNames.Cl);

      SinkSourceBoundary fb = new SinkSourceBoundary(10870.0 / (8.49 * 3600));
      fb.WaterSample = new WaterPacket(1);
      lakes.First().Sources.Add(fb);

      WaterPacket plug = new WaterPacket(1);
      plug.AddChemical(c, 10000);
      lakes.First().AddWaterPacket(Start, Start.AddHours(1), plug.DeepClone());

      lakes.First().Output.LogChemicalConcentration(c);

      lakes.Last().Output.LogChemicalConcentration(c);


      Stream us = new Stream("us",1, 1, 1);
      us.Sources.Add(fb);
      Stream s = new Stream("s",1000, 1, 1);

      Lake L2 = new Lake("L2",870);

      Stream s1 = new Stream("s1", 9000, 1, 1);

      s.AddWaterPacket(Start, Start.AddSeconds(1), plug.DeepClone());
      s1.Output.LogChemicalConcentration(c);

      us.AddDownStreamWaterBody(s);
      s.AddDownStreamWaterBody(L2);
      L2.AddDownStreamWaterBody(s1);


      Model m = new Model();
      m._waterBodies.AddRange(lakes.Cast<IWaterBody>());

      m._waterBodies.Add((IWaterBody)us);
      m._waterBodies.Add((IWaterBody)s);
      m._waterBodies.Add((IWaterBody)L2);
      m._waterBodies.Add((IWaterBody)s1);

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



      m.MoveInTime(Start.AddHours(15), TimeSpan.FromMinutes(1));

      lakes.Last().Output.Save(@"C:\temp\LastLake.xts");
      s1.Output.Save(@"C:\temp\Stream.xts");


      int n = 15;
      List<IWaterBody> wbs = NetworkBuilder.CreateCombo(n, 10870 / n/2.0);
      foreach (IWaterBody wb in wbs)
      {
        wb.SetState("Initial", Start, new WaterPacket(wb.Volume));
      }

      wbs.First().AddWaterPacket(Start, Start.AddHours(1), plug.DeepClone());
      us.AddDownStreamWaterBody(wbs.First());
      us.RestoreState("Initial");

      m._waterBodies.Clear();
      m._waterBodies.Add(us);
      m._waterBodies.AddRange(wbs);

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

      ((Stream)wbs.Last()).Output.LogChemicalConcentration(c);

      m.MoveInTime(Start.AddHours(15), TimeSpan.FromMinutes(1));

      ((Stream)wbs.Last()).Output.Save(@"C:\temp\Stream.xts");
    }
Exemplo n.º 33
0
    public void TestMethod1()
    {
      Model M = new Model();
      M.Name = "Cook";

      WaterPacket HyporhericWater = new WaterPacket(1);
      HyporhericWater.AddChemical(ChemicalFactory.Instance.GetChemical(ChemicalNames.Radon), 0.6 / HyporhericWater.Volume);

      for (int i = 0; i < 10; i++)
      {
        Lake s1 = new Lake("s" + i, XYPolygon.GetSquare(50 * 2));
        s1.Depth = 0.3;
        StagnantExchangeBoundary seb = new StagnantExchangeBoundary(s1.Volume / 20000);
        seb.WaterSample = HyporhericWater.DeepClone(s1.Area * 0.2 * 0.4);
        seb.Output.LogAllChemicals = true;
        s1.Output.LogAllChemicals = true;
        s1.Sinks.Add(seb);
        s1.Sources.Add(seb);
        if (i > 0)
          M._waterBodies[i - 1].AddDownStreamWaterBody(s1);

        M._waterBodies.Add(s1);
      }

      //Bromide injection
      TimespanSeries ts = new TimespanSeries();
      ts.AddSiValue(DateTime.MinValue, new DateTime(2005, 10, 18, 12, 0, 0), 0);
      ts.AddSiValue(new DateTime(2005, 10, 18, 12, 0, 0), new DateTime(2005, 10, 18, 12, 40, 0), 0.001 * 60);
      ts.AddSiValue(new DateTime(2005, 10, 18, 12, 40, 0), DateTime.MaxValue, 0);
      SinkSourceBoundary Bromide = new SinkSourceBoundary(ts);
      WaterPacket P = new WaterPacket(1);
      P.AddChemical(new Chemical("Bromide", 1), 1.13);
      Bromide.WaterSample = P;

      //SF6 injection
      TimespanSeries ts2 = new TimespanSeries();
      ts2.AddSiValue(DateTime.MinValue, new DateTime(2005, 10, 15, 12, 0, 0), 0);
      ts2.AddSiValue(new DateTime(2005, 10, 15, 12, 0, 0), new DateTime(2005, 10, 19, 12, 0, 0), 1e-6);
      ts2.AddSiValue(new DateTime(2005, 10, 19, 12, 0, 0), DateTime.MaxValue, 0);
      SinkSourceBoundary SF6 = new SinkSourceBoundary(ts2);
      WaterPacket SF6w = new WaterPacket(1);
      SF6w.AddChemical(new Chemical("SF6", 1), 1.13);
      SF6.WaterSample = SF6w;

      M._waterBodies.First().Sources.Add(Bromide);
      M._waterBodies.First().Sources.Add(SF6);
      M._waterBodies.First().Sources.Add(new SinkSourceBoundary(0.2));

      DateTime Start = new DateTime(2005, 10, 13);
      DateTime End = new DateTime(2005, 10, 19);

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

      M.MoveInTime(new DateTime(2005, 10, 18, 12, 0, 0), TimeSpan.FromHours(2));
      M.MoveInTime(new DateTime(2005, 10, 18, 13, 0, 0), TimeSpan.FromHours(0.02));
      M.MoveInTime(End, TimeSpan.FromHours(2));
      M.Save(@"..\..\..\TestData\CookEtAl.xml");

      M.RestoreState("Initial");
      TimespanSeries ts3 = new TimespanSeries();
      ts3.AddSiValue(DateTime.MinValue, new DateTime(2005, 10, 16, 12, 0, 0), 0);
      ts3.AddSiValue(new DateTime(2005, 10, 16, 12, 0, 0), new DateTime(2005, 10, 17, 0, 0, 0), 0.4);
      ts3.AddSiValue(new DateTime(2005, 10, 17, 0, 0, 0), DateTime.MaxValue, 0);
      M._waterBodies.First().Sources.Add(new SinkSourceBoundary(ts3));
      M.MoveInTime(new DateTime(2005, 10, 18, 12, 0, 0), TimeSpan.FromHours(2));
      M.MoveInTime(new DateTime(2005, 10, 18, 13, 0, 0), TimeSpan.FromHours(0.02));
      M.MoveInTime(End, TimeSpan.FromHours(2));
      M.Save(@"..\..\..\TestData\CookEtAl2.xml");
    }