Ë
    âQ(h­b  ã                   ó6  — d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ d dlZd dlmZmZmZmZ d dlmZ d dlmZ d dlm Z  e jB                  jE                  dg d	¢«      d
„ «       Z#e jB                  jE                  dddg«      d„ «       Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,e jB                  jE                  d ejZ                  e.e/fgdz  Ž «      d„ «       Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7e jB                  jE                  d g d!¢«      d"„ «       Z8d#„ Z9d$„ Z:d%„ Z;d&„ Z<d'„ Z= G d(„ d)«      Z> G d*„ d+«      Z?e jB                  jE                  d,g d-¢g d.¢g«      d/„ «       Z@d0„ ZA G d1„ d2«      ZB G d3„ d4«      ZCd5„ ZD G d6„ d7«      ZE G d8„ d9«      ZFy):é    N)Ústats)Ú	betabinomÚ
betanbinomÚ	hypergeomÚ
nhypergeomÚ	bernoulliÚ	boltzmannÚskellamÚzipfÚzipfianÚbinomÚnbinomÚnchypergeom_fisherÚnchypergeom_walleniusÚrandintÚpoisson_binom)Úassert_almost_equalÚassert_equalÚassert_allcloseÚsuppress_warnings)r   )Úroot_scalar)Úquadzk, M, n, N, expected, rtol))é   é
   é   é   gÏó<Ïó<ï?çVçž¯Ò<)ék   é'  é¸  é×   gŒâÙÿÿÿï?r   )r   r   r    r!   gŸåèS©;ç»½×Ùß|Ë=c                 óP   — t        j                  | |||«      }t        |||¬«       y ©N©Úrtol)r   Úcdfr   ©ÚkÚMÚnÚNÚexpectedr&   Úps          úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/stats/tests/test_discrete_distns.pyÚtest_hypergeom_cdfr0      s$   € ô 	�‰�a˜˜A˜qÓ!€AÜ�A�x dÖ+ó    )é   r   r    r!   gäûòÿÿÿï?r   )é}   r   r    r!   g«™Çö!˜:<r"   c                 óP   — t        j                  | |||«      }t        |||¬«       y r$   )r   Úsfr   r(   s          r/   Útest_hypergeom_sfr6   #   s$   € ô 	�‰�Q˜˜1˜aÓ €AÜ�A�x dÖ+r1   c                  óÎ  — d} d}d}d}t        j                  | |||«      }t        j                  || z
  |||z
  |«      }t        j                  || z
  ||||z
  «      }t        j                  | |||«      }t        ||d¬«       t        ||d¬«       t        ||d¬«       d} d}d}d}t        j                  | |||«      }t        j                  | ||z  «      }	t        ||	d¬«       y )Nr   é2   r   é   )Údecimalé   é   )r   Úlogpmfr   r   )
r)   r,   ÚKr+   Úlogpmf1Úlogpmf2Úlogpmf3Úlogpmf4Úhypergeom_logpmfÚbernoulli_logpmfs
             r/   Útest_hypergeom_logpmfrE   -   sö   € ð 	
€AØ
€AØ
€AØ	€AÜ×Ñ˜q ! Q¨Ó*€GÜ×Ñ˜q 1™u a¨¨Q©°Ó2€GÜ×Ñ˜q 1™u a¨¨A°©EÓ2€GÜ×Ñ˜q ! Q¨Ó*€GÜ˜ °"Õ5Ü˜ °"Õ5Ü˜ °"Õ5ð 	
€AØ
€AØ	€AØ	€AÜ ×'Ñ'¨¨1¨a°Ó3ÐÜ ×'Ñ'¨¨1¨Q©3Ó/ÐÜÐ(Ð*:ÀBÖGr1   c                  óÌ   — d\  } }}d}t        j                  || ||«      }t        j                  || |||z   dz
  «      | |z
  |dz
  z
  z  | ||z   dz
  z
  z  }t        ||d¬«       y )N)é-   é   é   é   r;   ç»½×Ùß|Û=r%   )r   Úpmfr   r   )r*   r+   Úrr)   ÚNHGÚHGs         r/   Útest_nhypergeom_pmfrP   G   sp   € à�G€A€qˆ!Ø	€AÜ
�.‰.˜˜A˜q !Ó
$€CÜ	�‰�q˜!˜Q  !¡ A¡Ó	&¨!¨a©%°1°Q±3©-Ñ	8¸AÀÀ1ÁÀQÁ¹KÑ	H€BÜ�B˜ %Ö(r1   c                  óà   — d} d}d}t        j                  |dz   «      }t        j                  || ||«      }t        j                  || ||«      }t        |g d¢d¬«       t        |g d¢d¬«       y )	NrI   r   r   r;   )ç’$I’$I²?gÛ¶mÛ¶mË?ç·mÛ¶mÛÖ?rS   ç‚vIhÂ%<=r%   )rR   ç’$I’$IÒ?g%I’$I’ä?ç      ð?)ÚnpÚaranger   rL   r'   r   )r*   r+   rM   ÚsupportrL   r'   s         r/   Útest_nhypergeom_pmfcdfrZ   P   sd   € à	€AØ	€AØ	€AÜ�i‰i˜˜!™‹n€GÜ
�.‰.˜ ! Q¨Ó
*€CÜ
�.‰.˜ ! Q¨Ó
*€CÜ�CÒ1¸Õ>Ü�CÒ0°uÖ=r1   c                  ót   — d} d}d}t        j                  g d¢g d¢g| ||«      }t        |g d¢g d¢gd¬	«       y )
Nr   r   r   )r   r;   é   r   )r;   r\   r   r   )r;   r   r   r;   )r   r   r;   r   rT   r%   )r   rL   r   )r*   r+   rM   rL   s       r/   Útest_nhypergeom_r0r]   \   s;   € à
€AØ	€AØ	€AÜ
�.‰.š,ªÐ5°q¸!¸QÓ
?€CÜ�Cš,ªÐ5¸EÖBr1   c                  ód   — t        j                  dg d¢dgdggd¬«      } | j                  dk(  sJ ‚y )Né   )r<   rI   é	   r9   rH   ©r   r;   r\   r   ©Úsize)r   ÚrvsÚshape)Úxs    r/   Útest_nhypergeom_rvs_shaperg   e   s2   € ô 	�‰�rš9¨ t¨b¨T l¸ÔF€AØ�7‰7�lÒ"Ð"Ñ"r1   c                  ó:  — t         j                  j                  d«       t        j                  dddd¬«      } t         j                  j                  d«       t         j                  j                  d¬«      }t        j                  |ddd«      }t        | |«       y )Nr   r_   r<   é   éd   rb   )rW   ÚrandomÚseedr   rd   ÚuniformÚppfr   )rf   r.   Úys      r/   Útest_nhypergeom_accuracyrp   m   sm   € ô ‡I�I‡N�N�1ÔÜ�‰�r˜1˜b sÔ+€AÜ‡I�I‡N�N�1ÔÜ
�	‰	×Ñ˜sÐÓ#€AÜ�‰�q˜"˜a Ó$€AÜ��AÕr1   c                  óV  — t        j                  dd«      } d}t        j                  | d|«      }| dk(  }t	        ||«       t        j
                  d«      }d}t        j                  | ||«      }g d¢}t        ||d	¬
