
    _Mh0                         d dl Z d dlZd dlmZ d dlmZmZ d dlm	Z
 d dlmc mZ d dlmZmZ d dlmZ d dlmZ d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S )    N)assert_allcloseassert_equal)raises)getfullargspec_no_selfnp_long)xp_assert_equal)statsFc                 (   t          |          D ]\  }}|r*t          j        | |         t          | |                     1|%t	          | |         t          | |                     Xt          j        | |         t          | |                     d S N)	enumeratema_nptr   getattrr   npt)res
attributesmaxpiattrs         ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/stats/tests/common_tests.pycheck_named_resultsr      s    Z(( 9 94 	9AT(:(:;;;;^CFGC$6$67777SVWS$%7%788889 9    c                 2    | j         dg|R  }t          j        |d           |dk    rd\  }}nd\  }}|                     d |          }t          j        |d|||d	            | j        | \  }} | j        |g|R  }	t          j        |	d           d S )
Nr         ?rv_histogram_instance)h㈵>r   )Hz>r   c                     dS )N    xs    r   <lambda>z%check_normalization.<locals>.<lambda>$   s    1 r   )argsT)atolrtolerr_msgverbose)momentr   r   expectsupportcdf)
distfnr$   distnamenorm_momentr%   r&   normalization_expect_a_bnormalization_cdfs
             r   check_normalizationr4      s    &-)D)))KS)))***
dd
d!==4=@@,c4 ($8 8 8 8 V^T"FB"
2----)3/////r   c                     | j         dg|R  } | j         dg|R  }t          j        |          st          j        ||d|dz              n:t          j        t          j        |          |dt          |           z              t          j        |          s#t          j        |||z  z
  |d|dz              d S t          j        t          j        |          |d|z              d S )	Nr      
   z - 1st momentdecimalr'   z - 1st moment -infinite, m1=z - 2ndt momentz - 2nd moment -infinite, m2=)r)   npisinfr   assert_almost_equalassert_str)r-   argmvmsgm1m2s          r   check_momentrE   -   s0   	q	3			B	q	3			B8A;; DAr(+o(=	? 	? 	? 	? 	? 	BHRLLBRBBB	D 	D 	D 8A;; KR"Wa(+.>(>	@ 	@ 	@ 	@ 	@ 	@ 	BHRLL#(IB(I(I"IJJJJJr   c                     t          j        |          r4|                     d |          }t          j        ||d|dz              d S d S )Nc                     | S r   r    r!   s    r   r#   z#check_mean_expect.<locals>.<lambda>@   s    Q r      z - 1st moment (expect)r8   )r:   isfiniter*   r   r<   )r-   r?   r@   rB   rC   s        r   check_mean_expectrJ   >   sm    	{1~~ H]];;,,Aq(+.F(F	H 	H 	H 	H 	H 	HH Hr   c                     ddh}||v rddini }t          j        |          r2|                     d |          }t          j        ||||z  z   fi | d S d S )Nr   ksoner&   gh㈵>c                     | | z  S r   r    r!   s    r   r#   z"check_var_expect.<locals>.<lambda>I   s
    QqS r   )r:   rI   r*   r   r   )r-   r?   r@   rA   rB   dist_looser_toleranceskwargsrD   s           r   check_var_expectrP   E   s}    5@"&<<<fd^^"F	{1~~ 3]]==#..BAaC226222223 3r   c                    t          j        |          rL|                     fd|          }t          j        ||t          j        |d          z  d|dz              d S t          j        t          j        |                     d S )Nc                 4    t          j        | z
  d          S )N   r:   powerr"   r@   s    r   r#   z#check_skew_expect.<locals>.<lambda>O       bhqsA&6&6 r   g      ?rH   z - skewr8   )r:   rI   r*   r   r<   rU   r=   isnan)r-   r?   r@   rA   srB   m3es     `    r   check_skew_expectr[   M   s    	{1~~ !mm6666<<Q!S)9)9%9()3?	D 	D 	D 	D 	D 	D 	BHQKK     r   c                 H   t          j        |          rP|                     fd|          }t          j        ||dz   t          j        |d          z  dd|dz              d S t          j        |          s(t          j        t          j        |                     d S d S )Nc                 4    t          j        | z
  d          S )N   rT   rV   s    r   r#   z#check_kurt_expect.<locals>.<lambda>X   rW   r   g      @r6   r   z - kurtosisr%   r&   r'   )	r:   rI   r*   r   r   rU   isposinfr=   rX   )r-   r?   r@   rA   krB   m4es     `    r   check_kurt_expectrc   V   s    	{1~~ !mm6666<<C!b&BHQNN!:!%D$'-$7	9 	9 	9 	9 	9 	9 [^^ !BHQKK     ! !r   c                    | j         j        t          j        j         k    rl | j        dg|R  }|                     d |t          j         t          j                  }t          j        |          sd S t          ||dd|dz              d S d S )NrH   c                     | dz  S )NrH   r    r!   s    r   r#   z#check_munp_expect.<locals>.<lambda>e   s
    AF r   )lbub绽|=g-C6?z - higher moment / _munpr_   )
