def METHOD_NAME(ndim):
    """
    Test that only parameter are evaluated at the variable anf Function and FD indices
    stay unchanged
    """
    grid = Grid(tuple([10]*ndim))
    dims = list(powerset(grid.dimensions))[1:]
    var = Function(name="f", grid=grid, staggered=NODE)
    for d in dims:
        f = Function(name="f", grid=grid, staggered=d)
        f2 = Function(name="f2", grid=grid, staggered=d, parameter=True)
        # Not a parameter stay untouched (or FD would be destroyed by _eval_at)
        assert f._eval_at(var).evaluate == f
        # Parameter, automatic averaging
        avg = f2
        for dd in d:
            avg = .5 * (avg + avg.subs({dd: dd - dd.spacing}))
        assert f2._eval_at(var).evaluate == avg