
    5[gO                        d dl mZmZmZ d dlZd dlmZmZm	Z	m
Z
mZmZ d dlZd dlmZ d Zd Zej$                  j&                  d        Zej$                  j&                  d        Zd	 Zd
 Z G d dej0                        Z G d dej0                        Z G d dej0                        Zd Zd Zd Zd Zg dZ ej$                  jC                  de ddgz         ej$                  jC                  de       d               Z"d Z#d Z$d Z%d Z&ej$                  j&                  d        Z'd  Z(ej$                  j&                  d!        Z)d" Z*d# Z+d$ Z,d% Z-d& Z.y)'    )statslinalg	integrateN)assert_almost_equalassert_assert_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_allclose)raisesc                  (   t         j                  j                  d       d} t         j                  j                  |       }|j	                         }|j                  d      }t        j                  |      }t        j                  ddd      }|j                  |      }t        j                  j                  |||      }|d   |d	   z
  }t        t        j                  ||z
  d
z        |z  dk         |j                  |t         j                        }	|j                  t         j                   |      }
t!        |	dd       t!        |
dd       t!        |j#                  |t         j                        |	d       t!        |j#                  t         j                   |      |
d       t!        |j%                  |      |d
z  j                         |z  d
       t!        |j'                  ||d
z        ||z  j                         |z  d
       y )N      )ddof     locscaler      {Gz?      ?decimal   )nprandomseedrandnmeanstdr   gaussian_kdelinspaceevaluatenormpdfr   sumintegrate_box_1dinfr   integrate_boxintegrate_kdeintegrate_gaussian)n_basesamplexnxnmeanxnstdgkdexskdepdfnormpdf	intervallprob1prob2s              X/var/www/html/bid-api/venv/lib/python3.12/site-packages/scipy/stats/tests/test_kdeoth.pytest_kde_1dr;   
   s   IINN7L		&BWWYFFFFNE b!D 
R#	B]]2FjjnnRV5n9G11IBFFFW$q())3d:;!!&"&&1E!!266'62EsA.sA.**6266:E2N**BFF7F;UBO**40))3Q@//qA,,.y8!E    c                     t         j                  j                  d       d} t         j                  j                  |       }t         j                  j	                  |       }t        j
                  ||      }t        j                  t        j
                  ||z
  dz  |            }t        j                  ||      }t        j                  ddd      }|j                  |      }t        j                  j                  |||      }|d	   |d
   z
  }	t        t        j                  ||z
  dz        |	z  dk         |j                  |t         j                         }
|j                  t         j                    |      }t#        |
dd	       t#        |dd	       t#        |j%                  |t         j                         |
d       t#        |j%                  t         j                    |      |d       t#        |j'                  |      |dz  j                         |	z  d       t#        |j)                  ||dz        ||z  j                         |	z  d       y )Nr   r   weightsr   r   r   r   r   r   r   r   r   r   r   )r   r   r    r!   randaveragesqrtr   r$   r%   r&   r'   r(   r   r)   r*   r+   r   r,   r-   r.   )r/   r0   wnr1   r2   r3   r4   r5   r6   r7   r8   r9   s               r:   test_kde_1d_weightedrD   )   s   IINN7L		&B		%BZZB'FGGBJJ6	A~r:;E b"-D 
R#	B]]2FjjnnRV5n9G11IBFFFW$q())3d:;!!&"&&1E!!266'62EsA.sA.**6266:E2N**BFF7F;UBO**40))3Q@//qA,,.y8!Er<   c                     t         j                  j                  d       d} t        j                  ddg      }t        j                  ddgddgg      }t         j                  j	                  |||       j
                  }t        j                  |      }t         j                  dd	d
dd	d
f   \  }}t        j                  |j                         |j                         g      }|j                  |      }|j                  dd      }t        j                  j                  t        j                  ||g      ||      }	|j                         d   |j                         d   z
  }
t        t        j                   ||	z
  dz        |
