§
    µ³Ùg­b  ã                   óf  — 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 j!         "                    dg d	¢¦  «        d
„ ¦   «         Z#e j!         "                    dddg¦  «        d„ ¦   «         Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,e j!         "                    d ej-        e.e/fgdz  Ž ¦  «        d„ ¦   «         Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7e j!         "                    d g d!¢¦  «        d"„ ¦   «         Z8d#„ Z9d$„ Z:d%„ Z;d&„ Z<d'„ Z= G d(„ d)¦  «        Z> G d*„ d+¦  «        Z?e j!         "                    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¦  «        ZFdS ):é    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                 óX   — t          j        | |||¦  «        }t          |||¬¦  «         d S ©N©Úrtol)r   Úcdfr   ©ÚkÚMÚnÚNÚexpectedr&   Úps          ú\/granary/edev/quantum/lib/python3.11/site-packages/scipy/stats/tests/test_discrete_distns.pyÚtest_hypergeom_cdfr0      s4   € õ 	Œ�a˜˜A˜qÑ!Ô!€AÝ�A�x dÐ+Ñ+Ô+Ð+Ð+Ð+ó    )é   r   r    r!   gäûòÿÿÿï?r   )é}   r   r    r!   g«™Çö!˜:<r"   c                 óX   — t          j        | |||¦  «        }t          |||¬¦  «         d S r$   )r   Úsfr   r(   s          r/   Útest_hypergeom_sfr6   #   s4   € õ 	Œ�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¬¦  «         d S )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Ô2€GÝÔ˜q 1™u a¨¨A°©EÑ2Ô2€GÝÔ˜q ! Q¨Ñ*Ô*€GÝ˜ °"Ð5Ñ5Ô5Ð5Ý˜ °"Ð5Ñ5Ô5Ð5Ý˜ °"Ð5Ñ5Ô5Ð5ð 	
€AØ
€AØ	€AØ	€AÝ Ô'¨¨1¨a°Ñ3Ô3ÐÝ Ô'¨¨1¨Q©3Ñ/Ô/ÐÝÐ(Ð*:ÀBÐGÑGÔGÐGÐGÐGr1   c                  óÒ   — d\  } }}d}t          j        || ||¦  «        }t          j        || |||z   dz
  ¦  «        | |z
  |dz
  z
  z  | ||z   dz
  z
  z  }t          ||d¬¦  «         d S )N)é-   é   é   é   r;   ç»½×Ùß|Û=r%   )r   Úpmfr   r   )r*   r+   Úrr)   ÚNHGÚHGs         r/   Útest_nhypergeom_pmfrP   G   s�   € à�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¬¦  «         d S )	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   sŠ   € à	€AØ	€AØ	€AÝŒi˜˜!™‰nŒn€GÝ