«       t        j                  | ||«      }g d¢}t        ||d	¬
«       y )Néýÿÿÿr   r;   g°rh‘í|¿?r   r\   r   )r   r   r   ç’$I’$Iâ?rU   g’$I’$IÂ?r   r   rT   r%   )r   r   r   rs   gÛ¶mÛ¶më?r;   r;   r;   )rW   rX   r	   rL   r   Úlogr   r'   )r)   r,   r.   r-   ÚlamÚcs         r/   Útest_boltzmann_upper_boundrw   x   s”   € Ü
�	‰	�"�aÓ€Aà	€AÜ�‰�a˜ Ó"€AØ�A‰v€HÜ��HÔä
�&‰&�‹)€CØ	€AÜ�‰�a˜˜aÓ €AÚ-€HÜ�A�x eÕ,ä�‰�a˜˜aÓ €AÚ+€HÜ�A�x eÖ,r1   c                  óÆ   — d} t        j                  | dz   «      }t        | dd«      j                  |«      }t        j                  d| dz   z  | dz   «      }t        ||«       y )Né   r;   )rW   rX   r   rL   Úrepeatr   )r+   r)   r.   r-   s       r/   Útest_betabinom_a_and_b_unityr{   ‹   sZ   € ð 	€AÜ
�	‰	�!�a‘%Ó€AÜ�!�Q˜Ó×Ñ˜qÓ!€AÜ�y‰y˜˜a !™e™ a¨!¡eÓ,€HÜ˜˜8Õ$r1   Údtypesr   c                 ó†   — | \  }}} |d«       |d«       |d«      }}}t        t        j                  |||d¬«      d«       y )Nr   r\   r   r)   ©Úmomentsgˆa†aæ¿)r   r   r   )r|   Ún_typeÚa_typeÚb_typer+   ÚaÚbs          r/   Ú-test_betabinom_stats_a_and_b_integers_gh18026r…   •   sC   € ð $Ñ€FˆF�FÙ�R‹j™& ›)¡V¨A£Yˆ!€q€AÜ”I—O‘O A q¨!°SÔ9Ð;NÕOr1   c                  óÆ   — d} d}t        j                  d«      }t        d| |«      j                  |«      }t	        | | |z   z  «      j                  |«      }t        ||«       y )Ngffffff@g)\�Âõ(ä?r\   r;   )rW   rX   r   rL   r   r   )rƒ   r„   r)   r.   r-   s        r/   Útest_betabinom_bernoullir‡   ž   sY   € à€AØ€AÜ
�	‰	�!‹€AÜ�!�Q˜Ó×Ñ˜qÓ!€AÜ˜˜a !™e™Ó%×)Ñ)¨!Ó,€HÜ˜˜8Õ$r1   c                  óT   — d\  } }}t        t        j                  | ||¬«      d«       y )N)gÍÌÌÌÌÌì?r   r;   ©Ú
confidencer+   r.   ©r   r   )r   r   Úinterval©Úalphar+   r.   s      r/   Útest_issue_10317r�   ¨   s$   € Ø�K€Eˆ1ˆaÜ”—‘¨E°Q¸!Ô<¸fÕEr1   c                  óT   — d\  } }}t        t        j                  | ||¬«      d«       y )N)gffffffî?r   r   r‰   r‹   )r   r   rŒ   r�   s      r/   Útest_issue_11134r‘   ­   s$   € Ø�K€Eˆ1ˆaÜ”—‘¨5°A¸Ô;¸VÕDr1   c                  óB  — t         j                  j                  d«       t        t	        j
                  t         j                  j                  d«      dd«      d«       t        t	        j
                  ddd«      d«       t        t	        j
                  ddd«      d«       y )Nr   r   ç      à?éÿÿÿÿr;   )rW   rk   rl   r   r   rn   Úrand© r1   r/   Útest_issue_7406r—   ²   sf   € Ü‡I�I‡N�N�1ÔÜ”—‘œ2Ÿ9™9Ÿ>™>¨"Ó-¨q°#Ó6¸Ô:ô ”—‘˜1˜a Ó% rÔ*Ü”—‘˜1˜a Ó% qÕ)r1   c                  óR  — d} t         j                  j                  dd¬«      }d}t        j                  ||| «      }t        |d«       t        j                  ddd«      }t        j                  ||| «      }t        |d«       d}t        j                  ||| «      }t        ||«       y )	Nr   rj   r   rb   r”   ç{®Gáz„?ç®Gáz®ï?r;   )rW   rk   r   r   rn   r   Úlinspace)r.   r+   rf   rn   s       r/   Útest_issue_5122rœ   »   s�   € Ø	€AÜ
