o
    Ö­jE`  ã                   @   s¤  d dl mZ d dlmZ d dlZd dlZd dlmZ d dlZ	d dl
mZmZ d dlZd dlmZ d dlm  mZ d dlmZmZmZ d dlmZmZ d dlmZmZmZmZ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+ d d
l,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ej4j5Z5ej4j6dd„ ƒZ7dd„ Z8dd„ Z9dd„ Z:dd„ Z;dd„ Z<dd„ Z=G dd„ dƒZ>G dd„ dƒZ?G dd„ dƒZ@dd „ ZAG d!d"„ d"ƒZBG d#d$„ d$ƒZCdS )%é    )ÚPoolN)ÚFraction)Úassert_equalÚassert_)Úraises)ÚgivenÚ
strategiesÚreproduce_failure)Úarray_api_compatibleÚskip_xp_invalid_arg)Úxp_assert_equalÚxp_assert_closeÚis_numpyÚxp_copyÚis_array_api_strict)Ú_aligned_zerosÚcheck_random_stateÚ
MapWrapperÚgetfullargspec_no_selfÚFullArgSpecÚrng_integersÚ_validate_intÚ_rename_parameterÚ_contains_nanÚ_rng_html_rewriteÚ
_lazywhere)ÚclusterÚinterpolateÚlinalgÚoptimizeÚsparseÚspatialÚstatsc                  C   sr   d} dd„ }dD ].}dD ])}dD ]$}t jt jfD ]}|ddd	|ffD ]}t| ƒD ]	}|||||ƒ q(q"qqqqd S )
Né
   c                 S   sä   t | |||fƒ}t| |||d�}|d u rt |¡j}t|jd d | dƒ t| dƒr3t|j| |ƒ nt|j| f|ƒ t|j|ƒ |dkrNt	|j
j|ƒ d S |dkrb|jdkr`t	|j
j|ƒ d S d S |d u rot	|j
j|ƒ d S tƒ ‚)N)ÚalignÚdatar   Ú__len__ÚCÚF)Úreprr   ÚnpÚdtypeÚ	alignmentr   Ú__array_interface__ÚhasattrÚshaper   ÚflagsÚc_contiguousÚsizeÚf_contiguousÚ
ValueError)r/   r+   Úorderr$   Úerr_msgÚx© r8   úX/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__util.pyÚcheck   s$   

þz"test__aligned_zeros.<locals>.check)	é   é   é   é   é   é   é    é@   N)r   r;   r=   é   )r'   r(   Nr;   r<   r=   )r*   Úuint8Úfloat64Úrange)Úniterr:   r$   Únr5   r+   r/   Újr8   r8   r9   Útest__aligned_zeros   s   ÿÿÿÿÿÿrJ   c                  C   sŠ   t dƒ} tt| ƒtjjƒ t | ƒ} tt| ƒtjjƒ t d ƒ} tt| ƒtjjƒ ttt dƒ tj tj 	¡ ¡}t |ƒ} tt| ƒtjjƒ d S )Nr;   Úa)
r   r   Útyper*   ÚrandomÚRandomStateÚassert_raisesr4   Ú	GeneratorÚPCG64)ÚrsiÚrgr8   r8   r9   Útest_check_random_state>   s   rT   c               
   C   sœ   t dƒ} t| jƒ}t|tdgd d dg d i ƒƒ t| jƒ}t|tddgd d d g d i ƒƒ G dd„ dƒ}|ƒ }t|jƒ}t|tg d¢d	d
