
    e!hE`                         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jh                  jj                  Z5ejh                  jl                  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      ZCy)    )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 ]]  }dD ]V  }dD ]O  }t         j                  t         j                  fD ]*  }|ddd|ffD ]  }t        |       D ]  } |||||         , Q X _ y )	N
   c                 t   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                  |       y |dk(  r1|j                  dkD  r!t        |j                  j                  |       y y |!t        |j                  j                  |       y 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         c/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/_lib/tests/test__util.pycheckz"test__aligned_zeros.<locals>.check   s    ueU345%e<=HHUO--EQ**6215=qA5)$%15(G4QWWe$C<AGG(('2c\vvz,,g6  ]AGG(('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) > hh

3 >E"#aAq\!2 >!&u >A!%u=>>>>	>>r=   c                  d   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                  j                  t        j                  j                               }t        |      } t        t        |       t        j                  j                         y )Nr>   a)
r   r   typer-   randomRandomStateassert_raisesr7   	GeneratorPCG64)rsirgs     r;   test_check_random_staterX   >   s    
 Q
CcBII112
S
!CcBII112
T
"CcBII112*0#6			RYY__.	/B
R
 CcBII//0r=   c                  l   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              y )Nr>   pool)r>   funciterablec                       e Zd ZddddZy)0test_getfullargspec_no_self.<locals>._rv_genericNr5   c                     y N )selfrO   bcr5   argskwargss          r;   _rvsz5test_getfullargspec_no_self.<locals>._rv_generic._rvsY   s    r=   r?   r@   )__name__
__module____qualname__rh   rb   r=   r;   _rv_genericr^   X   s    	 	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$QZZ0G+vhdD"&*B0 1$QZZ0G+vz&:D$&($4 5  ]F$V[[1G+ovx&,vhL 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        y # 1 sw Y   y xY w)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    YYs^FffVnG1AAJJ#AFFdNAKK5 !
q 
!Cg	|	$ qM  s   :CCc                      t        d      5 } | j                  t        j                  g d       d d d        y # 1 sw Y   y xY w)Nr?   )r>   r?   r@   rA   )r   ry   mathrw   )rp   s    r;   	test_poolr   q   s2    	a &A	dhh%& & &s	   #8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        t        t              5 } t         j                  |        d d d        t        j                  t        u        t!        d      5 }t        |j"                        }t        |j                  du        |j%                          |j#                  t         j                  |       }t	        t        |      |       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)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   s@   YYs^FffVnG	A (!T#Y(t#$
1663'(

$&'( 
y	! W	"&&& GLLJ&' 
a 	)Aquuu$%		 eeBFFF#T#Y(	) 	)!( ( 	) 	)s%   A>FFA2F$FF!$F-c                     t         j                  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                  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 y # t        $ r Y y w xY w)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      s   
))


!C sd
CC66#;!66#;!99 sd
;C66#;!66#;!99 se
DC66#;!66#;!99 se
<C66#;!66#;!99ii##%
 sd
CC66#;!66#;!99 sd
;C66#;!66#;!99 se
DC66#;!66#;!99 se
<C66#;!66#;!993  s   2K# #	K/.K/c            	       8   e Zd Zej                  j                  dd ej                  d       ej                  d       ej                  d      g      d        Z
ej                  j                  dd ej                  dg       edd      g      d        Zd Zy)	TestValidateIntrK   rA   c                 *    t        |d      }|dk(  sJ y )NrK   rA   )r   rc   rK   s     r;   test_validate_intz!TestValidateInt.test_validate_int   s    !S!Avvr=   g      @r>   c                 |    t        j                  t        d      5  t        |d       d d d        y # 1 sw Y   y xY w)Nzn must be an integermatchrK   )pytestr   	TypeErrorr   r   s     r;   test_validate_int_badz%TestValidateInt.test_validate_int_bad   s0    ]]9,BC 	"!S!	" 	" 	"s   2;c                 ~    t        j                  t        d      5  t        ddd       d d d        y # 1 sw Y   y xY w)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   s6    ]]: .; < 	&"c1%	& 	& 	&s   3<N)rj   rk   rl   r   markparametrizer-   rG   int16arrayr   r   r   r   rb   r=   r;   r   r      s    [[S1hbhhqk8288A;"LM N [[S3!x1~"FG" H"&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
y
)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                    | j                  d      }| j                  d      }| j                  d      }||cxk(  r|cxk(  rdk(  sJ  J t        j                  d      }t        j                  t
        |      5  | j                  d       d d d        t        j                  d      }t        j                  t
        |      5  | j                  dd       d d d        t        j                  t
        |      5  | j                  dd       d d d        t        j                  t
        |      5  | j                  dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   y xY w)	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   sS   ..r2..2.6..2.6t)t)r))))) ))LM]]9G4 	;++r+:	; ))GH]]9G4 	8++BB+7	8]]9G4 	8++BB+7	8]]9G4 	<+++;	< 	<	; 	;
	8 	8	8 	8	< 	<s0   <EE>E*5E6EE'*E36E?c                     ddl m}  |       S )Nr   )Lock)	threadingr   )rc   r   s     r;   
kwarg_lockzTestRenameParameter.kwarg_lock  s    "vr=   c                    d}| j                  d      }| j                  d      }|5  t        j                  t        |      5  | j                  d      }d d d        d d d        ||cxk(  rcxk(  rdk(  sJ  J t	        j
                  d      }t        j                  t        |      5  | j                  d       d d d        t	        j
                  d      }t        j                  t        |      5  | j                  dd       d d d        |5  t        j                  t        |      5  t        j                  t        |      5  | j                  dd       d d d        d d d        d d d        |5  t        j                  t        |      5  t        j                  t        |      5  | j                  dd	       d d d        d d d        d d d        y # 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   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   uxY w# 1 sw Y   y xY w)
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
  s"    @**2.**r*2 	?0@ ?6626>D?	? t)t)r))))) ))HI]]9G4 	7''2'6	7
 ))CD]]9G4 	4'''3	4 	<y8 <LL!37C< ///;< <	<
  	@y8 @LL!37C@//BB/?@ @	@ 	@'? ?	? 	?	7 	7	4 	4< < < <	< 	<@ @ @ @	@ 	@s   G.G!G.-G;8HH,2H H"H *H,<II4H8II!G+	&G..G8;HHHH  H)	%H,,H58I=II		IIN)rj   rk   rl   r   r   r   r   r   fixturer   r   rb   r=   r;   r   r      s]    
 ue$ % ue9 :<* ^^ @r=   r   c                       e Zd Zd Zd Zed        Z edd      ej                  j                  d      eej                  j                  dg d	      d
                             Zy)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        d
}t	        j
                  t        |      5  t        |d       d d d        y # 1 sw Y   =xY w# 1 sw Y   y xY w)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    xxAq"&&)*#0+#N j|[(((#0&#I j|V###-]]:S1 	4$73	4 *]]:S1 	2$51	2 	2		4 	4	2 	2s   ;C.CCCc                    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 y )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266*+U#A&&&"&&!Q/0U#A&&&1a&1a&)* '***1a&1bff+./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 y )	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RVV,- '***!QRVV,H=U#A&&&3(QK01 '***3(QK0AU#A&&&r=   	jax.numpy)JAX arrays do not support item assignmentreasonskip_xp_backendsr   )r   r   r   c                 j   t         j                  j                  d      }|j                  d      }|j                  |      }t	        ||      }t         j
                  |d<   t        ||      \  }}|rJ ||k(  sJ |dk(  r4d}	t        j                  t        |		      5  t        ||       d d d        y |d
k(  r?t        |      s4d}	t        j                  t        |		      5  t        ||       d d d        y |dk(  rt        ||      \  }}|sJ ||k(  sJ y y # 1 sw Y   y xY w# 1 sw Y   y xY w)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^  s1    ii##O4ZZYZ'JJrNb!g'4Q:'N$n+++ -Gz9 <e
;< <6!(2,=Gz9 <e
;< <;&+8*,.(L.<!Z///	 '< << <s    D$D)D&)D2N)rj   rk   rl   r   r   r   r   r   r   r   usefixturesr   r   r   rb   r=   r;   r   r   +  s{    2&'  ' ' kHJ[[/0[[\+IJ0 K  1J
0r=   r   c                  @    d }  t        |              }g d}||k(  sJ y )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   }  s.     &
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@                  jC                  d      ej@                  jD                  ej@                  jG                  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$y")#TestTransitionToRNGc                     t         j                  j                  d      }t        j                  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  >    ii##$78zz!!#**'*":AHHHr=   c                     t         j                  j                  d      }t        j                  j
                  |j                  d      dfi |S r   r  r  s      r;   r  zTestTransitionToRNG.kmeans2  r  r=   c                     t         j                  j                  d      }|j                  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  sK    ii##$78ZZ(
B//BA&Aur=   c                     t         j                  j                  d      }t        j                  |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  s8    ii##$7811#**X2FTVTTr=   c                     t         j                  j                  d      }t        j                  t        j
                  |j                  d      fi |j                  S )Nr   r@   )r-   rQ   r   r    basinhoppingrosenr:   r  s      r;   r  z TestTransitionToRNG.basinhopping  sA    ii##$78$$X^^SZZ]MfMOOOr=   c                     t         j                  j                  d      }t        j                  |j                  d       dz  |j                  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  s_    ii##$78#**Q-"!4cjjmb6HI8>>64V4666r=   c                 D     | j                   t        j                  fi |S ra   )r  r    differential_evolutionrc   rg   s     r;   r  z*TestTransitionToRNG.differential_evolution  s    txx77B6BBr=   c                 D     | j                   t        j                  fi |S ra   )r  r    dual_annealingr  s     r;   r  z"TestTransitionToRNG.dual_annealing  s    txx//:6::r=   c                     t         j                  j                  d      }|j                  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  s[    ii##$78JJqM""8>>83E3Eq A-5A9?A 	Ar=   c                 L    t        j                  dddi|j                         S )Ndensity      ?)r  )r!   random_arraytoarrayr  s     r;   r'  z TestTransitionToRNG.random_array  s$    ""CSCFCKKMMr=   c                 L    t        j                  dddi|j                         S Nr%  r&  r  )r!   rQ   r(  r  s     r;   rQ   zTestTransitionToRNG.random  s"    }};S;F;CCEEr=   c                 L    t        j                  dddi|j                         S r*  )r!   randr(  r  s     r;   r,  zTestTransitionToRNG.rand  s"    {{939&9AACCr=   c                     t         j                  j                  d      }|j                  d      }t        j                  j
                  |fi |S )Nr   r  )r-   rQ   r   r!   r   svds)rc   rg   r   As       r;   r.  zTestTransitionToRNG.svds  s?    ii##$78JJx }}!!!.v..r=   c                 p    t        j                  j                  j                  di |j	                         S )N)r@   )r"   	transformRotationrQ   	as_matrixr  s     r;   random_rotationz#TestTransitionToRNG.random_rotation  s+      ))00=f=GGIIr=   c                     t         j                  j                  d      }|j                  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  sF    ii##$78zz#$$U]]DCFCJJJr=   c                     t         j                  j                  d      }t        |j                  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#    "''!$*?"''!RVBW*W#Wr=   )r-   rQ   r   tupler#   permutation_testr9  )rc   rg   r   r(   rA  s        r;   rC  z$TestTransitionToRNG.permutation_test  sK    ii##$78SZZ)*W%%dI@@GGGr=   c                     t         j                  j                  d      }|j                  d      f}t        j                  |t         j
                  fi |j                  S r6  )r-   rQ   r   r#   	bootstrapr?  confidence_intervalr:  s       r;   rE  zTestTransitionToRNG.bootstrap  sG    ii##$78

3!tRWW77KKKr=   c                     t         j                  j                  d      }|j                  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  sL    ii##$78

8,1g}}Q=7=f=DDDr=   c                    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    266!A$<!bffQqTla6G2G#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BEE6RUU;BEE6RUU;BEE6RUU;= !!QzTQ&Qr=   c                 8     |dddi|}|j                  d      S )Ndr>   rA   rb   )rQ   )rc   enginerg   qrngs       r;   
qmc_enginezTestTransitionToRNG.qmc_engine  s"    $$V${{1~r=   c                 X     | j                   t        j                  j                  fi |S ra   )rY  r#   qmcHaltonr  s     r;   haltonzTestTransitionToRNG.halton  s"    tuyy//:6::r=   c                 X     | j                   t        j                  j                  fi |S ra   )rY  r#   r[  Sobolr  s     r;   sobolzTestTransitionToRNG.sobol  s     tuyy9&99r=   c                 X     | j                   t        j                  j                  fi |S ra   )rY  r#   r[  LatinHypercuber  s     r;   latin_hypercubez#TestTransitionToRNG.latin_hypercube  s"    tuyy77B6BBr=   c                 X     | j                   t        j                  j                  fi |S ra   )rY  r#   r[  PoissonDiskr  s     r;   poisson_diskz TestTransitionToRNG.poisson_disk  s"    tuyy44???r=   c                 f    t        j                  j                  dgfi |}|j                  d      S )Nr   rA   )r#   r[  MultivariateNormalQMCrQ   rc   rg   Xs      r;   multivariate_normal_qmcz+TestTransitionToRNG.multivariate_normal_qmc  s+    II++QC:6:xx{r=   c                 j    t        j                  j                  ddgdfi |}|j                  d      S )Ng      ?rA   )r#   r[  MultinomialQMCrQ   ri  s      r;   multinomial_qmcz#TestTransitionToRNG.multinomial_qmc  s/    II$$c3Z=f=xx{r=   c                     t         j                  j                  d      }t        |j                  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  sW    ii##$78SZZ)*((262~~t3F3:::r=   c                     t         j                  j                  d      }t        |j                  d            }t	        j
                  | }t	        j                  di |}|j                  |      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  s_    ii##$78SZZ)*nnd#&&00&&f&55r=   r%   zmethod, arg_nameseedrandom_statec           	      p   t         j                  j                  d        d}t         j                  j                  |      }d}t	        j
                  t        |      5   || fi d|||i d d d        t         j                  j                  |      } || |      } || |      }t        ||       |j                  dv r || fi ||i}t        ||       y t         j                  j                  |      } || fi ||i} || fi ||i}|j                  dv rL || fi |t         j                  j                  |      i}	t        |	|        || fi ||i}
t        |
|       y t         j                  j                  |        || fi |d i}t        ||       t        ||       y # 1 sw Y   AxY w)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  s   > 			tii##D)G]]9G4 	948E3$78	9 ii##D)d$d%T4 ??::$38T"23Dt$ii##D)d.xo.d/x./?? M M 4KHbii.C.CD.I#JKE%44Hd#34E%
		td/x./T4 T4 ?	9 	9s   F++F5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UP7
C;ANFD/
JK
HL
E
;:C@;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                   j#                  d      ej                   j%                  d       ed	d
      ej                   j)                  d      e eeeeee      ej                   j.                  d                                                  Zy)TestLazywherer>   r@   )	min_value	max_valuei ʚ;l   c(	 r   r%   zignore::RuntimeWarningr   r   r   r   )n_arraysrng_seedr.   rp   r(   c                 P   t        j                  |dz   d      }|j                  |      \  }}	|^}
}ddi}|j                  |j                  t        j                  |t               |                  }t        |      }|D cg c]7  }|j                  |j                  t        j                  ||                  9 }}d }d	 }t        j                  j                  |      }|j                  |j                  |

      |kD        }t        ||||      }t        ||||      }t        |      st        ||||      }|t        k(  rt        j                  ||g| ^}}}|j                  | || |      }|j                  | ||  ||       }t        |      s|j                  | || |      }|t        k(  r3|j                  |	      }|j                  |	      }j                  |	      }t        ||d       t!        ||       t        |      st!               y y c c}w )Nr>   r   )
num_shapesmin_sideallow_subnormalF)r.   r2   elements)r.   r2   c                  &    t        d | D              S )Nc              3       K   | ]  }|  y wra   rb   .0args     r;   	<genexpr>z6TestLazywhere.test_basic.<locals>.f.<locals>.<genexpr>p       +ss+   sumrf   s    r;   r  z#TestLazywhere.test_basic.<locals>.fo  s    +d+++r=   c                  ,    t        d | D              dz  S )Nc              3       K   | ]  }|  y w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)npstmutually_broadcastable_shapesdrawr   arraysrB  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_fillvaluer2   r  r  r  r   condr   r   r   ref1ref2ref3s                              r;   
test_basiczTestLazywhere.test_basic[  s    00HQJ:;=%)YYs^"l*
V%u-JJtyy5>F*H  I J		*%' **TYYt{{e'LMN ' '	,	0 ii##H-zz#****59:$95$b1"2&dFA?D 8')}}T9'Nv'N$D)fxxaj)4xxaj"f+6"2& 88D!V*o>D8<<-D<<-D<<-Dd/d#"2&D$' 'I's   <H#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  s    "z""Q!<H"z""Z:NH#J##RZZ$<=E
A3A:??D[[2[[ 89kHJ[[/0
HxuM[[.(  N  1J : .(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A AL L L L Q P P;;//   >  >F1"M&&
)@7 t& &$F@ F@RO0 O0d*! !D=( =(r=   