dz  z  dk         d}d}|j#                  ||d   g||g      }|j#                  ||g||d   g      }t%        |dd       t%        |dd       t%        |j'                  |      |dz  j!                         |
dz  z  d       t%        |j)                  ||      ||	z  j!                         |
dz  z  d       y )Nr   r         ?      @       @      @sizer   r                @@r"   covr   r   r   r   }Ô%I}Ô%ITr   r   )r   r   r    arraymultivariate_normalTr   r$   mgridvstackravelr&   reshaper(   dstackr   r)   r,   r   r-   r.   )r/   r"   
covariancer0   r3   xygrid_coordsr5   r6   r7   smalllarger8   r9   s                  r:   test_kde_2dr_   I   s    IINN7L88S#JDC:Sz23J 
	&	&tZl	&	K	M	MB b!D 88BqIr!Dy()DAq))QWWY	23K]];'F^^C%F''++BIIq!f,=15: , GG	!qwwy|+IBFFFW$q()Y\:TABEEtAw/%@Eu~tAw/?@EsA.sA.**40)9a<8!E//jA,,.	1=qJr<   c                     t         j                  j                  d       d} t        j                  ddg      }t        j                  ddgddgg      }t         j                  j	                  |||       j
                  }t         j                  j                  |       }t        j                  ||      }t         j                  d	d
dd	d
df   \  }}t        j                  |j                         |j                         g      }|j                  |      }	|	j                  dd      }	t        j                  j                  t        j                  ||g      ||      }
|j                         d   |j                         d   z
  }t!        t        j"                  |	|
z
  dz        |dz  z  dk         d}d}|j%                  ||d   g||g      }|j%                  ||g||d   g      }t'        |dd       t'        |dd       t'        |j)                  |      |	dz  j#                         |dz  z  d       t'        |j+                  ||      |	|
z  j#                         |dz  z  d       y )Nr   r   rF   rG   rH   rI   rJ   r>   r   r   rL   rM   r   r   r   r   rO   rP   r   r   )r   r   r    rQ   rR   rS   r@   r   r$   rT   rU   rV   r&   rW   r(   rX   r   r)   r,   r   r-   r.   )r/   r"   rY   r0   rC   r3   rZ   r[   r\   r5   r6   r7   r]   r^   r8   r9   s                   r:   test_kde_2d_weightedra   q   s*    IINN7L88S#JDC:Sz23J 
	&	&tZl	&	K	M	MB		%B b"-D 88BqIr!Dy()DAq))QWWY	23K]];'F^^C%F''++BIIq!f,=15: , GG	!qwwy|+IBFFFW$q()Y\:TABEEtAw/%@Eu~tAw/?@EsA.sA.**40)9a<8!E//jA,,.	1=qJr<   c                  *   d } t         j                  j                  d       d}t         j                  j                  |      }t	        j
                  |      }t	        j
                  ||       }t	        j
                  ||j                        }t        j                  ddd      }|j                  |      }|j                  |      }t        ||       |j                  |      }	t        ||	       t        t        t        j
                  |d       y )	Nc                 b    t        j                  | j                  d| j                  dz   z        S z*Same as default, just check that it works.g         )r   powerndkde_objs    r:   scotts_factorz0test_kde_bandwidth_method.<locals>.scotts_factor   s$    xx		3		!#455r<   r   2   	bw_methodr   r   3   wrongstringr   r   r    r!   r   r$   factorr%   r&   r   assert_raises
