code: def test_underflow_from_scaling(self, implementation):
      # Setup an ill-conditioned dataset
      data1 = self.prng.normal(0, 1, 100).tolist()
      data2 = self.prng.normal(5, 1, 100).tolist()
      data3 = self.prng.normal(0, 1, 100).tolist()
      data4 = self.prng.normal(5, 1, 100).tolist()
      data = np.concatenate([data1, data2, data3, data4])
      # Insert an outlier
      data[40] = 10000
      data2d = data[:, None]
      lengths = [len(data2d)]
      h = hmm.GaussianHMM(
          2,
          n_iter=100,
          verbose=True,
          covariance_type=self.covariance_type,
          implementation=implementation,
          init_params="",
      )
      h.startprob_ = [0.0, 1]
      h.transmat_ = [[0.4, 0.6], [0.6, 0.4]]
      h.means_ = [[0], [5]]
      h.covars_ = [[1], [1]]
      if implementation == "scaling":
          with pytest.raises(ValueError):
              h.fit(data2d, lengths)
  
      else:
          h.fit(data2d, lengths)
  
imports: import numpy
  from numpy.testing import assert_allclose
  import pytest
  from sklearn.utils import check_random_state
  from ..None import hmm
  from .None import assert_log_likelihood_increasing, make_covar_matrix, normalized
label_desc: Use image node_id 3 for calling the TestGaussianHMMWithSphericalCovars obj's underlying member method code with example usage: obj.test_underflow_from_scaling(implementation) without return types