Exemple #1
0
def test_ClosestPeakSelector():
    sphere, vecs_xy, bval, bvec, sig = make_fake_signal()
    opdf_fitter = SlowAdcOpdfModel(bval, bvec.T, 6, sphere=sphere)
    opdf_fitter.angular_distance_threshold = 0.
    norm_sig = sig
    stepper = ClosestPeakSelector(opdf_fitter, norm_sig, angle_limit=49)
    stepper.angular_spacing_threshould = 0.
    S = opdf_fitter.fit(norm_sig).odf()
    for ii in xrange(len(vecs_xy)):
        if np.dot(vecs_xy[ii], [0, 1., 0]) < .56:
            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_array_equal(vecs_xy[ii], step)
            step = stepper.next_step(ii, [1., 0, 0.])
            assert_array_almost_equal([1., 0, 0.], step)

    norm_sig.shape = (2, 2, 4, -1)
    stepper = ClosestPeakSelector(opdf_fitter, norm_sig, angle_limit=49)
    step = stepper.next_step((0, 0, 0), [1, 0, 0])
    assert_array_almost_equal(step, [1, 0, 0])