func = new FourierFunction(new float[]{1, 0.5f, 1}, new float[]{1, 1, 0.5f}, new float[]{0, -0.5f, 0.2f});
root = nrf.findRoot(func, -5, 5, 0.0001f);
TestUtil.assertClose(func.map(new float[]{root}), 0, 0.001f);
func = new IdentityFunction(1, 0);
root = nrf.findRoot(func, -5, 5, 0.0001f);
TestUtil.assertClose(func.map(new float[]{root}), 0, 0.001f);
func = new PiecewiseConstantFunction(new float[]{-1,1}, new float[]{2,0,-2});
try {