ddgdd ii ƒƒ d S )Nr;   Úpool)r;   ÚfuncÚiterablec                   @   s   e Zd Zdddœdd„ZdS )z0test_getfullargspec_no_self.<locals>._rv_genericr<   r=   N©r2   c                _   s   d S ©Nr8   )ÚselfrK   ÚbÚcr2   ÚargsÚkwargsr8   r8   r9   Ú_rvsY   s   z5test_getfullargspec_no_self.<locals>._rv_generic._rvs©r<   r=   )Ú__name__Ú
__module__Ú__qualname__r_   r8   r8   r8   r9   Ú_rv_genericX   s    rd   )rK   r[   r\   r]   r^   r`   r2   )r   r   Ú__init__r   r   Ú__call__r_   )ÚpÚargspecrd   Úrv_objr8   r8   r9   Útest_getfullargspec_no_selfO   s   
ÿ
ÿ

ÿrj   c                  C   s–   t  d¡} t  | ¡}tdƒ}t|jtu ƒ t|jd u ƒ t|jdu ƒ t	|t j| ƒƒ}t
||ƒ ttƒ� tdƒ}W d   ƒ d S 1 sDw   Y  d S )Nç      $@r;   Fr   )r*   ÚarangeÚsinr   r   Ú_mapfuncÚmaprU   Ú	_own_poolÚlistr   rO   ÚRuntimeError)Úin_argÚout_argrg   Úoutr8   r8   r9   Útest_mapwrapper_serialb   s   




"ÿrv   c                  C   s@   t dƒ�} |  tjg d¢¡ W d   ƒ d S 1 sw   Y  d S )Nr<   )r;   r<   r=   r>   )r   ro   Úmathrm   )rg   r8   r8   r9   Ú	test_poolq   s   
"ÿrx   c                  C   s.  t  d¡} t  | ¡}tdƒ�+}|t j| ƒ}tt|ƒ|ƒ t|jdu ƒ tt|j	t
ƒƒ t|jd uƒ W d   ƒ n1 s<w   Y  ttƒ�}|t j| ƒ W d   ƒ n1 sVw   Y  t|jtu ƒ tdƒ�'}t|jƒ}t|jdu ƒ | ¡  | t j| ¡}tt|ƒ|ƒ W d   ƒ d S 1 s�w   Y  d S )Nrk   r<   TF)r*   rl   rm   r   r   rq   r   rp   Ú
isinstancerU   ÚPWLrn   rO   Ú	ExceptionrL   r4   r   ro   Úclose)rs   rt   rg   ru   ÚexcinfoÚqr8   r8   r9   Útest_mapwrapper_parallelv   s(   


ú

ÿ

"÷r   c                  C   sR  t j ¡ } t| ddddd�}t  |¡dksJ ‚t  |¡dks J ‚|jdks'J ‚t| dddd�}t  |¡dks8J ‚t  |¡dksAJ ‚|jdksHJ ‚t| dddd	d�}t  |¡d
ksZJ ‚t  |¡dkscJ ‚|jdksjJ ‚t| ddd	d�}t  |¡d
ks{J ‚t  |¡dks„J ‚|jdks‹J ‚zt j ¡ } W n
 tyœ   Y d S w t| ddddd�}t  |¡dks¯J ‚t  |¡dks¸J ‚|jdks¿J ‚t| dddd�}t  |¡dksÐJ ‚t  |¡dksÙJ ‚|jdksàJ ‚t| dddd	d�}t  |¡d
ksòJ ‚t  |¡dksûJ ‚|jdk�sJ ‚t| ddd	d�}t  |¡d
k�sJ ‚t  |¡dk�sJ ‚|jdk�s'J ‚d S )Nr<   é   éd   T)ÚlowÚhighr2   Úendpoint)r�   )r‚   r2   r„   r   Fr>   )	r*   rM   rN   r   ÚmaxÚminr/   Údefault_rngÚAttributeError)ÚrngÚarrr8   r8   r9   Útest_rng_integers–   sL   
ÿr‹   c                	   @   sn   e Zd Zej dde d¡e d¡e 	d¡g¡dd„ ƒZ
ej dde 	dg¡eddƒg¡dd„ ƒZd	d
„ ZdS )ÚTestValidateIntrH   r>   c                 C   s   t |dƒ}|dksJ ‚d S )NrH   r>   )r   ©rZ   rH   r8   r8   r9   Útest_validate_intÒ   s   
z!TestValidateInt.test_validate_intg      @r;   c                 C   s>   t jtdd�� t|dƒ W d   ƒ d S 1 sw   Y  d S )Nzn must be an integer©ÚmatchrH   )Úpytestr   Ú	TypeErrorr   r�   r8   r8   r9   Útest_validate_int_bad×   s   "ÿz%TestValidateInt.test_validate_int_badc                 C   s@   t jtdd�� tdddƒ W d   ƒ d S 1 sw   Y  d S )Nz$n must be an integer not less than 0r�   éÿÿÿÿrH   r   )r‘   r   r4   r   )rZ   r8   r8   r9   Útest_validate_int_below_minÜ   s   "þz+TestValidateInt.test_validate_int_below_minN)ra   rb   rc   r‘   ÚmarkÚparametrizer*   rD   Úint16ÚarrayrŽ   r   r“   r•   r8   r8   r8   r9   rŒ   Ð   s    &
 
rŒ   c                   @   sR   e Zd Zeddƒdd„ ƒZedddd�dd„ ƒZd	d
„ Zejdd„ ƒZ	dd„ Z
dS )ÚTestRenameParameterÚoldÚnewc                 C   ó   |S rY   r8   ©rZ   rœ   r8   r8   r9   Úold_keyword_still_acceptedç   ó   z.TestRenameParameter.old_keyword_still_acceptedz1.9.0)Údep_versionc                 C   r�   rY   r8   rž   r8   r8   r9   Úold_keyword_deprecatedì   r    z*TestRenameParameter.old_keyword_deprecatedc                 C   sP  |   d¡}| j dd�}| j dd�}||  kr!|  kr!dks$J ‚ J ‚t d¡}tjt|d�� | j dd� W d   ƒ n1 sAw   Y  t d¡}tjt|d�� | j ddd� W d   ƒ n1 sdw   Y  tjt|d�� | j ddd� W d   ƒ n1 s‚w   Y  tjt|d�� | j ddd� W d   ƒ d S 1 s¡w   Y  d S )	Nr#   ©rœ   ©r›   z.old_keyword_still_accepted() got an unexpectedr�   ©Ú
unexpectedz)old_keyword_still_accepted() got multiple©rœ   r›   )rŸ   ÚreÚescaper‘   r   r’   )rZ   Úres1Úres2Úres3Úmessager8   r8   r9   Útest_old_keyword_still_acceptedð   s$   
&
ÿ
ÿÿ"ÿz3TestRenameParameter.test_old_keyword_still_acceptedc                 C   s   ddl m} |ƒ S )Nr   )ÚLock)Ú	threadingr¯   )rZ   r¯   r8   r8   r9   Ú
kwarg_lock  s   zTestRenameParameter.kwarg_lockc              
   C   s^  d}|   d¡}| j dd�}|�% tjt|d�� | j dd�}W d   ƒ n1 s(w   Y  W d   ƒ n1 s7w   Y  ||  krL|  krLdksOJ ‚ J ‚t d¡}tjt|d�� | j dd� W d   ƒ n1 slw   Y  t d¡}tjt|d�� | j ddd� W d   ƒ n1 s�w   Y  |�= tjt|d��& tjt|d�� | j ddd� W d   ƒ n1 s¸w   Y  W d   ƒ n1 sÇw   Y  W d   ƒ n1 sÖw   Y  |�G tjt|d��& tjt|d�� | j ddd	� W d   ƒ n1 sÿw   Y  W d   ƒ n1 �sw   Y  W d   ƒ d S W d   ƒ d S 1 �s(w   Y  d S )
Nz+Use of keyword argument `old` is deprecatedr#   r£   r�   r¤   z*old_keyword_deprecated() got an unexpectedr¥   z%old_keyword_deprecated() got multipler§   )r¢   r‘   ÚwarnsÚDeprecationWarningr¨   r©   r   r’   )rZ   r±   Údep_msgrª   r«   r¬   r­   r8   r8   r9   Útest_old_keyword_deprecated
  sN   
ÿ€ÿ&
ÿ
ÿÿý€ €ÿÿþ€  ÿ$ÿz/TestRenameParameter.test_old_keyword_deprecatedN)ra   rb   rc   r   rŸ   r¢   r®   r‘   Úfixturer±   rµ   r8   r8   r8   r9   rš   â   s    


rš   c                   @   s^   e Zd Zdd„ Zdd„ Zedd„ ƒZeddd	�ej	 
d
¡eej	 dg d¢¡dd„ ƒƒƒƒZdS )ÚTestContainsNaNTestc                 C   sÞ   t  dddt jg¡}t|dd�\}}|sJ ‚|dksJ ‚t|dd�\}}|s(J ‚|dks.J ‚d}tjt|d�� t|d	d� W d   ƒ n1 sHw   Y  d
}tjt|d�� t|dd� W d   ƒ d S 1 shw   Y  d S )Nr;   r<   r=   Ú	propagate©Ú
nan_policyÚomitzThe input contains nan valuesr�   Úraiseznan_policy must be one ofÚnan)r*   r™   r½   r   r‘   r   r4   )rZ   r%   Úcontains_nanrº   Úmsgr8   r8   r9   Útest_policy-  s   ÿ"ÿzTestContainsNaNTest.test_policyc                 C   sº   t  g d¢¡}t|ƒd rJ ‚t  dddt jg¡}t|ƒd s!J ‚t  t jddt jg¡}t|ƒd s4J ‚t  ddgddgg¡}t|ƒd rGJ ‚t  ddgdt jgg¡}t|ƒd s[J ‚d S )N)r;   r<   r=   r   r;   r<   r=   r>   )r*   r™   r   r½   )rZ   Údata1Údata2Údata3Údata4Údata5r8   r8   r9   Útest_contains_nan@  s   z%TestContainsNaNTest.test_contains_nanc                 C   s¤   t  dddt jg¡}t|ƒd rJ ‚t jdddt jgdd�}t|ƒd s&J ‚t  ddgdt jgg¡}t|ƒd r:J ‚t jddgdt jggdd�}t|ƒd sPJ ‚d S )	Nr;   r<   Ú3r   Úobject)r+   Ú1r=   )r*   r™   r½   r   )rZ   rÁ   rÂ   rÃ   rÄ   r8   r8   r9   Útest_contains_nan_with_stringsP  s   z2TestContainsNaNTest.test_contains_nan_with_stringsú	jax.numpyú)JAX arrays do not support item assignment©ÚreasonÚskip_xp_backendsrº   )r¸   r»   r¼   c           
      C   s0  t j d¡}|jdd�}| |¡}t||d�}t j|d< t||d�\}}|r(J ‚||ks.J ‚|dkrTd}	tjt	|	d	�� t||d� W d   ƒ d S 1 sMw   Y  d S |d
kr~t
|ƒs~d}	tjt	|	d	�� t||d� W d   ƒ d S 1 sww   Y  d S |dkr”t||d�\}}|sŽJ ‚||ks–J ‚d S d S )Nl   }šÜ? )r<   r=   r>   rX   )Úxp)r;   r<   r;   r¹   r¼   zThe input contains...r�   r»   z%`nan_policy='omit' is incompatible...r¸   )r*   rM   r‡   Úasarrayr   r½   r   r‘   r   r4   r   )
rZ   rÐ   rº   r‰   Úx0r7   Úx_nanr¾   Únan_policy_outr­   r8   r8   r9   Útest_array_api^  s4   

