code: def test_ctor(self, xp, scp):
      # knots should be an ordered 1-D array of finite real numbers
      t = [1, 1.0j]
      c = [1.0]
      k = 0
      scp.interpolate.BSpline(t, c, k)
  
      t = [1, xp.nan]
      scp.interpolate.BSpline(t, c, k)
  
      t = [1, xp.inf]
      scp.interpolate.BSpline(t, c, k)
  
      t = [1, -1]
      scp.interpolate.BSpline(t, c, k)
  
      t = [[1], [1]]
      scp.interpolate.BSpline(t, c, k)
  
      # for n+k+1 knots and degree k need at least n coefficients
      t = [0, 1, 2]
      c = [1]
      scp.interpolate.BSpline(t, c, k)
  
      t = [0, 1, 2, 3, 4]
      c = [1.0, 1.0]
      k = 2
      scp.interpolate.BSpline(t, c, k)
  
      # non-integer orders
      t = [0.0, 0.0, 1.0, 2.0, 3.0, 4.0]
      c = [1.0, 1.0, 1.0]
      k = "cubic"
      scp.interpolate.BSpline(t, c, k)
  
      t = [0.0, 0.0, 1.0, 2.0, 3.0, 4.0]
      c = [1.0, 1.0, 1.0]
      k = 2.5
      scp.interpolate.BSpline(t, c, k)
  
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 2 for calling the TestBSpline obj's underlying member method code with example usage: obj.test_ctor(xp, scp) without return types