code: def get_beal_models():
      m1 = hmm.CategoricalHMM(3, init_params="")
      m1.n_features = 3
      m1.startprob_ = np.array([1 / 3.0, 1 / 3.0, 1 / 3.0])
      m1.transmat_ = np.array([[0, 1, 0], [0, 0, 1], [1, 0, 0]])
      m1.emissionprob_ = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
      m2 = hmm.CategoricalHMM(3)
      m2.n_features = 3
      m2.startprob_ = np.array([1 / 3.0, 1 / 3.0, 1 / 3.0])
      m2.transmat_ = np.array([[0, 0, 1], [1, 0, 0], [0, 1, 0]])
      m2.emissionprob_ = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
      m3 = hmm.CategoricalHMM(1)
      m3.n_features = 3
      m3.startprob_ = np.array([1])
      m3.transmat_ = np.array([[1]])
      m3.emissionprob_ = np.array([[0.5, 0.5, 0]])
      return m1, m2, m3
  
file_path: hmmlearn/lib/hmmlearn/tests/test_variational_categorical.py
imports: import numpy
  import pytest
  from sklearn.utils import check_random_state
  from hmmlearn import hmm, vhmm
  from .None import assert_log_likelihood_increasing, compare_variational_and_em_models, vi_uniform_startprob_and_transmat
label_desc: Use image node_id 2 for calling the TestVariationalCategorical obj's underlying member method code with example usage: obj.get_beal_models() and returns: m1,  m2,  m3