�	‰	×Ñ˜# BÐÓ'€Aà	€AÜ
�)‰)�A�q˜!Ó
€CÜ��bÔä
�‰�D˜$ Ó#€AÜ
�)‰)�A�q˜!Ó
€CÜ��aÔà	€AÜ
�)‰)�A�q˜!Ó
€CÜ��aÕr1   c            	      óv   — t        t        dt        j                  dd«      «      j	                  d«      d«       y )Néè  rr   iœÿÿÿr™   r   )r   r   rW   Úlogspacern   r–   r1   r/   Útest_issue_1603r    Ì   s)   € Ü”�tœRŸ[™[¨¨TÓ2Ó3×7Ñ7¸Ó=¸qÕAr1   c                  ó‚   — d} t        j                  ddd«      }t        t        j                  |d|z  | «      dd¬«       y )Nr“   r   é   r9   r\   r™   )Úatol)rW   rŸ   r   r   r'   )r.   rf   s     r/   Útest_issue_5503r¤   Ð   s6   € Ø€AÜ
�‰�A�r˜2Ó€AÜ”E—I‘I˜a  1¡ aÓ(¨#°DÖ9r1   zx, n, p, cdf_desired)	)i,  rž   ç333333Ó?g’24û½à?)r    r   r¥   gUž…7i(à?)i0u  i † r¥   gÎ­Ì‘Çà?)ià“ i@B r¥   g8@¨�
à?)iÀÆ- é€–˜ r¥   gfø‡(Gà?)i€ÃÉé áõr¥   gÓwàtg à?)i�êÉr§   r¥   g¥Vç}Öˆï?)ipœÉr§   r¥   g¢°�ÿzÌ�?)i0 Ér§   r¥   g¡éÉnåC:c                 óF   — t        t        j                  | ||«      |«       y ©N©r   r   r'   )rf   r+   r.   Úcdf_desireds       r/   Útest_issue_5503pt2r¬   Ö   s   € ô ”E—I‘I˜a  AÓ&¨Õ4r1   c                  óF   — t        t        j                  ddd«      d«       y )Nr\   l    J)£gê-�™—q=gB.¸Ã+ní?rª   r–   r1   r/   Útest_issue_5503pt3r®   å   s   € ä”E—I‘I˜a ¨Ó1Ð3IÕJr1   c                  óF   — t        t        j                  ddd«      d«       y )Néú   r8   gAAà?g_[CË®i³8)r   r   r5   r–   r1   r/   Útest_issue_6682r±   ê   s   € ô ”F—I‘I˜c 2 wÓ/Ð1FÕGr1   c                  óv   — t        j                  g d¢dd«      } dt        j                   dg}t	        | |«       y )N)r   r”   r;   r   r“   g¬¥ÂÐÑGÞ¿g1DÊ&+´À)r   ÚlogcdfrW   Úinfr   )ÚresultÚ	references     r/   Útest_issue_19747r·   ñ   s0   € ä�]‰]š: q¨#Ó.€FØœrŸv™v˜g {Ð3€IÜ�F˜IÕ&r1   c                  óR   — d} d}d}t        t        j                  || |«      d«       y )Nrž   r™   iä  ç        )r   r   rL   )r+   r.   r)   s      r/   Ú%test_boost_divide_by_zero_issue_15101rº   ø   s(   € Ø€AØ€AØ€AÜ”E—I‘I˜a  AÓ&¨Õ,r1   c                  óZ   — g d¢} t        j                  d| | «      }g d¢}t        ||«       y )N)	r;   r   rj   rž   éˆ  iº  iì  i‚  ip  r   )	gâ–>l¦ïä?g‹ëõz½oá?gVr�Ržsà?g°�ˆŠ$à?gVWêCWà?g4y�Bà?g4ö€.à?g.ÚLròà?gDáøÅêà?)r
   r'   r   )Úmur'   Úcdf_expecteds      r/   Útest_skellam_gh11474r¿   ÿ   s-   € â	9€BÜ
�+‰+�a˜˜RÓ
 €CòP€Lô �C˜Õ&r1   c                   ó4  — e Zd Zd„ Zd„ Zd„ Zej                  j                  d«        ej                   ej                  ddd«      ej                  j                  dd	d«      f«      j                  Zej                  j!                  d
e«      d„ «       Zd„ Zy)ÚTestZipfianc                 óä  — d}d}t        j                  dd«      }t        t        j                  |||«      t        j                  ||«      «       t        t        j                  |||«      t        j                  ||«      «       t        t        j                  |||«      t        j                  ||«      «       t        t        j                  ||d¬«      t        j                  |d¬«      «       y )Ng      @r¦   r;   é   Úmsvkr~   )	rW   rX   r   r   rL   r   r'   r5   r   )Úselfrƒ   r,   r)   s       r/   Útest_zipfian_asymptoticz#TestZipfian.test_zipfian_asymptotic  s¤   € àˆØˆÜ�I‰I�a˜ÓˆÜœŸ™ A q¨!Ó,¬d¯h©h°q¸!«nÔ=ÜœŸ™ A q¨!Ó,¬d¯h©h°q¸!«nÔ=ÜœŸ
™
 1 a¨Ó+¬T¯W©W°Q¸«]Ô;ÜœŸ™ a¨°FÔ;ÜŸ
™
 1¨fÔ5õ	7r1   c                 ó  — d\  }}d}t        j                  d|dz   «      }t        t        j                  |||«      t        j                  |||«      d¬«       t        t        j
                  |||«      t        j
                  |||«      d¬«       t        t        j                  |||«      t        j                  |||«      d¬«       t        t        j                  ||d¬«      t        j                  ||d¬«      d¬«       y )N)gGœ¡úÿÿï?gÜ1¯  ð?é   r;   g�íµ ÷Æ >r%   rÄ   r~   )rW   rX   r   r   rL   r'   r5   r   )rÅ   Úalt1Úagt1r,   r)   s        r/   Útest_zipfian_continuityz#TestZipfian.test_zipfian_continuity  sË   € ð ,‰
ˆˆdØˆÜ�I‰I�a˜˜Q™ÓˆÜœŸ™ A t¨QÓ/´·±¸QÀÀaÓ1HØ!õ	#äœŸ™ A t¨QÓ/´·±¸QÀÀaÓ1HØ!õ	#äœŸ
™
 1 d¨AÓ.´·
