code: def test_shapes(self, xp, scp):
      xp.random.seed(1234)
      k, n = 3, 22
      x = xp.sort(xp.random.random(size=n))
      y = xp.random.random(size=(n, 5, 6, 7))
  
      b1 = scp.interpolate.make_interp_spline(x, y, k)
      assert b1.c.shape == (n, 5, 6, 7)
  
      # now throw in some derivatives
      d_l = [(1, xp.random.random((5, 6, 7)))]
      d_r = [(1, xp.random.random((5, 6, 7)))]
      b2 = scp.interpolate.make_interp_spline(
          x, y, k, bc_type=(d_l, d_r)
      )
      assert b2.c.shape == (n + k - 1, 5, 6, 7)
  
      return b1.c.shape + b2.c.shape
  
imports: import pytest
  import cupy
  from cupy import testing
  from cupy.cuda import runtime
  import numpy
  import cupyx.scipy.interpolate
label_desc: Use image node_id 23 for calling the TestInterp obj's underlying member method code with example usage: obj.test_shapes(xp, scp) and returns: unknown