code: def _make_random_matrix(self, shape, xp):
      a = testing.shaped_random(shape, xp, dtype=self.r_dtype, scale=1)
      if self.dtype.char in "FD":
          a = a + 1j * testing.shaped_random(
              shape, xp, dtype=self.r_dtype, scale=1
          )
      return a
  
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 1 for calling the TestGesv obj's underlying member method code with example usage: obj._make_random_matrix(shape, xp) and returns: a