diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index ef434da0..cf45adc6 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -27,7 +27,8 @@ jobs: run: | python -m pip install --upgrade pip pip install flake8 pytest + pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Test with pytest run: | - pytest --ignore=tests/run_all_test.py + pytest diff --git a/.gitignore b/.gitignore index abe1a2ed..a856b0cc 100644 --- a/.gitignore +++ b/.gitignore @@ -186,3 +186,7 @@ cython_debug/ # not ignore requirements.txt !*requirements.txt + +# keep datasets in test +!tests/smoke_test/datasets/ +!tests/smoke_test/datasets/**/*.npy \ No newline at end of file diff --git a/tests/basicts_test/test_launcher.py b/tests/basicts_test/test_launcher.py deleted file mode 100644 index b66a5495..00000000 --- a/tests/basicts_test/test_launcher.py +++ /dev/null @@ -1,2 +0,0 @@ -def test_launch(): - pass diff --git a/tests/datasets_test/__init__.py b/tests/datasets_test/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/run_all_test.py b/tests/run_all_test.py deleted file mode 100644 index bf535bd5..00000000 --- a/tests/run_all_test.py +++ /dev/null @@ -1,12 +0,0 @@ -import os -import unittest - -# find all test files -test_loader = unittest.defaultTestLoader -dir_of_this_script = os.path.dirname(os.path.realpath(__file__)) -top_dir = os.path.dirname(dir_of_this_script) -test_suite = test_loader.discover(start_dir=dir_of_this_script, pattern='test_*.py', top_level_dir=top_dir) - -# run all tests -test_runner = unittest.TextTestRunner() -test_runner.run(test_suite) diff --git a/tests/smoke_test/__init__.py b/tests/smoke_test/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/smoke_test/datasets/ETTh1_mini/meta.json b/tests/smoke_test/datasets/ETTh1_mini/meta.json new file mode 100644 index 00000000..f8fd32c0 --- /dev/null +++ b/tests/smoke_test/datasets/ETTh1_mini/meta.json @@ -0,0 +1,36 @@ +{ + "name": "ETTh1_mini", + "domain": "electricity transformer temperature", + "frequency (minutes)": 60, + "shape": [ + 720, + 7 + ], + "timestamps_shape": [ + 720, + 4 + ], + "timestamps_description": [ + "time of day", + "day of week", + "day of month", + "day of year" + ], + "num_time_steps": 720, + "num_vars": 7, + "has_graph": false, + "regular_settings": { + "train_val_test_ratio": [ + 0.6, + 0.2, + 0.2 + ], + "norm_each_channel": true, + "rescale": false, + "metrics": [ + "MAE", + "MSE" + ], + "null_val": NaN + } +} \ No newline at end of file diff --git a/tests/smoke_test/datasets/ETTh1_mini/test_data.npy b/tests/smoke_test/datasets/ETTh1_mini/test_data.npy new file mode 100644 index 00000000..cb6ee99b Binary files /dev/null and b/tests/smoke_test/datasets/ETTh1_mini/test_data.npy differ diff --git a/tests/smoke_test/datasets/ETTh1_mini/test_timestamps.npy b/tests/smoke_test/datasets/ETTh1_mini/test_timestamps.npy new file mode 100644 index 00000000..4c062926 Binary files /dev/null and b/tests/smoke_test/datasets/ETTh1_mini/test_timestamps.npy differ diff --git a/tests/smoke_test/datasets/ETTh1_mini/train_data.npy b/tests/smoke_test/datasets/ETTh1_mini/train_data.npy new file mode 100644 index 00000000..2f34da32 Binary files /dev/null and b/tests/smoke_test/datasets/ETTh1_mini/train_data.npy differ diff --git a/tests/smoke_test/datasets/ETTh1_mini/train_timestamps.npy b/tests/smoke_test/datasets/ETTh1_mini/train_timestamps.npy new file mode 100644 index 00000000..a49d669e Binary files /dev/null and b/tests/smoke_test/datasets/ETTh1_mini/train_timestamps.npy differ diff --git a/tests/smoke_test/datasets/ETTh1_mini/val_data.npy b/tests/smoke_test/datasets/ETTh1_mini/val_data.npy new file mode 100644 index 00000000..47b29c18 Binary files /dev/null and b/tests/smoke_test/datasets/ETTh1_mini/val_data.npy differ diff --git a/tests/smoke_test/datasets/ETTh1_mini/val_timestamps.npy b/tests/smoke_test/datasets/ETTh1_mini/val_timestamps.npy new file mode 100644 index 00000000..c7e93f2f Binary files /dev/null and b/tests/smoke_test/datasets/ETTh1_mini/val_timestamps.npy differ diff --git a/tests/smoke_test/test_dlinear.py b/tests/smoke_test/test_dlinear.py new file mode 100644 index 00000000..f3447bde --- /dev/null +++ b/tests/smoke_test/test_dlinear.py @@ -0,0 +1,37 @@ +# pylint: disable=wrong-import-position + +import os +import sys + +sys.path.append(os.path.abspath(__file__ + "/../../../src/")) +os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__)))) + +from basicts.configs import BasicTSForecastingConfig +from basicts.launcher import BasicTSLauncher +from basicts.models.DLinear import DLinear +from basicts.models.DLinear.config.dlinear_config import DLinearConfig + + +def test_dlinear_smoke_test(): + output_len = 64 + input_len = 64 + dlinear_config = DLinearConfig( + input_len=input_len, + output_len=output_len, + individual=False, + ) + + BasicTSLauncher.launch_training( + BasicTSForecastingConfig( + model=DLinear, + dataset_name="ETTh1_mini", + model_config=dlinear_config, + gpus=None, + num_epochs=5, + input_len=input_len, + output_len=output_len, + ) + ) + +if __name__ == "__main__": + test_dlinear_smoke_test()