code: def test_special_sparse_dot(csr_container):
      # Test the function that computes np.dot(W, H), only where X is non zero.
      n_samples = 10
      n_features = 5
      n_components = 3
      rng = np.random.mtrand.RandomState(42)
      X = rng.randn(n_samples, n_features)
      np.clip(X, 0, None, out=X)
      X_csr = csr_container(X)
  
      W = np.abs(rng.randn(n_samples, n_components))
      H = np.abs(rng.randn(n_components, n_features))
  
      WH_safe = nmf._special_sparse_dot(W, H, X_csr)
      WH = nmf._special_sparse_dot(W, H, X)
  
      # test that both results have same values, in X_csr nonzero elements
      ii, jj = X_csr.nonzero()
      WH_safe_data = np.asarray(WH_safe[ii, jj]).ravel()
      assert_array_almost_equal(WH_safe_data, WH[ii, jj], decimal=10)
  
      # test that WH_safe and X_csr have the same sparse structure
      assert_array_equal(WH_safe.indices, X_csr.indices)
      assert_array_equal(WH_safe.indptr, X_csr.indptr)
      assert_array_equal(WH_safe.shape, X_csr.shape)
  
imports: import re
  import sys
  import warnings
  from io import StringIO
  import numpy
  import pytest
  from scipy import linalg
  from sklearn.base import clone
  from sklearn.decomposition import NMF, MiniBatchNMF, non_negative_factorization
  from sklearn.decomposition import _nmf
  from sklearn.exceptions import ConvergenceWarning
  from sklearn.utils._testing import assert_allclose, assert_almost_equal, assert_array_almost_equal, assert_array_equal, ignore_warnings
  from sklearn.utils.extmath import squared_norm
  from sklearn.utils.fixes import CSC_CONTAINERS, CSR_CONTAINERS
label_desc: Use image node_id 21 for calling a global function with example usage: test_special_sparse_dot(csr_container) without return types