'Test that the different modes are producing the correct results using
a 3x3 uniform kernel. This version includes a NaN value in the
original array.'

@pytest.mark.parametrize(u'boundary', BOUNDARY_OPTIONS)
def test_uniform_3x3_withnaninterped(self, boundary):

    x = np.array([[0.0, 0.0, 4.0], [1.0, np.nan, 0.0], [0.0, 3.0, 0.0]], dtype=u'>f8')
    y = np.array([[1.0, 1.0, 1.0], [1.0, 1.0, 1.0], [1.0, 1.0, 1.0]], dtype=u'>f8')
    z = convolve(x, y, boundary=boundary, nan_treatment=u'interpolate', normalize_kernel=True)
    if (boundary is None):
        assert_array_almost_equal_nulp(z, np.array([[0.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 0.0]], dtype=u'>f8'), 10)
    elif (boundary == u'fill'):
        assert_array_almost_equal_nulp(z, np.array([[(1.0 / 8), (5.0 / 8), (4.0 / 8)], [(4.0 / 8), (8.0 / 8), (7.0 / 8)], [(4.0 / 8), (4.0 / 8), (3.0 / 8)]], dtype=u'>f8'), 10)
    elif (boundary == u'wrap'):
        assert_array_almost_equal_nulp(z, np.array([[1.0, 1.0, 1.0], [1.0, 1.0, 1.0], [1.0, 1.0, 1.0]], dtype=u'>f8'), 10)
    elif (boundary == u'extend'):
        assert_array_almost_equal_nulp(z, np.array([[(2.0 / 8), (9.0 / 8), (16.0 / 8)], [(5.0 / 8), (8.0 / 8), (11.0 / 8)], [(8.0 / 8), (7.0 / 8), (6.0 / 8)]], dtype=u'>f8'), 10)
    else:
        raise ValueError(u'Invalid    boundary    specification')