ValueError
rk   r/   r0   r3   gkde2gkde3r4   r5   kdepdf2kdepdf3s
             r:   test_kde_bandwidth_methodrz      s    6 IINN7L		&B b!Dr];ErT[[9E	R"	B]]2FnnR G(nnR G(*e00"Nr<   c                  *   d } t         j                  j                  d       d}t         j                  j                  |      }t	        j
                  |      }t	        j
                  ||       }t	        j
                  ||j                        }t        j                  ddd      }|j                  |      }|j                  |      }t        ||       |j                  |      }	t        ||	       t        t        t        j
                  |d       y )	Nc                 b    t        j                  | j                  d| j                  dz   z        S rd   )r   rf   neffrh   ri   s    r:   rk   z9test_kde_bandwidth_method_weighted.<locals>.scotts_factor   s$    xxc799Q;&788r<   r   rl   rm   r   r   ro   rp   rq   ru   s
             r:   "test_kde_bandwidth_method_weightedr~      s    9 IINN7L		&B b!Dr];ErT[[9E	R"	B]]2FnnR G(nnR G(*e00"Nr<   c                       e Zd Zd Zy)_kde_subclass1c                     t        j                  |      | _        | j                  j                  \  | _        | _        | j                  | _        | j                          y N)	r   
atleast_2ddatasetshaperh   rg   rk   covariance_factor_compute_covariance)selfr   s     r:   __init__z_kde_subclass1.__init__   sC    }}W-++!%!3!3  "r<   N)__name__
__module____qualname__r    r<   r:   r   r      s    #r<   r   c                        e Zd Z fdZ xZS )_kde_subclass2c                 F    | j                   | _        t        |   |       y r   )rk   r   superr   )r   r   	__class__s     r:   r   z_kde_subclass2.__init__   s    !%!3!3!r<   )r   r   r   r   __classcell__)r   s   @r:   r   r      s    " "r<   r   c                       e Zd Zd Zy)_kde_subclass4c                 (    d| j                         z  S )Nr   )silverman_factor)r   s    r:   r   z _kde_subclass4.covariance_factor   s    T**,,,r<   N)r   r   r   r   r   r<   r:   r   r      s    -r<   r   c                     t        j                  g dt              } t        j                  ddd      }t	        j
                  |        |      }t        |       } ||      }t        ||d       t        |       } ||      }t        ||d       t        |       } ||       }g d}	t        |	|d	
       }
fd|
_        |
j                           |
|      }t        ||d       y )Nr   r   re      dtype
   rl   numnulp)gn,?gǻe??gW[3?ga )?gKd8;?   r   c                       j                   S r   )rr   )kdes   r:   <lambda>z/test_gaussian_kde_subclassing.<locals>.<lambda>  s	    SZZr<   )r   rQ   floatr%   r   r$   r   r
   r   r   r	   r   r   )x1r4   yskde1y1kde2y2kde4y4
y_expectedkde5y5r   s               @r:   test_gaussian_kde_subclassingr      s    	#5	1B	S""	%B 

R
 C	RB "D	bB"2r3 "D	bB"2r3 "D	bBMJj"a8 D/D	bB"2r3r<   c                     t        j                  g dt              } t        j                  ddd      }g d}t	        j
                  |       }|j                  d	       |j                  d
	        ||      }t        ||d       y )Nr   r   r   r   r   r   )g>L\9?gp4=?gH꟫?g8(H	MT?gĲCR?r   rm   scottr   r   )r   rQ   r   r%   r   r$   set_bandwidthr	   )r   r4   r   r   r   s        r:   $test_gaussian_kde_covariance_cachingr   	  sv    	#5	1B	S"!	$B NJ 

R
 C$(	RBj"a8r<   c                  D   t        j                  g dt              } t        j                  ddd      }t	        j
                  |       }|j                  |_        |j                           ||      }t	        j
                  | d      } ||      }t        ||d	       y
)zUgly, but people may rely on this.  See scipy pull request 123,
    specifically the linked ML thread "Width of the Gaussian in stats.kde".
    If it is necessary to break this later on, that is to be discussed on ML.
    r   r   r   r   rl   r   	silvermanrm   r   N)
r   rQ   r   r%   r   r$   r   r   r   r
   )r   r4   r   r   r   r   s         r:   test_gaussian_kde_monkeypatchr     s    
 
#5	1B	S""	%B 

R
 C00C	RB bK8D	bB"2r3r<   c                      t        j                  d      } t        j                  |       }g d}t	         ||       |d       y)zRegression test for #1181.r   )B\A?筱ES?g
f?r   r   r   r   N)r   aranger   r$   r	   )r   r   r   s      r:   test_kde_integer_inputr   .  s4    	1B


