code: def test_zipfian_R(self):
      # test against R VGAM package
      # library(VGAM)
      # k <- c(13, 16,  1,  4,  4,  8, 10, 19,  5,  7)
      # a <- c(1.56712977, 3.72656295, 5.77665117, 9.12168729, 5.79977172,
      #        4.92784796, 9.36078764, 4.3739616 , 7.48171872, 4.6824154)
      # n <- c(70, 80, 48, 65, 83, 89, 50, 30, 20, 20)
      # pmf <- dzipf(k, N = n, shape = a)
      # cdf <- pzipf(k, N = n, shape = a)
      # print(pmf)
      # print(cdf)
      np.random.seed(0)
      k = np.random.randint(1, 20, size=10)
      a = np.random.rand(10) * 10 + 1
      n = np.random.randint(1, 100, size=10)
      pmf = [
          8.076972e-03,
          2.950214e-05,
          9.799333e-01,
          3.216601e-06,
          3.158895e-04,
          3.412497e-05,
          4.350472e-10,
          2.405773e-06,
          5.860662e-06,
          1.053948e-04,
      ]
      cdf = [
          0.8964133,
          0.9998666,
          0.9799333,
          0.9999995,
          0.9998584,
          0.9999458,
          1.0000000,
          0.9999920,
          0.9999977,
          0.9998498,
      ]
      # skip the first point; zipUC is not accurate for low a, n
      assert_allclose(zipfian.pmf(k, a, n)[1:], pmf[1:], rtol=1e-6)
      assert_allclose(zipfian.cdf(k, a, n)[1:], cdf[1:], rtol=5e-5)
  
imports: import pytest
  import itertools
  from scipy.stats import betabinom, betanbinom, hypergeom, nhypergeom, bernoulli, boltzmann, skellam, zipf, zipfian, binom, nbinom, nchypergeom_fisher, nchypergeom_wallenius, randint
  import numpy
  from numpy.testing import assert_almost_equal, assert_equal, assert_allclose, suppress_warnings
  from scipy.special import binom
  from scipy.optimize import root_scalar
  from scipy.integrate import quad
label_desc: Use image node_id 3 for calling the TestZipfian obj's underlying member method code with example usage: obj.test_zipfian_R() without return types