±
¸1¸dÀAÓ0FØ!õ	#äœŸ™ d¨A°vÔ>ÜŸ™ d¨A°vÔ>ÀTö	Kr1   c                 óÈ  — t         j                  j                  d«       t         j                  j                  ddd¬«      }t         j                  j	                  d«      dz  dz   }t         j                  j                  ddd¬«      }g d¢}g d¢}t        t        j                  |||«      dd  |dd  d	¬
«       t        t        j                  |||«      dd  |dd  d¬
«       y )Nr   r;   ry   r   rb   rj   )
g÷Ä¹Ô¨Š€?gØ¡–Ÿkïþ>ç	]x�[ï?gÿÇ™ûÊ>g	¤W¿³4?gÂ€
-ä?g˜$fhnåý=g9´’±[.Ä>g±`ý€Ö”Ø>gn²màì ?)
gÉaæñj¯ì?gZ›k=èþï?rÍ   gõ…�óþÿï?g90×þï?gÉ¸˜UŽÿï?rV   gJ_9ïÿï?g2h2-ûÿï?gB0ýÅþï?ç�íµ ÷Æ°>r%   g-Cëâ6
?)	rW   rk   rl   r   r•   r   r   rL   r'   )rÅ   r)   rƒ   r+   rL   r'   s         r/   Útest_zipfian_RzTestZipfian.test_zipfian_R)  sÃ   € ô 	�	‰	�‰�qÔÜ�I‰I×Ñ˜a ¨"ÐÓ-ˆÜ�I‰I�N‰N˜2Ó˜rÑ! AÑ%ˆÜ�I‰I×Ñ˜a ¨2ÐÓ.ˆò+ˆòFˆô 	œŸ™ A q¨!Ó,¨Q¨RÐ0°#°a°b°'ÀÕEÜœŸ™ A q¨!Ó,¨Q¨RÐ0°#°a°b°'ÀÖEr1   r   éþÿÿÿr;   r   r\   é(   za, nc                 ó˜  ‡— t         j                  d„ «       Št         j                  ˆfd„«       }t        j                  |dz   «      } ||||«      }t        j                  |«      }t        j                  ||¬«      }t        j                  ||z
  dz  |¬«      }|dz  }	t        j                  ||z
  |	z  dz  |¬«      }
t        j                  ||z
  |	z  dz  |¬«      dz
  }t        t        j                  |||«      |«       t        t        j                  |||«      |«       t        t        j                  ||d	¬
«      |||
|g«       y )Nc                 ó\   — dt        j                  d| dz   «      |z  z  j                  «       S )z$Naive implementation of harmonic sumr;   )rW   rX   Úsum)r+   Úss     r/   ÚHnsz+TestZipfian.test_zipfian_naive.<locals>.HnsI  s,   € ð ”b—i‘i  1 Q¡3Ó'¨Ñ*Ñ*×/Ñ/Ó1Ð1r1   c                 ó>   •— | dk  s| |kD  ryd| |z  z   ‰||«      z  S )z#Naive implementation of zipfian pmfr;   r¹   r–   )r)   rƒ   r+   rÖ   s      €r/   Úpzipz,TestZipfian.test_zipfian_naive.<locals>.pzipN  s.   ø€ ð �1Šu˜˜AšØà˜1˜a™4‘x¡# a¨£)Ñ+Ð+r1   r;   )Úweightsr\   r“   r   r   Úmvskr~   )
rW   Ú	vectorizerX   ÚcumsumÚaverager   r   rL   r'   r   )rÅ   rƒ   r+   rØ   r)   rL   r'   ÚmeanÚvarÚstdÚskewÚkurtosisrÖ   s               @r/   Útest_zipfian_naivezTestZipfian.test_zipfian_naiveE  s!  ø€ ô 
�‰ñ	2ó 
ð	2ô 
�‰ó	,ó 
ð	,ô �I‰I�a˜‘c‹NˆÙ�1�a˜‹mˆÜ�i‰i˜‹nˆÜ�z‰z˜! SÔ)ˆÜ�j‰j˜!˜d™( Q™°Ô4ˆØ�3‰hˆÜ�z‰z˜A˜d™F C™<¨!Ñ+°SÔ9ˆÜ—:‘:  $¡¨™|¨aÑ/¸Ô=ÀÑAˆÜœŸ™ A q¨!Ó,¨cÔ2ÜœŸ™ A q¨!Ó,¨cÔ2ÜœŸ™ a¨°FÔ;Ø˜s D¨(Ð3õ	5r1   c                 óâ   — t        j                  dd«      }|j                  t         j                  «      }t	        dd«      }|j                  |«      }|j                  |«      }t        ||«       y )Nr   rž   éo   r_   )rW   rX   ÚastypeÚint32r   rL   r   ©rÅ   r)   Úk_int32ÚdistrL   Úpmf_k_int32s         r/   Útest_pmf_integer_kzTestZipfian.test_pmf_integer_kc  sU   € Ü�I‰I�a˜ÓˆØ—(‘(œ2Ÿ8™8Ó$ˆÜ�s˜BÓˆØ�h‰h�q‹kˆØ—h‘h˜wÓ'ˆÜ�S˜+Õ&r1   N)Ú__name__Ú
__module__Ú__qualname__rÆ   rË   rÏ   rW   rk   rl   ÚvstackrŸ   r   ÚTÚnaive_testsÚpytestÚmarkÚparametrizerã   rì   r–   r1   r/   rÁ   rÁ     s“   „ ò	7òKòFð0 ‡I�I‡N�N�1ÔØ�"—)‘)˜[˜RŸ[™[¨¨Q°Ó3ØŸY™Y×.Ñ.¨q°"°bÓ9ð;ó <ß<=¹Að ð ‡[�[×Ñ˜V [Ó1ñ5ó 2ð5ó:'r1   rÁ   c                   óˆ  — e Zd Zej                  j                  d«       dZdZej                  j                  dee¬«      Z	ej                  j                  dee¬«      Z
e	e
z   Z ej                  deej                  ¬«      Z ej                  dee
z
  «      Z ej                   ee	«      Z ej                  eeej                  ¬«      Z ej                  j&                  ej                  Ž dz  Zej,                  j/                  ddd	g«      d
„ «       Zd„ Zd„ Zd„ Zej,                  j/                  ddd	g«      d„ «       Zy)ÚTestNCHr\   ©r\   r   r   rj   r;   rb   r   Ú	dist_namer   r   c           	      óú   — t         t        dœ}||   }| j                  | j                  | j                  | j
                  f\  }}}}t        |j                  ||||d¬«      t        j                  ||||«      «       y )N©r   r   r;   )Úodds)	r   r   rf   r,   Úm1r+   r   rL   r   )rÅ   rù   Údistsrê   rf   r,   rý   r+   s           r/   Útest_nch_hypergeomzTestNCH.test_nch_hypergeomz  sq   € ô
 (:Ü*?ñAˆà�YÑˆØ—f‘f˜dŸf™f d§g¡g¨t¯v©vÐ5‰ˆˆ1ˆb�!Ü˜Ÿ™  A r¨1°1˜Ó5Ü!Ÿ™ a¨¨B°Ó2õ	4r1   c           	      ó¤  — | j                   | j                  | j                  | j                  | j                  f\  }}}}}t
        j                  d„ «       } ||||||«      \  }}}	t        t        j                  |||||«      |«       t        t        j                  ||||d¬«      |«       t        t        j                  ||||d¬«      |	«       y )Nc                 ó  ‡‡‡‡‡‡‡— |‰z
  Št        j                  d‰‰z
  «      Št        j                  ‰‰«      Šˆˆˆˆfd„Šˆˆˆfd„} |d«      } |d«      } |d«      } ‰| «      |z  }	||z  }
||z  ||z  dz  z
  }|	|
|fS )Nr   c                 óP   •— t        ‰| «      }t        ‰‰| z
  «      }||z  ‰| z  z  S r©   )Úspecial_binom)rf   Út1Út2rý   Úm2r+   Úws      €€€€r/   ÚfzFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.f‘  s1   ø€ Ü" 2 qÓ)�Ü" 2 q¨1¡uÓ-�Ø˜B‘w  A¡‘~Ð%r1   c                 óJ   •‡ — t        ˆˆ fd„t        ‰‰dz   «      D «       «      S )Nc              3   ó:   •K  — | ]  } ‰|«      |‰z  z  –— Œ y ­wr©   r–   )Ú.0ro   r  r)   s     €€r/   ú	<genexpr>zYTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P.<locals>.<genexpr>—  s   øè ø€ Ò@¨™1˜Q›4  1¡�9Ñ@ùs   ƒr;   )rÔ   Úrange)r)   r  ÚxlÚxus   `€€€r/   ÚPzFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P–  s   ù€ ÜÔ@¬e°B¸¸Q¹Ó.?Ô@Ó@Ð@r1   r;   r\   ©rW   ÚmaximumÚminimum)rf   r,   rý   r+   r  r  ÚP0ÚP1ÚP2rL   rÞ   rß   r  r  r  r  s     ```       @@@@r/   Úpmf_mean_varz;TestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_varŠ  s’   þ€ ð �R‘ˆBÜ—‘˜A˜q ™tÓ$ˆBÜ—‘˜A˜rÓ"ˆB÷&ö
Añ �1“ˆBÙ�1“ˆBÙ�1“ˆBÙ�A“$˜‘)ˆCØ˜‘7ˆDØ�r‘'˜R "™W q™LÑ(ˆCØ˜˜c�>Ð!r1   Úmr~   Úv)rf   r,   rý   r+   rü   rW   rÛ   r   r   rL   r   )
rÅ   rf   r,   rý   r+   rü   r  rL   rÞ   rß   s
             r/   Útest_nchypergeom_fisher_naivez%TestNCH.test_nchypergeom_fisher_naive†  sÁ   € à ŸF™F D§F¡F¨D¯G©G°T·V±V¸T¿Y¹YÐFÑˆˆ1ˆb�!�Tä	�‰ñ	"ó 
ð	"ñ, & a¨¨B°°4Ó8‰ˆˆT�3ÜÔ*×.Ñ.¨q°!°R¸¸DÓAÀ3ÔGÜÔ*×0Ñ0°°B¸¸4ÈÔMØô	äÔ*×0Ñ0°°B¸¸4ÈÔMØõ	r1   c           
      óœ  ‡‡— t         j                  j                  d«       d}d}t         j                  j                  d||¬«      }t         j                  j                  d||¬«      }||z   }t        j                  d||j
                  ¬«      }t        j                  d||z
  «      }t        j                  ||«      }t        j                  |||j
                  ¬«      }	t        j                  j                  |	j
                  Ž dz  }
d„ Št         j                  ˆfd„«       Št        «       5 }|j                  t        d	¬
«       t        t        j                  ||||
«       ‰||||
«      d¬«       d d d «       t         j                  ˆfd„«       }t        «       5 }|j                  t        d	¬
«       t        t        j                   ||||
d¬«       |||||
«      d¬«       d d d «       t         j                  ˆfd„«       } ||	||||
«      }t        j"                  |	||||
«      }d\  }}t        j$                  ||z
  «      ||t        j$                  |«      z  z   k  }|j'                  «       t        j(                  |«      dz  kD  sJ ‚t+        ||    ||    ||    |
|    «      D ]ƒ  \  }}}}
||z
  } ‰||||
«      \  }}t        j,                  ||dz   «      }	 ||	||||
«      j'                  «       dk  sJ ‚t        t        j"                  |	||||
«      j'                  «       d«       Œ… y # 1 sw Y   �ŒÁxY w# 1 sw Y   �Œ]xY w)Nr\   rø   rj   r;   rb   r   c                 ór   — | |z
  }t        j                  d||z
  «      }t        j                  ||«      }||fS )Nr   r  )r,   rý   r+   r  r  r  r  s          r/   rY   z9TestNCH.test_nchypergeom_wallenius_naive.<locals>.support·  s8   € Ø�R‘ˆBÜ—‘˜A˜q ™tÓ$ˆBÜ—‘˜A˜rÓ"ˆBØ�r�6ˆMr1   c                 ót   •‡‡‡‡— | ‰z
  Š ‰| ‰‰‰«      \  }}ˆˆˆˆfd„}t        |||f¬«      j                  S )Nc                 ó2   •— | ‰z  d‰| z
  ‰z  z
  ‰z  z   dz
  S ©Nr;   r–   )Úurý   r  r+   r  s    €€€€r/   ÚfunzCTestNCH.test_nchypergeom_wallenius_naive.<locals>.mean.<locals>.funÂ  s(   ø€ Ø˜‘t˜q A a¡C¨¡8™|¨aÑ/Ñ/°!Ñ3Ð3r1   )Úbracket)r   Úroot)	r,   rý   r+   r  r  r  r!  r  rY   s	    ```   @€r/   rÞ   z6TestNCH.test_nchypergeom_wallenius_naive.<locals>.mean½  s>   ü€ à�R‘ˆBÙ˜Q  A qÓ)‰FˆB�÷4ô ˜s¨R°¨HÔ5×:Ñ:Ð:r1   z!invalid value encountered in mean)Úmessageg{®Gáz”?r%   c                 ó„   •— | |z
  } ‰| |||«      }|||z
  z  }||z
  ||z   |z
  z  }| |z  |z  | dz
  ||z  ||z  z   z  z  S r  r–   )	r,   rý   r+   r  r  r   rƒ   r„   rÞ   s	           €r/   Úvariancez:TestNCH.test_nchypergeom_wallenius_naive.<locals>.varianceÍ  sg   ø€ à�R‘ˆBÙ�Q˜˜A˜qÓ!ˆAØ�R˜!‘V‘ˆAØ�1‘�q˜2‘v ‘zÑ"ˆAØ�Q‘3�q‘5˜Q˜q™S R¨¡T¨B¨q©D¡[Ñ1Ñ2Ð2r1   r  r~   gš™™™™™©?c                 óh   •‡ ‡‡‡‡‡	— |‰z
  Š	 ‰