Œ.˜ ! Q¨Ñ
*Ô
*€CÝ
Œ.˜ ! Q¨Ñ
*Ô
*€CÝ�CÐ1Ð1Ð1¸Ð>Ñ>Ô>Ð>Ý�CÐ0Ð0Ð0°uÐ=Ñ=Ô=Ð=Ð=Ð=r1   c                  ó|   — d} d}d}t          j        g d¢g d¢g| ||¦  «        }t          |g d¢g d¢gd¬	¦  «         d S )
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ÐBÑBÔBÐBÐBÐBr1   c                  ó\   — t          j        dg d¢dgdggd¬¦  «        } | j        dk    sJ ‚d S )Né   )r<   rI   é	   r9   rH   ©r   r;   r\   r   ©Úsize)r   ÚrvsÚshape)Úxs    r/   Útest_nhypergeom_rvs_shaperg   e   sA   € õ 	Œ�r˜9˜9˜9¨ t¨b¨T l¸ÐFÑFÔF€AØŒ7�lÒ"Ð"Ð"Ð"Ð"Ð"r1   c                  ó@  — t           j                             d¦  «         t          j        dddd¬¦  «        } t           j                             d¦  «         t           j                             d¬¦  «        }t          j        |ddd¦  «        }t          | |¦  «         d S )Nr   r_   r<   é   éd   rb   )rW   ÚrandomÚseedr   rd   ÚuniformÚppfr   )rf   r.   Úys      r/   Útest_nhypergeom_accuracyrp   m   s‡   € õ „I‡N‚N�1ÑÔÐÝŒ�r˜1˜b sÐ+Ñ+Ô+€AÝ„I‡N‚N�1ÑÔÐÝ
Œ	×Ò˜sÐÑ#Ô#€AÝŒ�q˜"˜a Ñ$Ô$€AÝ��AÑÔÐÐÐr1   c                  óh  — 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	¬
¦  «         d S )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¦  «                             |¦  «        }t          j        d| dz   z  | dz   ¦  «        }t          ||¦  «         d S )Né   r;   )rW   rX   r   rL   Úrepeatr   )r+   r)   r.   r-   s       r/   Útest_betabinom_a_and_b_unityr{   ‹   sn   € ð 	€AÝ
Œ	�!�a‘%ÑÔ€AÝ�!�Q˜ÑÔ×Ò˜qÑ!Ô!€AÝŒy˜˜a !™e™ a¨!¡eÑ,Ô,€HÝ˜˜8Ñ$Ô$Ð$Ð$Ð$r1   Údtypesr   c                 ó    — | \  }}} |d¦  «         |d¦  «         |d¦  «        }}}t          t          j        |||d¬¦  «        d¦  «         d S )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…   •   s_   € ð $Ñ€FˆF�FØˆf�R‰jŒj˜&˜& ™)œ) V V¨A¡Y¤Yˆ!€q€AÝ•I”O A q¨!°SÐ9Ñ9Ô9Ð;NÑOÔOÐOÐOÐOr1   c                  óî   — d} d}t          j        d¦  «        }t          d| |¦  «                             |¦  «        }t	          | | |z   z  ¦  «                             |¦  «        }t          ||¦  «         d S )Ngffffff@g)\�Âõ(ä?r\   r;   )rW   rX   r   rL   r   r   )rƒ   r„   r)   r.   r-   s        r/   Útest_betabinom_bernoullir‡   ž   sq   € à€AØ€AÝ
Œ	�!‰Œ€AÝ�!�Q˜ÑÔ×Ò˜qÑ!Ô!€AÝ˜˜a !™e™Ñ%Ô%×)Ò)¨!Ñ,Ô,€HÝ˜˜8Ñ$Ô$Ð$Ð$Ð$r1   c                  ó\   — d\  } }}t          t          j        | ||¬¦  «        d¦  «         d S )N)gÍÌÌÌÌÌì?r   r;   ©Ú
confidencer+   r.   ©r   r   )r   r   Úinterval©Úalphar+   r.   s      r/   Útest_issue_10317r�   ¨   s4   € Ø�K€Eˆ1ˆaÝ•”¨E°Q¸!Ð<Ñ<Ô<¸fÑEÔEÐEÐEÐEr1   c                  ó\   — d\  } }}t          t          j        | ||¬¦  «        d¦  «         d S )N)gffffffî?r   r   r‰   r‹   )r   r   rŒ   r�   s      r/   Útest_issue_11134r‘   ­   s4   € Ø�K€Eˆ1ˆaÝ•”¨5°A¸Ð;Ñ;Ô;¸VÑDÔDÐDÐDÐDr1   c                  óV  — t           j                             d¦  «         t          t	          j        t           j                             d¦  «        dd¦  «        d¦  «         t          t	          j        ddd¦  «        d¦  «         t          t	          j        ddd¦  «        d¦  «         d S )Nr   r   ç      à?éÿÿÿÿr;   )rW   rk   rl   r   r   rn   Úrand© r1   r/   Útest_issue_7406r—   ²   s†   € Ý„I‡N‚N�1ÑÔÐÝ•”�2œ9Ÿ>š>¨"Ñ-Ô-¨q°#Ñ6Ô6¸Ñ:Ô:Ð:õ •”˜1˜a Ñ%Ô% rÑ*Ô*Ð*Ý•”˜1˜a Ñ%Ô% qÑ)Ô)Ð)Ð)Ð)r1   c                  ód  — d} t           j                             dd¬¦  «        }d}t          j        ||| ¦  «        }t          |d¦  «         t          j        ddd¦  «        }t          j        ||| ¦  «        }t          |d¦  «         d}t          j        ||| ¦  «        }t          ||¦  «         d S )	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            	      óŽ   — t          t          dt          j        dd¦  «        ¦  «                             d¦  «        d¦  «         d S )Néè  rr   iœÿÿÿr™   r   )r   r   rW   Úlogspacern   r–   r1   r/   Útest_issue_1603r    Ì   s<   € Ý•�t�Rœ[¨¨TÑ2Ô2Ñ3Ô3×7Ò7¸Ñ=Ô=¸qÑAÔAÐAÐAÐAr1   c                  óˆ   — d} t          j        ddd¦  «        }t          t          j        |d|z  | ¦  «        dd¬¦  «         d S )Nr“   r   é   r9   r\   r™   )Úatol)rW   rŸ   r   r   r'   )r.   rf   s     r/   Útest_issue_5503r¤   Ð   sG   € Ø€AÝ
Œ�A�r˜2ÑÔ€AÝ•E”I˜a  1¡ aÑ(Ô(¨#°DÐ9Ñ9Ô9Ð9Ð9Ð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                 óN   — t          t          j        | ||¦  «        |¦  «         d S ©N©r   r   r'   )rf   r+   r.   Úcdf_desireds       r/   Útest_issue_5503pt2r¬   Ö   s(   € õ •E”I˜a  AÑ&Ô&¨Ñ4Ô4Ð4Ð4Ð4r1   c                  óN   — t          t          j        ddd¦  «        d¦  «         d S )Nr\   l    J)£gê-�™—q=gB.¸Ã+ní?rª   r–   r1   r/   Útest_issue_5503pt3r®   å   s'   € å•E”I˜a ¨Ñ1Ô1Ð3IÑJÔJÐJÐJÐJr1   c                  óN   — t          t          j        ddd¦  «        d¦  «         d S )Néú   r8   gAAà?g_[CË®i³8)r   r   r5   r–   r1   r/   Útest_issue_6682r±   ê   s)   € õ •F”I˜c 2 wÑ/Ô/Ð1FÑGÔGÐGÐGÐGr1   c                  óv   — t          j        g d¢dd¦  «        } dt          j         dg}t	          | |¦  «         d S )N)r   r”   r;   r   r“   g¬¥ÂÐÑGÞ¿g1DÊ&+´À)r   ÚlogcdfrW   Úinfr   )ÚresultÚ	references     r/   Útest_issue_19747r·   ñ   s?   € åŒ]˜:˜:˜: q¨#Ñ.Ô.€FØ�rœv˜g {Ð3€IÝ�F˜IÑ&Ô&Ð&Ð&Ð&r1   c                  óZ   — d} d}d}t          t          j        || |¦  «        d¦  «         d S )Nrž   r™   iä  ç        )r   r   rL   )r+   r.   r)   s      r/   Ú%test_boost_divide_by_zero_issue_15101rº   ø   s5   € Ø€AØ€AØ€AÝ•E”I˜a  AÑ&Ô&¨Ñ,Ô,Ð,Ð,Ð,r1   c                  ób   — g d¢} t          j        d| | ¦  «        }g d¢}t          ||¦  «         d S )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¿   ÿ   sL   € à	9Ð	9Ð	9€BÝ
Œ+�a˜˜RÑ
 Ô
 €CðPð Pð P€Lõ �C˜Ñ&Ô&Ð&Ð&Ð&r1   c                   ó$  — e Zd Zd„ Zd„ Zd„ Zej                             d¦  «          ej	         ej
        ddd¦  «        ej                             dd	d¦  «        f¦  «        j        Zej                             d
e¦  «        d„ ¦   «         Zd„ ZdS )Ú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¬¦  «        ¦  «         d S )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�a˜ÑÔˆÝ�œ A q¨!Ñ,Ô,­d¬h°q¸!©n¬nÑ=Ô=Ð=Ý�œ A q¨!Ñ,Ô,­d¬h°q¸!©n¬nÑ=Ô=Ð=Ý�œ
 1 a¨Ñ+Ô+­T¬W°Q¸©]¬]Ñ;Ô;Ð;Ý�œ a¨°FÐ;Ñ;Ô;Ýœ
 1¨fÐ5Ñ5Ô5ñ	7ô 	7ð 	7ð 	7ð 	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¬¦  «         d S )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�a˜˜Q™ÑÔˆÝ�œ A t¨QÑ/Ô/µ´¸QÀÀaÑ1HÔ1HØ!ð	#ñ 	#ô 	#ð 	#å�œ A t¨QÑ/Ô/µ´¸QÀÀaÑ1HÔ1HØ!ð	#ñ 	#ô 	#ð 	#å�œ
 1 d¨AÑ.Ô.µ´
