Ë
    éì�i5  ã                   ó  — d dl Z d dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZ ej                  j                  dd¬«      ej                  j                  dd	¬«      ej                  j                  d
d¬«       G d„ d«      «       «       «       Zy)é    N)Úarray_namespace)Úxp_assert_closeÚxp_assert_lessÚxp_assert_equal)Ú_continued_fractionÚarray_api_strictzNo fancy indexing assignment©Úreasonz	jax.numpyzDon't support mutationz
dask.arrayzdask has issues with the shapesc                   óþ  — e Zd Zej                  j                  d«      Zej                  ddd¬«      Zdd„Z	dd„Z
d„ Zd„ Zd	„ Zej                  j!                  d
g d¢«      ej                  j!                  dg d¢«      d„ «       «       Zej                  j%                  dd¬«      ej                  j!                  d
ddg«      ej                  j!                  dg d¢«      d„ «       «       «       Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestContinuedFractionl   ºQ º[† é   é
   )Úsizec                 ó´   — |dk(  rd|z  }n|dk(  r|}n|dz   }t        j                  |«      r)t         j                  dk  rt        j                  ||«      }|S )Nr   r   é   ú2.0©ÚnpÚisscalarÚ__version__Ú	full_like)ÚselfÚnÚxÚys       úŽ/var/www/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/lib/python3.12/site-packages/scipy/stats/tests/test_continued_fraction.pyÚa1zTestContinuedFraction.a1   sT   € Ø�Š6Ø�!‘‰AØ�!ŠVØ‰Aà�A‘�ˆAÜ�;‰;�qŒ>œbŸn™n¨uÒ4Ü—‘˜Q Ó"ˆAØˆó    c                 ó¸   — |dk(  rd|z  }n||z  }|d|z  dz
  z  }t        j                  |«      r)t         j                  dk  rt        j                  ||«      }|S )Nr   r   r   r   r   )r   r   r   r   Úones        r   Úb1zTestContinuedFraction.b1    sW   € Ø�Š6Ø�!‘‰Aà�A‘#ˆCØ�q˜‘s˜Q‘w‘ˆAÜ�;‰;�qŒ>œbŸn™n¨uÒ4Ü—‘˜Q Ó"ˆAØˆr   c                 ó"  — t        |«      }|dk(  r>|j                  ||j                  t        j                  |j
                  ¬«       «      }|S |dk(  r|j                  |«      }|S d|j                  |«      z  t        j                  dz  z   }|S )Nr   ©Údtyper   r   ù              ð?)r   r   ÚasarrayÚmathÚinfr$   ÚlogÚpi)r   r   r   Úxpr   s        r   Úlog_a1zTestContinuedFraction.log_a1*   s„   € Ü˜QÓˆØ�Š6Ø—‘˜Q §¡¬D¯H©H¸A¿G¹G Ó!DÐ DÓEˆAð
 ˆð	 �!ŠVØ—‘�q“	ˆAð ˆð �B—F‘F˜1“I‘¤§¡¨"¡Ñ,ˆAØˆr   c                 óè   — t        |«      }|dk(  r>|j                  ||j                  t        j                  |j
                  ¬«       «      }|S ||z
  }|t        j                  d|z  dz
  «      z   }|S )Nr   r#   r   r   )r   r   r&   r'   r(   r$   r)   )r   r   r   r+   r   r    s         r   Úlog_b1zTestContinuedFraction.log_b14   sm   € Ü˜QÓˆØ�Š6Ø—‘˜Q §¡¬D¯H©H¸A¿G¹G Ó!DÐ DÓEˆAð ˆð �a‘%ˆCØ”d—h‘h˜q 1™u q™yÓ)Ñ)ˆAØˆr   c                 ó  — | j                   }| j                  }d}t        j                  t        |¬«      5  t        d|«       d d d «       t        j                  t        |¬«      5  t        |d«       d d d «       d}t        j                  t        |¬«      5  t        ||ddi¬«       d d d «       t        j                  t        |¬«      5  t        ||dt        j                  i¬«       d d d «       t        j                  t        |¬«      5  t        ||ddid	¬