R
 CMJc"gz1=r<   )float32float64float96float128int32int64bw_typer   r   r   c                    t        t        | d       } |dv r|}nt        t        |d       }|r |d      nd }t        d | |fD              rt        j                          t        j
                  d|       }t        j
                  d|       }t        j                  |||      }t        j
                  d|       } ||      }|j                  t        j                  ||t        j                  |      |j                        k(  sJ y )N)r   r      c              3   $   K   | ]  }|d u  
 y wr   r   ).0dts     r:   	<genexpr>z(test_kde_output_dtype.<locals>.<genexpr>E  s     
,"2:s   r   r   )rn   r?   )getattrr   anypytestskipr   r   r$   r   result_typer   rr   )r   r   bwr?   r   kpointsresults           r:   test_kde_output_dtyper   9  s     Bt$E(("gt,"WQZ

,
,,ii'Gii'G7b'BAYYq&FvYF<<2>>'62::g;N*+((4 4 4 4r<   c                  6   t         j                  j                  d      } | j                  d      }t	        j
                  |      }| j                  d      }d}t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nl	   Fgu	\U.lt&0 )r   r   )r   r   z0points have dimension 3, dataset has dimension 2match)
r   r   default_rngstandard_normalr   r$   r   r   rt   logpdf)rngr0   r3   r4   msgs        r:   test_pdf_logpdf_validationr   R  sq    
))

 F
GC			W	%Bb!D			W	%B
<C	z	-B 
.	-	-s   4BBc                  T   t         j                  j                  d       d} t         j                  j                  |       }t	        j
                  |      }t        j                  ddd      }|j                  |      }|j                  |      }t        ||d       t        j                  |      }|j                  |      }t        ||d       t	        j
                  |      }t        j                  |j                  |            }|j                  |      }t        ||d       y )Nr   rl         r   )r   r   r    r!   r   r$   r%   r&   r(   r   logr   )r/   r0   r3   r4   r(   pdf2r   logpdf2s           r:   test_pdf_logpdfr   ]  s    IINN1L		&B b!D	S"b	!B
--
C88B<DT2.VVC[Fkk"oG4 b!D
&&r"
#C;;r?DT2.r<   c                     t         j                  j                  d       d} t         j                  j                  |       }t         j                  j	                  |       }t        j                  ||      }t        j                  ddd      }|j                  |      }|j                  |      }t        ||d       t        j                  |      }|j                  |      }t        ||d       t        j                  |t         j                  j	                  t        |                  }t        j                  |j                  |            }|j                  |      }t        ||d       y )Nr   rl   r>   r   r   r   r   )r   r   r    r!   r@   r   r$   r%   r&   r(   r   r   r   len)	r/   r0   rC   r3   r4   r(   r   r   r   s	            r:   test_pdf_logpdf_weightedr   u  s   IINN1L		&B		%B b"-D	S"b	!B
--
C88B<DT2.VVC[Fkk"oG4 b"))..R*ABD
&&r"
#C;;r?DT2.r<   c                    	
 t         j                  j                  d      } d}d}| j                  ||f      }| j                  |df      }t        j                  g d      	t        j                  |      

j                  	      }|j                  |	         }	
fdfd} ||      }t        ||d	
       y )N   K b1d& rl   r   rJ   r   )	r   r   r   re   r   r   r      	   c                       fd}t        j                  |t        j                   t        j                        d   S )Nc                 b    t        j                  | g   f      } j                  |       d   S Nr   )r   concatenater(   )rZ   
