@@ -239,6 +239,42 @@ def test_brain_data_3mm(tmpdir):
239239 diff = m2 - m1
240240 assert np .sum (diff .data ) == 0
241241
242+ # Test Bootstrap
243+ masked = dat .apply_mask (create_sphere (radius = 10 , coordinates = [0 , 0 , 0 ]))
244+ n_samples = 3
245+ b = masked .bootstrap ('mean' , n_samples = n_samples )
246+ assert isinstance (b ['Z' ], Brain_Data )
247+ b = masked .bootstrap ('std' , n_samples = n_samples )
248+ assert isinstance (b ['Z' ], Brain_Data )
249+ b = masked .bootstrap ('predict' , n_samples = n_samples , plot = False )
250+ assert isinstance (b ['Z' ], Brain_Data )
251+ b = masked .bootstrap ('predict' , n_samples = n_samples ,
252+ plot = False , cv_dict = {'type' :'kfolds' ,'n_folds' :3 })
253+ assert isinstance (b ['Z' ], Brain_Data )
254+ b = masked .bootstrap ('predict' , n_samples = n_samples ,
255+ save_weights = True , plot = False )
256+ assert len (b ['samples' ])== n_samples
257+
258+ # Test decompose
259+ n_components = 3
260+ stats = dat .decompose (algorithm = 'pca' , n_components = n_components )
261+ assert n_components == len (stats ['components' ])
262+ assert stats ['weights' ].shape == (n_components ,len (dat ))
263+
264+ stats = dat .decompose (algorithm = 'ica' , n_components = n_components )
265+ assert n_components == len (stats ['components' ])
266+ assert stats ['weights' ].shape == (n_components ,len (dat ))
267+
268+ dat .data = dat .data + 2
269+ dat .data [dat .data < 0 ] = 0
270+ stats = dat .decompose (algorithm = 'nnmf' , n_components = n_components )
271+ assert n_components == len (stats ['components' ])
272+ assert stats ['weights' ].shape == (n_components ,len (dat ))
273+
274+ stats = dat .decompose (algorithm = 'fa' , n_components = n_components )
275+ assert n_components == len (stats ['components' ])
276+ assert stats ['weights' ].shape == (n_components ,len (dat ))
277+
242278def test_brain_data_2mm (tmpdir ):
243279 MNI_Template ["resolution" ] = '2mm'
244280 sim = Simulator ()
@@ -468,6 +504,26 @@ def test_brain_data_2mm(tmpdir):
468504 save_weights = True , plot = False )
469505 assert len (b ['samples' ])== n_samples
470506
507+ # Test decompose
508+ n_components = 3
509+ stats = dat .decompose (algorithm = 'pca' , n_components = n_components )
510+ assert n_components == len (stats ['components' ])
511+ assert stats ['weights' ].shape == (n_components ,len (dat ))
512+
513+ stats = dat .decompose (algorithm = 'ica' , n_components = n_components )
514+ assert n_components == len (stats ['components' ])
515+ assert stats ['weights' ].shape == (n_components ,len (dat ))
516+
517+ dat .data = dat .data + 2
518+ dat .data [dat .data < 0 ] = 0
519+ stats = dat .decompose (algorithm = 'nnmf' , n_components = n_components )
520+ assert n_components == len (stats ['components' ])
521+ assert stats ['weights' ].shape == (n_components ,len (dat ))
522+
523+ stats = dat .decompose (algorithm = 'fa' , n_components = n_components )
524+ assert n_components == len (stats ['components' ])
525+ assert stats ['weights' ].shape == (n_components ,len (dat ))
526+
471527def test_adjacency (tmpdir ):
472528 n = 10
473529 sim = np .random .multivariate_normal ([0 ,0 ,0 ,0 ],[[1 , 0.8 , 0.1 , 0.4 ],
0 commit comments