public void SingleEnsemble() { var fn = @"c:\temp\ensemble-single.h5"; File.Delete(fn); string fileName = Path.Combine(EnsembleTester.CacheDir, "test.csv"); RfcCsvFile csv = new RfcCsvFile(fileName); float[,] data = csv.GetEnsemble("SCRN2"); Watershed ws = new Watershed("simple"); DateTime t = DateTime.Now.Date.AddHours(12); ws.AddForecast("scrn2", t, data, new DateTime[] { t }); H5Assist.H5Writer h5 = new H5Assist.H5Writer(fn); HDF5Ensemble.Write(h5, ws); var w = HDF5Ensemble.Read(h5, "simple"); Assert.AreEqual(1, w.Locations.Count); var ensemble = w.Locations[0].Forecasts[0].Ensemble; Assert.AreEqual(337, ensemble.GetLength(1)); Assert.AreEqual(59, ensemble.GetLength(0)); Assert.AreEqual(-59.0f, ensemble[58, 0]); Assert.AreEqual(-59.1f, ensemble[58, 1]); }
public void ProfileTesting() { var fn = @"C:\temp\dss7_profile_ensemble.dss"; File.Delete(fn); string csvFilename = Path.Combine(EnsembleTester.CacheDir, "test.csv"); RfcCsvFile csv = new RfcCsvFile(csvFilename); float[,] ensemble = null; csv.GetEnsemble("SCRN2", ref ensemble); Watershed ws = new Watershed("test"); DateTime issueDate = new DateTime(2001, 11, 15, 12, 0, 0); ws.AddForecast("SCRN2", issueDate, ensemble, csv.TimeStamps); DssEnsemble.WriteToTimeSeriesProfiles(fn, ws); var ws2 = DssEnsemble.ReadTimeSeriesProfiles("test", issueDate, issueDate, fn); Assert.AreEqual(1, ws2.Locations.Count); var data = ws2.Locations[0].Forecasts[0].Ensemble; Assert.AreEqual(-1.0f, data[0, 0]); Assert.AreEqual(-2.1f, data[0, 1]); Assert.AreEqual(-3.1f, data[0, 2]); Assert.AreEqual(-59.0f, data[58, 0]); Assert.AreEqual(-59.1f, data[58, 1]); Assert.AreEqual(-59.2f, data[58, 2]); }
public void ReadAllWatersheds() { DataSet watershedDataSet = ClassFunctions.GetWatersheds(); List <Watershed> result = new List <Watershed>(); for (int i = 0; i < watershedDataSet.Tables[0].Rows.Count; i++) { DataRow dataRow = watershedDataSet.Tables[0].Rows[i]; Watershed watershed = new Watershed { WatershedID = Convert.ToInt32(dataRow["WatershedID"]), WatershedName = Convert.ToString(dataRow["WatershedName"]) }; result.Add(watershed); } if (result != null) { BuildResponse(200, result); } else { BuildResponse(500, null); } }
public void LocationTemperaturesCsvStartEnd(int locationId, DateTime startDate, DateTime endDate) { Location location = ClassFunctions.ReadLocation(locationId); Watershed watershed = ClassFunctions.ReadWatershed(location.WatershedID); string formattedLocationName = ClassFunctions.FormatForFileSystem(location.SensorName); string formattedWatershedName = ClassFunctions.FormatForFileSystem(watershed.WatershedName); string csvFileName = $"{formattedWatershedName}-{formattedLocationName}_{startDate.ToString("MMddyyyy")}-{endDate.ToString("MMddyyyy")}.csv"; DataSet temperatureDataset = ClassFunctions.GetTemperaturesByLocationIdStartEnd(locationId, startDate, endDate); List <Temperature> temperatureList = new List <Temperature>(); for (int i = 0; i < temperatureDataset.Tables[0].Rows.Count; i++) { DataRow dataRow = temperatureDataset.Tables[0].Rows[i]; Temperature t = new Temperature(); t.Timestamp = Convert.ToDateTime(dataRow["Timestamp"]); t.Celsius = Convert.IsDBNull(dataRow["TempC"]) ? double.NaN : Convert.ToDouble(dataRow["TempC"]); t.Fahrenheit = Convert.IsDBNull(dataRow["TempC"]) ? double.NaN : Convert.ToDouble(dataRow["TempF"]); temperatureList.Add(t); } byte[] allTempDataBytes = DataProcessor.CreateCsvAsBytesNoLocation(temperatureList); Context.Response.Clear(); Context.Response.ContentType = "application/force-download"; Context.Response.AddHeader("content-disposition", "attachment; filename=" + csvFileName); Context.Response.BinaryWrite(allTempDataBytes); Context.Response.End(); }
public MainControllerImpl(IMainView view) { _view = view; _delaunay = new Delaunay(); _watershed = new Watershed(_delaunay); _root = new Node("0"); _vertices = new List <Vertex>(); }
public ActionResult <BoundingBoxDto> GetBoundingBoxByWatershedIDs([FromBody] WatershedIDListDto watershedIDListDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var boundingBoxDto = Watershed.GetBoundingBoxByWatershedIDs(_dbContext, watershedIDListDto.WatershedIDs); return(Ok(boundingBoxDto)); }
private static Watershed ReadTestWaterShed(DateTime t) { string fileName = Path.Combine(EnsembleTester.CacheDir, "test.csv"); RfcCsvFile csv = new RfcCsvFile(fileName); float[,] scrn2 = csv.GetEnsemble("SCRN2"); var rval = new Watershed("simple"); rval.AddForecast("scrn2", t, scrn2, new DateTime[] { t }); return(rval); }
public void UpdateWatershed(int id, string name) { Watershed result = ClassFunctions.UpdateWatershed(id, name); if (result != null) { BuildResponse(200, result); } else { BuildResponse(500, null); } }
public void ReadWatershed(int id) { Watershed result = ClassFunctions.ReadWatershed(id); if (result != null) { BuildResponse(200, result); } else { BuildResponse(500, null); } }
public void CreateWatershed(string name) { Watershed result = ClassFunctions.CreateWatershed(name); if (result != null) { BuildResponse(200, result); } else { BuildResponse(500, null); } }
public void ReadCsvWriteSqlite() { var t = DateTime.Now.Date.AddHours(12); Watershed ws = ReadTestWaterShed(t); var fn = @"c:\temp\sql-ensemble-simple.pdb"; RoundTrip(fn, ws, t, true); fn = @"c:\temp\pisces-ensemble-simple.pdb"; RoundTrip(fn, ws, t, false); }
public void TestExistsForCgndbKey() { string cgndbKey = "ABCDE"; Place place = new Place(); place.CgndbKey = cgndbKey; place.Create(); Watershed watershed = new Watershed(); watershed.DrainageCode = "01-02-03-04-05-06"; watershed.Place = place; watershed.Create(); Flush(); Assert.IsTrue(Watershed.ExistsForCgndbKey(cgndbKey)); }
public override void Setup() { base.Setup(); mocks = new MockRepository(); // save one entry in the database that has a place and a watershed attached ClosestWatershedToPlace closestWatershedToPlace = new ClosestWatershedToPlace(); Place testPlace = new Place(); testPlace.CgndbKey = "ABCDE"; testPlace.CreateAndFlush(); Watershed testWatershed = new Watershed(); testWatershed.DrainageCode = "01-00-00-00-00-00"; testWatershed.Place = testPlace; testWatershed.CreateAndFlush(); closestWatershedToPlace.Place = testPlace; closestWatershedToPlace.Watershed = testWatershed; closestWatershedToPlace.CreateAndFlush(); }
private static void RoundTrip(string fn, Watershed ws, DateTime t, bool piscesFormat = false) { SqLiteEnsemble.Write(fn, ws, true, piscesFormat); var ws2 = SqLiteEnsemble.Read("simple", t, t.AddDays(1), fn); Assert.AreEqual(1, ws2.Locations.Count); var data = ws2.Locations[0].Forecasts[0].Ensemble; Assert.AreEqual(-1.0f, data[0, 0]); Assert.AreEqual(-2.1f, data[0, 1]); Assert.AreEqual(-3.1f, data[0, 2]); Assert.AreEqual(-59.0f, data[58, 0]); Assert.AreEqual(-59.1f, data[58, 1]); Assert.AreEqual(-59.2f, data[58, 2]); }
public void TestBelongsToPlace() { string drainageCode = "01-02-03-04-05-06"; string cgndbKey = "ABCDE"; Place place = new Place(); place.CgndbKey = cgndbKey; place.CreateAndFlush(); Watershed watershed = new Watershed(); watershed.DrainageCode = drainageCode; watershed.Place = place; watershed.CreateAndFlush(); Watershed dbWatershed = Watershed.Find(drainageCode); Assert.IsNotNull(dbWatershed); Assert.IsNotNull(dbWatershed.Place); Assert.AreEqual(cgndbKey, dbWatershed.Place.CgndbKey); }
public void TestBelongsToWatershed() { int id = 73; string drainageCode = "01-00-00-00-00-00"; Watershed watershed = new Watershed(); watershed.DrainageCode = drainageCode; watershed.CreateAndFlush(); WaterBody waterbody = new WaterBody(); waterbody.Id = id; waterbody.Watershed = watershed; waterbody.CreateAndFlush(); WaterBody dbWaterbody = WaterBody.Find(id); Assert.IsNotNull(dbWaterbody); Assert.IsNotNull(dbWaterbody.Watershed); Assert.AreEqual(drainageCode, dbWaterbody.Watershed.DrainageCode); }
public void TimeSeriesTesting() { var fn = @"C:\temp\dss7_ensemble.dss"; File.Delete(fn); string fileName = Path.Combine(EnsembleTester.CacheDir, "test.csv"); RfcCsvFile csv = new RfcCsvFile(fileName); float[,] ensemble = null; csv.GetEnsemble("SCRN2", ref ensemble); Watershed w = new Watershed("test"); w.AddForecast("SCRN2", DateTime.Parse("2001-11-15"), ensemble, csv.TimeStamps); DssEnsemble.Write(fn, w); using (DssReader r = new DssReader(fn)) { var catalog = r.GetCatalog(); Assert.AreEqual(59, catalog.Count); string path = "/test/SCRN2/Flow/01Nov2013/1Hour/C:000059|T:3192001/"; var ts = r.GetTimeSeries(new DssPath(path)); Assert.AreEqual(-59.0, ts[0].Value); } DateTime t1 = new DateTime(1900, 1, 1); DateTime t2 = DateTime.Now.Date; w = DssEnsemble.Read("test", t1, t2, fn); Assert.AreEqual(1, w.Locations.Count); ensemble = w.Locations[0].Forecasts[0].Ensemble; Assert.AreEqual(337, ensemble.GetLength(1)); Assert.AreEqual(59, ensemble.GetLength(0)); Assert.AreEqual(-59.0f, ensemble[58, 0]); Assert.AreEqual(-59.1f, ensemble[58, 1]); }
public void TestClosestWatershedToPlace() { string cgndbKey = "ABCDE"; Place place = new Place(); place.CgndbKey = cgndbKey; place.CreateAndFlush(); Watershed watershed = new Watershed(); watershed.DrainageCode = "01-02-03-04-05-06"; watershed.Place = place; watershed.CreateAndFlush(); ClosestWatershedToPlace closestWatershedToPlace = new ClosestWatershedToPlace(); closestWatershedToPlace.Place = place; closestWatershedToPlace.Watershed = watershed; closestWatershedToPlace.CreateAndFlush(); Place dbPlace = Place.Find(cgndbKey); Assert.IsNotNull(dbPlace); Assert.AreEqual(closestWatershedToPlace, place.ClosestWatershedToPlace); }
public void Watersheds() { DataSet watershedDataSet = ClassFunctions.GetWatersheds(); List <Watershed> watershedList = new List <Watershed>(); for (int i = 0; i < watershedDataSet.Tables[0].Rows.Count; i++) { DataRow dataRow = watershedDataSet.Tables[0].Rows[i]; Watershed watershed = new Watershed { WatershedID = Convert.ToInt32(dataRow["WatershedID"]), WatershedName = Convert.ToString(dataRow["WatershedName"]) }; watershedList.Add(watershed); } JavaScriptSerializer js = new JavaScriptSerializer(); Context.Response.Clear(); Context.Response.ContentType = "application/json"; Context.Response.Write(js.Serialize(watershedList)); }
public void TestFindAllByQuery() { string[] unitNames = { "Saint", "Saint John", "Saint John River", "Hammond River", "Fredericton", "Moncton", "Miramichi River" }; for (int i = 0; i < unitNames.Length; i++) { Watershed watershed = new Watershed(); watershed.Name = unitNames[i]; // XXX: this is technically not a valid Drainage Code but no validation is performed watershed.DrainageCode = i.ToString(); watershed.Create(); } Flush(); Assert.AreEqual(3, Watershed.FindAllByQuery("Saint").Count, "Query for 'Saint'"); Assert.AreEqual(3, Watershed.FindAllByQuery("saint").Count, "Query for 'saint'"); Assert.AreEqual(1, Watershed.FindAllByQuery("Fredericton").Count, "Query for 'Fredericton'"); Assert.AreEqual(2, Watershed.FindAllByQuery("M").Count, "Query for 'M' returned"); Assert.AreEqual(0, Watershed.FindAllByQuery("John").Count, "Query for 'John'"); Assert.AreEqual(0, Watershed.FindAllByQuery("River").Count, "Query for 'River'"); Assert.AreEqual(3, Watershed.FindAllByQuery(" Saint").Count, "Query for ' Saint'"); Assert.AreEqual(1, Watershed.FindAllByQuery("Hammond River ").Count, "Query for 'Hammond River '"); }
public void TestFindByCgndbKey() { string cgndbKey = "ABCDE"; Place place = new Place(); place.CgndbKey = cgndbKey; place.Create(); Watershed watershed = new Watershed(); watershed.DrainageCode = "01-02-03-04-05-06"; watershed.Place = place; watershed.Create(); Flush(); Watershed foundWatershed = Watershed.FindByCgndbKey(cgndbKey); Assert.AreEqual(watershed, foundWatershed); Assert.AreEqual(place, foundWatershed.Place); }
public void TestFindRelatedDataSets() { WaterBody waterBody1 = new WaterBody(); WaterBody waterBody2 = new WaterBody(); waterBody1.DataSets = new List<DataSet>(new DataSet[] { new DataSet(), new DataSet() }); waterBody2.DataSets = new List<DataSet>(new DataSet[] { new DataSet(), new DataSet(), new DataSet() }); Watershed watershed = new Watershed(); watershed.WaterBodies.Add(waterBody1); watershed.WaterBodies.Add(waterBody2); Assert.AreEqual(5, watershed.DataSets.Count); }
public void TestTributaryOf() { Watershed watershed = new Watershed(); watershed.Level1No = "01"; watershed.Level1Name = "LEVEL1"; Assert.AreEqual(String.Empty, watershed.TributaryOf); watershed.Level2No = "02"; watershed.Level2Name = "LEVEL2"; Assert.AreEqual("LEVEL1", watershed.TributaryOf); watershed.Level3No = "03"; watershed.Level3Name = "LEVEL3"; Assert.AreEqual("LEVEL1 - LEVEL2", watershed.TributaryOf); watershed.Level4No = "04"; watershed.Level4Name = "LEVEL4"; Assert.AreEqual("LEVEL1 - LEVEL2 - LEVEL3", watershed.TributaryOf); watershed.Level5No = "05"; watershed.Level5Name = "LEVEL5"; Assert.AreEqual("LEVEL1 - LEVEL2 - LEVEL3 - LEVEL4", watershed.TributaryOf); watershed.Level6No = "06"; watershed.Level6Name = "LEVEL6"; Assert.AreEqual("LEVEL1 - LEVEL2 - LEVEL3 - LEVEL4 - LEVEL5", watershed.TributaryOf); }
public void TestRelatedPublicationsNeverReturnsNull() { Assert.Ignore(); Watershed watershed = new Watershed(); IList<Publication> publications = watershed.RelatedPublications; Assert.IsNotNull(publications); Assert.AreEqual(0, publications.Count); }
public void TestFlowsIntoWhenDrainsIntoIsNotNull() { string flowsInto = "TEST VALUE"; Watershed watershed = new Watershed(); watershed.DrainsInto = flowsInto; Assert.AreEqual(flowsInto, watershed.DrainsInto); }
public void TestRelatedInteractiveMapsNeverReturnsNull() { Assert.Ignore(); Watershed watershed = new Watershed(); IList<InteractiveMap> interativeMaps = watershed.RelatedInteractiveMaps; Assert.IsNotNull(interativeMaps); Assert.AreEqual(0, interativeMaps.Count); }
public void TestFindWatershed() { string drainageCode = "01-02-03-04-05-06"; Watershed watershed = new Watershed(); watershed.DrainageCode = drainageCode; watershed.CreateAndFlush(); Watershed dbWatershed = Watershed.Find(drainageCode); Assert.IsNotNull(dbWatershed); Assert.AreEqual(drainageCode, dbWatershed.DrainageCode); }
public void TestIsWithinBasinWithBadlyFormattedDrainageCodes() { string[] notInBasinCodes = new string[] { "00-00-00-00-00-00", "02-00-00-00-00-00", "", null, "ab-cd-ef-gh-ij-kl", "01-.." }; Watershed watershed = new Watershed(); foreach (string drainageCode in notInBasinCodes) { watershed.DrainageCode = drainageCode; Assert.IsFalse(watershed.IsWithinBasin(), "IsWithinBasin should return false for value " + drainageCode); } }
public void TestProperties() { Watershed watershed = new Watershed(); Dictionary<string, object> properties = new Dictionary<string, object>(); properties.Add("AreaHA", float.MaxValue); properties.Add("AreaPercent", float.MaxValue); properties.Add("BorderInd", "1"); properties.Add("DrainageCode", "01-02-03-04-05-06"); properties.Add("DrainsInto", "Bay of Fundy"); properties.Add("Level1No", "01"); properties.Add("Level1Name", "Level1"); properties.Add("Level2No", "02"); properties.Add("Level2Name", "Level2"); properties.Add("Level3No", "03"); properties.Add("Level3Name", "Level3"); properties.Add("Level4No", "04"); properties.Add("Level4Name", "Level4"); properties.Add("Level5No", "05"); properties.Add("Level5Name", "Level5"); properties.Add("Level6No", "06"); properties.Add("Level6Name", "Level6"); properties.Add("Name", "Saint John River"); properties.Add("StreamOrder", 1); properties.Add("UnitType", "TestValue"); TestHelper.ErrorSummary errors = TestHelper.TestProperties(watershed, properties); Assert.IsEmpty(errors, "The following errors occurred during property testing:\n" + errors.GetSummary()); }
public void TestIsWithinBasin() { string drainageCode = "01-00-00-00-00-00"; Watershed watershed = new Watershed(); watershed.DrainageCode = drainageCode; Assert.IsTrue(watershed.IsWithinBasin()); }
public void TestHasManyWaterBodies() { string drainageCode = "01-02-03-04-05-06"; int id1 = 1234; int id2 = 5678; Watershed watershed = new Watershed(); watershed.DrainageCode = drainageCode; watershed.CreateAndFlush(); WaterBody waterBody1 = new WaterBody(); waterBody1.Id = id1; waterBody1.Watershed = watershed; waterBody1.CreateAndFlush(); WaterBody waterBody2 = new WaterBody(); waterBody2.Id = id2; waterBody2.Watershed = watershed; waterBody2.CreateAndFlush(); watershed.WaterBodies.Add(waterBody1); watershed.WaterBodies.Add(waterBody2); watershed.SaveAndFlush(); Watershed dbWatershed = Watershed.Find(drainageCode); Assert.IsNotNull(dbWatershed); Assert.AreEqual(2, dbWatershed.WaterBodies.Count); Assert.AreEqual(id1, dbWatershed.WaterBodies[0].Id); Assert.AreEqual(id2, dbWatershed.WaterBodies[1].Id); }
public void TestGetCoordinateReturnsNullWhenPlaceIsNull() { Watershed watershed = new Watershed(); Assert.IsNull(watershed.Place); Assert.IsNull(watershed.GetCoordinate()); }
public ActionResult <WatershedDto> GetWatershedByID([FromRoute] int watershedID) { var watershedDto = Watershed.GetByWatershedID(_dbContext, watershedID); return(RequireNotNullThrowNotFound(watershedDto, "Watershed", watershedID)); }
public void TestRelatedInteractiveMapsWhenIsWithinBasin() { Assert.Ignore(); string query = "place name is the default query"; Watershed watershed = new Watershed(); watershed.Name = query; watershed.DrainageCode = "01-02-03-04-05-06"; InteractiveMap[] interactiveMaps = new InteractiveMap[3]; for (int i = 0; i < interactiveMaps.Length; i++) { interactiveMaps[i] = new InteractiveMap(); interactiveMaps[i].Title = "Interactive Map where " + query + ": #" + i.ToString(); interactiveMaps[i].IsBasinMap = (i % 2) == 0 ? true : false; // even to true, odd to false interactiveMaps[i].CreateAndFlush(); } Assert.IsTrue(watershed.IsWithinBasin()); Assert.AreEqual(2, watershed.RelatedInteractiveMaps.Count); }
public ActionResult <List <WatershedDto> > ListAllWatersheds() { var watershedDtos = Watershed.List(_dbContext).OrderBy(x => x.WatershedName).ToList(); return(watershedDtos); }
public void TestRelatedPublications() { Assert.Ignore(); string query = "watershed name is the default query"; Watershed watershed = new Watershed(); watershed.Name = query; Publication[] publications = new Publication[3]; for (int i = 0; i < publications.Length; i++) { publications[i] = new Publication(); publications[i].Title = "Publication where " + query + ": #" + i.ToString(); publications[i].CreateAndFlush(); } Assert.AreEqual(publications.Length, watershed.RelatedPublications.Count); }
public void TestGetCoordinate() { double lat = 37.3; double lon = 73.7; Place place = mocks.CreateMock<Place>(); Expect.Call(place.GetCoordinate()).Return(new LatLngCoord(lat, lon)); mocks.ReplayAll(); Watershed watershed = new Watershed(); watershed.Place = place; LatLngCoord coord = watershed.GetCoordinate(); Assert.AreEqual(lat, coord.Latitude); Assert.AreEqual(lon, coord.Longitude); mocks.VerifyAll(); }
public void TestFlowsIntoWhenDrainsIntoIsNull() { string flowsInto = "LEVEL1"; Watershed watershed = new Watershed(); watershed.DrainsInto = null; watershed.Level1No = "01"; watershed.Level1Name = flowsInto; watershed.Level2No = "02"; watershed.Level2Name = "LEVEL2"; Assert.AreEqual(flowsInto, watershed.FlowsInto); }