public async Task Bug1691() { double BayOfBiscaySELat = 44.5; double BayOfBiscaySELon = -3.5; double InFranceLat = 47; double InFranceLon = 1; Random r = new Random(1); var eps = r.NextDouble() / 10.0; double latDelta = InFranceLat - BayOfBiscaySELat; double lonDelta = InFranceLon - BayOfBiscaySELon; var tr = new TimeRegion(1990, 2001, 1, -1, 0, 24); var request = new FetchRequest( "temp", FetchDomain.CreateCellGrid( Enumerable.Range(0, 31).Select(i => eps + BayOfBiscaySELat + i * latDelta / 31.0).ToArray(), Enumerable.Range(0, 21).Select(i => eps + BayOfBiscaySELon + i * lonDelta / 21.0).ToArray(), tr)); string etopoLocalUri = TestConstants.UriEtopo; var ghcnStorage = TestDataStorageFactory.GetStorageContext(TestConstants.UriGHCN); var reqContext = RequestContextStub.GetStub(ghcnStorage, request); DataSourceHandler handler = await GHCNv2DataSource.DataHandler.CreateAsync(ghcnStorage); var result = await handler.ProcessRequestAsync(reqContext); Assert.IsTrue(-70.0 < (double)result.GetValue(16, 2)); //manual data comparison. }
public async Task GHCNOutOfDataTests() { IStorageContext storage = new GhcnStorageContextStub(); DataSourceHandler handler = await GHCNv2DataSource.DataHandler.CreateAsync(storage); IFetchDomain fd = FetchDomain.CreatePoints(new double[] { Math.Asin(1.0 / Math.Sqrt(3.0)) * 180.0 / Math.PI }, new double[] { 45.0 }, new TimeRegion(firstYear: 1970, lastYear: 1970, firstDay: 160, lastDay: 190)); //mar FetchRequest fr = new FetchRequest("temp", fd); IRequestContext requestContext = RequestContextStub.GetStub(storage, fr); var result = await handler.ProcessRequestAsync(requestContext); Assert.IsTrue(double.IsNaN((double)result.GetValue(0))); }
public async Task GhcnPartialFutureOutOfDataFinishesTest() { System.Diagnostics.Trace.WriteLine(TestConstants.UriGHCN); var storage = TestDataStorageFactory.GetStorageContext(TestConstants.UriGHCN); DataSourceHandler handler = await GHCNv2DataSource.DataHandler.CreateAsync(storage); ITimeRegion tr = new TimeRegion(firstYear: 1990, lastYear: 2101).GetMonthlyTimeseries(firstMonth: 12, lastMonth: 12); //data index 2567 IFetchDomain domain = FetchDomain.CreatePoints( new double[] { -25.18 }, //exact station. data index 18398 new double[] { 151.65 }, tr); FetchRequest prateRequest = new FetchRequest("prate", domain); var reqContext = RequestContextStub.GetStub(storage, prateRequest); var result = await handler.ProcessRequestAsync(reqContext); }
public async Task GhcnPrateValuesTest() { System.Diagnostics.Trace.WriteLine(TestConstants.UriGHCN); var storage = TestDataStorageFactory.GetStorageContext(TestConstants.UriGHCN); DataSourceHandler handler = await GHCNv2DataSource.DataHandler.CreateAsync(storage); ITimeRegion tr = new TimeRegion(firstYear: 1914, lastYear: 1914).GetMonthlyTimeseries(firstMonth: 12, lastMonth: 12); //data index 2567 IFetchDomain domain = FetchDomain.CreatePoints( new double[] { -25.18 }, //exact station. data index 18398 new double[] { 151.65 }, tr); FetchRequest prateRequest = new FetchRequest("prate", domain); var reqContext = RequestContextStub.GetStub(storage, prateRequest); var result = await handler.ProcessRequestAsync(reqContext); Assert.AreEqual(85.1, (double)result.GetValue(0), 1e-3); //manual data comparison. }
public async Task GhcnTempValuesTest() { System.Diagnostics.Trace.WriteLine(TestConstants.UriGHCN); string etopoLocalUri = TestConstants.UriEtopo; var ghcnStorage = TestDataStorageFactory.GetStorageContext(TestConstants.UriGHCN); DataSourceHandler handler = await GHCNv2DataSource.DataHandler.CreateAsync(ghcnStorage); ITimeRegion tr = new TimeRegion(firstYear: 1921, lastYear: 1921).GetMonthlyTimeseries(firstMonth: 3, lastMonth: 3); //data index 2642 IFetchDomain domain = FetchDomain.CreatePoints( new double[] { 36.27 }, //exact station. data index 3776 new double[] { -90.97 }, tr); FetchRequest tempRequest = new FetchRequest("temp", domain); var reqContext = RequestContextStub.GetStub(ghcnStorage, tempRequest); var result = await handler.ProcessRequestAsync(reqContext); Assert.AreEqual(15.6, (double)result.GetValue(0), 1e-5); //manual data comparison. }