code: def test_bspline_derivative_jumps(self, xp, scp):
      # example from de Boor, Chap IX, example (24)
      # NB: knots augmented & corresp coefs are zeroed out
      # in agreement with the convention (29)
      k = 2
      t = xp.asarray([-1, -1, 0, 1, 1, 3, 4, 6, 6, 6, 7, 7])
      c = xp.r_[0, 0, testing.shaped_random((5,), xp), 0, 0]
      b = scp.interpolate.BSpline(t, c, k)
  
      comp = []
      # b is continuous at x != 6 (triple knot)
      x = xp.asarray([1, 3, 4, 6])
      comp.append(b(x[x != 6] - 1e-10))
      comp.append(b(x[x != 6] + 1e-10))
      comp.append(b(6.0 - 1e-10))
      comp.append(b(6.0 + 1e-10))
  
      # 1st derivative jumps at double knots, 1 & 6:
      x0 = xp.asarray([3, 4])
      comp.append(b(x0 - 1e-10, nu=1))
      comp.append(b(x0 + 1e-10, nu=1))
  
      x1 = xp.asarray([1, 6])
      comp.append(b(x1 - 1e-10, nu=1))
      comp.append(b(x1 + 1e-10, nu=1))
  
      # 2nd derivative is not guaranteed to be continuous either
      comp.append(b(x - 1e-10, nu=2))
      comp.append(b(x + 1e-10, nu=2))
  
      return comp
  
imports: import pytest
  import inspect
  from cupy import testing
  from cupy_backends.cuda.api import driver
  from cupy_backends.cuda.api import runtime
  import numpy
  import cupyx.scipy.interpolate
label_desc: Use image node_id 14 for calling the TestBSpline obj's underlying member method code with example usage: obj.test_bspline_derivative_jumps(xp, scp) and returns: comp