«       d d d «       t        j                  t        |¬«      5  t        ||ddi¬«       d d d «       t        j                  t        |¬«      5  t        ||dt        j                  i¬«       d d d «       t        j                  t        |¬«      5  t        ||dt        j                  id	¬
«       d d d «       t        |j                  d«      d	d¬«      }t        ||fdddii|¤Ž t        ||fdddii|¤Ž d}t        j                  t        |¬«      5  t        ||d¬«       d d d «       d}t        j                  t        |¬«      5  t        ||d¬«       d d d «       y # 1 sw Y   �ŒHxY w# 1 sw Y   �Œ%xY w# 1 sw Y   �ŒüxY w# 1 sw Y   �ŒÇxY w# 1 sw Y   �ŒŸxY w# 1 sw Y   �ŒxxY w# 1 sw Y   �ŒCxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ¦xY w# 1 sw Y   y xY w)Nz`a` and `b` must be callable.)Úmatchr   z=`eps` and `tiny` must be \(or represent the logarithm of\)...Úepsiöÿÿÿ)Ú
tolerancesy      ð?      ð?T)r2   r)   Útinyr   y      ø?        )Úargsr)   Úmaxiterr2   z)`maxiter` must be a non-negative integer.éÿÿÿÿ©r5   z`log` must be boolean.r   )r)   )r   r!   ÚpytestÚraisesÚ
ValueErrorr   r   Únanr(   Údictr&   )r   r+   r   r!   ÚmessageÚkwargss         r   Útest_input_validationz+TestContinuedFraction.test_input_validation=   s�  € Ø�W‰WˆØ�W‰Wˆà1ˆÜ�]‰]œ:¨WÔ5ñ 	'Ü  2Ô&÷	'ä�]‰]œ:¨WÔ5ñ 	'Ü  AÔ&÷	'ð SˆÜ�]‰]œ:¨WÔ5ñ 	AÜ  B°E¸3°<Õ@÷	Aä�]‰]œ:¨WÔ5ñ 	DÜ  B°E¼2¿6¹6°?ÕC÷	Dä�]‰]œ:¨WÔ5ñ 	LÜ  B°E¸4°=ÀdÕK÷	Lä�]‰]œ:¨WÔ5ñ 	@Ü  B°F¸A°;Õ?÷	@ä�]‰]œ:¨WÔ5ñ 	EÜ  B°F¼B¿F¹FÐ3CÕD÷	Eä�]‰]œ:¨WÔ5ñ 	OÜ  B°F¼B¿F¹FÐ3CÈÕN÷	Oô ˜2Ÿ:™: fÓ-°4ÀÔCˆÜ˜B ÑF°°s¨|ÐF¸vÒFÜ˜B ÑG°¸¨}ÐGÀÒGà=ˆÜ�]‰]œ:¨WÔ5ñ 	4Ü  B°Õ3÷	4ð +ˆÜ�]‰]œ:¨WÔ5ñ 	/Ü  B¨AÕ.÷	/ð 	/÷9	'ñ 	'ú÷	'ñ 	'ú÷	Añ 	Aú÷	Dñ 	Dú÷	Lñ 	Lú÷	@ñ 	@ú÷	Eñ 	Eú÷	Oñ 	Oú÷	4ð 	4ú÷	/ð 	/úsw   ¶J	Á&JÂJ#ÃJ0ÄJ=ÅK
Å7KÆ9 K$È=K1É1K=Ê	JÊJ Ê#J-Ê0J:Ê=KË
KËK!Ë$K.Ë1K:Ë=Lr$   )Úfloat32Úfloat64Ú	complex64Ú
complex128Úshape)© )r   )é   )rF   r   c                 óæ  — t        t        |«      }t        ||«      }t        j                  j                  d«      }|j                  |«      j	                  |«      }|j                  d«      r&||j                  |«      j	                  |«      dz  z   n|}|j                  ||¬«      }t        | j                  | j                  |f¬«      }|j                  |«      }	t        |j                  |	«       y )Nì    8eÈE Úcr%   r#   ©r4   )Úgetattrr   ÚrandomÚdefault_rngÚastypeÚ
startswithr&   r   r   r!   Útanr   Úf)
r   rD   r$   r+   Únp_dtypeÚxp_dtypeÚrngr   ÚresÚrefs
             r   Ú