|‰‰‰«      \  }}ˆˆ	ˆˆˆ fd„Šˆˆˆ	ˆfd„} |‰ «      S )Nc                 ój   •— ‰‰‰z
  z  ‰‰‰z
  z
  z   }d| ‰|z  z  z
  ‰z  d| d|z  z  z
  ‰‰z
  z  z  }|S r  r–   )ÚtÚDÚresrý   r  r+   r  rf   s      €€€€€r/   Ú	integrandzHTestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.integrandã  sQ   ø€ Ø�r˜A‘v‘J "¨¨!©¡*Ñ-�Ø˜˜Q˜q™S™‘z A‘o¨¨1¨q°©s©8©°q¸±sÑ(;Ñ;�Ø�
r1   c                 óp   •— t        ‰| «      }t        ‰‰| z
  «      }t        ‰dddd¬«      }||z  |d   z  S )Nr   r;   g¼‰Ø—²Òœ<)ÚepsrelÚepsabs)r  r   )rf   r  r  Úthe_integralr,  rý   r  r+   s       €€€€r/   r  z@TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.fè  sH   ø€ Ü" 2 qÓ)�Ü" 2 q¨1¡uÓ-�Ü# I¨q°!Ø+0¸ô @�à˜B‘w ¨a¡Ñ0Ð0r1   r–   )rf   r,   rý   r+   r  r  r  r  r,  r  rY   s   ` ```   @@€r/   rL   z5TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmfÞ  s:   þ€ à�R‘ˆBÙ˜Q  A qÓ)‰FˆB�÷ð ÷
