
    ^MhE`                        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c 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j4        j5        Z5ej4        j6        d             Z7d Z8d Z9d Z:d Z;d Z<d Z= G d d          Z> G d d          Z? G d d          Z@d ZA G d d          ZB G 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                      d} d }dD ]R}dD ]M}dD ]H}t           j        t           j        fD ]-}|ddd|ffD ]"}t          |           D ]} |||||           #.INSd S )	N
   c                 l   t          | |||f          }t          | |||          }|t          j        |          j        }t          |j        d         d         |z  d           t          | d          rt          |j        | |           nt          |j        | f|           t          |j        |           |dk    rt          |j
        j        |           d S |dk    r)|j        dk    rt          |j
        j        |           d S d S |t          |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)r2   r.   orderr'   err_msgxs         [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/_lib/tests/test__util.pycheckz"test__aligned_zeros.<locals>.check   s<   ueU3445%e<<<=HUOO-EQ*6215=qAAA5)$$ 	5%11115(G444QWe$$$C<<AG('22222c\\vzz,g66666 z ]AG('22222,,    )	                      @   N)r   r>   r@      )r*   r+   Nr>   r?   r@   )r-   uint8float64range)niterr<   r'   nr8   r.   r2   js           r;   test__aligned_zerosrM      s    E  . 3 > > 	> 	>A) > > h
3 > >E"#aAq\!2 > >!&u > >A!E%u====>>>>	>> >r=   c                     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_raisesr7   	GeneratorPCG64)rsirgs     r;   test_check_random_staterX   >   s    
 Q

CcBI1222
S
!
!CcBI1222
T
"
"CcBI1222*0#666			RY__..	/	/B
R
 
 CcBI/00000r=   c                     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          } |            }t          |j                  }t          |t	          g dd	d
ddgdd ii                      d S )Nr>   pool)r>   funciterablec                       e Zd ZddddZdS )0test_getfullargspec_no_self.<locals>._rv_genericr?   r@   Nr5   c                    d S N )selfrO   bcr5   argskwargss          r;   _rvsz5test_getfullargspec_no_self.<locals>._rv_generic._rvsY   s    4r=   r?   r@   )__name__
__module____qualname__rh   rb   r=   r;   _rv_genericr^   X   s4        	 	 	 	 	 	 	 	r=   rm   )rO   rd   re   rf   rg   ri   r5   )r   r   __init__r   r   __call__rh   )pargspecrm   rv_objs       r;   test_getfullargspec_no_selfrs   O   s   1A$QZ00G+vhdD"&*B0 0 1 1 1$QZ00G+vz&:D$&($4 4 5 5 5        []]F$V[11G+ooovx&,vhL L M M M M Mr=   c                     t          j        d          } t          j        |           }t          d          }t	          |j        t          u            t	          |j        d u            t	          |j        du            t           |t           j        |                     }t          ||           t          t                    5  t          d          }d d d            d S # 1 swxY w Y   d S )N      $@r>   Fr   )r-   arangesinr   r   _mapfuncmaprZ   	_own_poollistr   rS   RuntimeError)in_argout_argrp   outs       r;   test_mapwrapper_serialr   b   s   Ys^^FfVnnG1AAJ#AFdNAK5 !!!
qq  
!
!Cg	|	$	$  qMM                 s   C##C'*C'c                      t          d          5 } |                     t          j        g d           d d d            d S # 1 swxY w Y   d S )Nr?   )r>   r?   r@   rA   )r   ry   mathrw   )rp   s    r;   	test_poolr   q   s    	a &A	dh%%%& & & & & & & & & & & & & & & & & &s   #A  AAc                     t          j        d          } t          j        |           }t          d          5 } |t           j        |           }t	          t          |          |           t          |j        du            t          t          |j	        t                               t          |j        d u           d d d            n# 1 swxY w Y   t          t                    5 } |t           j        |            d d d            n# 1 swxY w Y   t          |j        t          u            t!          d          5 }t          |j                  }t          |j        du            |                                 |                    t           j        |           }t	          t          |          |           d d d            d S # 1 swxY w Y   d S )Nru   r?   TF)r-   rv   rw   r   r   r{   r   rz   
isinstancerZ   PWLrx   rS   	ExceptionrP   r7   r   ry   close)r}   r~   rp   r   excinfoqs         r;   test_mapwrapper_parallelr   v   sA   Ys^^FfVnnG	A (!aT#YY(((t#$$$
163''(((
$&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 
y	!	! W	"&&               GLJ&''' 
a 	)Aquu$%%%				 eeBFF##T#YY(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s7   BCCC*DDDA<GGGc                     t           j                                        } t          | dddd          }t          j        |          dk    sJ t          j        |          dk    sJ |j        dk    sJ t          | ddd          }t          j        |          dk    sJ t          j        |          dk    sJ |j        dk    sJ t          | dddd	          }t          j        |          d
k    sJ t          j        |          dk    sJ |j        dk    sJ t          | ddd	          }t          j        |          d
k    sJ t          j        |          dk    sJ |j        dk    sJ 	 t           j                                        } n# t          $ r Y d S w xY wt          | dddd          }t          j        |          dk    sJ t          j        |          dk    sJ |j        dk    sJ t          | ddd          }t          j        |          dk    sJ t          j        |          dk    sJ |j        dk    sJ t          | dddd	          }t          j        |          d
k    sJ t          j        |          dk    sJ |j        dk    sJ t          | ddd	          }t          j        |          d
k    sJ t          j        |          dk    sJ |j        dk    sJ d S )Nr?      d   T)lowhighr5   endpoint)r   )r   r5   r   r   FrA   )	r-   rQ   rR   r   maxminr2   default_rngAttributeError)rngarrs     r;   test_rng_integersr      sG   
)


!
!C sd
C
C
CC6#;;!6#;;!9 sd
;
;
;C6#;;!6#;;!9 se
D
D
DC6#;;!6#;;!9 se
<
<
<C6#;;!6#;;!9i##%%    sd
C
C
CC6#;;!6#;;!9 sd
;
;
;C6#;;!6#;;!9 se
D
D
DC6#;;!6#;;!9 se
<
<
<C6#;;!6#;;!9s   2F 
FFc            	       8   e Zd Zej                            dd ej        d           ej        d           ej	        d          g          d             Z
ej                            dd ej	        dg           edd          g          d             Zd ZdS )	TestValidateIntrK   rA   c                 6    t          |d          }|dk    sJ d S )NrK   rA   )r   rc   rK   s     r;   test_validate_intz!TestValidateInt.test_validate_int   s"    !S!!Avvvvvvr=   g      @r>   c                     t          j        t          d          5  t          |d           d d d            d S # 1 swxY w Y   d S )Nzn must be an integermatchrK   )pytestr   	TypeErrorr   r   s     r;   test_validate_int_badz%TestValidateInt.test_validate_int_bad   s    ]9,BCCC 	" 	"!S!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   :>>c                     t          j        t          d          5  t          ddd           d d d            d S # 1 swxY w Y   d S )Nz$n must be an integer not less than 0r   rK   r   )r   r   r7   r   )rc   s    r;   test_validate_int_below_minz+TestValidateInt.test_validate_int_below_min   s    ]: .; < < < 	& 	&"c1%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   ;??N)rj   rk   rl   r   markparametrizer-   rG   int16arrayr   r   r   r   rb   r=   r;   r   r      s        [S1hbhqkk828A;;"LMM  NM [S3!xx1~~"FGG" " HG"& & & & &r=   r   c                       e Zd Z edd          d             Z eddd          d             Zd Zej        d             Z	d	 Z
d
S )TestRenameParameteroldnewc                     |S ra   rb   rc   r   s     r;   old_keyword_still_acceptedz.TestRenameParameter.old_keyword_still_accepted       
r=   z1.9.0)dep_versionc                     |S ra   rb   r   s     r;   old_keyword_deprecatedz*TestRenameParameter.old_keyword_deprecated   r   r=   c                 X   |                      d          }|                      d          }|                      d          }||cxk    r|cxk    rdk    sn J t          j        d          }t          j        t
          |          5  |                      d           d d d            n# 1 swxY w Y   t          j        d          }t          j        t
          |          5  |                      dd           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                      dd           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                      dd           d d d            d S # 1 swxY 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   )rc   res1res2res3messages        r;   test_old_keyword_still_acceptedz3TestRenameParameter.test_old_keyword_still_accepted   s   ..r22..2.66..2.66t))))t))))r)))))) )LMM]9G444 	; 	;++r+:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; )GHH]9G444 	8 	8++BB+777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8]9G444 	8 	8++BB+777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8]9G444 	< 	<+++;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<sH   	B,,B03B0&D

DD0EEE:FF#&F#c                 "    ddl m}  |            S )Nr   )Lock)	threadingr   )rc   r   s     r;   
kwarg_lockzTestRenameParameter.kwarg_lock  s    """"""tvvr=   c                 *   d}|                      d          }|                      d          }|5  t          j        t          |          5  |                      d          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   ||cxk    r|cxk    rdk    sn J t	          j        d          }t          j        t          |          5  |                      d           d d d            n# 1 swxY w Y   t	          j        d          }t          j        t          |          5  |                      dd           d d d            n# 1 swxY w Y   |5  t          j        t          |          5  t          j        t          |          5  |                      dd           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |5  t          j        t          |          5  t          j        t          |          5  |                      dd	           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY 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   )rc   r   dep_msgr   r   r   r   s          r;   test_old_keyword_deprecatedz/TestRenameParameter.test_old_keyword_deprecated
  sG    @**2..**r*22 	? 	?0@@@ ? ?6626>>D? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? t))))t))))r)))))) )HII]9G444 	7 	7''2'666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7
 )CDD]9G444 	4 	4'''333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	< 	<y888 < <L!37CCC< < ///;;;< < < < < < < < < < < < < < < < < < < < < < < < < < < < < <	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<
  	@ 	@y888 @ @L!37CCC@ @//BB/???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s  BA/#B/A3	3B6A3	7BB
B
C;;C?C?5EE E&G0GG6GGG	G
GG0G	G0 G	!G00G47G4=JI05II0II0 I!I0$J0I4	4J7I4	8JJJN)rj   rk   rl   r   r   r   r   r   fixturer   r   rb   r=   r;   r   r      s        
 ue$$  %$ ue999  :9< < <* ^  ^@ @ @ @ @r=   r   c                       e Zd Zd Zd Zed             Z edd          ej	        
                    d          eej	                            dg d	          d
                                                 ZdS )TestContainsNaNTestc                    t          j        dddt           j        g          }t          |d          \  }}|sJ |dk    sJ t          |d          \  }}|sJ |dk    sJ d}t	          j        t          |          5  t          |d	           d d d            n# 1 swxY w Y   d
}t	          j        t          |          5  t          |d           d d d            d S # 1 swxY w 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   r7   )rc   r(   contains_nanr   msgs        r;   test_policyzTestContainsNaNTest.test_policy-  s   xAq"&)**#0+#N#N#N j[((((#0&#I#I#I jV####-]:S111 	4 	4$73333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 *]:S111 	2 	2$51111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s$    BB"%B"C%%C),C)c                 0   t          j        g d          }t          |          d         rJ t          j        dddt           j        g          }t          |          d         sJ t          j        t           j        ddt           j        g          }t          |          d         sJ t          j        ddgddgg          }t          |          d         rJ t          j        ddgdt           j        gg          }t          |          d         sJ d S )N)r>   r?   r@   r   r>   r?   r@   rA   )r-   r   r   r   )rc   data1data2data3data4data5s         r;   test_contains_nanz%TestContainsNaNTest.test_contains_nan@  s   ## ''****!Q26*++U##A&&&&"&!Q/00U##A&&&&1a&1a&)** ''****1a&1bf+.//U##A&&&&&&r=   c                    t          j        dddt           j        g          }t          |          d         rJ t          j        dddt           j        gd          }t          |          d         sJ t          j        ddgdt           j        gg          }t          |          d         rJ t          j        ddgdt           j        ggd          }t          |          d         sJ d S )	Nr>   r?   3r   object)r.   1r@   )r-   r   r   r   )rc   r   r   r   r   s        r;   test_contains_nan_with_stringsz2TestContainsNaNTest.test_contains_nan_with_stringsP  s    !QRV,-- ''****!QRV,H===U##A&&&&3(QK011 ''****3(QK0AAAU##A&&&&&&r=   	jax.numpy)JAX arrays do not support item assignmentreasonskip_xp_backendsr   )r   r   r   c                    t           j                            d          }|                    d          }|                    |          }t	          ||          }t           j        |d<   t          ||          \  }}|rJ ||k    sJ |dk    rId}	t          j        t          |		          5  t          ||           d d d            d S # 1 swxY w Y   d S |d
k    rXt          |          sId}	t          j        t          |		          5  t          ||           d d d            d S # 1 swxY w Y   d S |dk    r t          ||          \  }}|sJ ||k    sJ d S d S )Nl   }? )r?   r@   rA   r_   )xp)r>   r?   r>   r   r   zThe input contains...r   r   z%`nan_policy='omit' is incompatible...r   )r-   rQ   r   asarrayr   r   r   r   r   r7   r   )
rc   r   r   r   x0r:   x_nanr   nan_policy_outr   s
             r;   test_array_apiz"TestContainsNaNTest.test_array_api^  s%    i##O44ZZYZ''JJrNNb!!!g'4Q:'N'N'N$n++++  -Gz999 < <e
