code: def test_singular_values_wide():
      if not DASK_2_26_0:
          # See https://github.com/dask/dask/pull/6591
          pytest.xfail(
              "Dask SVD with wide arrays not supported until 2.26.0"
          )
      # This is split off test_singular_values, but we can't pass it ATM
      # Set the singular values and see what we get back
      rng = np.random.RandomState(0)
      n_samples = 100
      n_features = 110
  
      X = rng.randn(n_samples, n_features)
  
      pca = sd.PCA(n_components=3, svd_solver="full", random_state=rng)
      apca = dd.PCA(n_components=3, svd_solver="full", random_state=rng)
      rpca = dd.PCA(
          n_components=3, svd_solver="randomized", random_state=rng
      )
      X_pca = pca.fit_transform(X)
  
      X_pca /= np.sqrt(np.sum(X_pca**2.0, axis=0))
      X_pca[:, 0] *= 3.142
      X_pca[:, 1] *= 2.718
  
      X_hat = np.dot(X_pca, pca.components_)
      dX_hat = da.from_array(X_hat, chunks=X_hat.shape)
      pca.fit(X_hat)
      apca.fit(dX_hat)
      rpca.fit(dX_hat)
      assert_array_almost_equal(
          pca.singular_values_, [3.142, 2.718, 1.0], 14
      )
      assert_array_almost_equal(
          apca.singular_values_, [3.142, 2.718, 1.0], 14
      )
      assert_array_almost_equal(
          rpca.singular_values_, [3.142, 2.718, 1.0], 14
      )
  
imports: from itertools import product
  import dask.array
  import dask.dataframe
  import numpy
  import pandas
  import pytest
  import scipy
  import sklearn.decomposition
  from dask.array.utils import assert_eq
  from numpy.testing import assert_almost_equal, assert_array_almost_equal, assert_raises
  from sklearn import datasets
  from sklearn.utils import check_random_state
  import dask_ml.decomposition
  from dask_ml._compat import DASK_2_26_0
  from dask_ml.utils import assert_estimator_equal, flip_vector_signs, svd_flip
label_desc: Use image node_id 8 for calling a global function with example usage: test_singular_values_wide() without return types