You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@climate.apache.org by ja...@apache.org on 2016/06/14 06:38:10 UTC

[4/6] climate git commit: Add tests for dataset processor

Add tests for dataset processor

- Multiple tests for Temporal_subset function
- Add test_two_dimensional_lats_lons test for spatial_regrid function
- Add test_subset_without_start_index for subset function


Project: http://git-wip-us.apache.org/repos/asf/climate/repo
Commit: http://git-wip-us.apache.org/repos/asf/climate/commit/c3691d28
Tree: http://git-wip-us.apache.org/repos/asf/climate/tree/c3691d28
Diff: http://git-wip-us.apache.org/repos/asf/climate/diff/c3691d28

Branch: refs/heads/master
Commit: c3691d28ec60e359af28dddf799bc7ae879142ef
Parents: 3a0467f
Author: Ibrahim <ja...@gmail.com>
Authored: Tue May 31 12:41:17 2016 +0530
Committer: Ibrahim <ja...@gmail.com>
Committed: Tue Jun 14 01:08:50 2016 +0530

----------------------------------------------------------------------
 ocw/tests/test_dataset_processor.py | 67 ++++++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/climate/blob/c3691d28/ocw/tests/test_dataset_processor.py
----------------------------------------------------------------------
diff --git a/ocw/tests/test_dataset_processor.py b/ocw/tests/test_dataset_processor.py
index 093e510..6430526 100644
--- a/ocw/tests/test_dataset_processor.py
+++ b/ocw/tests/test_dataset_processor.py
@@ -41,6 +41,47 @@ class TestTemporalSubset(unittest.TestCase):
         np.testing.assert_array_equal(
             self.dataset_times, self.tempSubset.times)
 
+    def test_temporal_subset_with_average_time(self):
+        self.dataset_times = np.array([datetime.datetime(year, 2, 1)
+                                       for year in range(2000, 2010)])
+        self.tempSubset = dp.temporal_subset(1, 3,
+                                             self.ten_year_dataset,
+                                             average_each_year=True)
+        np.testing.assert_array_equal(self.dataset_times,
+                                      self.tempSubset.times)
+
+    def test_temporal_subset_with_average_values(self):
+        self.tempSubset = dp.temporal_subset(1, 3,
+                                             self.ten_year_dataset,
+                                             average_each_year=True)
+        self.dataset_values = np.ones([len(self.tempSubset.times),
+                                       len(self.ten_year_dataset.lats),
+                                       len(self.ten_year_dataset.lons)])
+        np.testing.assert_array_equal(self.dataset_values,
+                                      self.tempSubset.values)
+
+    def test_temporal_subset_attributes(self):
+        self.tempSubset = dp.temporal_subset(1, 3,
+                                             self.ten_year_dataset,
+                                             average_each_year=True)
+        self.assertEqual(self.tempSubset.name, self.ten_year_dataset.name)
+        self.assertEqual(self.tempSubset.variable,
+                         self.ten_year_dataset.variable)
+        self.assertEqual(self.tempSubset.units, self.ten_year_dataset.units)
+        np.testing.assert_array_equal(self.tempSubset.lats,
+                                      self.ten_year_dataset.lats)
+        np.testing.assert_array_equal(self.tempSubset.lons,
+                                      self.ten_year_dataset.lons)
+
+    def test_temporal_subset_equal_start_end_month(self):
+        self.dataset_times = np.array([datetime.datetime(year, 1, 1)
+                                       for year in range(2000, 2010)])
+        self.tempSubset = dp.temporal_subset(1, 1,
+                                             self.ten_year_dataset,
+                                             average_each_year=True)
+        np.testing.assert_array_equal(self.dataset_times,
+                                      self.tempSubset.times)
+
     def test_startMonth_greater_than_endMonth(self):
         self.dataset_times = np.array([datetime.datetime(year, month, 1)
                                        for year in range(2000, 2010)
@@ -334,6 +375,15 @@ class TestSpatialRegrid(unittest.TestCase):
         self.assertEquals(self.input_dataset.variable,
                           self.regridded_dataset.variable)
 
+    def test_two_dimensional_lats_lons(self):
+        self.input_dataset.lats = np.array(range(-89, 90, 2))
+        self.input_dataset.lons = np.array(range(-179, 180, 4))
+        self.input_dataset.lats = self.input_dataset.lats.reshape(2, 45)
+        self.input_dataset.lons = self.input_dataset.lons.reshape(2, 45)
+        new_dataset = dp.spatial_regrid(
+            self.input_dataset, self.new_lats, self.new_lons)
+        np.testing.assert_array_equal(new_dataset.lats, self.new_lats)
+
 
 class TestNormalizeDatasetDatetimes(unittest.TestCase):
     def setUp(self):
@@ -418,6 +468,23 @@ class TestSubset(unittest.TestCase):
                                 "time_end": 49}
         self.assertDictEqual(index_slices, control_index_slices)
 
+    def test_subset_without_start_index(self):
+        self.subregion = ds.Bounds(
+            -81, 81,
+            -161, 161,
+        )
+        subset = dp.subset(self.subregion, self.target_dataset)
+        times = np.array([datetime.datetime(year, month, 1)
+                         for year in range(2000, 2010)
+                         for month in range(1, 13)])
+        self.assertEqual(subset.lats.shape[0], 82)
+        self.assertSequenceEqual(list(np.array(range(-81, 82, 2))),
+                                 list(subset.lats))
+        self.assertEqual(subset.lons.shape[0], 162)
+        self.assertEqual(subset.values.shape, (120, 82, 162))
+        self.assertEqual(subset.times.shape[0], 120)
+        np.testing.assert_array_equal(subset.times, times)
+
 
 class TestSafeSubset(unittest.TestCase):
     def setUp(self):