Skip to content

Commit 113d8cd

Browse files
committed
update test
1 parent 7d9e44b commit 113d8cd

File tree

1 file changed

+31
-20
lines changed

1 file changed

+31
-20
lines changed

tests/test_mudata_to_anndata.py

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,80 +9,91 @@
99

1010
@pytest.fixture
1111
def mock_mudata():
12-
"""创建测试用的MuData对象."""
12+
"""Create a MuData object for testing."""
1313
adata1 = anndata.AnnData(X=np.array([[1, 2], [3, 4]]))
1414
adata2 = anndata.AnnData(X=np.array([[5, 6], [7, 8]]))
1515
return Data(data=mudata.MuData({'mod1': adata1, 'mod2': adata2}))
1616

1717

18-
# 创建一个示例类来测试装饰器
1918
@add_mod_and_transform
2019
class SampleClass:
21-
"""示例类,用于测试装饰器."""
20+
"""Example class for testing the decorator."""
2221

2322
def __init__(self, x=10, **kwargs):
2423
self.x = x
2524

2625
def __call__(self, data, *args, **kwargs):
26+
# Multiply the data by self.x
27+
if isinstance(data.data, anndata.AnnData):
28+
data.data.X = data.data.X * self.x
2729
return data
2830

2931

3032
def test_class_init_with_mod():
31-
"""测试类初始化时带mod参数."""
33+
"""Test class initialization with mod parameter."""
3234
obj = SampleClass(x=10, mod="mod1")
3335
assert obj.x == 10
3436
assert obj.mod == "mod1"
3537

3638

3739
def test_class_init_without_mod():
38-
"""测试类初始化时不带mod参数."""
40+
"""Test class initialization without mod parameter."""
3941
obj = SampleClass(x=10)
4042
assert obj.x == 10
4143
assert obj.mod is None
4244

4345

4446
def test_class_call_with_anndata():
45-
"""测试使用AnnData对象调用."""
46-
obj = SampleClass(x=10)
47-
adata = Data(data=anndata.AnnData(X=np.array([[1, 2], [3, 4]])))
47+
"""Test calling with AnnData object."""
48+
obj = SampleClass(x=3)
49+
original_data = np.array([[1, 2], [3, 4]])
50+
adata = Data(data=anndata.AnnData(X=original_data.copy()))
4851
result = obj(adata)
49-
assert result is adata
52+
# Verify data is multiplied by x=3
53+
assert np.array_equal(result.data.X, original_data * 3)
5054

5155

5256
def test_class_call_with_mudata_and_mod(mock_mudata):
53-
"""测试使用MuData对象和mod参数调用."""
54-
obj = SampleClass(x=10, mod="mod1")
55-
original_data = mock_mudata.data.mod["mod1"].copy()
57+
"""Test calling with MuData object and mod parameter to verify that only the
58+
specified modality is modified."""
59+
obj = SampleClass(x=2, mod="mod1")
60+
# Store original data for both modalities
61+
original_mod1 = mock_mudata.data.mod["mod1"].X.copy()
62+
original_mod2 = mock_mudata.data.mod["mod2"].X.copy()
63+
5664
obj(mock_mudata)
57-
# 验证原始数据被正确修改
58-
assert np.array_equal(mock_mudata.data.mod["mod1"].X, original_data.X)
65+
66+
# Verify mod1 data is multiplied by x=2
67+
assert np.array_equal(mock_mudata.data.mod["mod1"].X, original_mod1 * 2)
68+
# Verify mod2 data remains unchanged
69+
assert np.array_equal(mock_mudata.data.mod["mod2"].X, original_mod2)
5970

6071

6172
def test_class_call_with_mudata_without_mod(mock_mudata):
62-
"""测试使用MuData对象但不带mod参数调用."""
73+
"""Test calling with MuData object but without mod parameter."""
6374
obj = SampleClass(x=10)
6475
result = obj(mock_mudata)
6576
assert result is mock_mudata
6677

6778

6879
def test_class_call_with_mudata_invalid_mod(mock_mudata):
69-
"""测试使用无效的mod参数."""
80+
"""Test using invalid mod parameter."""
7081
obj = SampleClass(x=10, mod="invalid_mod")
7182
with pytest.raises(KeyError):
7283
obj(mock_mudata)
7384

7485

7586
def test_decorator_preserves_metadata():
76-
"""测试装饰器是否保留了原始类的元数据."""
87+
"""Test if the decorator preserves the original class metadata."""
7788
assert hasattr(SampleClass, 'add_mod_and_transform')
7889
assert SampleClass.__init__.__doc__ == SampleClass.__init__.__wrapped__.__doc__
7990
assert SampleClass.__call__.__doc__ == SampleClass.__call__.__wrapped__.__doc__
8091

8192

8293
def test_class_call_with_additional_args(mock_mudata):
83-
"""测试带额外参数调用."""
94+
"""Test calling with additional arguments."""
8495
obj = SampleClass(x=10, mod="mod1")
8596
original_data = mock_mudata.data.mod["mod1"].copy()
8697
obj(mock_mudata, extra_arg="test")
87-
# 验证原始数据被正确修改
88-
assert np.array_equal(mock_mudata.data.mod["mod1"].X, original_data.X)
98+
# Verify original data is modified correctly
99+
assert np.array_equal(mock_mudata.data.mod["mod1"].X, original_data.X * 10)

0 commit comments

Comments
 (0)