@@ -41,13 +41,20 @@ def test_swap_layer(
4141 assert res .X .sum ().is_integer ()
4242 assert list (res .layers .keys ()) == ['counts' , 'X' ]
4343 assert (ldata .X == res .layers ['X' ]).all ()
44+ res = dc .pp .swap_layer (adata = ldata , key = 'counts' , X_key = 'X' , inplace = True )
45+ assert res is None
46+ assert 'X' in ldata .layers
4447
4548
4649@pytest .mark .parametrize (
4750 'groups_col,mode,sparse,empty' ,
4851 [
4952 [None , 'sum' , False , True ],
53+ [None , 'sum' , True , True ],
5054 [None , 'mean' , True , True ],
55+ ['sample' , 'sum' , False , True ],
56+ ['sample' , 'sum' , False , False ],
57+ [['dose' , 'group' ], 'sum' , False , True ],
5158 ['group' , 'median' , False , False ],
5259 ['group' , lambda x : np .max (x ) - np .min (x ), True , True ],
5360 ['group' , dict (sum = np .sum , mean = np .mean ), False , False ],
@@ -59,11 +66,15 @@ def test_pseudobulk(
5966 mode ,
6067 sparse ,
6168 empty ,
69+ rng ,
6270):
6371 adata = adata .copy ()
72+ adata .obs ['dose' ] = rng .choice (['low' , 'medium' , 'high' ], size = adata .n_obs , replace = True )
6473 if empty :
6574 adata .X [:, 3 ] = 0.
6675 adata .layers ['counts' ][:, 3 ] = 0.
76+ adata .X [5 , :] = 0.
77+ adata .layers ['counts' ][5 , :] = 0.
6778 if sparse :
6879 adata .X = sps .csr_matrix (adata .X )
6980 if mode == 'sum' :
@@ -174,6 +185,15 @@ def test_filter_by_expr(
174185 "G04" , "G05" , "G03" , "G07" , "G18" , "G17" , "G02" , "G14" , "G16" , "G08" , "G13" , "G20" , "G01" , "G15" , "G06" , "G19"
175186 ])
176187 assert set (dc_var ) == set (eg_var )
188+ pdata .X = sps .csr_matrix (pdata .X )
189+ dc_var = dc .pp .filter_by_expr (
190+ adata = pdata , group = 'group' , lib_size = 1 , min_count = 3 , min_total_count = 10 , large_n = 0 , min_prop = 0.1 , inplace = False
191+ )
192+ assert set (dc_var ) == set (eg_var )
193+ dc .pp .filter_by_expr (
194+ adata = pdata , group = 'group' , lib_size = 1 , min_count = 3 , min_total_count = 10 , large_n = 0 , min_prop = 0.1 , inplace = True
195+ )
196+ assert set (pdata .var_names ) == set (eg_var )
177197
178198
179199@pytest .mark .parametrize ('inplace' , [True , False ])
@@ -219,9 +239,10 @@ def test_bin_order(
219239 order ,
220240 label ,
221241 nbins ,
242+ rng ,
222243):
223- rng = np .random .default_rng (seed = 42 )
224244 tdata .obs .loc [:, 'f_order' ] = rng .random (tdata .n_obs )
245+ tdata .X = sps .csr_matrix (tdata .X )
225246 df = dc .pp .bin_order (adata = tdata , names = names , order = order , label = label , nbins = nbins )
226247 assert isinstance (df , pd .DataFrame )
227248 cols = {'name' , 'order' , 'value' }
0 commit comments