1ñ �Q“4ˆKr1   )rÎ   rÎ   r“   )rW   rk   rl   r   rd   re   r  r  r•   rÛ   r   ÚfilterÚRuntimeWarningr   r   rÞ   r   rL   ÚabsrÔ   ÚprodÚziprX   )rÅ   re   Úmax_mrý   r  r,   r+   r  r  rf   r  Úsupr&  rL   Úpmf0Úpmf1r£   r&   ÚirÞ   rY   s                      @@r/   Ú test_nchypergeom_wallenius_naivez(TestNCH.test_nchypergeom_wallenius_naive¨  s  ù€ ô 	�	‰	�‰�qÔØˆØˆÜ�Y‰Y×Ñ˜q %¨eÐÓ4ˆÜ�Y‰Y×Ñ˜q %¨eÐÓ4ˆØ�‰GˆÜ�K‰K˜˜1 1§7¡7Ô+ˆÜ�Z‰Z˜˜1˜R™4Ó ˆÜ�Z‰Z˜˜2ÓˆÜ�K‰K˜˜B R§X¡XÔ.ˆÜ�I‰I�N‰N˜AŸG™GÐ$ QÑ&ˆò	ô 
�‰ó	;ó 
ð	;ô Ó ð 	: CØ�J‰J”~ØBð ô DäÔ1×6Ñ6°q¸"¸aÀÓCÙ   B¨¨1Ó-°Dõ:÷	:ô 
�‰ó	3ó 
ð	3ô Ó ð 	 CØ�J‰J”~ØBð ô DäÜ%×+Ñ+¨A¨r°1°aÀÔEÙ˜˜B  1Ó%Øõ÷	ô 
�‰ó	ó 
ð	ñ$ �1�a˜˜Q Ó"ˆÜ$×(Ñ(¨¨A¨r°1°aÓ8ˆà‰
ˆˆdÜ�F‰F�4˜$‘;Ó $¨¬b¯f©f°T«lÑ):Ñ":Ñ:ˆØ�u‰u‹wœŸ™ ›¨!Ñ+Ò+Ð+Ð+ô ˜q ! ™u b¨!¨¡f¨a°°©e°Q¸°r±UÓ;ò 		P‰KˆAˆr�1�aà�R‘ˆBÙ˜Q  A qÓ)‰FˆB�Ü—	‘	˜"˜b 1™fÓ%ˆAñ �q˜!˜R  AÓ&×*Ñ*Ó,¨rÒ1Ð1Ð1ÜÔ1×5Ñ5°a¸¸BÀÀ1ÓE×IÑIÓKÈQÕOñ		P÷e	:ñ 	:ú÷	ñ 	ús   Ä0AL4ÆAMÌ4L>ÍMc           	      óP  — d}d}d}d}t        j                  d«      }t        j                  g d¢«      }d}d}t        t	        j
                  |||||«      |d	d	¬
