> I can see benefit to what you're suggesting, but I'm just not convinced that the exact value from bilinear interpolation is a better solution than the exact analytical value.

The key question is, "what is this function supposed to do?" Since the answer is "compute the bilinear interpolation" then that's what we should be testing.

> what if we change the interpolation scheme in the future and therefore the numbers become meaningless

If we change the interpolation scheme then by definition this will no longer be a bilinear interpolation function so the expected results *should* change. Put it another way, if the same test will work irrespective of interpolation scheme then how do you know those interpolation schemes are doing the right kind of interpolation? When a user chooses a particular interpolation scheme they might be relying on behaviour that's more exact than "gets kinda close to the theoretical surface" ... for example the behaviour of the derivatives.