code: def test_descending_points(self, method):
      def val_func_3d(x, y, z):
          return 2 * x**3 + 3 * y**2 - z
  
      x = cp.linspace(1, 4, 11)
      y = cp.linspace(4, 7, 22)
      z = cp.linspace(7, 9, 33)
      points = (x, y, z)
      values = val_func_3d(
          *cp.meshgrid(*points, indexing="ij", sparse=True)
      )
      my_interpolating_function = RegularGridInterpolator(
          points, values, method=method
      )
      pts = cp.array([[2.1, 6.2, 8.3], [3.3, 5.2, 7.1]])
      correct_result = my_interpolating_function(pts)
  
      # descending data
      x_descending = x[::-1]
      y_descending = y[::-1]
      z_descending = z[::-1]
      points_shuffled = (x_descending, y_descending, z_descending)
      values_shuffled = val_func_3d(
          *cp.meshgrid(*points_shuffled, indexing="ij", sparse=True)
      )
      my_interpolating_function = RegularGridInterpolator(
          points_shuffled, values_shuffled, method=method
      )
      test_result = my_interpolating_function(pts)
  
      assert_array_equal(correct_result, test_result)
  
imports: import pytest
  import cupy
  from cupy.testing import assert_allclose, assert_array_equal, assert_array_almost_equal
  from cupy_backends.cuda.api import runtime
  from pytest import raises
  from cupyx.scipy.interpolate import RegularGridInterpolator, interpn
label_desc: Use image node_id 21 for calling the TestRegularGridInterpolator obj's underlying member method code with example usage: obj.test_descending_points(method) and returns: unknown