From 32a145a8652da85f6ca03ab718f9c6cbf3dd58b1 Mon Sep 17 00:00:00 2001 From: Blazej Nowicki Date: Mon, 6 Mar 2023 12:59:09 +0100 Subject: [PATCH 1/2] Marking slow tests --- darts/tests/datasets/test_dataset_loaders.py | 3 +++ darts/tests/models/forecasting/test_TCN.py | 3 +++ darts/tests/models/forecasting/test_historical_forecasts.py | 3 +++ .../tests/models/forecasting/test_local_forecasting_models.py | 1 + darts/tests/models/forecasting/test_probabilistic_models.py | 2 ++ darts/tests/models/forecasting/test_regression_models.py | 4 ++++ pytest.ini | 4 ++++ 7 files changed, 20 insertions(+) create mode 100644 pytest.ini diff --git a/darts/tests/datasets/test_dataset_loaders.py b/darts/tests/datasets/test_dataset_loaders.py index 21d315f955..c39858b7c5 100644 --- a/darts/tests/datasets/test_dataset_loaders.py +++ b/darts/tests/datasets/test_dataset_loaders.py @@ -1,5 +1,7 @@ import os +import pytest + from darts import TimeSeries from darts.datasets import ( _DEFAULT_PATH, @@ -128,6 +130,7 @@ def tearDown(self): os.remove(os.path.join(default_directory, f)) os.rmdir(DatasetLoader._DEFAULT_DIRECTORY) + @pytest.mark.slow def test_ok_dataset(self): for width, dataset_cls in zip(width_datasets, datasets): dataset = dataset_cls() diff --git a/darts/tests/models/forecasting/test_TCN.py b/darts/tests/models/forecasting/test_TCN.py index e68836fab2..d84ae138a5 100644 --- a/darts/tests/models/forecasting/test_TCN.py +++ b/darts/tests/models/forecasting/test_TCN.py @@ -1,3 +1,5 @@ +import pytest + from darts.logging import get_logger from darts.metrics import mae from darts.tests.base_test_class import DartsBaseTestClass @@ -65,6 +67,7 @@ def test_performance(self): self.assertTrue(mae(pred, test) < 0.3) + @pytest.mark.slow def test_coverage(self): torch.manual_seed(0) input_chunk_lengths = range(20, 50) diff --git a/darts/tests/models/forecasting/test_historical_forecasts.py b/darts/tests/models/forecasting/test_historical_forecasts.py index 8fb5a2561a..b5f22d1c66 100644 --- a/darts/tests/models/forecasting/test_historical_forecasts.py +++ b/darts/tests/models/forecasting/test_historical_forecasts.py @@ -1,6 +1,7 @@ import unittest import numpy as np +import pytest from darts import TimeSeries from darts.dataprocessing.transformers import Scaler @@ -469,6 +470,7 @@ def test_regression_auto_start_multiple_no_cov(self): "of retrain=True and overlap_end=False, and a time index of type DateTimeIndex.", ) + @pytest.mark.slow @unittest.skipUnless( TORCH_AVAILABLE, "Torch not available. auto start and multiple time series for torch models will be skipped.", @@ -635,6 +637,7 @@ def test_regression_auto_start_multiple_with_cov(self): " retrain=True and overlap_end=False", ) + @pytest.mark.slow @unittest.skipUnless( TORCH_AVAILABLE, "Torch not available. auto start and multiple time series for torch models and covariates " diff --git a/darts/tests/models/forecasting/test_local_forecasting_models.py b/darts/tests/models/forecasting/test_local_forecasting_models.py index 04fc2ce771..5c4daf1358 100644 --- a/darts/tests/models/forecasting/test_local_forecasting_models.py +++ b/darts/tests/models/forecasting/test_local_forecasting_models.py @@ -357,6 +357,7 @@ def test_forecast_time_index(self): self.assertEqual(pred.start_time(), pd.Timestamp("20130121")) self.assertEqual(pred.end_time(), pd.Timestamp("20130125")) + @pytest.mark.slow def test_statsmodels_future_models(self): # same tests, but VARIMA requires to work on a multivariate target series diff --git a/darts/tests/models/forecasting/test_probabilistic_models.py b/darts/tests/models/forecasting/test_probabilistic_models.py index 6ecad577bd..0105786105 100644 --- a/darts/tests/models/forecasting/test_probabilistic_models.py +++ b/darts/tests/models/forecasting/test_probabilistic_models.py @@ -1,4 +1,5 @@ import numpy as np +import pytest from darts import TimeSeries from darts.logging import get_logger @@ -144,6 +145,7 @@ class ProbabilisticTorchModelsTestCase(DartsBaseTestClass): constant_noisy_multivar_ts = constant_noisy_ts.stack(constant_noisy_ts) num_samples = 5 + @pytest.mark.slow def test_fit_predict_determinism(self): for model_cls, model_kwargs, _ in models_cls_kwargs_errs: diff --git a/darts/tests/models/forecasting/test_regression_models.py b/darts/tests/models/forecasting/test_regression_models.py index 7c36a4120d..9512b0794e 100644 --- a/darts/tests/models/forecasting/test_regression_models.py +++ b/darts/tests/models/forecasting/test_regression_models.py @@ -6,6 +6,7 @@ import numpy as np import pandas as pd +import pytest from sklearn.ensemble import HistGradientBoostingRegressor, RandomForestRegressor from sklearn.linear_model import LinearRegression from sklearn.preprocessing import OneHotEncoder @@ -1191,6 +1192,7 @@ def test_models_runnability(self): prediction = model_instance.predict(n=1) self.assertEqual(len(prediction), 1) + @pytest.mark.slow def test_fit(self): multi_models_modes = [True, False] for mode in multi_models_modes: @@ -2217,6 +2219,7 @@ class ProbabilisticRegressionModelsTestCase(DartsBaseTestClass): constant_noisy_multivar_ts = constant_noisy_ts.stack(constant_noisy_ts) num_samples = 5 + @pytest.mark.slow def test_fit_predict_determinism(self): multi_models_modes = [False, True] for mode in multi_models_modes: @@ -2237,6 +2240,7 @@ def test_fit_predict_determinism(self): pred3 = model.predict(n=10, num_samples=2).values() self.assertTrue((pred2 != pred3).any()) + @pytest.mark.slow def test_probabilistic_forecast_accuracy(self): multi_models_modes = [True, False] for mode in multi_models_modes: diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000000..6b901cb9c6 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,4 @@ +[pytest] +addopts = --strict-markers +markers = + slow: marks tests as slow (deselect with '-m "not slow"') \ No newline at end of file From 95ab49920fd68fcc97f9395c7d02f5aa21aed760 Mon Sep 17 00:00:00 2001 From: Blazej Nowicki Date: Mon, 6 Mar 2023 13:40:46 +0100 Subject: [PATCH 2/2] Group torch tests --- darts/tests/models/forecasting/test_probabilistic_models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/darts/tests/models/forecasting/test_probabilistic_models.py b/darts/tests/models/forecasting/test_probabilistic_models.py index 0105786105..82af108536 100644 --- a/darts/tests/models/forecasting/test_probabilistic_models.py +++ b/darts/tests/models/forecasting/test_probabilistic_models.py @@ -136,6 +136,7 @@ ] +@pytest.mark.slow class ProbabilisticTorchModelsTestCase(DartsBaseTestClass): np.random.seed(0)