code: def test_xi_broadcast(self, method):
      # verify that the interpolators broadcast xi
      x, y, values = self._sample_2d_data()
      points = (x, y)
  
      xi = cp.linspace(0, 1, 2)
      yi = cp.linspace(0, 3, 3)
  
      sample = (xi[:, None], yi[None, :])
      v1 = interpn(
          points, values, sample, method=method, bounds_error=False
      )
      assert_array_equal(v1.shape, (2, 3))
  
      xx, yy = cp.meshgrid(xi, yi)
      sample = cp.c_[xx.T.ravel(), yy.T.ravel()]
  
      v2 = interpn(
          points, values, sample, method=method, bounds_error=False
      )
      assert_allclose(v1, v2.reshape(v1.shape))
  
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 9 for calling the TestInterpN obj's underlying member method code with example usage: obj.test_xi_broadcast(method) without return types