code: def test_svd_supported_array_shapes(chunks, shape):
      # Test the following cases for tall-skinny, short-fat and square arrays:
      # - no chunking
      # - chunking that contradicts shape (e.g. a 10x100 array with 9x100 chunks)
      # - chunking that aligns with shape (e.g. a 10x100 array with 10x9 chunks)
      x = np.random.default_rng().random(shape)
      dx = da.from_array(x, chunks=chunks)
  
      du, ds, dv = da.linalg.svd(dx)
      du, dv = da.compute(du, dv)
  
      nu, ns, nv = np.linalg.svd(x, full_matrices=False)
  
      # Correct signs before comparison
      du, dv = svd_flip(du, dv)
      nu, nv = svd_flip(nu, nv)
  
      assert_eq(du, nu)
      assert_eq(ds, ns)
      assert_eq(dv, nv)
  
imports: from __future__ import annotations
  import sys
  import pytest
  import numpy
  import scipy.linalg
  from packaging.version import parse
  import dask.array
  from dask.array.linalg import qr, sfqr, svd, svd_compressed, tsqr
  from dask.array.numpy_compat import _np_version
  from dask.array.utils import assert_eq, same_keys, svd_flip
label_desc: Use image node_id 33 for calling a global function with example usage: test_svd_supported_array_shapes(chunks, shape) without return types