;;;;< < < < < < < < < < < < < < < < < <6!!(2,,!=Gz999 < <e
;;;;< < < < < < < < < < < < < < < < < <;&&+8*,. ,. ,.(L.!Z////	 '& 0/s$   .CCCD++D/2D/N)rj   rk   rl   r   r   r   r   r   r   r   usefixturesr   r   r   rb   r=   r;   r   r   +  s        2 2 2&' ' '  ' ' ' kHJ J J[/00[\+I+I+IJJ0 0 KJ  10J J
0 0 0r=   r   c                  R    d }  t          |                       }g d}||k    sJ d S )Nc                      g d} | S )N)znp.random.default_rng(8989843)np.random.default_rng(seed)z8np.random.default_rng(0x9a71b21474694f919882289dc1559ca) bob rb   )liness    r;   mock_strz(test__rng_html_rewrite.<locals>.mock_str~  s    
 
 
 r=   )np.random.default_rng()r   r   r   )r   )r   resrefs      r;   test__rng_html_rewriter   }  sM       &
H
%
%
'
'C  C #::::::r=   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej         !                    d          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!                                     Z$d"S )#TestTransitionToRNGc                     t           j                            d          }t          j        j        |                    d          dfi |S N   2Faj  )   r@   r_   r@   r-   rQ   r   r   vqkmeans2rc   rg   r   s      r;   kmeanszTestTransitionToRNG.kmeans  C    i##$788z!#**'*":":AHHHHHr=   c                     t           j                            d          }t          j        j        |                    d          dfi |S r   r  r  s      r;   r  zTestTransitionToRNG.kmeans2  r  r=   c                     t           j                            d          }|                    d          \  }}}t          j        ||fi |} ||          S )Nr   )r@   r%   )r-   rQ   r   r   BarycentricInterpolator)rc   rg   r   x1x2y1fs          r;   barycentriczTestTransitionToRNG.barycentric  sV    i##$788ZZ((
B/BAA&AAquur=   c                     t           j                            d          }t          j        |                    d          dfi |S )Nr   r%   r%   r@   )r-   rQ   r   r   clarkson_woodruff_transformr  s      r;   r  z/TestTransitionToRNG.clarkson_woodruff_transform  s?    i##$7881#**X2F2FTTVTTTr=   c                     t           j                            d          }t          j        t          j        |                    d          fi |j        S )Nr   r@   )r-   rQ   r   r    basinhoppingrosenr:   r  s      r;   r  z TestTransitionToRNG.basinhopping  sB    i##$788$X^SZZ]]MMfMMOOr=   c                     t           j                            d          }t          j        |                    d           dz  |                    d          dz            } |t          j        |fi |j        S )Nr   r@   r%   )r-   rQ   r   r    Boundsr  r:   )rc   funrg   r   boundss        r;   optzTestTransitionToRNG.opt  sh    i##$788#**Q--"!4cjjmmb6HIIs8>644V4466r=   c                 2     | j         t          j        fi |S ra   )r  r    differential_evolutionrc   rg   s     r;   r  z*TestTransitionToRNG.differential_evolution  s    tx7BB6BBBr=   c                 2     | j         t          j        fi |S ra   )r  r    dual_annealingr  s     r;   r  z"TestTransitionToRNG.dual_annealing  s    tx/::6:::r=   c                     t           j                            d          }|                    d          }t          j        t          j        t          j        |fddi|S )Nr   r@   	directionrQ   )r-   rQ   r   r    
check_gradr  	rosen_der)rc   rg   r   r:   s       r;   r"  zTestTransitionToRNG.check_grad  sb    i##$788JJqMM"8>83Eq A A-5A9?A A 	Ar=   c                 L    t          j        dddi|                                S )Nr  density      ?)r  )r!   random_arraytoarrayr  s     r;   r'  z TestTransitionToRNG.random_array  s*    "CCSCFCCKKMMMr=   c                 L    t          j        dddi|                                S Nr%   r%  r&  r  )r!   rQ   r(  r  s     r;   rQ   zTestTransitionToRNG.random  s)    };;S;F;;CCEEEr=   c                 L    t          j        dddi|                                S r*  )r!   randr(  r  s     r;   r,  zTestTransitionToRNG.rand  s)    {9939&99AACCCr=   c                     t           j                            d          }|                    d          }t          j        j        |fi |S )Nr   r  )r-   rQ   r   r!   r   svds)rc   rg   r   As       r;   r.  zTestTransitionToRNG.svds  sD    i##$788JJx  }!!..v...r=   c                 \    t          j        j        j        di |                                S )Nr@   )r@   )r"   	transformRotationrQ   	as_matrixr  s     r;   random_rotationz#TestTransitionToRNG.random_rotation  s+     )0==f==GGIIIr=   c                     t           j                            d          }|                    d          }t          j        t          j        |fi |j        S Nr   r   )r-   rQ   r   r#   goodness_of_fitlaplacepvaluerc   rg   r   r(   s       r;   r7  z#TestTransitionToRNG.goodness_of_fit  sG    i##$788zz#$U]DCCFCCJJr=   c                     t           j                            d          }t          |                    d                    }d }t	          j        ||fi |j        S )Nr   r?   r   c                 \    t          j        | |          t          j        ||          z
  S )N)axis)r-   mean)r:   yr>  s      r;   	statisticz7TestTransitionToRNG.permutation_test.<locals>.statistic  s+    "'!$*?*?*?"'!RVBWBWBW*W#Wr=   )r-   rQ   r   tupler#   permutation_testr9  )rc   rg   r   r(   rA  s        r;   rC  z$TestTransitionToRNG.permutation_test  sX    i##$788SZZ))**WWW%dI@@@@GGr=   c                     t           j                            d          }|                    d          f}t          j        |t           j        fi |j        S r6  )r-   rQ   r   r#   	bootstrapr?  confidence_intervalr:  s       r;   rE  zTestTransitionToRNG.bootstrap  sI    i##$788