dimensionsr   points    r:   fz<test_marginal_1_axis.<locals>.marginal_pdf_single.<locals>.f  s/    U:%678A771:a= r<   r   )r   quadr   r+   r   r   r   r   s   ` r:   marginal_pdf_singlez1test_marginal_1_axis.<locals>.marginal_pdf_single  s,    	! ~~a"&&"&&1!44r<   c                 4    t        j                  d|       S )Nr   axisarrr   apply_along_axis)r   r   s    r:   marginal_pdfz*test_marginal_1_axis.<locals>.marginal_pdf  s    ""#6QFKKr<   ư>rtol
r   r   r   normalrQ   r   r$   marginalr(   r   )r   n_datan_dimr   r   r  r(   r   refr   r   r   s            @@@r:   test_marginal_1_axisr
    s    
))

 3
4CFEjjufoj.GZZeQZZ(F56J


W
%C||J'H
,,vj)
*C5L v
CC4(r<   c                  x  	
 t         j                  j                  d      } d}d}| j                  ||f      }| j                  |df      }t        j                  ddg      	t        j                  |      

j                  	      }|j                  |	         }	
fd} ||      }t        ||d	       y )
Nr      re   rJ   r   r   c                 @    fd}t        j                  |d|       S )Nc                       fd}t        j                  |t        j                   t        j                  t        j                   t        j                        d   S )Nc                 n       \  }}t        j                  ||| |g      }j                  |      d   S r   )r   rQ   r(   )r[   rZ   wzr   r   r   s       r:   r   zRtest_marginal_2_axis.<locals>.marginal_pdf.<locals>.marginal_pdf_single.<locals>.f  s9    Z(1HHaAq\*wwqz!}$r<   r   )r   dblquadr   r+   r   s   ` r:   r   zGtest_marginal_2_axis.<locals>.marginal_pdf.<locals>.marginal_pdf_single  s<    % $$Q"&&"&&I!LLr<   r   r   r   )r   r   r   r   s     r:   r   z*test_marginal_2_axis.<locals>.marginal_pdf  s!    	M ""#6QFKKr<   r  r  r  )r   r  r  r   r   r  r(   r   r	  r   r   s            @@r:   test_marginal_2_axisr    s    
))

 3
4CFEjjufoj.GZZeQZZ(F1a&!J


W
%C||J'H
,,vj)
*CL v
CC4(r<   c                     t         j                  j                  d      } d}d}| j                  ||f      }| j                  |df      }t	        j
                  |      }ddg}|j                  |      }|j                  ||         }ddg}	|j                  |	      }
|
j                  ||	         }t        ||       d	}t        j                  t        |
      5  |j                  ddg       d d d        d}t        j                  t        |
      5  |j                  g d       d d d        d}t        j                  t        |
      5  |j                  g d       d d d        y # 1 sw Y   |xY w# 1 sw Y   OxY w# 1 sw Y   y xY w)Nr   r  re   rJ   r   r   z,Elements of `dimensions` must be integers...r   g      @z,All elements of `dimensions` must be unique.)r   r   r   z;Dimensions \[-5  6\] are invalid for a distribution in 4...)r   r   r   )r   r   r   r  r   r$   r  r(   r   r   r   rt   )r   r  r  r   r   r   dimensions1	marginal1pdf1dimensions2	marginal2r   messages                r:   test_marginal_ivr    sN   
))

 3
4CFEjjufoj.GZZeQZZ(F


W
%C q'K[)I==,-Db'K[)I==,-Dt =G	z	1aX 
2 =G	z	1Y 
2 NG	z	1Z  
2	1 
2	1
 
2	1
 
2	1s$   E+E7F+E47F Fc                  :   t         j                  j                  d       d} d}t        j                  t	        d|       D cg c]$  }t         j                  j                  |      |z   & c}      }t        j                  |      }|j                  t        j                  d|             }t         j                  j                  t        j                  |d         d       t         j                  j                  t        j                  |d         d       y c c}w )Nr   i	  i  r   F)r   r   r    rQ   ranger!   r   r$   r   r   testingr   isneginfisnan)n_dimensions	n_samplesrg   r0   r3   r   s         r:   test_logpdf_overflowr%    s     IINN1LI	U	<>  >299??9-3 >  
B b!D[[1l34FJJBKKq	2E:JJBHHVAY/7s   )Dc                  n   t         j                  j                  d       t         j                  j                  d      } t         j                  j	                  g d| j
                        }|j                         }t        j                  t        j                  |       |       t        ||dd       y )N90  d   rJ   )rF   g      $@r(  r>   +=atolr  )r   r   r    	lognormalchoicerK   copyr   r$   log10r   )valsr?   orig_weightss      r:   test_weights_intactr2    sx    IINN599C(Dii/dii@G<<>L	rxx~w7G\EBr<   c                  6   t         j                  j                  d       g d} g d}t        j                  | |      }t        j                  | t        j
                  |            }g d}t        |j                  |      |j                  |      dd       y )Nr'  )g?g      +@g      5@g     R@g     X@)r   r   re   r      r>   )g333333?   X   r)  r*  )r   r   r    r   r$   r   r   r&   )valuesr?   pdf_ipdf_fr0   s        r:   test_weights_integerr:    sr    IINN5*FGvw7Evrzz'/BCE	BENN2&NN2&U@r<   c                  t   d } t         j                  j                  d       d}t         j                  j                  |      }t         j                  j	                  |      }t        j                  |      } | |       t        j                  ||      } | |       t        j                  ddg      }t        j                  ddgddgg      }t         j                  j                  |||	      j                  }t        j                  |      }	 | |	       t        j                  ||      }
 | |
       y )
