def METHOD_NAME(self, dtype):
    m, n = self.shape
    A = testing.shaped_random(self.shape, cupy, dtype=dtype)
    if self.permute_l:
        PL, U = cupyx.scipy.linalg.lu(A, permute_l=self.permute_l)
        PLU = PL @ U
    else:
        P, L, U = cupyx.scipy.linalg.lu(A, permute_l=self.permute_l)
        PLU = P @ L @ U
    # check that reconstruction is close to original
    cupy.testing.assert_allclose(PLU, A, atol=1e-5)