def METHOD_NAME(variant_scalar_rgb):
    # Use a slightly larger filter
    f = mi.load_dict({
        'type': 'tent',
        'radius': 0.85
    })
    a = dr.linspace(Float, 0, 1, 5)
    b = dr.zeros(Float, 3)
    w0 = f.eval(0.8) / (f.eval(0.8) + f.eval(0.2) + f.eval(0.4))
    w1 = f.eval(0.4) / (f.eval(0.8) + f.eval(0.2) + f.eval(0.4))
    w2 = f.eval(0.2) / (f.eval(0.8) + f.eval(0.2) + f.eval(0.4))
    resampler = mi.Resampler(f, 5, 3)
    resampler.set_boundary_condition(mi.FilterBoundaryCondition.Clamp)
    assert resampler.taps() == 3
    resampler.resample(a, 1, b, 1, 1)
    assert dr.allclose(b, [(0 + 0 + w1*0.25), 0.5, (w1*0.75 + w2*1 + w0*1)])
    resampler.set_boundary_condition(mi.FilterBoundaryCondition.Zero)
    resampler.resample(a, 1, b, 1, 1)
    assert dr.allclose(b, [(0 + 0 + w1*0.25), 0.5, (w1*0.75 + w2*1 + 0)])
    resampler.set_boundary_condition(mi.FilterBoundaryCondition.One)
    resampler.resample(a, 1, b, 1, 1)
    assert dr.allclose(b, [(w0*1 + 0 + w1*0.25), 0.5, (w1*0.75 + w2*1 + w0*1)])
    resampler.set_boundary_condition(mi.FilterBoundaryCondition.Repeat)
    resampler.resample(a, 1, b, 1, 1)
    assert dr.allclose(b, [(w0*1 + 0 + w1*0.25), 0.5, (w1*0.75 + w2*1 + 0)])
    resampler.set_boundary_condition(mi.FilterBoundaryCondition.Mirror)
    resampler.resample(a, 1, b, 1, 1)
    assert dr.allclose(b, [(w0*0.25 + 0 + w1*0.25), 0.5, (w1*0.75 + w2*1 + w0*0.75)])