code: def test_whiten_zero_std(self):
      desired = np.array(
          [
              [0.0, 1.0, 2.86666544],
              [0.0, 1.0, 1.32460034],
              [0.0, 1.0, 3.74382172],
          ]
      )
      for tp in np.array, matrix:
          obs = tp(
              [
                  [0.0, 1.0, 0.74109533],
                  [0.0, 1.0, 0.34243798],
                  [0.0, 1.0, 0.96785929],
              ]
          )
          with warnings.catch_warnings(record=True) as w:
              warnings.simplefilter("always")
              assert_allclose(whiten(obs), desired, rtol=1e-5)
              assert_equal(len(w), 1)
              assert_(issubclass(w[-1].category, RuntimeWarning))
  
imports: import warnings
  import sys
  import numpy
  from numpy.testing import assert_array_equal, assert_array_almost_equal, assert_allclose, assert_equal, assert_, suppress_warnings
  import pytest
  from pytest import raises
  from scipy.cluster.vq import kmeans, kmeans2, py_vq, vq, whiten, ClusterError, _krandinit
  from scipy.cluster import _vq
  from scipy.sparse.sputils import matrix
label_desc: Use image node_id 2 for calling the TestWhiten obj's underlying member method code with example usage: obj.test_whiten_zero_std() without return types