From f004628425abb04d0d437ee652077887dffe2247 Mon Sep 17 00:00:00 2001 From: leufen1 <l.leufen@fz-juelich.de> Date: Thu, 10 Dec 2020 14:05:42 +0100 Subject: [PATCH] tests for update_kwargs method --- .../test_data_handler_mixed_sampling.py | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 test/test_data_handler/test_data_handler_mixed_sampling.py diff --git a/test/test_data_handler/test_data_handler_mixed_sampling.py b/test/test_data_handler/test_data_handler_mixed_sampling.py new file mode 100644 index 00000000..d2f9ce00 --- /dev/null +++ b/test/test_data_handler/test_data_handler_mixed_sampling.py @@ -0,0 +1,130 @@ +__author__ = 'Lukas Leufen' +__date__ = '2020-12-10' + +from mlair.data_handler.data_handler_mixed_sampling import DataHandlerMixedSampling, \ + DataHandlerMixedSamplingSingleStation, DataHandlerMixedSamplingWithFilter, \ + DataHandlerMixedSamplingWithFilterSingleStation, DataHandlerSeparationOfScales, \ + DataHandlerSeparationOfScalesSingleStation +from mlair.data_handler.data_handler_kz_filter import DataHandlerKzFilterSingleStation +from mlair.data_handler.data_handler_single_station import DataHandlerSingleStation +from mlair.helpers import remove_items +from mlair.configuration.defaults import DEFAULT_INTERPOLATION_METHOD + +import pytest +import mock + + +class TestDataHandlerMixedSampling: + + def test_data_handler(self): + obj = object.__new__(DataHandlerMixedSampling) + assert obj.data_handler.__qualname__ == DataHandlerMixedSamplingSingleStation.__qualname__ + + def test_data_handler_transformation(self): + obj = object.__new__(DataHandlerMixedSampling) + assert obj.data_handler_transformation.__qualname__ == DataHandlerMixedSamplingSingleStation.__qualname__ + + def test_requirements(self): + obj = object.__new__(DataHandlerMixedSampling) + req = object.__new__(DataHandlerSingleStation) + assert sorted(obj._requirements) == sorted(remove_items(req.requirements(), "station")) + + +class TestDataHandlerMixedSamplingSingleStation: + + def test_requirements(self): + obj = object.__new__(DataHandlerMixedSamplingSingleStation) + req = object.__new__(DataHandlerSingleStation) + assert sorted(obj._requirements) == sorted(remove_items(req.requirements(), "station")) + + @mock.patch("mlair.data_handler.data_handler_mixed_sampling.DataHandlerMixedSamplingSingleStation.setup_samples") + def test_init(self, mock_super_init): + obj = DataHandlerMixedSamplingSingleStation("first_arg", "second", {}, test=23, sampling="hourly", + interpolation_limit=(1, 10)) + assert obj.sampling == ("hourly", "hourly") + assert obj.interpolation_limit == (1, 10) + assert obj.interpolation_method == (DEFAULT_INTERPOLATION_METHOD, DEFAULT_INTERPOLATION_METHOD) + + @pytest.fixture + def kwargs_dict(self): + return {"test1": 2, "param_2": "string", "another": (10, 2)} + + def test_update_kwargs_single_to_tuple(self, kwargs_dict): + obj = object.__new__(DataHandlerMixedSamplingSingleStation) + obj.update_kwargs("test1", "23", kwargs_dict) + assert kwargs_dict["test1"] == (2, 2) + obj.update_kwargs("param_2", "23", kwargs_dict) + assert kwargs_dict["param_2"] == ("string", "string") + + def test_update_kwargs_tuple(self, kwargs_dict): + obj = object.__new__(DataHandlerMixedSamplingSingleStation) + obj.update_kwargs("another", "23", kwargs_dict) + assert kwargs_dict["another"] == (10, 2) + + def test_update_kwargs_default(self, kwargs_dict): + obj = object.__new__(DataHandlerMixedSamplingSingleStation) + obj.update_kwargs("not_existing", "23", kwargs_dict) + assert kwargs_dict["not_existing"] == ("23", "23") + obj.update_kwargs("also_new", (4, 2), kwargs_dict) + assert kwargs_dict["also_new"] == (4, 2) + + def test_update_kwargs_assert_failure(self, kwargs_dict): + obj = object.__new__(DataHandlerMixedSamplingSingleStation) + with pytest.raises(AssertionError): + obj.update_kwargs("error_too_long", (1, 2, 3), kwargs_dict) + + def test_setup_samples(self): + pass + + def test_load_and_interpolate(self): + pass + + def test_set_inputs_and_targets(self): + pass + + def test_setup_data_path(self): + pass + + +class TestDataHandlerMixedSamplingWithFilter: + + def test_data_handler(self): + obj = object.__new__(DataHandlerMixedSamplingWithFilter) + assert obj.data_handler.__qualname__ == DataHandlerMixedSamplingWithFilterSingleStation.__qualname__ + + def test_data_handler_transformation(self): + obj = object.__new__(DataHandlerMixedSamplingWithFilter) + assert obj.data_handler_transformation.__qualname__ == DataHandlerMixedSamplingWithFilterSingleStation.__qualname__ + + def test_requirements(self): + obj = object.__new__(DataHandlerMixedSamplingWithFilter) + req1 = object.__new__(DataHandlerMixedSamplingSingleStation) + req2 = object.__new__(DataHandlerKzFilterSingleStation) + req = list(set(req1.requirements() + req2.requirements())) + assert sorted(obj._requirements) == sorted(remove_items(req, "station")) + + +class TestDataHandlerMixedSamplingWithFilterSingleStation: + pass + + +class TestDataHandlerSeparationOfScales: + + def test_data_handler(self): + obj = object.__new__(DataHandlerSeparationOfScales) + assert obj.data_handler.__qualname__ == DataHandlerSeparationOfScalesSingleStation.__qualname__ + + def test_data_handler_transformation(self): + obj = object.__new__(DataHandlerSeparationOfScales) + assert obj.data_handler_transformation.__qualname__ == DataHandlerSeparationOfScalesSingleStation.__qualname__ + + def test_requirements(self): + obj = object.__new__(DataHandlerMixedSamplingWithFilter) + req1 = object.__new__(DataHandlerMixedSamplingSingleStation) + req2 = object.__new__(DataHandlerKzFilterSingleStation) + req = list(set(req1.requirements() + req2.requirements())) + assert sorted(obj._requirements) == sorted(remove_items(req, "station")) + + +class TestDataHandlerSeparationOfScalesSingleStation: + pass -- GitLab