def METHOD_NAME():
    # Test the constructors and errors of the PTTDirectionGetter
    class SillyModel(SphHarmModel):
        def fit(self, data, mask=None):
            coeff = np.zeros(data.shape[:-1] + (15,))
            return SphHarmFit(self, coeff, mask=None)
    silly_model = SillyModel(gtab=None)
    data = np.zeros((3, 3, 3, 7))
    fit = silly_model.fit(data)
    point = np.zeros(3)
    dir = unit_octahedron.vertices[0].copy()
    # Make ptt_dg from shm_coeffs
    dg = PTTDirectionGetter.from_shcoeff(fit.shm_coeff, 90,
                                         unit_octahedron)
    npt.assert_equal(dg.get_direction(point, dir), 1)
    # Make ptt_dg from pmf
    pmf = np.zeros((3, 3, 3, unit_octahedron.theta.shape[0]))
    dg = PTTDirectionGetter.from_pmf(pmf, 90, unit_octahedron)
    npt.assert_equal(dg.get_direction(point, dir), 1)
    # Check probe_length ValueError
    npt.assert_raises(ValueError,
                      PTTDirectionGetter.from_shcoeff,
                      fit.shm_coeff, 90, unit_octahedron,
                      basis_type="tournier07",
                      probe_length=0)
    # Check probe_radius ValueError
    npt.assert_raises(ValueError,
                      PTTDirectionGetter.from_shcoeff,
                      fit.shm_coeff, 90, unit_octahedron,
                      basis_type="tournier07",
                      probe_radius=-1)
    # Check probe_quality ValueError
    npt.assert_raises(ValueError,
                      PTTDirectionGetter.from_shcoeff,
                      fit.shm_coeff, 90, unit_octahedron,
                      basis_type="tournier07",
                      probe_quality=1)
    # Check probe_length ValueError
    npt.assert_raises(ValueError,
                      PTTDirectionGetter.from_shcoeff,
                      fit.shm_coeff, 90, unit_octahedron,
                      basis_type="tournier07",
                      probe_count=0)