"ÿ"ÿ
ÿüz"TestContainsNaNTest.test_array_apiN)ra   rb   rc   rÀ   rÆ   r   rÊ   rÏ   r‘   r–   Úusefixturesr
   r—   rÕ   r8   r8   r8   r9   r·   +  s    
ÿ
r·   c                  C   s*   dd„ } t | ƒƒ }g d¢}||ksJ ‚d S )Nc                  S   s   g d¢} | S )N)znp.random.default_rng(8989843)únp.random.default_rng(seed)z8np.random.default_rng(0x9a71b21474694f919882289dc1559ca)ú bob r8   )Úlinesr8   r8   r9   Úmock_str~  s   z(test__rng_html_rewrite.<locals>.mock_str)únp.random.default_rng()r×   rÛ   rØ   )r   )rÚ   ÚresÚrefr8   r8   r9   Útest__rng_html_rewrite}  s   
	rÞ   c                    @   s²  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zej  !d9¡ej j"ej  #d:ed;fed;fed<fed;fed;fe	d;fe
d;fed;fed<fed<fed<fed<fed<fed<fed<fed<fed<fed<fed<fed<fed;fed;fed;fed;fed;fed;fg¡d=d>„ ƒƒƒZ$d?S )@ÚTestTransitionToRNGc                 K   ó*   t j d¡}tjj|jdd�dfi |¤ŽS ©Nì   2F†a¿j  )é   r=   rX   r=   ©r*   rM   r‡   r   ÚvqÚkmeans2©rZ   r^   r‰   r8   r8   r9   Úkmeans“  ó   zTestTransitionToRNG.kmeansc                 K   rà   rá   rä   rç   r8   r8   r9   ræ   —  ré   zTestTransitionToRNG.kmeans2c                 K   s8   t j d¡}| d¡\}}}tj||fi |¤Ž}||ƒS )Nrâ   )r=   r#   )r*   rM   r‡   r   ÚBarycentricInterpolator)rZ   r^   r‰   Úx1Úx2Úy1Úfr8   r8   r9   Úbarycentric›  s   zTestTransitionToRNG.barycentricc                 K   s&   t j d¡}tj| d¡dfi |¤ŽS )Nrâ   ©r#   r#   r=   )r*   rM   r‡   r   Úclarkson_woodruff_transformrç   r8   r8   r9   rñ   ¡  s   z/TestTransitionToRNG.clarkson_woodruff_transformc                 K   s*   t j d¡}tjtj| d¡fi |¤ŽjS )Nrâ   r=   )r*   rM   r‡   r   ÚbasinhoppingÚrosenr7   rç   r8   r8   r9   rò   ¥  ré   z TestTransitionToRNG.basinhoppingc                 K   sD   t j d¡}t | d¡ d | d¡d ¡}|tj|fi |¤ŽjS )Nrâ   r=   r#   )r*   rM   r‡   r   ÚBoundsró   r7   )rZ   Úfunr^   r‰   Úboundsr8   r8   r9   Úopt©  s   "zTestTransitionToRNG.optc                 K   ó   | j tjfi |¤ŽS rY   )r÷   r   Údifferential_evolution©rZ   r^   r8   r8   r9   rù   ®  ó   z*TestTransitionToRNG.differential_evolutionc                 K   rø   rY   )r÷   r   Údual_annealingrú   r8   r8   r9   rü   ±  rû   z"TestTransitionToRNG.dual_annealingc                 K   s4   t j d¡}| d¡}tjtjtj|fddi|¤ŽS )Nrâ   r=   Ú	directionrM   )r*   rM   r‡   r   Ú
check_gradró   Ú	rosen_der)rZ   r^   r‰   r7   r8   r8   r9   rþ   ´  s   
ÿÿzTestTransitionToRNG.check_gradc                 K   ó   t jdddi|¤Ž ¡ S )Nrð   Údensityç      ð?)rð   )r    Úrandom_arrayÚtoarrayrú   r8   r8   r9   r  º  ó   z TestTransitionToRNG.random_arrayc                 K   r   ©Nr#   r  r  rð   )r    rM   r  rú   r8   r8   r9   rM   ½  r  zTestTransitionToRNG.randomc                 K   r   r  )r    Úrandr  rú   r8   r8   r9   r  À  r  zTestTransitionToRNG.randc                 K   s*   t j d¡}| d¡}tjj|fi |¤ŽS )Nrâ   rð   )r*   rM   r‡   r    r   Úsvds)rZ   r^   r‰   ÚAr8   r8   r9   r  Ã  s   
zTestTransitionToRNG.svdsc                 K   s   t jjjdi |¤Ž ¡ S )Nr=   )r=   )r!   Ú	transformÚRotationrM   Ú	as_matrixrú   r8   r8   r9   Úrandom_rotationÈ  r  z#TestTransitionToRNG.random_rotationc                 K   s.   t j d¡}| d¡}tjtj|fi |¤ŽjS ©Nrâ   r�   )r*   rM   r‡   r"   Úgoodness_of_fitÚlaplaceÚpvalue©rZ   r^   r‰   r%   r8   r8   r9   r  Ë  s   
z#TestTransitionToRNG.goodness_of_fitc                 K   s8   t j d¡}t| d¡ƒ}dd„ }tj||fi |¤ŽjS )Nrâ   ©r<   r�   c                 S   s   t j| |d�t j||d� S )N)Úaxis)r*   Úmean)r7   Úyr  r8   r8   r9   Ú	statisticÓ  s    z7TestTransitionToRNG.permutation_test.<locals>.statistic)r*   rM   r‡   Útupler"   Úpermutation_testr  )rZ   r^   r‰   r%   r  r8   r8   r9   r  Ð  s   z$TestTransitionToRNG.permutation_testc                 K   s0   t j d¡}| d¡f}tj|t jfi |¤ŽjS r  )r*   rM   r‡   r"   Ú	bootstrapr  Úconfidence_intervalr  r8   r8   r9   r  Ö  s   zTestTransitionToRNG.bootstrapc                 K   s6   t j d¡}| d¡\}}}tj||fd|i|¤ŽjS )Nrâ   )r=   r�   Úcontrol)r*   rM   r‡   r"   Údunnettr  )rZ   r^   r‰   r7   r  r  r8   r8   r9   r  Û  s   zTestTransitionToRNG.dunnettc                 K   sl   dd„ }t jtj dtj d�t jtj dtj d�t jtj dtj d�g}t jd|d|dœ|¤Ž}|jS )Nc                 S   sB   t  | d ¡dt  | d ¡d   d| d d  t  | d ¡  S )Nr   é   r;   r<   gš™™™™™¹?r>   )r*   rm   )r7   r8   r8   r9   Ú
f_ishigamiá  s   " ÿz5TestTransitionToRNG.sobol_indices.<locals>.f_ishigamir<   )ÚlocÚscalei   )rV   rH   Údistsr8   )r"   Úuniformr*   ÚpiÚsobol_indicesÚfirst_order)rZ   r^   r  r"  rÜ   r8   r8   r9   r%  à  s   þz!TestTransitionToRNG.sobol_indicesc                 K   s   |dddi|¤Ž}|  d¡S )NÚdr;   r>   r8   )rM   )rZ   Úenginer^   Úqrngr8   r8   r9   Ú
qmc_engineé  s   
zTestTransitionToRNG.qmc_enginec                 K   ó   | j tjjfi |¤ŽS rY   )r*  r"   ÚqmcÚHaltonrú   r8   r8   r9   Úhaltoní  ó   zTestTransitionToRNG.haltonc                 K   r+  rY   )r*  r"   r,  ÚSobolrú   r8   r8   r9   Úsobolð  r/  zTestTransitionToRNG.sobolc                 K   r+  rY   )r*  r"   r,  ÚLatinHypercuberú   r8   r8   r9   Úlatin_hypercubeó  r/  z#TestTransitionToRNG.latin_hypercubec                 K   r+  rY   )r*  r"   r,  ÚPoissonDiskrú   r8   r8   r9   Úpoisson_diskö  r/  z TestTransitionToRNG.poisson_diskc                 K   s    t jjdgfi |¤Ž}| d¡S )Nr   r>   )r"   r,  ÚMultivariateNormalQMCrM   ©rZ   r^   ÚXr8   r8   r9   Úmultivariate_normal_qmcù  s   
z+TestTransitionToRNG.multivariate_normal_qmcc                 K   s$   t jjddgdfi |¤Ž}| d¡S )Ng      à?r>   )r"   r,  ÚMultinomialQMCrM   r7  r8   r8   r9   Úmultinomial_qmcý  s   
z#TestTransitionToRNG.multinomial_qmcc                 K   s<   t j d¡}t| d¡ƒ}tjdi |¤Ž}tj|d|iŽjS )Nrâ   r  Úmethodr8   )r*   rM   r‡   r  r"   ÚPermutationMethodÚpearsonrr  )rZ   r^   r‰   r%   r<  r8   r8   r9   Úpermutation_method  s   z&TestTransitionToRNG.permutation_methodc                 K   s@   t j d¡}t| d¡ƒ}tj|Ž }tjdi |¤Ž}|j|d�S )Nrâ   r  )r<  r8   )r*   rM   r‡   r  r"   r>  ÚBootstrapMethodr  )rZ   r^   r‰   r%   rÜ   r<  r8   r8   r9   Úbootstrap_method  s
   