¸1¸dÀAÑ0FÔ0FØ!ð	#ñ 	#ô 	#ð 	#å�œ d¨A°vÐ>Ñ>Ô>Ýœ d¨A°vÐ>Ñ>Ô>ÀTð	Kñ 	Kô 	Kð 	Kð 	Kð 	Kr1   c                 óþ  — t           j                             d¦  «         t           j                             ddd¬¦  «        }t           j                             d¦  «        dz  dz   }t           j                             ddd¬¦  «        }g d¢}g d¢}t          t          j        |||¦  «        dd …         |dd …         d	¬
¦  «         t          t          j        |||¦  «        dd …         |dd …         d¬
¦  «         d S )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×Ò˜a ¨"ÐÑ-Ô-ˆÝŒI�NŠN˜2ÑÔ˜rÑ! AÑ%ˆÝŒI×Ò˜a ¨2ÐÑ.Ô.ˆð+ð +ð +ˆðFð Fð Fˆõ 	�œ A q¨!Ñ,Ô,¨Q¨R¨RÔ0°#°a°b°b´'ÀÐEÑEÔEÐEÝ�œ A q¨!Ñ,Ô,¨Q¨R¨RÔ0°#°a°b°b´'ÀÐEÑEÔEÐEÐEÐ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¦  «         d S )Nc                 ób   — dt          j        d| dz   ¦  «        |z  z                       ¦   «         S )z$Naive implementation of harmonic sumr;   )rW   rX   Úsum)r+   Úss     r/   ÚHnsz+TestZipfian.test_zipfian_naive.<locals>.HnsI  s0   € ð •b”i  1 Q¡3Ñ'Ô'¨Ñ*Ñ*×/Ò/Ñ1Ô1Ð1r1   c                 óJ   •— | dk     s| |k    rdS 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  s8   ø€ ð �1Šuˆu˜˜Aš˜Ø�rà˜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  so  ø€ õ 
Œð	2ð 	2ñ 
Œð	2õ 
Œð	,ð 	,ð 	,ð 	,ñ 
Œð	,õ ŒI�a˜‘c‰NŒNˆØˆd�1�a˜‰mŒmˆÝŒi˜‰nŒnˆÝŒz˜! SÐ)Ñ)Ô)ˆÝŒj˜!˜d™( Q™°Ð4Ñ4Ô4ˆØ�3‰hˆÝŒz˜A˜d™F C™<¨!Ñ+°SÐ9Ñ9Ô9ˆÝ”:  $¡¨™|¨aÑ/¸Ð=Ñ=Ô=ÀÑAˆÝ�œ A q¨!Ñ,Ô,¨cÑ2Ô2Ð2Ý�œ A q¨!Ñ,Ô,¨cÑ2Ô2Ð2Ý�œ a¨°FÐ;Ñ;Ô;Ø˜s D¨(Ð3ñ	5ô 	5ð 	5ð 	5ð 	5r1   c                 ó  — t          j        dd¦  «        }|                     t           j        ¦  «        }t	          dd¦  «        }|                     |¦  «        }|                     |¦  «        }t          ||¦  «         d S )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  sk   € ÝŒI�a˜ÑÔˆØ—(’(�2œ8Ñ$Ô$ˆÝ�s˜BÑÔˆØ�hŠh�q‰kŒ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ð 	7ð 	7ðKð Kð KðFð Fð Fð0 „I‡N‚N�1ÑÔÐØ�"”)˜[˜Rœ[¨¨Q°Ñ3Ô3ØœY×.Ò.¨q°"°bÑ9Ô9ð;ñ <ô <Ü<=ð ð „[×Ò˜V [Ñ1Ô1ð5ð 5ñ 2Ô1ð5ð:'ð 'ð 'ð 'ð 'r1   rÁ   c                   óJ  — e Zd Zej                             d¦  «         dZdZej                             dee¬¦  «        Z	e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                             ddd	g¦  «        d
„ ¦   «         Zd„ Zd„ Zd„ Zej                             ddd	g¦  «        d„ ¦   «         ZdS )ÚTestNCHr\   ©r\   r   r   rj   r;   rb   r   Ú	dist_namer   r   c           	      óì   — t           t          dœ}||         }| j        | j        | j        | j        f\  }}}}t          |                     ||||d¬¦  «        t          j        ||||¦  «        ¦  «         d S )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  s‡   € õ
 (:Ý*?ðAð Aˆà�YÔˆØ”f˜dœf d¤g¨t¬vÐ5‰ˆˆ1ˆb�!Ý˜Ÿš  A r¨1°1˜Ñ5Ô5Ý!œ a¨¨B°Ñ2Ô2ñ	4ô 	4ð 	4ð 	4ð 	4r1   c           	      óŠ  — | j         | j        | j        | j        | j        f\  }}}}}t
          j        d„ ¦   «         } ||||||¦  «        \  }}}	t          t          j	        |||||¦  «        |¦  «         t          t          j
        ||||d¬¦  «        |¦  «         t          t          j
        ||||d¬¦  «        |	¦  «         d S )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                 ó`   •— 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‘  s7   ø€ Ý" 2 qÑ)Ô)�Ý" 2 q¨1¡uÑ-Ô-�Ø˜B‘w  A¡‘~Ð%r1   c                 ó`   •‡ — t          ˆˆ fd„t          ‰‰dz   ¦  «        D ¦   «         ¦  «        S )Nc              3   ó:   •K  — | ]} ‰|¦  «        |‰z  z  V — Œd S r©   r–   )Ú.0ro   r  r)   s     €€r/   ú	<genexpr>zYTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P.<locals>.<genexpr>—  s3   øè è € Ð@Ð@¨˜1˜1˜Q™4œ4  1¡™9Ð@Ð@Ð@Ð@Ð@Ð@r1   r;   )rÔ   Úrange)r)   r  ÚxlÚxus   `€€€r/   ÚPzFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P–  s8   øø€ ÝÐ@Ð@Ð@Ð@Ð@­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ð Að Að Að Að Að 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 D¤F¨D¬G°T´V¸T¼YÐFÑˆˆ1ˆb�!�Tå	Œð	"ð 	"ñ 
Œð	"ð, &˜ a¨¨B°°4Ñ8Ô8‰ˆˆT�3ÝÕ*Ô.¨q°!°R¸¸DÑAÔAÀ3ÑGÔGÐGÝÕ*Ô0°°B¸¸4ÈÐMÑMÔMØñ	ô 	ð 	åÕ*Ô0°°B¸¸4ÈÐMÑMÔMØñ	ô 	ð 	ð 	ð 	r1   c           
      óì  ‡‡— t           j                             d¦  «         d}d}t           j                             d||¬¦  «        }t           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 }|                     t          d	¬
¦  «         t          t          j        ||||
¦  «         ‰||||
¦  «        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t           j	        ˆfd„¦   «         }t          ¦   «         5 }|                     t          d	¬
¦  «         t          t          j        ||||
d¬¦  «         |||||
¦  «        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t           j	        ˆfd„¦   «         } ||	||||
¦  «        }t          j        |	||||
¦  «        }d\  }}t          j        ||z
  ¦  «        ||t          j        |¦  «        z  z   k     }|                     ¦   «         t          j        |¦  «        dz  k    sJ ‚t+          ||          ||          ||          |
|          ¦  «        D ]”\  }}}}
||z
  } ‰||||
¦  «        \  }}t          j        ||dz   ¦  «        }	 ||	||||
¦  «                             ¦   «         dk     sJ ‚t          t          j        |	||||
¦  «                             ¦   «         d¦  «         Œ•d S )Nr\   rø   rj   r;   rb   r   c                 ón   — | |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·  s:   € Ø�R‘ˆBÝ”˜A˜q ™tÑ$Ô$ˆBÝ”˜A˜rÑ"Ô"ˆBØ�r�6ˆMr1   c                 óx   •‡‡‡‡— | ‰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½  sm   øøøøø€ à�R‘ˆBØ�W˜Q  A qÑ)Ô)‰FˆB�ð4ð 4ð 4ð 4ð 4ð 4ð 4ð 4õ ˜s¨R°¨HÐ5Ñ5Ô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Í  sl   ø€ à�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                 ót   •‡ ‡‡‡‡‡	— |‰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                 óŽ   •— 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è  sZ   ø€ Ý" 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Ø�W˜Q  A qÑ)Ô)‰FˆB�ðð ð ð ð ð ð ð ð ð
1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð �1�Q‘4”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¨  sR  øø€ õ 	Œ	�Š�qÑÔÐØˆØˆÝŒY×Ò˜q %¨eÐÑ4Ô4ˆÝŒY×Ò˜q %¨eÐÑ4Ô4ˆØ�‰GˆÝŒK˜˜1 1¤7Ð+Ñ+Ô+ˆÝŒZ˜˜1˜R™4Ñ Ô ˆÝŒZ˜˜2ÑÔˆÝŒK˜˜B R¤XÐ.Ñ.Ô.ˆÝŒIŒN˜AœGÐ$ QÑ&ˆð	ð 	ð 	õ 
Œð	;ð 	;ð 	;ð 	;ñ 
Œð	;õ Ñ Ô ð 	: CØ�JŠJ•~ØBð ñ Dô Dð DåÕ1Ô6°q¸"¸aÀÑCÔCØ ˜D  B¨¨1Ñ-Ô-°Dð:ñ :ô :ð :ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:õ 
Œð	3ð 	3ð 	3ð 	3ñ 
Œð	3õ Ñ Ô ð 	 CØ�JŠJ•~ØBð ñ Dô Dð DåÝ%Ô+¨A¨r°1°aÀÐEÑEÔEØ�˜˜B  1Ñ%Ô%Øðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 
Œð	ð 	ð 	ð 	ñ 
Œð	ð$ ˆs�1�a˜˜Q Ñ"Ô"ˆÝ$Ô(¨¨A¨r°1°aÑ8Ô8ˆà‰
ˆˆdÝŒF�4˜$‘;ÑÔ $¨­b¬f°T©l¬lÑ):Ñ":Ò:ˆØ�uŠu‰wŒw�œ ™œ¨!Ñ+Ò+Ð+Ð+Ð+õ ˜q ! œu b¨!¨¤f¨a°°¬e°Q¸°r´UÑ;Ô;ð 		Pð 		P‰KˆAˆr�1�aà�R‘ˆBØ�W˜Q  A qÑ)Ô)‰FˆB�Ý”	˜"˜b 1™fÑ%Ô%ˆAð �3�q˜!˜R  AÑ&Ô&×*Ò*Ñ,Ô,¨rÒ1Ð1Ð1Ð1ÝÕ1Ô5°a¸¸BÀÀ1ÑEÔE×IÒIÑKÔKÈQÑOÔOÐOÐOð		Pð 		Ps&   ÄAE3Å3E7Å:E7Æ#AHÈHÈHc           	      ó`  — 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¬¦  «         d S )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˜‰mŒmˆÝŒhð /ð /ð /ñ 0ô 0ˆð* "ˆØ ˆõ 	Õ-Ô1°#°q¸!¸QÀÑEÔEÀsØ"¨ð	0ñ 	0ô 	0ð 	0åÕ-Ô2°1°a¸¸DÑAÔAØ 5ð	*ñ 	*ô 	*ð 	*åÕ-Ô1°!°Q¸¸4Ñ@Ô@Ø %ð	)ñ 	)ô 	)ð 	)ð 	)ð 	)r1   c                 óŽ   — t           t          dœ}||         }|                     dddgdggg d¢d¬¦  «        }|j        dk    sJ ‚d S )	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.  sb   € õ (:Ý*?ðAð Aˆà�YÔˆØ�HŠH�R˜˜r˜d R D˜\¨?¨?¨?ÀˆHÑNÔNˆØŒ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  sœ  € € € € € Ø„I‡N‚N�1ÑÔÐØ€EØ€EØ	Œ×	Ò	˜1˜e¨%Ð	Ñ	0Ô	0€BØ	Œ×	Ò	˜1˜e¨%Ð	Ñ	0Ô	0€BØ
ˆR‰€AØˆŒ�A�q˜qœwÐ'Ñ'Ô'€AØ	ˆŒ�A�q˜‘tÑ	Ô	€BØ	ˆŒ�A�rÑ	Ô	€BØˆŒ�B˜ ¤Ð*Ñ*Ô*€AØˆ2Œ9Œ>˜1œ7Ð# AÑ%€Dð „[×Ò˜[Ø2Ð4KÐLñNô Nð4ð 4ñNô Nð4ð ð  ð  ðDZPð ZPð ZPðx()ð ()ð ()ðT „[×Ò˜[Ø2Ð4KÐLñNô Nð'ð 'ñNô Nð'ð 'ð 'r1   r÷   zmu, q, expected)r   éx   g@	›#á¸)iÜ  r   g"q³V§UÀc                 óf   — d}|||| z   z  }}t          t          j        |||¦  «        |¦  «         d S )Nry   )r   r   r³   )r½   Úqr-   rc   r+   r.   s         r/   Útest_nbinom_11465rD  ;  s@   € ð
 €DØ��t˜B‘w‘€q€Aõ •F”M ! Q¨Ñ*Ô*¨HÑ5Ô5Ð5Ð5Ð5r1   c                  ó  — t          j        ddd¦  «        } d}t          |¦  «                             | ¦  «        }| dz  dk    }t	          |d         |¦  «         t	          |d         d|z
  ¦  «         t          ||          d¦  «         d S )Nr   r;   ri   gš™™™™™é?r”   )rW   r›   r   rL   r   r   )rf   r.   rL   r:  s       r/   Útest_gh_17146rF  H  sŠ   € õ 	Œ�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                             dg d¢g d¢g d¢g¦  «        d„ ¦   «         Zej                             dg d¢g d¢g d	¢g¦  «        d