3!tRW7777KKr=   c                     t           j                            d          }|                    d          \  }}}t          j        ||fd|i|j        S )Nr   )r@   r   control)r-   rQ   r   r#   dunnettr9  )rc   rg   r   r:   r@  rH  s         r;   rI  zTestTransitionToRNG.dunnett  sQ    i##$788

8,,1g}Q==7=f==DDr=   c                 R   d }t          j        t          j         dt          j        z            t          j        t          j         dt          j        z            t          j        t          j         dt          j        z            g}t          j        d|d|d|}|j        S )Nc                     t          j        | d                   dt          j        | d                   dz  z  z   d| d         dz  z  t          j        | d                   z  z   S )Nr      r>   r?   g?rA   )r-   rw   )r:   s    r;   
f_ishigamiz5TestTransitionToRNG.sobol_indices.<locals>.f_ishigami  sX    26!A$<<!bfQqTlla6G2G#G%(AaDAI%6!%E$F Gr=   r?   )locscalei   )r[   rK   distsrb   )r#   uniformr-   pisobol_indicesfirst_order)rc   rg   rM  rP  r   s        r;   rS  z!TestTransitionToRNG.sobol_indices  s    	G 	G 	GBE6RU;;;BE6RU;;;BE6RU;;;= !QzTQQ&QQr=   c                 @     |dddi|}|                     d          S )Ndr>   rA   rb   )rQ   )rc   enginerg   qrngs       r;   
qmc_enginezTestTransitionToRNG.qmc_engine  s,    v$$$V$${{1~~r=   c                 <     | j         t          j        j        fi |S ra   )rY  r#   qmcHaltonr  s     r;   haltonzTestTransitionToRNG.halton  s!    tuy/::6:::r=   c                 <     | j         t          j        j        fi |S ra   )rY  r#   r[  Sobolr  s     r;   sobolzTestTransitionToRNG.sobol  s     tuy99&999r=   c                 <     | j         t          j        j        fi |S ra   )rY  r#   r[  LatinHypercuber  s     r;   latin_hypercubez#TestTransitionToRNG.latin_hypercube  s!    tuy7BB6BBBr=   c                 <     | j         t          j        j        fi |S ra   )rY  r#   r[  PoissonDiskr  s     r;   poisson_diskz TestTransitionToRNG.poisson_disk  s!    tuy4?????r=   c                 \    t          j        j        dgfi |}|                    d          S )Nr   rA   )r#   r[  MultivariateNormalQMCrQ   rc   rg   Xs      r;   multivariate_normal_qmcz+TestTransitionToRNG.multivariate_normal_qmc  s.    I+QC::6::xx{{r=   c                 `    t          j        j        ddgdfi |}|                    d          S )Ng      ?rA   )r#   r[  MultinomialQMCrQ   ri  s      r;   multinomial_qmcz#TestTransitionToRNG.multinomial_qmc  s2    I$c3Z==f==xx{{r=   c                     t           j                            d          }t          |                    d                    }t	          j        di |}t	          j        |d|ij        S )Nr   r<  methodrb   )r-   rQ   r   rB  r#   PermutationMethodpearsonrr9  )rc   rg   r   r(   rp  s        r;   permutation_methodz&TestTransitionToRNG.permutation_method  s_    i##$788SZZ))**(22622~t3F33::r=   c                     t           j                            d          }t          |                    d                    }t	          j        | }t	          j        di |}|                    |          S )Nr   r<  )rp  rb   )r-   rQ   r   rB  r#   rr  BootstrapMethodrF  )rc   rg   r   r(   r   rp  s         r;   bootstrap_methodz$TestTransitionToRNG.bootstrap_method  sj    i##$788SZZ))**nd#&0000&&f&555r=   r%   zmethod, arg_nameseedrandom_statec           	         t           j                            d            d}t           j                            |          }d}t	          j        t          |          5   || fi d|||i d d d            n# 1 swxY w Y   t           j                            |          } || |          } || |          }t          ||           |j        dv r || fi ||i}t          ||           d S t           j        	                    |          } || fi ||i} || fi ||i}|j        dv rU || 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   >   rI  rS  >   r`  r]  rf  rc  rn  rk  )
r-   rQ   rw  r   r   r   r   r   rj   rR   )rc   rp  arg_namerw  r   r   r   r   r   res1bres2bs              r;   test_rng_deterministicz*TestTransitionToRNG.test_rng_deterministic  sx   > 		ti##D))G]9G444 	9 	9F488E3$7888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 i##D))vd$$$vd%%%T4   ?:::6$338T"233Dt$$$Fi##D))vd..xo..vd//x.//? M M M F4KKHbi.C.CD.I.I#JKKE%%%F444Hd#344E%%%F
	tvd//x.//T4   T4     s   A88A<?A<N)%rj   rk   rl   r  r  r  r  r  r  r  r  r"  r'  rQ   r,  r.  r4  r7  rC  rE  rI  rS  rY  r]  r`  rc  rf  rk  rn  rs  rv  r   r   	fail_slowslowr   r}  rb   r=   r;   r   r     s       I I II I I  U U UP P P7 7 7
