code: def test_basic(self):
      res1 = self.res1
      res2 = self.res2
  
      assert_allclose(res1.llf, res2.loglik, rtol=1e-8)
      pt2 = res2.params_table
      assert_allclose(res1.params, pt2[:, 0], atol=1e-5)
      assert_allclose(res1.bse, pt2[:, 1], atol=1e-5)
      assert_allclose(res1.tvalues, pt2[:, 2], rtol=5e-4, atol=5e-4)
      assert_allclose(res1.pvalues, pt2[:, 3], rtol=5e-4, atol=1e-7)
  
      assert_equal(res1.df_resid, res2.df_residual)
      assert_equal(res1.df_model, res2.df_null - res2.df_residual)
      assert_allclose(res1.aic, res2.aic, rtol=1e-8)
  
      # we have zero model first
      idx = np.concatenate((np.arange(3, 6), np.arange(3)))
      vcov = res2.vcov[idx[:, None], idx]
      assert_allclose(
          np.asarray(res1.cov_params()), vcov, rtol=1e-4, atol=1e-8
      )
  
imports: import warnings
  import numpy
  from numpy.testing import assert_allclose, assert_equal
  from statsmodels import datasets
  from statsmodels.tools.tools import add_constant
  from statsmodels.tools.testing import Holder
  from statsmodels.tools.sm_exceptions import ConvergenceWarning
  from statsmodels.distributions.discrete import truncatedpoisson, truncatednegbin
  from statsmodels.discrete.truncated_model import TruncatedLFPoisson, TruncatedLFNegativeBinomialP, HurdleCountModel
  from statsmodels.sandbox.regression.tests.test_gmm_poisson import DATA
  from .results.results_discrete import RandHIE
  from .results import results_truncated
  from .results import results_truncated_st
label_desc: Use image node_id 2 for calling the TestHurdlePoissonR obj's underlying member method code with example usage: obj.test_basic() without return types