code: def test_hmm_predict_proba(hmm, X, priors):
      X = numpy.array([X])
      priors = priors.unsqueeze(0)
  
      y_hat = hmm.predict_proba(X)
      assert_array_almost_equal(
          y_hat,
          [
              [
                  [9.6881e-02, 9.0312e-01],
                  [3.8024e-03, 9.9620e-01],
                  [1.1210e-08, 1.0000e00],
                  [3.1428e-09, 1.0000e00],
                  [7.5888e-01, 2.4112e-01],
                  [2.6658e-15, 1.0000e00],
                  [7.2233e-01, 2.7767e-01],
                  [4.5453e-06, 1.0000e00],
                  [6.8261e-01, 3.1739e-01],
                  [1.6449e-04, 9.9984e-01],
                  [9.9085e-01, 9.1517e-03],
              ]
          ],
          4,
      )
  
      y_hat = hmm.predict_proba(X, priors=priors)
      assert_array_almost_equal(
          y_hat,
          [
              [
                  [9.6881e-02, 9.0312e-01],
                  [3.8023e-03, 9.9620e-01],
                  [1.1210e-08, 1.0000e00],
                  [0.0000e00, 1.0000e00],
                  [7.5888e-01, 2.4112e-01],
                  [1.2337e-15, 1.0000e00],
                  [7.9601e-01, 2.0399e-01],
                  [1.1122e-06, 1.0000e00],
                  [0.0000e00, 1.0000e00],
                  [1.0000e00, 0.0000e00],
                  [9.9846e-01, 1.5372e-03],
              ]
          ],
          4,
      )
  
imports: import os
  import numpy
  import torch
  import pytest
  from pomegranate.gmm import GeneralMixtureModel
  from pomegranate.hmm import DenseHMM
  from pomegranate.distributions import Exponential
  from nose.tools import assert_raises
  from numpy.testing import assert_array_equal
  from numpy.testing import assert_array_almost_equal
label_desc: Use image node_id 37 for calling a global function with example usage: test_hmm_predict_proba(hmm, X, priors) without return types