«       t        t	        j                  ||||«      |d	¬«       t        t	        j                  ||||«      |d¬«       y )Nr8   rÈ   ry   g      @rÃ   )g9”T€ÆÕå;g»��rþü�<gÝD,P=g³4À VŒ=g'±	,îñð=gC�åõ‹ŒG>gyzžtj…”>gÁÙë«t•×>gÃ+k…†?g ‰Me´GD?gqNZVÉ’o?gœcø2nž‘?g~Z€ÄN¬?g¼EŸ}?YÀ?gõÛÀ¢ßöÊ?gËÎ‡aQÏ?gè€]?…É?gr”…)‚‚º?gÌáÙp{¡?g3Í9	·†y?gµ Ñmç>?gJ®ò•´�-@gñihÞ@rT   )r&   r£   r%   g•dyáý¥=)rW   rX   Úarrayr   r   rL   rÞ   rß   )	rÅ   r*   r+   r,   rü   r7  rL   rÞ   rß   s	            r/   Útest_wallenius_against_mpmathz%TestNCH.test_wallenius_against_mpmath  s­   € ð ˆØˆØˆØˆä�i‰i˜‹mˆÜ�h‰hò /ó 0ˆð* "ˆØ ˆô 	Ô-×1Ñ1°#°q¸!¸QÀÓEÀsØ"¨õ	0äÔ-×2Ñ2°1°a¸¸DÓAØ 5õ	*äÔ-×1Ñ1°!°Q¸¸4Ó@Ø %ö	)r1   c                 ó‚   — t         t        dœ}||   }|j                  dddgdggg d¢d¬«      }|j                  dk(  sJ ‚y )	Nrû   r8   rÈ   r   ry   )r“   rV   g       @ra   rb   )r   r   rd   re   )rÅ   rù   rþ   rê   rf   s        r/   Útest_rvs_shapezTestNCH.test_rvs_shape.  sN   € ô (:Ü*?ñAˆà�YÑˆØ�H‰H�R˜˜r˜d R D˜\ª?ÀˆHÓNˆØ�w‰w˜,Ò&Ð&Ñ&r1   N)rí   rî   rï   rW   rk   rl   re   r6  r   rý   r  r,   rd   r+   r  r  r  r  rf   r•   rü   ró   rô   rõ   rÿ   r  r;  r>  r@  r–   r1   r/   r÷   r÷   l  sD  „ Ø‡I�I‡N�N�1ÔØ€EØ€EØ	�‰×	Ñ	˜1˜e¨%Ð	Ó	0€BØ	�‰×	Ñ	˜1˜e¨%Ð	Ó	0€BØ
ˆR‰€AØˆ�‰�A�q˜qŸw™wÔ'€AØ	ˆ�‰�A�q˜‘tÓ	€BØ	ˆ�‰�A�rÓ	€BØˆ�‰�B˜ §¡Ô*€AØˆ2�9‰9�>‰>˜1Ÿ7™7Ð# AÑ%€Dð ‡[�[×Ñ˜[Ø2Ð4KÐLóNñ4óNð4ò òDZPòx()ðT ‡[�[×Ñ˜[Ø2Ð4KÐLóNñ'óNñ'r1   r÷   zmu, q, expected)r   éx   g@	›#á¸)iÜ  r   g"q³V§UÀc                 ó^   — d}|||| z   z  }}t        t        j                  |||«      |«       y )Nry   )r   r   r³   )r½   Úqr-   rc   r+   r.   s         r/   Útest_nbinom_11465rD  ;  s3   € ð
 €DØ��t˜B‘w‘€q€Aô ”F—M‘M ! Q¨Ó*¨HÕ5r1   c                  óÜ   — t        j                  ddd«      } d}t        |«      j                  | «      }| dz  dk(  }t	        |d   |«       t	        |d   d|z
  «       t        ||    d«       y )Nr   r;   ri   gš™™™™™é?r”   )rW   r›   r   rL   r   r   )rf   r.   rL   r:  s       r/   Útest_gh_17146rF  H  sl   € ô 	�‰�A�q˜"Ó€AØ€AÜ