test_basicz TestContinuedFraction.test_basica   sÂ   € ô œ2˜uÓ%ˆÜ˜2˜uÓ%ˆÜ�i‰i×#Ñ#Ð$4Ó5ˆà�J‰J�uÓ×$Ñ$ XÓ.ˆØ9>×9IÑ9IÈ#Ô9NˆA�—
‘
˜5Ó!×(Ñ(¨Ó2°2Ñ5Ò5ÐTUˆØ�J‰J�q ˆJÓ)ˆä! $§'¡'¨4¯7©7¸!¸Ô>ˆØ�f‰f�Q‹iˆÜ˜Ÿ™˜sÕ#r   Útorchzpytorch/pytorch#136063r	   r@   rA   c                 óö  — t         j                  dk  r|dk(  rt        j                  d«       t	        t         |«      }t         j
                  j                  d«      }|j                  |«      j                  |«      }|j                  |«      }t        | j                  | j                  |dz   fd¬«      }|j                  |«      }t        |j                  |j                  |j                   «      «      |«       y )NÚ2r@   z*Scalar dtypes only respected after NEP 50.rH   y                T)r4   r)   )r   r   r8   ÚskiprK   rL   rM   rN   r&   r   r,   r.   rP   r   ÚexpÚrealrQ   )	r   rD   r$   r+   rR   rT   r   rU   rV   s	            r   Útest_logzTestContinuedFraction.test_logp   s¶   € ô �N‰N˜SÒ  u°	Ò'9Ü�K‰KÐDÔEÜœ2˜uÓ%ˆÜ�i‰i×#Ñ#Ð$4Ó5ˆØ�J‰J�uÓ×$Ñ$ XÓ.ˆØ�J‰J�q‹Mˆä! $§+¡+¨t¯{©{À!ÀbÁ&ÀÐPTÔUˆØ�f‰f�Q‹iˆÜ˜Ÿ™˜rŸw™w s§u¡u›~Ó.°Õ4r   c                 ó  — t         j                  j                  d«      }|j                  |j                  «       |j                  ¬«      }|j                  |«      }t        | j                  | j                  |fd¬«      }|j                  dk(  sJ ‚t        | j                  | j                  |fd¬«      }|j                  dk(  sJ ‚t        |j                  |j                  |z
  «      |j                  |j                  |z
  «      «       y )NrH   r#   rF   ©r4   r5   é   )r   rL   rM   r&   rA   rP   r   r   r!   Únitr   ÚabsrQ   )r   r+   rT   r   rV   Úres1Úres2s          r   Útest_maxiterz"TestContinuedFraction.test_maxiter   sÀ   € Ü�i‰i×#Ñ#Ð$4Ó5ˆØ�J‰J�s—z‘z“|¨2¯:©:ˆJÓ6ˆØ�f‰f�Q‹iˆä" 4§7¡7¨D¯G©G¸1¸$ÈÔJˆØ�x‰x˜1Š}Ðˆ}ä" 4§7¡7¨D¯G©G¸1¸$ÈÔJˆØ�x‰x˜1Š}Ðˆ}ä�r—v‘v˜dŸf™f s™lÓ+¨R¯V©V°D·F±F¸S±LÓ-AÕBr   c                 óº  — |j                  d|j                  ¬«      }|j                  |«      }t        | j                  | j
                  |fddi¬«      }t        | j                  | j
                  |f¬«      }t        |j                  |j                  «       t        |j                  |j                  |z
  «      |j                  |j                  |z
  «      «       y )Nç      ø?r#   r1   g�íµ ÷Æ°>)r4   r2   rJ   )
