code: def test_gels(self):
      b_shape = [self.shape[0]]
      if self.nrhs is not None:
          b_shape.append(self.nrhs)
      a = testing.shaped_random(self.shape, numpy, dtype=self.dtype)
      b = testing.shaped_random(b_shape, numpy, dtype=self.dtype)
      tol = self._tol[numpy.dtype(self.dtype).char.lower()]
      x_lstsq = numpy.linalg.lstsq(a, b, rcond=None)[0]
      x_gels = cusolver.gels(cupy.array(a), cupy.array(b))
      cupy.testing.assert_allclose(x_gels, x_lstsq, rtol=tol, atol=tol)
  
imports: import numpy
  import pytest
  import cupy
  from cupyx import cusolver
  from cupy import testing
  from cupy._core import _routines_linalg
  import cupyx
label_desc: Use image node_id 2 for calling the TestGels obj's underlying member method code with example usage: obj.test_gels() without return types