code: def test_basic(self):
      res1 = self.res1
      res2 = self.res2
  
      assert_allclose(self.eff, res2.TE, rtol=1e-13)
      assert_allclose(self.var_eff, res2.seTE**2, rtol=1e-13)
  
      assert_allclose(res1.mean_effect_fe, res2.TE_fixed, rtol=1e-13)
      # R meta does not adjust sd FE for HKSJ
      assert_allclose(res1.sd_eff_w_fe, res2.seTE_fixed, rtol=1e-13)
  
      assert_allclose(res1.q, res2.Q, rtol=1e-13)
      assert_allclose(res1.tau2, res2.tau2, rtol=1e-10)
  
      assert_allclose(res1.mean_effect_re, res2.TE_random, rtol=1e-13)
      assert_allclose(
          res1.sd_eff_w_re_hksj, res2.seTE_random, rtol=1e-13
      )
  
      th = res1.test_homogeneity()
      q, pv = th
      df = th.df
      assert_allclose(q, res2.Q, rtol=1e-13)
      assert_allclose(pv, res2.pval_Q, rtol=1e-13)
      assert_allclose(df, res2.df_Q, rtol=1e-13)
  
      assert_allclose(res1.i2, res2.I2, rtol=1e-13)
      assert_allclose(res1.h2, res2.H**2, rtol=1e-13)
  
      ci = res1.conf_int(use_t=True)  # fe, re, fe_wls, re_wls
      # R meta does not adjust FE for HKSJ, still uses normal dist
      # assert_allclose(ci[0][0], res2.lower_fixed, atol=1e-10)
      # assert_allclose(ci[0][1], res2.upper_fixed, atol=1e-10)
      assert_allclose(ci[3][0], res2.lower_random, rtol=1e-13)
      assert_allclose(ci[3][1], res2.upper_random, rtol=1e-10)
  
      ci = res1.conf_int(use_t=False)  # fe, re, fe_wls, re_wls
      assert_allclose(ci[0][0], res2.lower_fixed, rtol=1e-13)
      assert_allclose(ci[0][1], res2.upper_fixed, rtol=1e-13)
  
      weights = 1 / self.var_eff
      mod_glm = GLM(
          self.eff, np.ones(len(self.eff)), var_weights=weights
      )
      res_glm = mod_glm.fit()
      assert_allclose(res_glm.params, res2.TE_fixed, rtol=1e-13)
  
      weights = 1 / (self.var_eff + res1.tau2)
      mod_glm = GLM(
          self.eff, np.ones(len(self.eff)), var_weights=weights
      )
      res_glm = mod_glm.fit()
      assert_allclose(res_glm.params, res2.TE_random, rtol=1e-13)
  
imports: import io
  import numpy
  import pandas
  import pytest
  from numpy.testing import assert_equal, assert_allclose
  from statsmodels.regression.linear_model import WLS
  from statsmodels.genmod.generalized_linear_model import GLM
  from statsmodels.stats.meta_analysis import effectsize_smd, effectsize_2proportions, combine_effects, _fit_tau_iterative, _fit_tau_mm, _fit_tau_iter_mm
  from .results import results_meta
label_desc: Use image node_id 2 for calling the TestMetaBinOR obj's underlying member method code with example usage: obj.test_basic() without return types