code: def test_sbmv(self, dtype):
      dtype = numpy.dtype(dtype)
      alpha, beta = 3.0, 2.0
      n, k = self.rank, self.band
      a = numpy.eye(n, n, 0, dtype, self.order)
      a *= numpy.random.randint(20)
      for i in range(1, k + 1):
          band = numpy.random.randint(20, size=n - i)
          a += numpy.diag(band, k=+i)
          a += numpy.diag(band, k=-i)
      x = numpy.random.randint(20, size=n).astype(a.dtype)
      y = numpy.random.randint(20, size=n).astype(a.dtype)
      ku, kl = k, 0
      if self.lower == 1:
          ku, kl = kl, ku
      b = self._gen2band(a, ku, kl)
      a, b = cupy.asarray(a), cupy.asarray(b)
      x, y = cupy.asarray(x), cupy.asarray(y)
      ref = alpha * a.dot(x) + beta * y
      if self.mode is not None:
          alpha = self.mode.array(alpha)
          beta = self.mode.array(beta)
      y_ret = cupy.cublas.sbmv(
          k, alpha, b, x, beta, y, lower=self.lower
      )
      tol = self._tol[dtype.char.lower()]
      cupy.testing.assert_allclose(y, ref, rtol=tol, atol=tol)
      cupy.testing.assert_allclose(y_ret, ref, rtol=tol, atol=tol)
  
imports: import numpy
  import pytest
  import cupy
  from cupy import cublas
  from cupy import testing
label_desc: Use image node_id 2 for calling the TestSbmv obj's underlying member method code with example usage: obj.test_sbmv(dtype) without return types