You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@climate.apache.org by hu...@apache.org on 2016/07/05 18:13:32 UTC
[5/6] climate git commit: Add unit tests for CLIMATE-818
Add unit tests for CLIMATE-818
Project: http://git-wip-us.apache.org/repos/asf/climate/repo
Commit: http://git-wip-us.apache.org/repos/asf/climate/commit/83ed37f2
Tree: http://git-wip-us.apache.org/repos/asf/climate/tree/83ed37f2
Diff: http://git-wip-us.apache.org/repos/asf/climate/diff/83ed37f2
Branch: refs/heads/master
Commit: 83ed37f2a50fb115659a74abf1468fe9ba5e05f5
Parents: a57eb4d
Author: Alex Goodman <ag...@users.noreply.github.com>
Authored: Tue Jun 28 01:12:54 2016 -0700
Committer: Alex Goodman <ag...@users.noreply.github.com>
Committed: Tue Jun 28 01:12:54 2016 -0700
----------------------------------------------------------------------
ocw/tests/test_local.py | 59 +++++++++++++++++++++++++++++++++++++++++---
1 file changed, 56 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/climate/blob/83ed37f2/ocw/tests/test_local.py
----------------------------------------------------------------------
diff --git a/ocw/tests/test_local.py b/ocw/tests/test_local.py
index 1c747f9..f3226f7 100644
--- a/ocw/tests/test_local.py
+++ b/ocw/tests/test_local.py
@@ -32,6 +32,8 @@ class test_load_file(unittest.TestCase):
self.netCDF_file = netCDF4.Dataset(self.file_path, 'r')
self.latitudes = self.netCDF_file.variables['latitude'][:]
self.longitudes = self.netCDF_file.variables['longitude'][:]
+ self.alt_lats = self.netCDF_file.variables['alt_lat'][:]
+ self.alt_lons = self.netCDF_file.variables['alt_lon'][:]
self.values = self.netCDF_file.variables['value'][:]
self.variable_name_list = ['latitude',
'longitude', 'time', 'level', 'value']
@@ -63,6 +65,23 @@ class test_load_file(unittest.TestCase):
self.assertItemsEqual(local.load_file(
self.file_path, "value").times, newTimes)
+ def test_function_load_file_alt_lats(self):
+ """To test load_file function for lats with different variable names"""
+ self.assertItemsEqual(local.load_file(
+ self.file_path, "value", lat_name="alt_lat").lats, self.alt_lats)
+
+ def test_function_load_file_alt_lons(self):
+ """To test load_file function for lons with different variable names"""
+ self.assertItemsEqual(local.load_file(
+ self.file_path, "value", lon_name="alt_lon").lons, self.alt_lons)
+
+ def test_function_load_file_alt_times(self):
+ """To test load_file function for times with different variable names"""
+ newTimes = datetime.datetime(2001, 04, 01), datetime.datetime(
+ 2001, 05, 01), datetime.datetime(2001, 06, 01)
+ self.assertItemsEqual(local.load_file(
+ self.file_path, "value", time_name="alt_time").times, newTimes)
+
def test_function_load_file_values(self):
"""To test load_file function for values"""
new_values = self.values[:, 0, :, :]
@@ -142,6 +161,8 @@ class TestLoadDatasetFromMultipleNetcdfFiles(unittest.TestCase):
self.netCDF_file = netCDF4.Dataset(self.file_path, 'r+')
self.latitudes = self.netCDF_file.variables['latitude'][:]
self.longitudes = self.netCDF_file.variables['longitude'][:]
+ self.alt_lats = self.netCDF_file.variables['alt_lat'][:]
+ self.alt_lons = self.netCDF_file.variables['alt_lon'][:]
self.values = self.netCDF_file.variables['value'][:]
self.variable_name_list = ['latitude',
'longitude', 'time', 'level', 'value']
@@ -151,6 +172,14 @@ class TestLoadDatasetFromMultipleNetcdfFiles(unittest.TestCase):
file_path='',
filename_pattern=[
self.file_path])
+ self.alt_dataset = local.load_dataset_from_multiple_netcdf_files(
+ variable_name='value',
+ lat_name='alt_lat',
+ lon_name='alt_lon',
+ time_name='alt_time',
+ file_path='',
+ filename_pattern=[
+ self.file_path])
def tearDown(self):
os.remove(self.file_path)
@@ -174,6 +203,22 @@ class TestLoadDatasetFromMultipleNetcdfFiles(unittest.TestCase):
2001, 02, 01), datetime.datetime(2001, 03, 01)
self.assertItemsEqual(self.dataset.times, newTimes)
+ def test_function_load_dataset_from_multiple_netcdf_files_alt_lats(self):
+ """To test load_multiple_files function for non-default lats"""
+ _, self.alt_lats = numpy.meshgrid(self.alt_lons, self.alt_lats)
+ numpy.testing.assert_array_equal(self.alt_dataset.lats, self.alt_lats)
+
+ def test_function_load_dataset_from_multiple_netcdf_files_alt_lons(self):
+ """To test load_multiple_files function for non-default lons"""
+ self.alt_lons, _ = numpy.meshgrid(self.alt_lons, self.alt_lats)
+ numpy.testing.assert_array_equal(self.alt_dataset.lons, self.alt_lons)
+
+ def test_function_load_dataset_from_multiple_netcdf_files_alt_times(self):
+ """To test load_multiple_files function for non-default times"""
+ newTimes = datetime.datetime(2001, 04, 01), datetime.datetime(
+ 2001, 05, 01), datetime.datetime(2001, 06, 01)
+ self.assertItemsEqual(self.alt_dataset.times, newTimes)
+
def test_function_load_dataset_from_multiple_netcdf_files_values(self):
"""To test load_multiple_files function for values"""
new_values = self.values[:, 0, :, :]
@@ -234,6 +279,10 @@ def create_netcdf_object():
latitudes = netCDF_file.createVariable('latitude', 'd', ('lat_dim',))
longitudes = netCDF_file.createVariable('longitude', 'd', ('lon_dim',))
times = netCDF_file.createVariable('time', 'd', ('time_dim',))
+ # unusual variable names to test optional arguments for Dataset constructor
+ alt_lats = netCDF_file.createVariable('alt_lat', 'd', ('lat_dim',))
+ alt_lons = netCDF_file.createVariable('alt_lon', 'd', ('lon_dim',))
+ alt_times = netCDF_file.createVariable('alt_time', 'd', ('time_dim',))
levels = netCDF_file.createVariable('level', 'd', ('level_dim',))
values = netCDF_file.createVariable('value', 'd',
('time_dim',
@@ -243,10 +292,10 @@ def create_netcdf_object():
)
# To latitudes and longitudes for five values
- latitudes_data = range(0, 5)
- longitudes_data = range(150, 155)
+ latitudes_data = numpy.arange(5.)
+ longitudes_data = numpy.arange(150., 155.)
# Three months of data.
- times_data = numpy.array(range(3))
+ times_data = numpy.arange(3)
# Two levels
levels_data = [100, 200]
# Create 150 values
@@ -259,10 +308,14 @@ def create_netcdf_object():
latitudes[:] = latitudes_data
longitudes[:] = longitudes_data
times[:] = times_data
+ alt_lats[:] = latitudes_data + 10
+ alt_lons[:] = longitudes_data - 10
+ alt_times[:] = times_data
levels[:] = levels_data
values[:] = values_data
# Assign time info to time variable
netCDF_file.variables['time'].units = 'months since 2001-01-01 00:00:00'
+ netCDF_file.variables['alt_time'].units = 'months since 2001-04-01 00:00:00'
netCDF_file.variables['value'].units = 'foo_units'
netCDF_file.close()
return file_path