code: def test_periodic_cubic(self):
      # edge case: Cubic interpolation on 3 points
      # TODO: refactor when PPoly / CubicHermiteSpline is available
      n = 3
      cupy.random.seed(1234)
      x = cupy.sort(cupy.random.random_sample(n) * 10)
      y = cupy.random.random_sample(n) * 100
      y[0] = y[-1]
      b = csi.make_interp_spline(x, y, k=3, bc_type="periodic")
  
      cub = interpolate.CubicSpline(
          x.get(), y.get(), bc_type="periodic"
      )
      cupy.testing.assert_allclose(b(x), cub(x.get()), atol=1e-14)
  
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 8 for calling the TestInterpPeriodic obj's underlying member method code with example usage: obj.test_periodic_cubic() without return types