|
3 | 3 | from importlib.util import find_spec |
4 | 4 | from typing import TYPE_CHECKING |
5 | 5 |
|
| 6 | +import numpy as np |
| 7 | +import pandas as pd |
6 | 8 | import pytest |
7 | 9 |
|
| 10 | +from anndata import AnnData |
8 | 11 | from anndata.compat import DaskArray |
9 | 12 | from anndata.experimental import read_lazy |
10 | 13 | from anndata.tests.helpers import ( |
|
20 | 23 | from collections.abc import Callable |
21 | 24 | from pathlib import Path |
22 | 25 |
|
23 | | - from anndata import AnnData |
24 | 26 | from anndata._types import AnnDataElem |
25 | 27 |
|
26 | 28 | pytestmark = pytest.mark.skipif(not find_spec("xarray"), reason="xarray not installed") |
@@ -112,6 +114,21 @@ def test_to_memory(adata_remote: AnnData, adata_orig: AnnData): |
112 | 114 | assert_equal(remote_to_memory, adata_orig) |
113 | 115 |
|
114 | 116 |
|
| 117 | +def test_access_counts_obsm_df(tmp_path: Path): |
| 118 | + adata = AnnData( |
| 119 | + X=np.array(np.random.rand(100, 20)), |
| 120 | + ) |
| 121 | + adata.obsm["df"] = pd.DataFrame( |
| 122 | + {"col1": np.random.rand(100), "col2": np.random.rand(100)}, |
| 123 | + index=adata.obs_names, |
| 124 | + ) |
| 125 | + adata.write_zarr(tmp_path) |
| 126 | + store = AccessTrackingStore(tmp_path) |
| 127 | + store.initialize_key_trackers(["obsm/df"]) |
| 128 | + read_lazy(store, load_annotation_index=False) |
| 129 | + store.assert_access_count("obsm/df", 0) |
| 130 | + |
| 131 | + |
115 | 132 | def test_view_to_memory(adata_remote: AnnData, adata_orig: AnnData): |
116 | 133 | obs_cats = adata_orig.obs["obs_cat"].cat.categories |
117 | 134 | subset_obs = adata_orig.obs["obs_cat"] == obs_cats[0] |
|
0 commit comments