C C C; ; ;A A AN N NF F FD D D/ / /
J J JK K K
H H HL L L
E E E
    ; ; ;: : :C C C@ @ @    ; ; ;6 6 6 [2[[/		&	n%	$f-	v	(	 	V	~&	 	~	~	.)	.)	>*	N#	^,	>*	.!	'			&!	v	 &)	&!52  8%! %!9   <%! %! %!r=   r   c                      e Zd Z ej        dd          Z ej        dd          Z ej        ej	        ej
        f          Z ej        dd          Z ej                    Zej                            d          ej                            d           ed	d
          ej                            d          e eeeeee          ej        j        d                                                                                     ZdS )TestLazywherer>   r@   )	min_value	max_valuei ʚ;l   c(	 r   r%   zignore::RuntimeWarningr   r   r   r   )n_arraysrng_seedr.   rp   r(   c           	         t          j        |dz   d          }                    |          \  }}	|^}
}ddi}                                        t          j        t                      |                              }t          |          }fd|D             }d }d	 }t          j        	                    |          }                    |                    |

          |k              }t          ||||          }t          ||||          }t                    st          ||||          }t          k    rt          j        ||g|R  ^}}}                    | || |          }                    | ||  ||           }t                    s                    | || |          }t          k    r?|                    |	          }|                    |	          }|                    |	          }t          ||d           t!          ||           t                    st!          ||           d S d S )Nr>   r   )
