o
    h6                     @   s0  d dl mZ d dlmZ d dl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mZ d dlZd dlmZmZmZmZmZmZmZmZmZmZ dd Zd	d
 Zdd Z dd Z!dd Z"dd Z#ej$%dd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" Z,dS )#    )PoolN)Fraction)assert_equalassert_)raisesdeprecated_call)
_aligned_zeroscheck_random_state
MapWrappergetfullargspec_no_selfFullArgSpecrng_integers_validate_int_rename_parameter_contains_nan_rng_html_rewritec                  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 r'   V/var/www/html/scripts/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   nr$   r   r   jr'   r'   r(   test__aligned_zeros   s   r9   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tjdrKtj	tj
 }t |} tt| tjj	 d S d S )Nr*   a	Generator)r	   r   typer   randomRandomStateassert_raisesr#   r   r;   PCG64)rsirgr'   r'   r(   test_check_random_state7   s   rC   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)r!   c                _   s   d S Nr'   )selfr:   bcr!   argskwargsr'   r'   r(   _rvsT   s   z5test_getfullargspec_no_self.<locals>._rv_generic._rvsr+   r,   )__name__
__module____qualname__rM   r'   r'   r'   r(   _rv_genericS   s    rR   )r:   rI   rJ   rK   rL   rN   r!   )r
   r   __init__r   r   __call__rM   )pargspecrR   rv_objr'   r'   r(   test_getfullargspec_no_selfJ   s   



rX   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maprD   	_own_poollistr   r?   RuntimeError)in_argout_argrU   outr'   r'   r(   test_mapwrapper_serial]   s   




"rd   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   r]   mathr[   )rU   r'   r'   r(   	test_pooll   s   
"rf   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 sw   Y  d S )NrY   r+   TF)r   rZ   r[   r
   r   r_   r   r^   
isinstancerD   PWLr\   r?   	Exceptionr<   r#   r   r]   close)ra   rb   rU   rc   excinfoqr'   r'   r(   test_mapwrapper_parallelq   s(   






"rm   key)ifftdiagarccosrandnrandarrayc           	      C   s   | dv r	ddg}n	| dkrt }nd}tt| }d|  }t|d}|| W d   n1 s/w   Y  d	d
 |jD }dd
 |D }d|v sIJ | dv rQtj}n
| dkrYtj}nt}t|| }|| ||usjJ t|t	rvt|t	sxJ dS dS )z9Test that 'from numpy import *' functions are deprecated.)ro   rp   rq   g      ?g        finfor+   z scipy\.%s is deprecated.*2\.0\.0matchNc                 S   s   g | ]}t j|jd  qS )r   )ospathsplitextfilename).0dr'   r'   r(   
<listcomp>   s    z*test_numpy_deprecation.<locals>.<listcomp>c                 S   s   g | ]}t j|qS r'   )rx   ry   basename)r|   fnamer'   r'   r(   r~      s    
test__util)rs   rr   ro   )
floatgetattrscipyr   r_   r   r=   fftrg   r<   )	rn   argrE   rw   depfnames	basenamesrootfunc_npr'   r'   r(   test_numpy_deprecation   s2   




r   c                  C   s   t  F tjg dtjd} | jtjksJ | jtjksJ ttj} | jttjjks0J tjtjks8J t	tjtjsAJ W d    d S 1 sLw   Y  d S )Nr*   r+   r,   r   )
r   r   rt   r4   r   r   ru   float32eps
issubclass)r&   r'   r'   r(   $test_numpy_deprecation_functionality   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sJ |jdksJ zt j } W n
 ty   Y d S w t| ddddd}t |dksJ t |dksJ |jdksJ t| dddd}t |dksJ t |dksJ |jdksJ t| dddd	d}t |d
ksJ t |dksJ |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highr!   endpoint)r   )r   r!   r   r   Fr-   )	r   r=   r>   r   maxminr   default_rngAttributeError)rngarrr'   r'   r(   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 )TestValidateIntr7   r-   c                 C   s   t |d}|dksJ d S )Nr7   r-   )r   rH   r7   r'   r'   r(   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 integerrv   r7   )pytestr   	TypeErrorr   r   r'   r'   r(   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 0rv   r7   r   )r   r   r#   r   )rH   r'   r'   r(   test_validate_int_below_min  s   "z+TestValidateInt.test_validate_int_below_minN)rO   rP   rQ   r   markparametrizer   r3   int16rt   r   r   r   r   r'   r'   r'   r(   r      s    &
 
r   c                   @   sD   e Zd Zedddd Zedddddd Zd	d
 Zdd ZdS )TestRenameParameteroldnewc                 C      |S rG   r'   rH   r   r'   r'   r(   old_keyword_still_accepted     z.TestRenameParameter.old_keyword_still_acceptedz1.9.0)dep_versionc                 C   r   rG   r'   r   r'   r'   r(   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 sw   Y  tjt|d | j ddd W d    d S 1 sw   Y  d S )	Nr   r   r   z.old_keyword_still_accepted() got an unexpectedrv   
unexpectedz)old_keyword_still_accepted() got multipler   r   )r   reescaper   r   r   )rH   res1res2res3messager'   r'   r(   test_old_keyword_still_accepted  s$   
&

"z3TestRenameParameter.test_old_keyword_still_acceptedc              	   C   s  d}|  d}| j dd}tjt|d | j dd}W d    n1 s%w   Y  ||  kr:|  kr:dks=J  J td}tjt|d | j dd W d    n1 sZw   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 sw   Y  W d    n1 sw   Y  tjt|d/ tjt|d | j ddd	 W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )
Nz+Use of keyword argument `old` is deprecatedr   r   rv   r   z*old_keyword_deprecated() got an unexpectedr   z%old_keyword_deprecated() got multipler   )r   r   warnsDeprecationWarningr   r   r   r   )rH   dep_msgr   r   r   r   r'   r'   r(   test_old_keyword_deprecated0  s6   
&

 Pz/TestRenameParameter.test_old_keyword_deprecatedN)rO   rP   rQ   r   r   r   r   r   r'   r'   r'   r(   r     s    

r   c                   @   s$   e Zd Zdd Zdd Z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 valuesrv   raiseznan_policy must be one ofnan)r   rt   r   r   r   r   r#   )rH   r   contains_nanr   msgr'   r'   r(   test_policyN  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dt jg}t|d rFJ t jdddt jgdd}t|d sZJ d S )	Nr   r   r*   r+   r,   3objectr   r   rt   r   r   )rH   data1data2data3data4data5r'   r'   r(   test_contains_nan_1da  s   z(TestContainsNaNTest.test_contains_nan_1dc                 C   s   t ddgddgg}t|d rJ t ddgdt jgg}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 sQJ d S )	Nr*   r+   r,   r-   r   1r   r   r   )rH   r   r   r   r   r'   r'   r(   test_contains_nan_2dq  s   z(TestContainsNaNTest.test_contains_nan_2dN)rO   rP   rQ   r   r   r   r'   r'   r'   r(   r   L  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 r'   )linesr'   r'   r(   mock_str  s   z(test__rng_html_rewrite.<locals>.mock_str)np.random.default_rng()r   r   r   )r   )r   resrefr'   r'   r(   test__rng_html_rewrite  s   
	r   )-multiprocessingr   multiprocessing.poolrh   rx   r   re   	fractionsr   numpyr   numpy.testingr   r   r   r   r?   r   r   scipy._lib._utilr   r	   r
   r   r   r   r   r   r   r   r9   rC   rX   rd   rf   rm   r   r   r   r   r   r   r   r   r   r'   r'   r'   r(   <module>   s8    0#!
:?3