_munp__func__r	   rv_continuousr)   r*   r:   infrI   r   )distr$   rB   r   refs        r   check_munp_expectro   `   s     ze1777dk!#d###kk**DbfWkHH{3 	FSu4 #&@ @	B 	B 	B 	B 	B 	B 87r   c                 p     | j         | }t          j        t          j        |           |dz              d S )Nztest Entropy is nan)entropyr   r=   r:   rX   )r-   r?   rB   ents       r   check_entropyrs   m   s9    
&.#
CKBHSMM!3)>#>?????r   c                 X    t          j         | j        |  |j        | g|R             d S r   )r   r   _entropy)r-   r$   
superclasss      r   check_private_entropyrw   r   sD    .+
+F:T:::< < < < <r   c                     t          j        ddgddgg          }  j        d|i} fd|                                D             }t          j        |                              |j                  }t          ||d           g d	}  j        d|i} fd
|D             }t          j        |                              |j                  }t          ||d           d S )Nr   r6   rS   r^   scalec                 *    g | ]} j         d |iS ry   rq   .0rY   r?   r-   s     r   
<listcomp>z,check_entropy_vect_scale.<locals>.<listcomp>|   s*    ???q^V^S***???r   g+=)r%   )r   r6   c                 *    g | ]} j         d |iS r{   r|   r}   s     r   r   z,check_entropy_vect_scale.<locals>.<listcomp>   s*    777q^V^S***777r   )r:   asarrayrq   ravelreshapeshaper   )r-   r?   scv_ents_ents   ``   r   check_entropy_vect_scaler   x   s   	aVaV$	%	%BFNC*r**E?????BHHJJ???EJu%%ek22EE5u---- 
BFNC*r**E77777B777EJu%%ek22EE5u------r   c                     | j         | }t          | t          j                  r|d         dz
  |d         f}t	          j         | j        |g|R  ddg           t	          j         | j        |g|R  ddg           | j        dvr\t	          j         | j	        |g|R  t          j         dg           t	          j         | j        |g|R  dt          j         g           t	          j         | j        ddgg|R  |           t	          j         | j        ddgg|R  |d d d                    t	          j        t          j         | j        ddgg|R                                                       t	          j        t          j         | j        ddgg|R                                                       d S )Nr   r   g        r   )skellamdlaplacer6   )r+   
isinstancer	   rv_discreter   r   r,   sfnamelogcdfr:   rl   logsfppfisfr=   rX   all)r-   r$   r"   s      r   check_edge_supportr      s   A&%+,, aDFAaDLZVZ)D)))C:666YVYq(4(((3*555{111q04000BF7C.AAAa/$///#w@@@ZVZc
2T222A666ZVZc
2T222AdddG<<< KRG3d3334488::;;;KRG3d3334488::;;;;;r   c                 2   t          | j                  }t          j        |j        d u            t          j        |j        d u            t          j        |j                    t          j        t          |j                  t          |          k               |j	        d t          |                    }| j        r.| j                            dd                                          }nd}t          j        t          |          | j        k               t          j        t          |          t          |          k               t                    fd|D             }t          j        t          j        t          j        |                               |d d          d d          i c}	|	r                    |	                                                                i           fd|D             }
t          j        ||
           d                                vr0t          j         | j        dgR i  | j        dgR             |	                    dd	i           t1          t2          | j        fi  d S )
N,  c                 "    g | ]} |gR  S r    r    )r~   meth
shape_argsr"   s     r   r   z$check_named_args.<locals>.<listcomp>   s+    333TDD Z   333r   c                 (    g | ]} |gR i S r    r    )r~   r   ara   r"   s     r   r   z$check_named_args.<locals>.<listcomp>   s3    000$TT!a1000r   nr   kaboom*   )_getfullargspec_parse_argsr   r=   varargsvarkw
kwonlyargslistdefaultsr$   lenshapesreplacesplitnumargsr:   r   rI   updatepopassert_array_equalkeysr   r)   assert_raises	TypeErrorr,   )r-   r"   r   r   meths	signatureshape_argnamesshapes_valsnamesrA   r   ra   s    ``        @@r   check_named_argsr      s      233IK	!T)***K	4'(((KI(()))KY'((DNN:;;;^Oc(mm^O4N} -''S117799KG.///KGN 3 33444 j!!J33333U333DKr{4(())*** #Z]BKE1a
 <	%))++quuww'(((000000%000tQ'''affhh]V]16q666A66*V]1:z:::< < <  < HHh^)VZ00a00000r   c                    | j         }t          j                            d           d | _          | j        |ddi}d| _          | j        |ddi}t          j        ||           t          j                            d          | _          | j        |ddi}t          j        ||           t          t          j        d          r-t          j        	                    d          } | j        |d|d d| _         | j         
                                } | j        |dt          j                            d          d}t          j        ||           t          j        | j         
                                |           || _         d S )N  size   default_rngr   )r   random_stater6   )r   r:   randomseedrvsr   r   RandomStatehasattrr   	get_state)	r-   r$   rndmr0r1r2rng
orig_stater3s	            r   check_random_state_propertyr      s   
 D INN4F	T	"	"	"B F	T	"	"	"BR)//55F	T	"	"	"BR ry-(( 4i##D))
Dqs3333 F$..00J	T	0E0Ed0K0K	L	L	LBR V(2244jAAA Fr   c                 X   g d} | j         |g|R  fdt          t          j        t          j        t          j        fD             }|D ]^} | j        |  || j        |k     || j        k     z           }|D ]2} ||g|R  }t          j
        |j        t          j        k               3_d S )N      ?      ?      ?c                 :    g | ]}                     |          S r    astyper~   tpx0s     r   r   z$check_meth_dtype.<locals>.<listcomp>   /     4 4 4biimm 4 4 4r   )r   r   r:   float16float32float64	_argcheckr   br   r=   dtype)	r-   r?   r   q0x_castr"   r   valr   s	           @r   check_meth_dtyper      s    			B	B				B4 4 4 4w
BJ')z'3 4 4 4F  1 1#vx!|FH-. 	1 	1D$q-3---CK	RZ/0000	1	1 1r   c                    t          j        g d          fdt           j        t           j        t           j        fD             }|D ]C}| j        | j        fD ]2} ||g|R  }t          j        |j	        t           j        k               3Dd S )Nr   c                 :    g | ]}                     |          S r    r   )r~   r   r   s     r   r   z#check_ppf_dtype.<locals>.<listcomp>   s#    KKKbiimmKKKr   )
r:   r   r   r   r   r   r   r   r=   r   )r-   r?   q_castqr   r   r   s         @r   check_ppf_dtyper      s    	%%%	&	&BKKKKrz2:rz&JKKKF 1 1Z, 	1 	1D$q-3---CK	RZ/0000	11 1r   c           	         d } | j         g dg|R  fdt          t          j        t          j        t          j        fD             }|D ]} | j        |  || j        |k     || j        k     z           } | j	        |g|R   | j
        |g|R   | j        |g|R  }}}t           || j
        |g|R  |d           t           || j        |g|R  ||z  d           t           || j        |g|R  | d           t           || j        |g|R  | |z  d           t           || j        |g|R   || j	        |g|R   | j	        |g|R  z  d           d S )Nc                 \    t          j        |          }d} | ||dz  z   g|R  |z  j        S )Nrh   y              ?)r:   r   imag)fr"   r?   hs       r   derivz check_cmplx_deriv.<locals>.deriv  s<    JqMM!ad(!S!!!!#))r   )r   gRQ?r   c                 :    g | ]}                     |          S r    r   r   s     r   r   z%check_cmplx_deriv.<locals>.<listcomp>  r   r   r   r&   )r   r   r:   r   r   r   r   r   r   pdfr,   r   r   r   r   logpdf)	r-   r?   r   r   r"   r   r,   r   r   s	           @r   check_cmplx_derivr     s   * * *
 
&&&	-	-	-	-B4 4 4 4w
BJ')z'3 4 4 4F  # ##vx!|FH-.!vz!*c***JFJq,?3,?,?,?1ASsASASAS"Sfj!2c222CdCCCCfmQ5555s3wTJJJJfi1S111C4dCCCCflA4444sd2gDIIIIfmQ5555fj!2c222ZVZ5HC5H5H5HH!	# 	# 	# 	# 	## #r   c                 t   | j         }d| _          | j        |ddi t          j        |           } | j        |ddi}t          j        |          } |j        |ddi}t          j        ||            | j        dg|R   |j        dg|R  g}t          j        |d         |d                    t          j         | j        |d         g|R   |j        |d         g|R              | | }t          j        |          }	t          j        |	          }|                    d          }|                    d          }t          j        ||           t          | d          rJ| j
        }
t          j        |
          }t          j        |          }|
j        |j        cxk    rdk    sn J || _         d S )	Nr   r   r   r   r   r   )r   fit)r   r   pickledumpsloadsr   r   r   r,   r   r   __name__)r-   r$   r   rY   r   	unpickledr   mediansfrozen_distpklfit_functionpickled_fit_functionunpickled_fit_functions                r   check_picklingr  "  s   
 D FFJ1VA	T	"	"	"BQI		%1	%	%BR vz#%%%%}y}S'@4'@'@'@AGWQZ,,,ZVZ
2T222"Y]71:55557 7 7 &$-K
,{
#
#CS!!I	a	 	 B	A		BR vu Qz%|L99!'.B!C!C$(>(GPPPP5PPPPPP Fr   c                     t          | t          j                  rddd}nddi} | |i |}|j         | | j        k    sJ |j         | | j        k    sJ d S )Nr   r6   )locry   r  )r   r	   rk   r   r   )r-   r$   locscalervs       r   check_freezingr	  M  s     &%-.. q))1:		"	"	"B4664=?""""4664=?""""""r   c                 2    t           j                            d             j        | }t	          |j        || d           |sQt          j         fd|          }t           j                            d            || }t          ||d           d S d S )N{   z: rvs failed to broadcastc                       j         |  S r   )r   )allargsdistfuncs    r   r#   z%check_rvs_broadcast.<locals>.<lambda>_  s    LHL',B r   )otypesgvIh%<=r   )r:   r   r   r   r   r   	vectorizer   )	r  r.   r  r   
shape_onlyotypesampler   expecteds	   `        r   check_rvs_broadcastr  Z  s    INN3X\7#Fu&L&L&LMMM 6lBBBB5QQQ
	s3=u555555	6 6r   )FN)+r   numpyr:   numpy.testingtestingr   r   r   pytestr   r   numpy.ma.testutilsr   	testutilsr   scipy._lib._utilr   r   r   scipy._lib._array_api_no_0dr   scipyr	   r   r4   rE   rJ   rP   r[   rc   ro   rs   rw   r   r   r   r   r   r   r   r  r	  r  r    r   r   <module>r     s	              7 7 7 7 7 7 7 7 * * * * * * # # # # # # # # #        8 7 7 7 7 7      9 9 9 90 0 0$K K K"H H H3 3 3! ! !! ! !
B 
B 
B@ @ @
< < <. . . < < <,$1 $1 $1N& & &R1 1 11 1 1# # #8( ( (V
# 
# 
#6 6 6 6 6r   