Ejemplo n.º 1
0
    def test_props(self):
        self.assertEqual('default', self.processor.name)
        self.assertEqual(
            'Single-scene NetCDF/CF inputs in xcube standard format',
            self.processor.description)
        self.assertEqual('netcdf4', self.processor.input_reader)

        processor = DefaultInputProcessor(input_reader="zarr")
        self.assertEqual('zarr', processor.input_reader)
Ejemplo n.º 2
0
class DefaultInputProcessorTest(unittest.TestCase):
    def setUp(self):
        self.processor = DefaultInputProcessor()

    def test_props(self):
        self.assertEqual('default', self.processor.name)
        self.assertEqual(
            'Single-scene NetCDF/CF inputs in xcube standard format',
            self.processor.description)
        self.assertEqual('netcdf4', self.processor.input_reader)

        processor = DefaultInputProcessor(input_reader="zarr")
        self.assertEqual('zarr', processor.input_reader)

    def test_reprojection_info(self):
        # noinspection PyNoneFunctionAssignment
        reprojection_info = self.processor.get_reprojection_info(
            create_default_dataset())
        self.assertIsNotNone(reprojection_info)

    def test_to_time_range(self):
        ds = create_default_dataset(time_mode="time")
        t1, t2 = self.processor.get_time_range(ds)
        self.assertEqual(to_time_in_days_since_1970("20100301T120000Z"), t1)
        self.assertEqual(to_time_in_days_since_1970("20100301T120000Z"), t2)
        ds = create_default_dataset(time_mode="time_bnds")
        t1, t2 = self.processor.get_time_range(ds)
        self.assertEqual(to_time_in_days_since_1970("20100301T000000Z"), t1)
        self.assertEqual(to_time_in_days_since_1970("20100301T235959Z"), t2)
        ds = create_default_dataset(time_mode="time_coverage")
        t1, t2 = self.processor.get_time_range(ds)
        self.assertEqual(to_time_in_days_since_1970("20100301T000000Z"), t1)
        self.assertEqual(to_time_in_days_since_1970("20100301T235959Z"), t2)
        ds = create_default_dataset(time_mode="start_stop_time")
        t1, t2 = self.processor.get_time_range(ds)
        self.assertEqual(to_time_in_days_since_1970("20100301T000000Z"), t1)
        self.assertEqual(to_time_in_days_since_1970("20100301T235959Z"), t2)
        ds = create_default_dataset(time_mode="start_stop_date")
        t1, t2 = self.processor.get_time_range(ds)
        self.assertEqual(to_time_in_days_since_1970("20100301T000000Z"), t1)
        self.assertEqual(to_time_in_days_since_1970("20100301T235959Z"), t2)
        ds = create_default_dataset(time_mode="no_time")
        with self.assertRaises(ValueError) as cm:
            self.processor.get_time_range(ds)
        self.assertEqual(
            "invalid input: missing time coverage information in dataset",
            f"{cm.exception}")

    def test_pre_process(self):
        ds1 = create_default_dataset(time_mode="time")
        ds2 = self.processor.pre_process(ds1)
        self.assertIsNot(ds1, ds2)
        ds1 = create_default_dataset(time_mode="time_bnds")
        ds2 = self.processor.pre_process(ds1)
        self.assertIsNot(ds1, ds2)
        ds1 = create_default_dataset(time_mode="time_coverage")
        ds2 = self.processor.pre_process(ds1)
        self.assertIs(ds1, ds2)
        ds1 = create_default_dataset(time_mode="start_stop_time")
        ds2 = self.processor.pre_process(ds1)
        self.assertIs(ds1, ds2)

    def test_post_process(self):
        ds1 = create_default_dataset()
        ds2 = self.processor.post_process(ds1)
        self.assertIs(ds1, ds2)
Ejemplo n.º 3
0
 def setUp(self):
     self.processor = DefaultInputProcessor()
Ejemplo n.º 4
0
 def get_time_range(self, dataset: xr.Dataset) -> Tuple[float, float]:
     return DefaultInputProcessor().get_time_range(dataset)