code: def test_criterion(self, implementation):
      random_state = check_random_state(412)
      m1 = self.new_hmm(implementation)
      X, _ = m1.sample(2000, random_state=random_state)
  
      aic = []
      bic = []
      ns = [2, 3, 4]
      for n in ns:
          h = hmm.PoissonHMM(
              n,
              n_iter=500,
              random_state=random_state,
              implementation=implementation,
          )
          h.fit(X)
          aic.append(h.aic(X))
          bic.append(h.bic(X))
  
      assert np.all(aic) > 0
      assert np.all(bic) > 0
  
file_path: hmmlearn/lib/hmmlearn/tests/test_poisson_hmm.py
imports: import numpy
  from numpy.testing import assert_allclose
  import pytest
  from sklearn.utils import check_random_state
  from hmmlearn import hmm
  from .None import assert_log_likelihood_increasing, normalized
label_desc: Use image node_id 7 for calling the TestPoissonHMM obj's underlying member method code with example usage: obj.test_criterion(implementation) without return types