z$TestTransitionToRNG.bootstrap_methodr#   zmethod, arg_nameÚseedÚrandom_statec                 C   s~  t j d ¡ d}t j |¡}d}tjt|d�� || fi d|||i¤Ž W d   ƒ n1 s.w   Y  t j |¡}|| |d�}|| |d�}t||ƒ |jdv r`|| fi ||i¤Ž}t||ƒ d S t j 	|¡}|| fi ||i¤Ž}|| fi ||i¤Ž}|jdv r£|| fi |t j 	|¡i¤Ž}	t|	|ƒ || fi ||i¤Ž}
t|
|ƒ d S t j |¡ || fi |d i¤Ž}t||ƒ t||ƒ d S )Nl   p _ z3got multiple values for argument now known as `rng`r�   r‰   )r‰   >   r  r%  >   r1  r.  r5  r3  r;  r9  )
r*   rM   rB  r‡   r‘   r   r’   r   ra   rN   )rZ   r<  Úarg_namerB  r‰   r­   rª   r«   r¬   Úres1bÚres2br8   r8   r9   Útest_rng_deterministic  s8   ÿ






z*TestTransitionToRNG.test_rng_deterministicN)%ra   rb   rc   rè   ræ   rï   rñ   rò   r÷   rù   rü   rþ   r  rM   r  r  r  r  r  r  r  r%  r*  r.  r1  r3  r5  r9  r;  r?  rA  r‘   r–   Ú	fail_slowÚslowr—   rG  r8   r8   r8   r9   rß   ’  sx    	
ærß   c                   @   s¦   e Zd Zejddd�Zejddd�Ze ej	ej
f¡Zejddd�Ze ¡ Zej d¡ej d¡ed	d
d�ej d¡eeeeeeed�ejjdd„ ƒƒƒƒƒƒƒZdS )ÚTestLazywherer;   r=   )Ú	min_valueÚ	max_valuei Êš;l   ÿc(	 r   r#   zignore::RuntimeWarningrË   rÌ   rÍ   rÏ   )Ún_arraysÚrng_seedr+   rg   r%   c              	      sŽ  t j|d dd�}ˆ  |¡\}}	|^}
}ddi}ˆ ˆ  t jˆtƒ |d�¡¡}t|ƒ}‡ ‡‡fdd„|D ƒ}d	d
„ }dd„ }tj 	|¡}ˆ |j|
d�|k¡}t
||||ƒ}t
||||d�}tˆƒsit
||||ƒ}ˆtkrztj||g|¢R Ž ^}}}ˆ |||Ž |¡}ˆ |||Ž ||Ž ¡}tˆƒs›ˆ |||Ž |¡}ˆtkr®| |	¡}| |	¡}| |	¡}t||dd� t||ƒ tˆƒsÅt||ƒ d S d S )Nr;   r   )Ú
num_shapesÚmin_sideÚallow_subnormalF)r+   r/   Úelementsc              
      s&   g | ]}ˆ  ˆ  tjˆ|d �¡¡‘qS ))r+   r/   )rÑ   ÚdrawÚnpstÚarrays)Ú.0r/   ©r%   r+   rÐ   r8   r9   Ú
