code: def setup_class(cls):
      # generate artificial data
      np.random.seed(98765678)
      nobs = 200
      rvs = np.random.randn(nobs, 6)
      data_exog = rvs
      data_exog = sm.add_constant(data_exog, prepend=False)
      xbeta = 0.1 + 0.1 * rvs.sum(1)
      data_endog = np.random.poisson(np.exp(xbeta))
  
      # estimate discretemod.Poisson as benchmark
      cls.res_discrete = Poisson(data_endog, data_exog).fit(disp=0)
  
      mod_glm = sm.GLM(
          data_endog, data_exog, family=sm.families.Poisson()
      )
      cls.res_glm = mod_glm.fit()
  
      # estimate generic MLE
      cls.mod = PoissonGMLE(data_endog, data_exog)
      cls.res = cls.mod.fit(
          start_params=0.9 * cls.res_discrete.params,
          method="bfgs",
          disp=0,
      )
  
imports: import pytest
  import numpy
  from numpy.testing import assert_almost_equal
  from scipy import stats
  import statsmodels.api
  from statsmodels.miscmodels.count import PoissonGMLE, PoissonOffsetGMLE, PoissonZiGMLE
  from statsmodels.discrete.discrete_model import Poisson
  from statsmodels.tools.sm_exceptions import ValueWarning
label_desc: Use image node_id 1 for calling the TestPoissonMLE obj's underlying member method code with example usage: obj.setup_class(cls) without return types