'Test that the different modes are producing the correct results using
a uniform kernel with three elements'

@pytest.mark.parametrize(option_names, options)
def test_uniform_3(self, boundary, nan_treatment, normalize_kernel):

    x = np.array([1.0, 0.0, 3.0], dtype=u'float64')
    y = np.array([1.0, 1.0, 1.0], dtype=u'float64')
    z = convolve_fft(x, y, boundary=boundary, nan_treatment=nan_treatment, normalize_kernel=normalize_kernel)
    answer_key = (boundary, nan_treatment, normalize_kernel)
    answer_dict = {u'sum_fill_zeros': np.array([1.0, 4.0, 3.0], dtype=u'float64'), u'average_fill_zeros': np.array([(1 / 3.0), (4 / 3.0), 1.0], dtype=u'float64'), u'sum_wrap': np.array([4.0, 4.0, 4.0], dtype=u'float64'), u'average_wrap': np.array([(4 / 3.0), (4 / 3.0), (4 / 3.0)], dtype=u'float64')}
    result_dict = {(u'fill', u'interpolate', True): answer_dict[u'average_fill_zeros'], (u'wrap', u'interpolate', True): answer_dict[u'average_wrap'], (u'fill', u'interpolate', False): answer_dict[u'sum_fill_zeros'], (u'wrap', u'interpolate', False): answer_dict[u'sum_wrap']}
    for k in list(result_dict.keys()):
        result_dict[(k[0], u'fill', k[2])] = result_dict[k]
    for k in list(result_dict.keys()):
        if (k[0] == u'fill'):
            result_dict[(None, k[1], k[2])] = result_dict[k]
    assert_array_almost_equal_nulp(z, result_dict[answer_key], 10)