�A‹,×
Ñ
˜1Ó
€CØ	
ˆQ‰�!‰€AÜ�C˜‘G˜QÔÜ�C˜‘F˜A˜a™CÔ Ü��a�R‘˜!Õr1   c                   ó¸   — e Zd Zej                  j                  dg d¢g d¢g d¢g«      d„ «       Zej                  j                  dg d¢g d¢g d	¢g«      d
„ «       Zy)ÚTestBetaNBinomzx, n, a, b, ref)r   g    ÐSAr   ry   g:[Y³³»))rj   r8   r   ry   g ôÍødg?)r   rž   r   ry   gL&¸[šô>c                 óL   — t        t        j                  ||||«      |d¬«       y )NrK   r%   )r   r   rL   )rÅ   rf   r+   rƒ   r„   Úrefs         r/   Útest_betanbinom_pmfz"TestBetaNBinom.test_betanbinom_pmfU  s   € ô  	œ
Ÿ™ q¨!¨Q°Ó2°C¸eÖDr1   zn, a, b, ref)r   r¼   r8   g—Í:ÑèoÀ?)r   r`   r`   gÍ>["”°@)rj   rž   r   gÑ Å>ÿ[ù?c                 óN   — t        t        j                  |||d¬«      |d¬«       y )Nr)   r~   g [n‡ë<r%   )r   r   r   )rÅ   r+   rƒ   r„   rJ  s        r/   Útest_betanbinom_kurtosisz'TestBetaNBinom.test_betanbinom_kurtosish  s$   € ô* 	œ
×(Ñ(¨¨A¨q¸#Ô>Ø %ö	)r1   N)rí   rî   rï   ró   rô   rõ   rK  rM  r–   r1   r/   rH  rH  T  so   „ Ø‡[�[×ÑÐ.ÚEÚBÚHðJóKñEó	KðEð ‡[�[×Ñ˜^ÚCÚ:Ú?ðAóBñ)ó	Bñ)r1   rH  c                   ó   — e Zd Zd„ Zy)ÚTestZipfc                 óà   — t        j                  dd«      }|j                  t         j                  «      }t	        d«      }|j                  |«      }|j                  |«      }t        ||«       y )Nr   rž   r`   )rW   rX   ræ   rç   r   rL   r   rè   s         r/   Útest_gh20692zTestZipf.test_gh20692‚  sR   € ä�I‰I�a˜ÓˆØ—(‘(œ2Ÿ8™8Ó$ˆÜ�A‹wˆØ�h‰h�q‹kˆØ—h‘h˜wÓ'ˆÜ�S˜+Õ&r1   N)rí   rî   rï   rQ  r–   r1   r/   rO  rO  �  s   „ ó'r1   rO  c                  óê   —  G d„ dt         j                  «      }  | t        j                  ¬«      }d}t	        j
                  t        |¬«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zd„ Zy)ú#test_gh20048.<locals>.test_dist_genc                 ó    — t        |dz  d«      S )Nrj   rš   )Úmin)rÅ   r)   s     r/   Ú_cdfz(test_gh20048.<locals>.test_dist_gen._cdf�  s   € Ü�q˜3‘w Ó%Ð%r1   N)rí   rî   rï   rW  r–   r1   r/   Útest_dist_genrT  �  s   „ ó	&r1   rX  )r„   zArguments that bracket...)Úmatchg+‡ÙÎ÷ï?)r   Úrv_discreterW   r´   ró   ÚraisesÚRuntimeErrorrn   )rX  Ú	test_distr$  s      r/   Útest_gh20048r^  Œ  sX   € ô&œ×)Ñ)ô &ñ ¤§¡Ô'€Ià)€GÜ	�‰”|¨7Ô	3ñ Ø�‰�eÔ÷÷ ñ ús   ÁA)Á)A2c                   ó   — e Zd Zd„ Zy)ÚTestPoissonBinomialc                 ó  — t         j                  j                  d«      }|j                  d«      }t        j                  |dz   «      }|j                  |«      }t        j                  ||«      }g d¢}t        ||«       y )Nl   ®zb}ñ r   r;   )gc«¡µÆ™¡?g!)@*ç—ä?gŒ/_“èÊÒ?g§?TxY^œ?gg–	ÎSUH?)rW   rk   Údefault_rngÚintegersrX   r   rL   r   )rÅ   Úrngr+   r)   r.   r+  rJ  s          r/   Útest_pmfzTestPoissonBinomial.test_pmf›  sh   € ô �i‰i×#Ñ# LÓ1ˆØ�L‰L˜ÓˆÜ�I‰I�a˜!‘eÓˆØ�J‰J�q‹Mˆä×Ñ  1Ó%ˆò=ˆä˜˜SÕ!r1   N)rí   rî   rï   re  r–   r1   r/   r`  r`  š  s   „ ó"r1   r`  c                   ó   — e Zd Zd„ Zy)ÚTestRandIntc                 ó*  — d}t        |«      }t        |«      D �cg c]
  }|dz   |z   ‘Œ }}t        j                  d||«      }|dkD  j	                  «       sJ ‚dt        j                  |t
        j                  ¬«      |z
  z  }t        ||«       y c c}w )Nižþÿÿl        iE  r   r;   )Údtype)	r3  r  r   rL   ÚallrW   ÚasarrayÚfloat64r   )rÅ   rƒ   Ú	max_ranger:  Úall_b_1r+  rJ  s          r/   Útest_gh19759zTestRandInt.test_gh19759´  s�   € àˆÜ˜“Fˆ	Ü,1°)Ó,<Ö= q�1�w‘; “?Ð=ˆÐ=Ü�k‰k˜#˜q 'Ó*ˆØ�a‘�}‰}ŒÐˆØ”2—:‘:˜g¬R¯Z©ZÔ8¸1Ñ<Ñ=ˆÜ˜˜SÕ!ùò	 >s   ›BN)rí   rî   rï   ro  r–   r1   r/   rg  rg  ³  s   „ ó"r1   rg  )Gró   Ú	itertoolsÚscipyr   Úscipy.statsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   ÚnumpyrW   Únumpy.testingr   r   r   r   Úscipy.specialr  Úscipy.optimizer   Úscipy.integrater   rô   rõ   r0   r6   rE   rP   rZ   r]   rg   rp   rw   r{   ÚproductÚintÚfloatr…   r‡   r�   r‘   r—   rœ   r    r¤   r¬   r®   r±   r·   rº   r¿   rÁ   r÷   rD  rF  rH  rO  r^  r`  rg  r–   r1   r/   ú<module>r{     sö  ðÛ Û å ÷1÷ 1÷ 1÷ 1ñ 1ó
 ÷ó õ 1Ý &Ý  ð
 ‡�×ÑÐ5ò:ó;ñ,ó;ð,ð ‡�×ÑÐ5ð6ð:ð;ó<ñ
,ó<ð
,ò
Hò4)ò	>òCò#òò-ò&%ð ‡�×Ñ˜Ð#4 9×#4Ñ#4¸¸U°|°nÀQÑ6FÐ#GÓHñPó IðPò%òFò
Eò
*òò"Bò:ð ‡�×ÑÐ/ò 
2ó 
ñ5ó
ð5òKò
Hò'ò-ò'÷['ñ ['÷|L'ñ L'ð^ ‡�×ÑÐ*Ú;Ú7ð9ó:ñ6ó:ð6ò	÷*)ñ *)÷Z'ñ 'ò÷"ñ "÷2	"ò 	"r1   