def testQballOdfModel(): sphere, vecs_xy, bval, bvec, sig = make_fake_signal() qball_fitter = QballOdfModel(bval, bvec.T, 6, sphere=sphere) qball_fitter.angular_spacing_threshould = 0. norm_sig = sig S = qball_fitter.fit(norm_sig).odf() stepper = ClosestPeakSelector(qball_fitter, norm_sig, angle_limit=39) for ii in xrange(len(vecs_xy)): if np.dot(vecs_xy[ii], [0, 1., 0]) < .84: assert_raises(StopIteration, stepper.next_step, ii, [0, 1., 0]) else: step = stepper.next_step(ii, [0, 1., 0]) s2 = stepper.next_step(ii, vecs_xy[ii]) assert step is not None assert np.dot(vecs_xy[ii], step) > .98 step = stepper.next_step(ii, [1., 0, 0.]) assert_array_almost_equal([1., 0, 0.], step)