code: def test_package_fixed_and_free_params_info(
      fixed_params, spec_ar_lags, spec_ma_lags, expected_bunch
  ):
      actual_bunch = _package_fixed_and_free_params_info(
          fixed_params, spec_ar_lags, spec_ma_lags
      )
      assert isinstance(actual_bunch, Bunch)
      assert len(actual_bunch) == len(expected_bunch)
      assert actual_bunch.keys() == expected_bunch.keys()
  
      # check lags
      lags = [
          "fixed_ar_lags",
          "fixed_ma_lags",
          "free_ar_lags",
          "free_ma_lags",
      ]
      for k in lags:
          assert isinstance(actual_bunch[k], list)
          assert actual_bunch[k] == expected_bunch[k]
  
      # check lags
      ixs = ["fixed_ar_ix", "fixed_ma_ix", "free_ar_ix", "free_ma_ix"]
      for k in ixs:
          assert isinstance(actual_bunch[k], np.ndarray)
          assert actual_bunch[k].dtype in [np.int64, np.int32]
          np.testing.assert_array_equal(
              actual_bunch[k], expected_bunch[k]
          )
  
      params = ["fixed_ar_params", "fixed_ma_params"]
      for k in params:
          assert isinstance(actual_bunch[k], np.ndarray)
          np.testing.assert_array_equal(
              actual_bunch[k], expected_bunch[k]
          )
  
imports: import numpy
  import pytest
  from numpy.testing import assert_allclose
  from statsmodels.tsa.innovations.arma_innovations import arma_innovations
  from statsmodels.tsa.arima.datasets.brockwell_davis_2002 import lake
  from statsmodels.tsa.arima.estimators.hannan_rissanen import hannan_rissanen, _validate_fixed_params, _package_fixed_and_free_params_info, _stitch_fixed_and_free_params
  from statsmodels.tsa.arima.specification import SARIMAXSpecification
  from statsmodels.tools.tools import Bunch
label_desc: Use image node_id 9 for calling a global function with example usage: test_package_fixed_and_free_params_info(fixed_params, spec_ar_lags, spec_ma_lags, expected_bunch) without return types