diff --git a/docs/release-notes/0.10.6.md b/docs/release-notes/0.10.6.md index 428e1ed4..3f1cd503 100644 --- a/docs/release-notes/0.10.6.md +++ b/docs/release-notes/0.10.6.md @@ -1,10 +1,4 @@ -### 0.10.6 {small}`the future` - -```{rubric} Features -``` - -```{rubric} Performance -``` +### 0.10.6 {small}`2024-06-25` ```{rubric} Bug fixes ``` @@ -12,3 +6,4 @@ ```{rubric} Misc ``` +* updates tests to work without `scanpy.testing` {pr}`215` {smaller}`S Dicks` diff --git a/tests/_helpers/__init__.py b/tests/_helpers/__init__.py new file mode 100644 index 00000000..7e9431bf --- /dev/null +++ b/tests/_helpers/__init__.py @@ -0,0 +1,41 @@ +"""Like fixtures, but more flexible""" + +from __future__ import annotations + +from typing import TYPE_CHECKING + +import pytest +from anndata.tests.helpers import asarray +from scipy import sparse + + +if TYPE_CHECKING: + from collections.abc import Iterable + from typing import Literal + + from _pytest.mark.structures import ParameterSet + + +def param_with( + at: ParameterSet, + *, + marks: Iterable[pytest.Mark | pytest.MarkDecorator] = (), + id: str | None = None, +) -> ParameterSet: + return pytest.param(*at.values, marks=[*at.marks, *marks], id=id or at.id) + + +MAP_ARRAY_TYPES: dict[ + tuple[Literal["mem", "dask"], Literal["dense", "sparse"]], + tuple[ParameterSet, ...], +] = { + ("mem", "dense"): (pytest.param(asarray, id="numpy_ndarray"),), + ("mem", "sparse"): ( + pytest.param(sparse.csr_matrix, id="scipy_csr"), + pytest.param(sparse.csc_matrix, id="scipy_csc"), + ), +} + +ARRAY_TYPES_MEM = tuple( + at for (strg, _), ats in MAP_ARRAY_TYPES.items() if strg == "mem" for at in ats +) diff --git a/tests/test_aggregated.py b/tests/test_aggregated.py index e6e271c9..3dfb5fee 100644 --- a/tests/test_aggregated.py +++ b/tests/test_aggregated.py @@ -10,9 +10,9 @@ import scanpy as sc from scanpy._utils import _resolve_axis -from scanpy.testing._helpers import assert_equal -from scanpy.testing._helpers.data import pbmc3k_processed -from scanpy.testing._pytest.params import ARRAY_TYPES_MEM +from anndata.tests.helpers import assert_equal +from scanpy.datasets import pbmc3k_processed +from _helpers import ARRAY_TYPES_MEM import rapids_singlecell as rsc diff --git a/tests/test_pca.py b/tests/test_pca.py index 7cba1b90..c953df31 100644 --- a/tests/test_pca.py +++ b/tests/test_pca.py @@ -4,10 +4,9 @@ import pytest import rapids_singlecell as rsc from anndata import AnnData -from scanpy.datasets import pbmc3k_processed +from scanpy.datasets import pbmc3k_processed, pbmc3k from scipy import sparse import scanpy as sc -from scanpy.testing._helpers.data import pbmc3k_normalized A_list = [ [0, 0, 7, 0, 0], @@ -41,6 +40,15 @@ ) +def _pbmc3k_normalized() -> AnnData: + pbmc = pbmc3k() + pbmc.X = pbmc.X.astype("float64") # For better accuracy + sc.pp.filter_genes(pbmc, min_counts=1) + sc.pp.log1p(pbmc) + sc.pp.normalize_total(pbmc) + sc.pp.highly_variable_genes(pbmc) + return pbmc + def test_pca_transform(): A = np.array(A_list).astype("float32") A_pca_abs = np.abs(A_pca) @@ -211,7 +219,7 @@ def test_pca_layer(): """ Tests that layers works the same way as .X """ - X_adata = pbmc3k_normalized() + X_adata = _pbmc3k_normalized() X_adata.X = X_adata.X.astype(np.float64) layer_adata = X_adata.copy() diff --git a/tests/test_scrublet.py b/tests/test_scrublet.py index c158772e..6ab1cc28 100644 --- a/tests/test_scrublet.py +++ b/tests/test_scrublet.py @@ -19,15 +19,13 @@ def pbmc200() -> AnnData: - from scanpy.testing._helpers.data import _pbmc3k - - return _pbmc3k()[200:400].copy() + from scanpy.datasets import pbmc3k + return pbmc3k()[200:400].copy() def paul500() -> AnnData: - from scanpy.testing._helpers.data import _paul15 - - return _paul15()[:500].copy() + from scanpy.datasets import paul15 + return paul15()[:500].copy() @pytest.mark.parametrize(