r&   rA   rP   r   r   r!   r   rb   rc   rQ   )r   r+   r   rV   rd   re   s         r   Útest_epszTestContinuedFraction.test_epsŒ   sœ   € Ø�J‰J�s "§*¡*ˆJÓ-ˆØ�f‰f�Q‹iˆÜ" 4§7¡7¨D¯G©G¸1¸$Ø/4°d¨mô=ˆä" 4§7¡7¨D¯G©G¸1¸$Ô?ˆÜ�t—x‘x §¡Ô*Ü�r—v‘v˜dŸf™f s™lÓ+¨R¯V©V°D·F±F¸S±LÓ-AÕBr   c                 óø   ‡‡— ˆfd„Šˆfd„Šd\  ‰_         ‰_         t        ‰‰|j                  d«      f¬«      }|j                   ‰j                   cxk(  r#‰j                   cxk(  r|j                  dz   k(  sJ ‚ J ‚y )Nc                 ó8   •— ‰xj                   dz  c_         | |z  S ©Nr   ©Únfev)r   r   Úas     €r   ro   z+TestContinuedFraction.test_feval.<locals>.a–   ó   ø€ Ø�FŠF�a‰K�FØ�q‘5ˆLr   c                 ó8   •— ‰xj                   dz  c_         | |z  S rl   rm   )r   r   Úbs     €r   rr   z+TestContinuedFraction.test_feval.<locals>.bš   rp   r   )r   r   ç      ð?rJ   r   )rn   r   r&   rb   )r   r+   rU   ro   rr   s      @@r   Ú
test_fevalz TestContinuedFraction.test_feval•   sg   ù€ ô	ô	ð ‰ˆŒ�”ä! ! Q¨b¯j©j¸«nÐ->Ô?ˆØ�x‰x˜1Ÿ6™6Ô: Q§V¡VÔ:¨s¯w©w¸©{Ò:Ð:Ñ:Ð:Ñ:r   c                 ó\  — |j                  ddt        j                  g|j                  ¬«      }t	        | j
                  | j                  |fd¬«      }t        |j                  |j                  g d¢«      «       t        |j                  |j                  g d¢|j                  ¬«      «       y )Nr   r   r#   é   r`   )TFF)r   éþÿÿÿéýÿÿÿ)r&   r   r;   rA   r   r   r!   r   ÚsuccessÚstatusÚint32)r   r+   r   rU   s       r   Útest_statusz!TestContinuedFraction.test_status£   ss   € Ø�J‰J˜˜2œrŸv™v�¨b¯j©jˆJÓ9ˆÜ! $§'¡'¨4¯7©7¸!¸ÀrÔJˆÜ˜Ÿ™ R§Z¡ZÒ0DÓ%EÔFÜ˜Ÿ
™
 B§J¡Jª{À"Ç(Á( JÓ$KÕLr   c                 óè   ‡— |j                  d«      Št        ˆfd„ˆfd„d¬«      }t        |j                  |j                  d«      «       |j                  |j
                  dz
  cxk(  rdk(  sJ ‚ J ‚y )Nr   c                 ó   •— ‰S ©NrE   ©r   r    s    €r   ú<lambda>z:TestContinuedFraction.test_special_cases.<locals>.<lambda>«   s   ø€ ¨C€ r   c                 ó   •— ‰S r   rE   r€   s    €r   r�   z:TestContinuedFraction.test_special_cases.<locals>.<lambda>«   s   ø€ ¸3€ r   r   r7   rs   )r&   r   r   rQ   rb   rn   )r   r+   rU   r    s      @r   Útest_special_casesz(TestContinuedFraction.test_special_cases©   sY   ø€ Ø�j‰j˜‹mˆÜ!£-³ÈÔJˆÜ˜Ÿ™˜rŸz™z¨"›~Ô.Ø�w‰w˜#Ÿ(™( Q™,Ô+¨!Ò+Ð+Ñ+Ð+Ñ+r   N)rh   )Ú__name__Ú
__module__Ú__qualname__r   rL   rM   rT   ÚuniformÚpr   r!   r,   r.   r?   r8   ÚmarkÚparametrizerW   Úskip_xp_backendsr^   rf   ri   rt   r|   rƒ   rE   r   r   r   r      s  „ ð �)‰)×
Ñ
Ð 3Ó
4€CØ�‰�A�r ˆÓ#€Aó	óòòò"/ðH ‡[�[×Ñ˜WÒ&WÓXØ‡[�[×Ñ˜WÒ&>Ó?ñ$ó @ó Yð$ð ‡[�[×!Ñ! 'Ð2JÐ!ÓKØ‡[�[×Ñ˜W y°)Ð&<Ó=Ø‡[�[×Ñ˜WÒ&>Ó?ñ
5ó @ó >ó Lð
5òCòCò;òMó,r   r   )r'   r8   Únumpyr   Úscipy._lib._array_apir   Úscipy._lib._array_api_no_0dr   r   r   Úscipy.stats._continued_fractionr   r‰   r‹   r   rE   r   r   ú<module>r�      s‹   ðÛ ã Û å 1ß XÑ XÝ ?ð ‡�×ÑÐ0Ð9WÐÓXØ‡�×Ñ˜kÐ2JÐÓKð ‡�×Ñ˜lÐ3TÐÓU÷\,ð \,ó Vó	 Ló Yñ\,r   