„ ¦   «         ZdS )ÚTestBetaNBinomzx, n, a, b, ref)r   g    ÐSAr   ry   g:[Y³³»))rj   r8   r   ry   g ôÍødg?)r   rž   r   ry   gL&¸[šô>c                 óT   — t          t          j        ||||¦  «        |d¬¦  «         d S )NrK   r%   )r   r   rL   )rÅ   rf   r+   rƒ   r„   Úrefs         r/   Útest_betanbinom_pmfz"TestBetaNBinom.test_betanbinom_pmfU  s/   € õ  	�
œ q¨!¨Q°Ñ2Ô2°C¸eÐDÑDÔDÐDÐDÐDr1   zn, a, b, ref)r   r¼   r8   g—Í:ÑèoÀ?)r   r`   r`   gÍ>["”°@)rj   rž   r   gÑ Å>ÿ[ù?c                 óV   — t          t          j        |||d¬¦  «        |d¬¦  «         d S )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  sÄ   € € € € € Ø„[×ÒÐ.ØEÐEÐEØBÐBÐBØHÐHÐHðJñKô KðEð Eñ	Kô KðEð „[×Ò˜^ØCÐCÐCØ:Ð:Ð:Ø?Ð?Ð?ðAñBô Bð)ð )ñ	Bô Bð)ð )ð )r1   rH  c                   ó   — e Zd Zd„ ZdS )ÚTestZipfc                 ó   — t          j        dd¦  «        }|                     t           j        ¦  «        }t	          d¦  «        }|                     |¦  «        }|                     |¦  «        }t          ||¦  «         d S )Nr   rž   r`   )rW   rX   ræ   rç   r   rL   r   rè   s         r/   Útest_gh20692zTestZipf.test_gh20692‚  sg   € åŒI�a˜ÑÔˆØ—(’(�2œ8Ñ$Ô$ˆÝ�A‰wŒwˆØ�hŠh�q‰kŒ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  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó   — e Zd Zd„ ZdS )ú#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^  Œ  sÕ   € ð&ð &ð &ð &ð &�Ô)ñ &ô &ð &ð �¥¤Ð'Ñ'Ô'€Ià)€GÝ	Œ•|¨7Ð	3Ñ	3Ô	3ð ð Ø�Š�eÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA/Á/A3Á6A3c                   ó   — e Zd Zd„ ZdS )ÚTestPoissonBinomialc                 ó  — t           j                             d¦  «        }|                     d¦  «        }t          j        |dz   ¦  «        }|                     |¦  «        }t          j        ||¦  «        }g d¢}t          ||¦  «         d S )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›  s…   € õ Œi×#Ò# LÑ1Ô1ˆØ�LŠL˜ÑÔˆÝŒI�a˜!‘eÑÔˆØ�JŠJ�q‰MŒMˆåÔ  1Ñ%Ô%ˆð=ð =ð =ˆå˜˜SÑ!Ô!Ð!Ð!Ð!r1   N)rí   rî   rï   re  r–   r1   r/   r`  r`  š  s#   € € € € € ð"ð "ð "ð "ð "r1   r`  c                   ó   — e Zd Zd„ ZdS )ÚTestRandIntc                 ó,  ‡— dŠt          ‰¦  «        }ˆfd„t          |¦  «        D ¦   «         }t          j        d‰|¦  «        }|dk                         ¦   «         sJ ‚dt          j        |t
          j        ¬¦  «        ‰z
  z  }t          ||¦  «         d S )Nižþÿÿc                 ó    •— g | ]
}‰d z   |z   ‘ŒS )l        r–   )r  r:  rƒ   s     €r/   ú
<listcomp>z,TestRandInt.test_gh19759.<locals>.<listcomp>¸  s!   ø€ Ð=Ð=Ð= q�1�w‘; ‘?Ð=Ð=Ð=r1   iE  r   r;   )Údtype)	r3  r  r   rL   ÚallrW   ÚasarrayÚfloat64r   )rÅ   Ú	max_rangeÚall_b_1r+  rJ  rƒ   s        @r/   Útest_gh19759zTestRandInt.test_gh19759´  s•   ø€ àˆÝ˜‘F”Fˆ	Ø=Ð=Ð=Ð=­E°)Ñ,<Ô,<Ð=Ñ=Ô=ˆÝŒk˜#˜q 'Ñ*Ô*ˆØ�a’�}Š}‰ŒÐÐÐØ•2”:˜g­R¬ZÐ8Ñ8Ô8¸1Ñ<Ñ=ˆÝ˜˜SÑ!Ô!Ð!Ð!Ð!r1   N)rí   rî   rï   rq  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ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð
 Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0Ø &Ð &Ð &Ð &Ð &Ð &Ø  Ð  Ð  Ð  Ð  Ð  ð
 „×ÒÐ5ð:ð :ð :ñ;ô ;ð,ð ,ñ;ô ;ð,ð „×ÒÐ5ð6ð:ð;ñ<ô <ð
,ð ,ñ<ô <ð
,ð
Hð Hð Hð4)ð )ð )ð	>ð 	>ð 	>ðCð Cð Cð#ð #ð #ðð ð ð-ð -ð -ð&%ð %ð %ð „×Ò˜Ð#4 9Ô#4¸¸U°|°nÀQÑ6FÐ#GÑHÔHðPð Pñ IÔHðPð%ð %ð %ðFð Fð Fð
Eð Eð Eð
*ð *ð *ðð ð ð"Bð Bð Bð:ð :ð :ð „×ÒÐ/ð 
2ð 
2ð 
2ñ 
ô 
ð5ð 5ñ
ô 
ð5ðKð Kð Kð
Hð Hð Hð'ð 'ð 'ð-ð -ð -ð'ð 'ð 'ð['ð ['ð ['ð ['ð ['ñ ['ô ['ð ['ð|L'ð L'ð L'ð L'ð L'ñ L'ô L'ð L'ð^ „×ÒÐ*Ø;Ð;Ð;Ø7Ð7Ð7ð9ñ:ô :ð6ð 6ñ:ô :ð6ð	ð 	ð 	ð*)ð *)ð *)ð *)ð *)ñ *)ô *)ð *)ðZ'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ðð ð ð"ð "ð "ð "ð "ñ "ô "ð "ð2	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"r1   