Nc                 j   d}| j                  |      }| j                  |      }t        t        t        ||d       d}| j                  ||      }| j                  ||      }t        ||d       t        j
                  j                  d      }| j                  ||      }t        j
                  j                  d      }| j                  ||      }t        ||d       t        t        j
                  d      r3t        j
                  j                  d      }| j                  ||       y y )	N   gvIh%<=)r+  i?  )r       r   i  )	resamplers   AssertionErrorr   r   r   RandomStatehasattrr   )
gkde_trailn_samplesamp1samp2r    rstate1rstate2r   s           r:   test_seed_subz test_seed.<locals>.test_seed_sub  s   ##H-##H-OUE	
 ##H4#8##H4#8u51))''S'1##H7#;))''S'1##H7#;u51 299m,))''-Cs3 -r<   r   r   r>   rF   rG   rH   rI   rJ   )
r   r   r    r@   r!   r   r$   rQ   rR   rS   )rI  r/   rC   xn_1dgkde_1dgkde_1d_weightedr"   rY   xn_2dgkde_2dgkde_2d_weighteds              r:   	test_seedrP    s    44 IINN7L		%BIIOOL)E  'G'))%<"# 88S#JDC:Sz23JII))$
)NPPE  'G'))%<"#r<   c                     t         j                  j                  d      } t        j                  g d      }t        j                  g dg dg dg      }| j	                  ||d      }	 t        j                  |j                         y # t        j                  $ rU d}t        t        j                  |      5  t        j                  |j                         d d d        Y y # 1 sw Y   Y y xY ww xY w)	Nl   SDG. )r   r      )re   r   r   )r   r   r   )r   r   r(  i  z:The data appears to lie in a lower-dimensional subspace...r   )r   r   r   rQ   rR   r   r$   rS   r   LinAlgErrorrs   )r   musigmadatar   s        r:   %test_singular_data_covariance_gh10205rW  G  s     ))

 3
4C	+	BHHj+{;<E""2ud3D'466" 'J6--S9tvv& :99's*   )B	 	0C19 C#C1#C-	(C1-C1c                  D   t         j                  j                  d      } | j                  t        j                  d      t        j
                  d      d      }d}t        j                  t        |      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nl   &8*c r   r   rJ   z9Number of dimensions is greater than number of samples...r   )r   r   r   rR   zeroseyer   r   rt   r   r$   )r   rvsr  s      r:   )test_fewer_points_than_dimensions_gh17436r\  V  sm     ))

 3
4C

!
!"((1+rvvayq
!
ACIG	z	13 
2	1	1s   7BB)/scipyr   r   r   numpyr   numpy.testingr   r   r   r	   r
   r   r   r   rs   r;   rD   markxslowr_   ra   rz   r~   r$   r   r   r   r   r   r   r   _ftypesparametrizer   r   r   r   r
  r  r  r%  r2  r:  rP  rW  r\  r   r<   r:   <module>rd     s   * * L L  *E>E@ $J $JN %J %JPO4O<#U'' #"U'' "-U'' -
!4H9 4*> J Gw.D$DE'*4 + F4./0/2)6 ) )8"!J 8 8"C
@/$d'
 r<   