code: def test_lu_factor_reconstruction_singular(self, dtype):
      if self.shape[0] != self.shape[1]:
          self.skipTest(
              "skip non-square tests since scipy.lu_factor requires square"
          )
      A = testing.shaped_random(self.shape, cupy, dtype=dtype)
      A -= A.mean(axis=0, keepdims=True)
      A -= A.mean(axis=1, keepdims=True)
      with warnings.catch_warnings():
          warnings.simplefilter("ignore", RuntimeWarning)
          self.check_lu_factor_reconstruction(A)
  
file_path: cupy/tests/cupyx_tests/scipy_tests/linalg_tests/test_decomp_lu.py
imports: import unittest
  import warnings
  import numpy
  import cupy
  from cupy import testing
  import cupyx.scipy.linalg
label_desc: Use image node_id 4 for calling the TestLUFactor obj's underlying member method code with example usage: obj.test_lu_factor_reconstruction_singular(dtype) without return types