From a7d3a958167c9b8a4acd0ed9c9c26dcc507e07ac Mon Sep 17 00:00:00 2001 From: Jesse Grabowski Date: Fri, 19 Jul 2024 09:00:20 +0800 Subject: [PATCH 1/3] Move `tests/` to project root --- {pymc_experimental/tests => tests}/__init__.py | 0 .../tests => tests}/distributions/__init__.py | 0 .../tests => tests}/distributions/test_continuous.py | 0 .../tests => tests}/distributions/test_discrete.py | 0 .../distributions/test_discrete_markov_chain.py | 0 .../tests => tests}/distributions/test_multivariate.py | 0 {pymc_experimental/tests => tests}/model/__init__.py | 0 .../tests => tests}/model/test_marginal_model.py | 2 +- {pymc_experimental/tests => tests}/model/test_model_api.py | 0 .../tests => tests}/model/transforms/test_autoreparam.py | 0 {pymc_experimental/tests => tests}/statespace/__init__.py | 0 .../tests => tests}/statespace/test_SARIMAX.py | 4 ++-- .../tests => tests}/statespace/test_VARMAX.py | 4 ++-- .../tests => tests}/statespace/test_coord_assignment.py | 4 +--- .../tests => tests}/statespace/test_data/airpass.csv | 0 .../tests => tests}/statespace/test_data/airpassangers.csv | 0 .../tests => tests}/statespace/test_data/nile.csv | 0 .../test_data/statsmodels_macrodata_processed.csv | 0 .../tests => tests}/statespace/test_distributions.py | 4 ++-- .../tests => tests}/statespace/test_kalman_filter.py | 4 ++-- .../tests => tests}/statespace/test_representation.py | 7 ++----- .../tests => tests}/statespace/test_statespace.py | 4 ++-- .../tests => tests}/statespace/test_statespace_JAX.py | 0 .../tests => tests}/statespace/test_structural.py | 4 ++-- .../tests => tests}/statespace/utilities/__init__.py | 0 .../statespace/utilities/shared_fixtures.py | 0 .../statespace/utilities/statsmodel_local_level.py | 0 .../tests => tests}/statespace/utilities/test_helpers.py | 6 ++---- {pymc_experimental/tests => tests}/test_blackjax_smc.py | 0 .../tests => tests}/test_histogram_approximation.py | 0 {pymc_experimental/tests => tests}/test_laplace.py | 0 {pymc_experimental/tests => tests}/test_linearmodel.py | 0 {pymc_experimental/tests => tests}/test_model_builder.py | 0 {pymc_experimental/tests => tests}/test_pathfinder.py | 0 .../tests => tests}/test_pivoted_cholesky.py | 0 .../tests => tests}/test_prior_from_trace.py | 0 {pymc_experimental/tests => tests}/test_splines.py | 0 {pymc_experimental/tests => tests}/utils.py | 0 38 files changed, 18 insertions(+), 25 deletions(-) rename {pymc_experimental/tests => tests}/__init__.py (100%) rename {pymc_experimental/tests => tests}/distributions/__init__.py (100%) rename {pymc_experimental/tests => tests}/distributions/test_continuous.py (100%) rename {pymc_experimental/tests => tests}/distributions/test_discrete.py (100%) rename {pymc_experimental/tests => tests}/distributions/test_discrete_markov_chain.py (100%) rename {pymc_experimental/tests => tests}/distributions/test_multivariate.py (100%) rename {pymc_experimental/tests => tests}/model/__init__.py (100%) rename {pymc_experimental/tests => tests}/model/test_marginal_model.py (99%) rename {pymc_experimental/tests => tests}/model/test_model_api.py (100%) rename {pymc_experimental/tests => tests}/model/transforms/test_autoreparam.py (100%) rename {pymc_experimental/tests => tests}/statespace/__init__.py (100%) rename {pymc_experimental/tests => tests}/statespace/test_SARIMAX.py (98%) rename {pymc_experimental/tests => tests}/statespace/test_VARMAX.py (96%) rename {pymc_experimental/tests => tests}/statespace/test_coord_assignment.py (97%) rename {pymc_experimental/tests => tests}/statespace/test_data/airpass.csv (100%) rename {pymc_experimental/tests => tests}/statespace/test_data/airpassangers.csv (100%) rename {pymc_experimental/tests => tests}/statespace/test_data/nile.csv (100%) rename {pymc_experimental/tests => tests}/statespace/test_data/statsmodels_macrodata_processed.csv (100%) rename {pymc_experimental/tests => tests}/statespace/test_distributions.py (98%) rename {pymc_experimental/tests => tests}/statespace/test_kalman_filter.py (98%) rename {pymc_experimental/tests => tests}/statespace/test_representation.py (96%) rename {pymc_experimental/tests => tests}/statespace/test_statespace.py (98%) rename {pymc_experimental/tests => tests}/statespace/test_statespace_JAX.py (100%) rename {pymc_experimental/tests => tests}/statespace/test_structural.py (99%) rename {pymc_experimental/tests => tests}/statespace/utilities/__init__.py (100%) rename {pymc_experimental/tests => tests}/statespace/utilities/shared_fixtures.py (100%) rename {pymc_experimental/tests => tests}/statespace/utilities/statsmodel_local_level.py (100%) rename {pymc_experimental/tests => tests}/statespace/utilities/test_helpers.py (97%) rename {pymc_experimental/tests => tests}/test_blackjax_smc.py (100%) rename {pymc_experimental/tests => tests}/test_histogram_approximation.py (100%) rename {pymc_experimental/tests => tests}/test_laplace.py (100%) rename {pymc_experimental/tests => tests}/test_linearmodel.py (100%) rename {pymc_experimental/tests => tests}/test_model_builder.py (100%) rename {pymc_experimental/tests => tests}/test_pathfinder.py (100%) rename {pymc_experimental/tests => tests}/test_pivoted_cholesky.py (100%) rename {pymc_experimental/tests => tests}/test_prior_from_trace.py (100%) rename {pymc_experimental/tests => tests}/test_splines.py (100%) rename {pymc_experimental/tests => tests}/utils.py (100%) diff --git a/pymc_experimental/tests/__init__.py b/tests/__init__.py similarity index 100% rename from pymc_experimental/tests/__init__.py rename to tests/__init__.py diff --git a/pymc_experimental/tests/distributions/__init__.py b/tests/distributions/__init__.py similarity index 100% rename from pymc_experimental/tests/distributions/__init__.py rename to tests/distributions/__init__.py diff --git a/pymc_experimental/tests/distributions/test_continuous.py b/tests/distributions/test_continuous.py similarity index 100% rename from pymc_experimental/tests/distributions/test_continuous.py rename to tests/distributions/test_continuous.py diff --git a/pymc_experimental/tests/distributions/test_discrete.py b/tests/distributions/test_discrete.py similarity index 100% rename from pymc_experimental/tests/distributions/test_discrete.py rename to tests/distributions/test_discrete.py diff --git a/pymc_experimental/tests/distributions/test_discrete_markov_chain.py b/tests/distributions/test_discrete_markov_chain.py similarity index 100% rename from pymc_experimental/tests/distributions/test_discrete_markov_chain.py rename to tests/distributions/test_discrete_markov_chain.py diff --git a/pymc_experimental/tests/distributions/test_multivariate.py b/tests/distributions/test_multivariate.py similarity index 100% rename from pymc_experimental/tests/distributions/test_multivariate.py rename to tests/distributions/test_multivariate.py diff --git a/pymc_experimental/tests/model/__init__.py b/tests/model/__init__.py similarity index 100% rename from pymc_experimental/tests/model/__init__.py rename to tests/model/__init__.py diff --git a/pymc_experimental/tests/model/test_marginal_model.py b/tests/model/test_marginal_model.py similarity index 99% rename from pymc_experimental/tests/model/test_marginal_model.py rename to tests/model/test_marginal_model.py index 31e38615..fd1ce259 100644 --- a/pymc_experimental/tests/model/test_marginal_model.py +++ b/tests/model/test_marginal_model.py @@ -22,7 +22,7 @@ is_conditional_dependent, marginalize, ) -from pymc_experimental.tests.utils import equal_computations_up_to_root +from tests.utils import equal_computations_up_to_root @pytest.fixture diff --git a/pymc_experimental/tests/model/test_model_api.py b/tests/model/test_model_api.py similarity index 100% rename from pymc_experimental/tests/model/test_model_api.py rename to tests/model/test_model_api.py diff --git a/pymc_experimental/tests/model/transforms/test_autoreparam.py b/tests/model/transforms/test_autoreparam.py similarity index 100% rename from pymc_experimental/tests/model/transforms/test_autoreparam.py rename to tests/model/transforms/test_autoreparam.py diff --git a/pymc_experimental/tests/statespace/__init__.py b/tests/statespace/__init__.py similarity index 100% rename from pymc_experimental/tests/statespace/__init__.py rename to tests/statespace/__init__.py diff --git a/pymc_experimental/tests/statespace/test_SARIMAX.py b/tests/statespace/test_SARIMAX.py similarity index 98% rename from pymc_experimental/tests/statespace/test_SARIMAX.py rename to tests/statespace/test_SARIMAX.py index fc09a632..fe9d8435 100644 --- a/pymc_experimental/tests/statespace/test_SARIMAX.py +++ b/tests/statespace/test_SARIMAX.py @@ -17,10 +17,10 @@ SARIMAX_STATE_STRUCTURES, SHORT_NAME_TO_LONG, ) -from pymc_experimental.tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import +from tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import rng, ) -from pymc_experimental.tests.statespace.utilities.test_helpers import ( +from tests.statespace.utilities.test_helpers import ( load_nile_test_data, make_stationary_params, simulate_from_numpy_model, diff --git a/pymc_experimental/tests/statespace/test_VARMAX.py b/tests/statespace/test_VARMAX.py similarity index 96% rename from pymc_experimental/tests/statespace/test_VARMAX.py rename to tests/statespace/test_VARMAX.py index 2ca0b363..43faebe8 100644 --- a/pymc_experimental/tests/statespace/test_VARMAX.py +++ b/tests/statespace/test_VARMAX.py @@ -11,7 +11,7 @@ from pymc_experimental.statespace import BayesianVARMAX from pymc_experimental.statespace.utils.constants import SHORT_NAME_TO_LONG -from pymc_experimental.tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import +from tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import rng, ) @@ -25,7 +25,7 @@ @pytest.fixture(scope="session") def data(): df = pd.read_csv( - "pymc_experimental/tests/statespace/test_data/statsmodels_macrodata_processed.csv", + "tests/statespace/test_data/statsmodels_macrodata_processed.csv", index_col=0, parse_dates=True, ).astype(floatX) diff --git a/pymc_experimental/tests/statespace/test_coord_assignment.py b/tests/statespace/test_coord_assignment.py similarity index 97% rename from pymc_experimental/tests/statespace/test_coord_assignment.py rename to tests/statespace/test_coord_assignment.py index bed64560..58310c4e 100644 --- a/pymc_experimental/tests/statespace/test_coord_assignment.py +++ b/tests/statespace/test_coord_assignment.py @@ -18,9 +18,7 @@ NO_FREQ_INFO_WARNING, NO_TIME_INDEX_WARNING, ) -from pymc_experimental.tests.statespace.utilities.test_helpers import ( - load_nile_test_data, -) +from tests.statespace.utilities.test_helpers import load_nile_test_data function_names = ["pandas_date_freq", "pandas_date_nofreq", "pandas_nodate", "numpy", "pytensor"] expected_warning = [ diff --git a/pymc_experimental/tests/statespace/test_data/airpass.csv b/tests/statespace/test_data/airpass.csv similarity index 100% rename from pymc_experimental/tests/statespace/test_data/airpass.csv rename to tests/statespace/test_data/airpass.csv diff --git a/pymc_experimental/tests/statespace/test_data/airpassangers.csv b/tests/statespace/test_data/airpassangers.csv similarity index 100% rename from pymc_experimental/tests/statespace/test_data/airpassangers.csv rename to tests/statespace/test_data/airpassangers.csv diff --git a/pymc_experimental/tests/statespace/test_data/nile.csv b/tests/statespace/test_data/nile.csv similarity index 100% rename from pymc_experimental/tests/statespace/test_data/nile.csv rename to tests/statespace/test_data/nile.csv diff --git a/pymc_experimental/tests/statespace/test_data/statsmodels_macrodata_processed.csv b/tests/statespace/test_data/statsmodels_macrodata_processed.csv similarity index 100% rename from pymc_experimental/tests/statespace/test_data/statsmodels_macrodata_processed.csv rename to tests/statespace/test_data/statsmodels_macrodata_processed.csv diff --git a/pymc_experimental/tests/statespace/test_distributions.py b/tests/statespace/test_distributions.py similarity index 98% rename from pymc_experimental/tests/statespace/test_distributions.py rename to tests/statespace/test_distributions.py index 1f441d41..1d049ae9 100644 --- a/pymc_experimental/tests/statespace/test_distributions.py +++ b/tests/statespace/test_distributions.py @@ -17,10 +17,10 @@ OBS_STATE_DIM, TIME_DIM, ) -from pymc_experimental.tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import +from tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import rng, ) -from pymc_experimental.tests.statespace.utilities.test_helpers import ( +from tests.statespace.utilities.test_helpers import ( delete_rvs_from_model, fast_eval, load_nile_test_data, diff --git a/pymc_experimental/tests/statespace/test_kalman_filter.py b/tests/statespace/test_kalman_filter.py similarity index 98% rename from pymc_experimental/tests/statespace/test_kalman_filter.py rename to tests/statespace/test_kalman_filter.py index d836c796..15d1effa 100644 --- a/pymc_experimental/tests/statespace/test_kalman_filter.py +++ b/tests/statespace/test_kalman_filter.py @@ -13,10 +13,10 @@ UnivariateFilter, ) from pymc_experimental.statespace.filters.kalman_filter import BaseFilter -from pymc_experimental.tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import +from tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import rng, ) -from pymc_experimental.tests.statespace.utilities.test_helpers import ( +from tests.statespace.utilities.test_helpers import ( get_expected_shape, get_sm_state_from_output_name, initialize_filter, diff --git a/pymc_experimental/tests/statespace/test_representation.py b/tests/statespace/test_representation.py similarity index 96% rename from pymc_experimental/tests/statespace/test_representation.py rename to tests/statespace/test_representation.py index f6cb06a3..10388d94 100644 --- a/pymc_experimental/tests/statespace/test_representation.py +++ b/tests/statespace/test_representation.py @@ -6,11 +6,8 @@ from numpy.testing import assert_allclose from pymc_experimental.statespace.core.representation import PytensorRepresentation -from pymc_experimental.tests.statespace.utilities.shared_fixtures import TEST_SEED -from pymc_experimental.tests.statespace.utilities.test_helpers import ( - fast_eval, - make_test_inputs, -) +from tests.statespace.utilities.shared_fixtures import TEST_SEED +from tests.statespace.utilities.test_helpers import fast_eval, make_test_inputs floatX = pytensor.config.floatX atol = 1e-12 if floatX == "float64" else 1e-6 diff --git a/pymc_experimental/tests/statespace/test_statespace.py b/tests/statespace/test_statespace.py similarity index 98% rename from pymc_experimental/tests/statespace/test_statespace.py rename to tests/statespace/test_statespace.py index 3aa6b96d..d93c6606 100644 --- a/pymc_experimental/tests/statespace/test_statespace.py +++ b/tests/statespace/test_statespace.py @@ -13,10 +13,10 @@ MATRIX_NAMES, SMOOTHER_OUTPUT_NAMES, ) -from pymc_experimental.tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import +from tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import rng, ) -from pymc_experimental.tests.statespace.utilities.test_helpers import ( +from tests.statespace.utilities.test_helpers import ( fast_eval, load_nile_test_data, make_test_inputs, diff --git a/pymc_experimental/tests/statespace/test_statespace_JAX.py b/tests/statespace/test_statespace_JAX.py similarity index 100% rename from pymc_experimental/tests/statespace/test_statespace_JAX.py rename to tests/statespace/test_statespace_JAX.py diff --git a/pymc_experimental/tests/statespace/test_structural.py b/tests/statespace/test_structural.py similarity index 99% rename from pymc_experimental/tests/statespace/test_structural.py rename to tests/statespace/test_structural.py index 76d52790..30a03781 100644 --- a/pymc_experimental/tests/statespace/test_structural.py +++ b/tests/statespace/test_structural.py @@ -24,10 +24,10 @@ SHOCK_DIM, SHORT_NAME_TO_LONG, ) -from pymc_experimental.tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import +from tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import rng, ) -from pymc_experimental.tests.statespace.utilities.test_helpers import ( +from tests.statespace.utilities.test_helpers import ( assert_pattern_repeats, simulate_from_numpy_model, unpack_symbolic_matrices_with_params, diff --git a/pymc_experimental/tests/statespace/utilities/__init__.py b/tests/statespace/utilities/__init__.py similarity index 100% rename from pymc_experimental/tests/statespace/utilities/__init__.py rename to tests/statespace/utilities/__init__.py diff --git a/pymc_experimental/tests/statespace/utilities/shared_fixtures.py b/tests/statespace/utilities/shared_fixtures.py similarity index 100% rename from pymc_experimental/tests/statespace/utilities/shared_fixtures.py rename to tests/statespace/utilities/shared_fixtures.py diff --git a/pymc_experimental/tests/statespace/utilities/statsmodel_local_level.py b/tests/statespace/utilities/statsmodel_local_level.py similarity index 100% rename from pymc_experimental/tests/statespace/utilities/statsmodel_local_level.py rename to tests/statespace/utilities/statsmodel_local_level.py diff --git a/pymc_experimental/tests/statespace/utilities/test_helpers.py b/tests/statespace/utilities/test_helpers.py similarity index 97% rename from pymc_experimental/tests/statespace/utilities/test_helpers.py rename to tests/statespace/utilities/test_helpers.py index 7b18b79b..7f2183c1 100644 --- a/pymc_experimental/tests/statespace/utilities/test_helpers.py +++ b/tests/statespace/utilities/test_helpers.py @@ -11,9 +11,7 @@ MATRIX_NAMES, SHORT_NAME_TO_LONG, ) -from pymc_experimental.tests.statespace.utilities.statsmodel_local_level import ( - LocalLinearTrend, -) +from tests.statespace.utilities.statsmodel_local_level import LocalLinearTrend floatX = pytensor.config.floatX @@ -21,7 +19,7 @@ def load_nile_test_data(): from importlib.metadata import version - nile = pd.read_csv("pymc_experimental/tests/statespace/test_data/nile.csv", dtype={"x": floatX}) + nile = pd.read_csv("tests/statespace/test_data/nile.csv", dtype={"x": floatX}) major, minor, rev = map(int, version("pandas").split(".")) if major >= 2 and minor >= 2 and rev >= 0: freq_str = "YS-JAN" diff --git a/pymc_experimental/tests/test_blackjax_smc.py b/tests/test_blackjax_smc.py similarity index 100% rename from pymc_experimental/tests/test_blackjax_smc.py rename to tests/test_blackjax_smc.py diff --git a/pymc_experimental/tests/test_histogram_approximation.py b/tests/test_histogram_approximation.py similarity index 100% rename from pymc_experimental/tests/test_histogram_approximation.py rename to tests/test_histogram_approximation.py diff --git a/pymc_experimental/tests/test_laplace.py b/tests/test_laplace.py similarity index 100% rename from pymc_experimental/tests/test_laplace.py rename to tests/test_laplace.py diff --git a/pymc_experimental/tests/test_linearmodel.py b/tests/test_linearmodel.py similarity index 100% rename from pymc_experimental/tests/test_linearmodel.py rename to tests/test_linearmodel.py diff --git a/pymc_experimental/tests/test_model_builder.py b/tests/test_model_builder.py similarity index 100% rename from pymc_experimental/tests/test_model_builder.py rename to tests/test_model_builder.py diff --git a/pymc_experimental/tests/test_pathfinder.py b/tests/test_pathfinder.py similarity index 100% rename from pymc_experimental/tests/test_pathfinder.py rename to tests/test_pathfinder.py diff --git a/pymc_experimental/tests/test_pivoted_cholesky.py b/tests/test_pivoted_cholesky.py similarity index 100% rename from pymc_experimental/tests/test_pivoted_cholesky.py rename to tests/test_pivoted_cholesky.py diff --git a/pymc_experimental/tests/test_prior_from_trace.py b/tests/test_prior_from_trace.py similarity index 100% rename from pymc_experimental/tests/test_prior_from_trace.py rename to tests/test_prior_from_trace.py diff --git a/pymc_experimental/tests/test_splines.py b/tests/test_splines.py similarity index 100% rename from pymc_experimental/tests/test_splines.py rename to tests/test_splines.py diff --git a/pymc_experimental/tests/utils.py b/tests/utils.py similarity index 100% rename from pymc_experimental/tests/utils.py rename to tests/utils.py From 4c59d532b51cc77df44acb1ea6ddc1ec1fe4ff2b Mon Sep 17 00:00:00 2001 From: Jesse Grabowski Date: Fri, 19 Jul 2024 09:23:46 +0800 Subject: [PATCH 2/3] Update imports --- tests/statespace/test_statespace_JAX.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tests/statespace/test_statespace_JAX.py b/tests/statespace/test_statespace_JAX.py index 20dd3d6f..d9a0c4f9 100644 --- a/tests/statespace/test_statespace_JAX.py +++ b/tests/statespace/test_statespace_JAX.py @@ -12,17 +12,14 @@ MATRIX_NAMES, SMOOTHER_OUTPUT_NAMES, ) -from pymc_experimental.tests.statespace.test_statespace import ( # pylint: disable=unused-import +from tests.statespace.test_statespace import ( # pylint: disable=unused-import exog_ss_mod, - make_statespace_mod, ss_mod, ) -from pymc_experimental.tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import +from tests.statespace.utilities.shared_fixtures import ( # pylint: disable=unused-import rng, ) -from pymc_experimental.tests.statespace.utilities.test_helpers import ( - load_nile_test_data, -) +from tests.statespace.utilities.test_helpers import load_nile_test_data pytest.importorskip("jax") pytest.importorskip("numpyro") From b69e587ca9280037fdb519fdd4f3c03363d0fc6d Mon Sep 17 00:00:00 2001 From: Jesse Grabowski Date: Fri, 19 Jul 2024 09:26:00 +0800 Subject: [PATCH 3/3] Update test location in CI --- .github/workflows/test.yml | 5 +++-- codecov.yml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1379b99c..37616dd3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,6 +7,7 @@ on: paths: - ".github/workflows/*" - "pymc_experimental/**" + - "tests/**" - "setup.py" - "pyproject.toml" - "buildosx" @@ -20,7 +21,7 @@ jobs: os: [ubuntu-latest] python-version: ["3.10"] test-subset: - - pymc_experimental/tests + - tests fail-fast: false runs-on: ${{ matrix.os }} env: @@ -58,7 +59,7 @@ jobs: os: [windows-latest] python-version: ["3.12"] test-subset: - - pymc_experimental/tests + - tests fail-fast: false runs-on: ${{ matrix.os }} env: diff --git a/codecov.yml b/codecov.yml index 6e7041ca..0a251b89 100644 --- a/codecov.yml +++ b/codecov.yml @@ -22,7 +22,7 @@ coverage: base: auto ignore: - - "pymc_experimental/tests/*" + - "tests/*" comment: layout: "reach, diff, flags, files"