public virtual void test_bind_invalidOrder()
        {
            GridSurfaceInterpolator test = GridSurfaceInterpolator.of(LINEAR, LINEAR);

            assertThrowsIllegalArg(() => test.bind(DoubleArray.of(1d, 1d, 0d, 0d), DoubleArray.of(1d, 2d, 1d, 2d), DoubleArray.of(1d, 1d, 1d, 1d)));
            assertThrowsIllegalArg(() => test.bind(DoubleArray.of(1d, 1d, 2d, 2d), DoubleArray.of(1d, 0d, 1d, 0d), DoubleArray.of(1d, 1d, 1d, 1d)));
        }
        //-------------------------------------------------------------------------
        public virtual void test_interpolation()
        {
            GridSurfaceInterpolator  test = GridSurfaceInterpolator.of(LINEAR, FLAT, FLAT, LINEAR, FLAT, FLAT);
            BoundSurfaceInterpolator bci  = test.bind(X_DATA, Y_DATA, Z_DATA);

            for (int i = 0; i < X_DATA.size(); i++)
            {
                assertEquals(bci.interpolate(X_DATA.get(i), Y_DATA.get(i)), Z_DATA.get(i), TOL);
            }
            for (int i = 0; i < X_TEST.size(); i++)
            {
                assertEquals(bci.interpolate(X_TEST.get(i), Y_TEST.get(i)), Z_TEST.get(i), TOL);
            }
        }