num_shapesmin_sideallow_subnormalF)r.   r2   elementsc           
          g | ]>}                                         t          j        |                               ?S ))r.   r2   )r   drawnpstarrays).0r2   r(   r.   r   s     r;   
<listcomp>z,TestLazywhere.test_basic.<locals>.<listcomp>l  sP     ' ' ' **TYYt{e'L'L'LMMNN ' ' 'r=   c                  4    t          d | D                       S )Nc              3      K   | ]}|V  d S ra   rb   r  args     r;   	<genexpr>z6TestLazywhere.test_basic.<locals>.f.<locals>.<genexpr>p  "      ++ss++++++r=   sumrf   s    r;   r  z#TestLazywhere.test_basic.<locals>.fo  s    ++d++++++r=   c                  :    t          d | D                       dz  S )Nc              3      K   | ]}|V  d S ra   rb   r  s     r;   r  z7TestLazywhere.test_basic.<locals>.f2.<locals>.<genexpr>s  r  r=   r?   r  r  s    r;   f2z$TestLazywhere.test_basic.<locals>.f2r  s$    ++d+++++a//r=   r_   )r  gؗҬ<)rtol)r  mutually_broadcastable_shapesr  r   r  rB  floatr-   rQ   r   r   r   
atleast_1dwherereshaper   r   )rc   r  r  r.   rp   r(   r   mbsinput_shapesresult_shape
cond_shapeshapesr  	fillvaluefloat_fillvaluer  r  r  r   condr   r   r   ref1ref2ref3s      ` ``                   r;   
test_basiczTestLazywhere.test_basic[  s    0HQJ:;= = =%)YYs^^"l*
V%u-JJtyy5>F*H *H *H  I  I J J		**' ' ' ' ' '%' ' '	, 	, 	,	0 	0 	0 i##H--zz#****559::$955$b111"2&& 	@dFA??D 88')}T9'Nv'N'N'N$D)fxxaaj)44xxaaj""f+66"2&& 	? 88D!!V*o>>D88<<--D<<--D<<--Dd////d###"2&& 	(D$'''''	( 	(r=   N)rj   rk   rl   r	   integersr  r  sampled_fromr-   float32rH   r.   floatsrp   r(   r   r   r~  filterwarningsr   r   r   r   thread_unsafer  rb   r=   r;   r  r  T  sJ       "z"Q!<<<H"z"Z:NNNH#J#RZ$<==E
A333A:?D[2[ 899kHJ J J[/00
UHxuMMM[.( .(  NM  10J J :9 .( .( .(r=   r  )Dmultiprocessingr   multiprocessing.poolr   r   r   	fractionsr   numpyr-   numpy.testingr   r   r   r   rS   hypothesis.extra.numpyextrar  
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   r  rM   rX   rs   r   r   r   r   r   r   r   r   r   r  rb   r=   r;   <module>r     s               , , , , , , 				            / / / / / / / /  * * * * * * % % % % % % % % % ; ; ; ; ; ; ; ; ; ; D D D D D D D DA A A A A A A A A A A A A AL L L L L L L L L L L L L L L L L L L L L L L L L L Q P P P P P P P P P P P P P P P P P;/   >  >  >F1 1 1"M M M&  & & &
) ) )@7  7  7 t& & & & & & & &$F@ F@ F@ F@ F@ F@ F@ F@RO0 O0 O0 O0 O0 O0 O0 O0d  *! ! ! ! ! ! ! !D=( =( =( =( =( =( =( =( =( =(r=   