<listcomp>l  s    ÿz,TestLazywhere.test_basic.<locals>.<listcomp>c                  W   s   t dd„ | D ƒƒS )Nc                 s   ó   � | ]}|V  qd S rY   r8   ©rV  Úargr8   r8   r9   Ú	<genexpr>p  ó   € z6TestLazywhere.test_basic.<locals>.f.<locals>.<genexpr>©Úsum©r]   r8   r8   r9   rî   o  s   z#TestLazywhere.test_basic.<locals>.fc                  W   s   t dd„ | D ƒƒd S )Nc                 s   rY  rY   r8   rZ  r8   r8   r9   r\  s  r]  z7TestLazywhere.test_basic.<locals>.f2.<locals>.<genexpr>r<   r^  r`  r8   r8   r9   Úf2r  r/  z$TestLazywhere.test_basic.<locals>.f2rX   )ra  g¼‰Ø—²Ò¬<)Úrtol)rT  Úmutually_broadcastable_shapesrS  rÑ   rU  r  Úfloatr*   rM   r‡   r   r   Ú
atleast_1dÚwhereÚreshaper   r   )rZ   rM  rN  r+   rg   r%   rÐ   ÚmbsÚinput_shapesÚresult_shapeÚ
cond_shapeÚshapesrR  Ú	fillvalueÚfloat_fillvaluerU  rî   ra  r‰   Úcondrª   r«   r¬   Úref1Úref2Úref3r8   rW  r9   Ú
test_basic[  sH   
	ÿ
ÿÿ



ÿzTestLazywhere.test_basicN)ra   rb   rc   r   ÚintegersrM  rN  Úsampled_fromr*   Úfloat32rE   r+   Úfloatsrg   r%   r‘   r–   rH  ÚfilterwarningsrÏ   rÖ   r
   r   Úthread_unsafers  r8   r8   r8   r9   rJ  T  s     

ÿ
rJ  )DÚmultiprocessingr   Úmultiprocessing.poolrz   r¨   rw   Ú	fractionsr   Únumpyr*   Únumpy.testingr   r   r‘   r   rO   Úhypothesis.extra.numpyÚextrarT  Ú
hypothesisr   r   r	   Úscipy.conftestr
   r   Úscipy._lib._array_apir   r   r   r   r   Úscipy._lib._utilr   r   r   r   r   r   r   r   r   r   r   Úscipyr   r   r   r   r    r!   r"   r–   rÏ   rI  rJ   rT   rj   rv   rx   r   r‹   rŒ   rš   r·   rÞ   rß   rJ  r8   r8   r8   r9   Ú<module>   s>    4$
# :IR C