Ë
    qwjOY  ã                   ón  — 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d ej(                  d	ej$                  j*                  g¬
«      g«      d„ «       Zej$                  j'                  dd ej(                  d	ej$                  j*                  g¬
«      g«      d„ «       Zd„ Zd„ Z G d„ dej4                  «      Z G d„ dej4                  «      Z G d„ dej4                  «      Zd„ Zd„ Zd„ Z d„ Z!g d¢Z"ej$                  j'                  de"ddgz   «      ej$                  j'                  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                  óD  — t         j                  j                  d«      } d}| j                  dd|«      }|j	                  «       }|j                  d¬«      }t        j                  |«      }t        j                  g d¢«      }|j                  t        j                  |j                  «      }}t         ||«      t        j                  j                  |d d …d f   ||¬«      j                  d¬	«      |j                   z  d
¬«       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-        |j1                  |«      |
dz  j                  «       |z  d¬«       t-        |j3                  ||dz  «      |
|z  j                  «       |z  d¬«       y )NéîÀ… éô  r   é   )Úddof©gš™™™™™¹?ç      à?gÍÌÌÌÌÌì?©ÚlocÚscaleéÿÿÿÿ©Úaxisç‚vIhÂ%,=©Úrtoléùÿÿÿé   éõ  é   ç{®Gáz„?r   ©Údecimalé   )ÚnpÚrandomÚdefault_rngÚnormalÚmeanÚstdr   Úgaussian_kdeÚasarrayÚdatasetÚsqrtÚ
covariancer   ÚnormÚpdfÚsumÚnÚlinspaceÚevaluater   Úintegrate_box_1dÚinfr   Úintegrate_boxÚintegrate_kdeÚintegrate_gaussian)ÚrngÚn_basesampleÚxnÚxnmeanÚxnstdÚgkdeÚxxr   r   ÚxsÚkdepdfÚnormpdfÚ	intervallÚprob1Úprob2s                  úb/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/scipy/stats/tests/test_kdeoth.pyÚtest_kde_1drI   
   s  € ä
�)‰)×
Ñ
 Ó
(€CØ€LØ	�‰�A�q˜,Ó	'€BØ�W‰W‹Y€FØ�F‰F˜ˆF‹N€Eô ×Ñ˜bÓ!€Dô 
�‰’OÓ	$€BØ—‘œrŸw™w t§¡Ó7ˆ€CÜÙˆR‹Ü�
‰
�‰�rš!˜T˜'‘{¨°5ˆÓ9×=Ñ=À2Ð=ÓFÈÏÉÑOØõô 
�‰�R˜˜CÓ	 €BØ�]‰]˜2Ó€FÜ�j‰j�n‰n˜R V°5ˆnÓ9€GØ�1‘˜˜1™‘€IäŒB�F‰F�F˜WÑ$ qÑ(Ó)¨)Ñ3°dÑ:Ô;Ø×!Ñ! &¬"¯&©&Ó1€EØ×!Ñ!¤2§6¡6 '¨6Ó2€EÜ˜˜s¨AÕ.Ü˜˜s¨AÕ.Ü˜×*Ñ*¨6´2·6±6Ó:¸EÈ2ÕNÜ˜×*Ñ*¬B¯F©F¨7°FÓ;¸UÈBÕOä˜×*Ñ*¨4Ó0Ø ™Ÿ™Ó)¨)Ñ3¸Qõ@ä˜×/Ñ/°¸¸q¹ÓAØ ™×,Ñ,Ó.¨yÑ8À!öEó    c            
      óÄ  — t         j                  j                  d«      } d}| j                  dd|«      }| j                  |«      }t        j                  ||¬«      }t        j
                  t        j                  ||z
  dz  |¬«      «      }t        j                  ||¬«      }t        j                  g d¢«      }|j                  t        j
                  |j                  «      }	}t        j                  j                  }
t         ||«      t        j                   |
|d d …d f   ||	¬«      |j                  z  d	¬
«      d¬«       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+        |j1                  ||dz  «      ||z  j                  «       |z  d¬«       y )Nr   r   r   r   ©Úweightsr    r   r   r   r   r   r   r   r   r   r!   r   r"   r$   )r%   r&   r'   r(   Úaverager.   r   r+   r,   r-   r/   r0   r1   r   r2   rM   r4   r5   r   r6   r7   r   r8   r9   r:   )r;   r<   r=   Úwnr>   r?   r@   rA   r   r   r1   rB   rC   rD   rE   rF   rG   s                    rH   Útest_kde_1d_weightedrP   1   sA  € ä
�)‰)×
Ñ
 Ó
(€CØ€LØ	�‰�A�q˜,Ó	'€BØ	�‰�LÓ	!€BÜ�Z‰Z˜ BÔ'€FÜ�G‰G”B—J‘J  6¡	¨A™~°rÔ:Ó;€Eô ×Ñ˜b¨"Ô-€Dô 
�‰’OÓ	$€BØ—‘œrŸw™w t§¡Ó7ˆ€Cä
�*‰*�.‰.€CÜÙˆR‹Ü
�‰‰s�2’a˜�g‘; C¨uÔ5¸¿¹ÑDÈ2ÔNØõô 
�‰�R˜˜CÓ	 €BØ�]‰]˜2Ó€FÜ�j‰j�n‰n˜R V°5ˆnÓ9€GØ�1‘˜˜1™‘€IäŒB�F‰F�F˜WÑ$ qÑ(Ó)¨)Ñ3°dÑ:Ô;Ø×!Ñ! &¬"¯&©&Ó1€EØ×!Ñ!¤2§6¡6 '¨6Ó2€EÜ˜˜s¨AÕ.Ü˜˜s¨AÕ.Ü˜×*Ñ*¨6´2·6±6Ó:¸EÈ2ÕNÜ˜×*Ñ*¬B¯F©F¨7°FÓ;¸UÈBÕOä˜×*Ñ*¨4Ó0Ø ™Ÿ™Ó)¨)Ñ3¸Qõ@ä˜×/Ñ/°¸¸q¹ÓAØ ™×,Ñ,Ó.¨yÑ8À!öErJ   r<   é   r   )Úmarksc           	      ó"  — t         j                  j                  d«      }t        j                  ddg«      }t        j                  ddgddgg«      }|j	                  ||| ¬«      j
                  }t        j                  |«      }t        j                  ddgd	d
gddgg«      }|d d …d d d …f   |j                  j
                  z
  }t        j                  j                  }t         ||j
                  «       |||j                  ¬«      j                  d¬«      |j                  z  d¬«       t        j                  j                  }	ddgddg}}
|
|j                  j
                  z
  ||j                  j
                  z
  }}t        |j!                  |
||¬«       |	|||j                  |¬«      j                  d¬«      |j                  z  d¬«       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|¬«      }t1        |dd¬ «       t1        |dd¬ «       t1        |j3                  |«      |dz  j                  «       |dz  z  d¬ «       t1        |j5                  ||«      ||z  j                  «       |dz  z  d¬ «       y )!Nr   ç      ð?ç      @ç       @ç      @©Úsizer   r    é   é   é   é   ©Úcovr   r   r   r   éþÿÿÿr   ©r;   ©Úlower_limitr_   r;   g�íµ ÷Æ >r   r   ù             @@r   ©r)   r_   r!   ç}Ã”%­I²Ôç}Ã”%­I²Tr   r"   )r%   r&   r'   ÚarrayÚmultivariate_normalÚTr   r+   r,   r-   r1   r   r/   r2   r3   Úcdfr8   ÚmgridÚvstackÚravelr5   ÚreshapeÚdstackr   r   r9   r:   )r<   r;   r)   r/   r=   r@   rA   Úargr1   rk   ÚloÚhiÚlo_Úhi_ÚxÚyÚgrid_coordsrC   rD   rE   ÚsmallÚlargerF   rG   s                           rH   Útest_kde_2dr{   \   s6  € ô �)‰)×
Ñ
 Ó
(€Cä�8‰8�S˜#�JÓ€DÜ—‘˜C ˜:¨¨S zÐ2Ó3€Jð 
×	 Ñ	   z¸Ð	 Ó	E×	GÑ	G€Bô ×Ñ˜bÓ!€Dô 
�‰�a˜�V˜a ˜V a¨ VÐ,Ó	-€BØ
ŠQ�’aˆZ‰.˜4Ÿ<™<Ÿ>™>Ñ
)€CÜ
×
#Ñ
#×
'Ñ
'€CÜÙˆR�T‰T‹
ÙˆC�T—_‘_Ô%×)Ñ)¨rÐ)Ó2°T·V±VÑ;Øõô ×
#Ñ
#×
'Ñ
'€CØ�"ˆX˜˜1�vˆ€BØ�D—L‘L—N‘NÑ" B¨¯©¯©Ñ$7ˆ€CÜØ×Ñ˜2˜r sÐÓ+ÙˆC˜S d§o¡o¸3Ô?×CÑCÈÐCÓLÈtÏvÉvÑUØõô �8‰8�B�q˜�I˜r ! D˜yÐ(Ñ)�D€A€qÜ—)‘)˜QŸW™W›Y¨¯©«	Ð2Ó3€KØ�]‰]˜;Ó'€FØ�^‰^˜C Ó%€Fä×'Ñ'×+Ñ+¬B¯I©I°q¸!°fÓ,=Ø15¸:ð ,ó G€Gà—‘“	˜!‘˜qŸw™w›y¨™|Ñ+€IäŒB�F‰F�F˜WÑ$ qÑ(Ó)¨Y¸©\Ñ:¸TÑAÔBà€EØ€EØ×Ñ  t¨A¡wÐ/°%¸°ÀSÐÓI€EØ×Ñ  u˜~°°t¸A±wÐ/?ÀSÐÓI€Eä˜˜s¨AÕ.Ü˜˜s¨AÕ.Ü˜×*Ñ*¨4Ó0Ø ™Ÿ™Ó)¨9°a©<Ñ8À!õEä˜×/Ñ/°°jÓAØ ™×,Ñ,Ó.°	¸1±Ñ=ÀqöJrJ   c                 ó\  — t         j                  j                  d«      }t        j                  ddg«      }t        j                  ddgddgg«      }|j	                  ||| ¬«      j
                  }|j                  | «      }t        j                  ||¬«      }t        j                  dd	gd
dgddgg«      }|d d …d d d …f   |j                  j
                  z
  }t        j                  j                  }	t         ||j
                  «      t        j                   |	||j                  ¬«      |j                  z  d¬«      d¬«       t        j                  j                   }
ddgddg}}||j                  j
                  z
  ||j                  j
                  z
  }}t        |j#                  |||¬«      t        j                   |
|||j                  |¬«      |j                  z  d¬«      d¬«       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
  }t1        t        j                  ||z
  d	z  «      |d	z  z  dk  «       d}d}|j#                  ||d   g||g|¬«      }|j#                  ||g||d   g|¬«      }t3        |d d¬!«       t3        |d d¬!«       t3        |j5                  |«      |d	z  j                  «       |d	z  z  d	¬!«       t3        |j7                  ||«      ||z  j                  «       |d	z  z  d	¬!«       y )"Nr   rT   rU   rV   rW   rX   rL   r   r    rZ   r[   r\   r]   r^   r   r   r   r   r`   r   ra   rb   gñhãˆµøÔ>r   r   rd   r   re   r!   rf   rg   r   r"   )r%   r&   ÚRandomStaterh   ri   rj   Úrandr   r+   r,   r-   r1   r   r2   r/   rM   rk   r8   rl   rm   rn   r5   ro   rp   r   r   r9   r:   )r<   r;   r)   r/   r=   rO   r@   rA   rq   r1   rk   rr   rs   rt   ru   rv   rw   rx   rC   rD   rE   ry   rz   rF   rG   s                            rH   Útest_kde_2d_weightedr   œ   sF  € ô �)‰)×
Ñ
 Ó
(€Cä�8‰8�S˜#�JÓ€DÜ—‘˜C ˜:¨¨S zÐ2Ó3€Jð 
×	 Ñ	   z¸Ð	 Ó	E×	GÑ	G€BØ	�‰�,Ó	€Bô ×Ñ˜b¨"Ô-€Dô 
�‰�a˜�V˜a ˜V a¨ VÐ,Ó	-€BØ
ŠQ�’aˆZ‰.˜4Ÿ<™<Ÿ>™>Ñ
)€CÜ
×
#Ñ
#×
'Ñ
'€CÜÙˆR�T‰T‹
Ü
�‰‰s�3˜DŸO™OÔ,¨t¯|©|Ñ;À"ÔEØõô ×
#Ñ
#×
'Ñ
'€CØ�"ˆX˜˜1�vˆ€BØ�D—L‘L—N‘NÑ" B¨¯©¯©Ñ$7ˆ€CÜØ×Ñ˜2˜r sÐÓ+Ü
�‰‰s�3 C¨T¯_©_À#ÔFØ�|‰|ñØ"$ô	&àõ	ô �8‰8�B�q˜�I˜r ! D˜yÐ(Ñ)�D€A€qÜ—)‘)˜QŸW™W›Y¨¯©«	Ð2Ó3€KØ�]‰]˜;Ó'€FØ�^‰^˜C Ó%€Fä×'Ñ'×+Ñ+¬B¯I©I°q¸!°fÓ,=Ø15¸:ð ,ó G€Gà—‘“	˜!‘˜qŸw™w›y¨™|Ñ+€IäŒB�F‰F�F˜WÑ$ qÑ(Ó)¨Y¸©\Ñ:¸TÑAÔBà€EØ€EØ×Ñ  t¨A¡wÐ/°%¸°ÀSÐÓI€EØ×Ñ  u˜~°°t¸A±wÐ/?ÀSÐÓI€Eä˜˜s¨AÕ.Ü˜˜s¨AÕ.Ü˜×*Ñ*¨4Ó0Ø ™Ÿ™Ó)¨9°a©<Ñ8À!õEä˜×/Ñ/°°jÓAØ ™×,Ñ,Ó.°	¸1±Ñ=ÀqöJrJ   c                  ó  — d„ } t         j                  j                  d«      }d}|j                  dd|«      }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[   )r%   Úpowerr3   Úd©Úkde_objs    rH   Úscotts_factorz0test_kde_bandwidth_method.<locals>.scotts_factorà   s$   € ä�x‰x˜Ÿ	™	 3¨¯	©	°!©Ñ#4Ó5Ð5rJ   r   é2   r   r   ©Ú	bw_methodr   r   é3   Úwrongstring©r%   r&   r'   r(   r   r+   Úfactorr4   r5   r   Úassert_raisesÚ
ValueError©r‡   r;   r<   r=   r@   Úgkde2Úgkde3rB   rC   Úkdepdf2Úkdepdf3s              rH   Útest_kde_bandwidth_methodr–   ß   sÒ   € ò6ô �)‰)×
Ñ
 Ó
(€CØ€LØ	�‰�A�q˜,Ó	'€Bô ×Ñ˜bÓ!€Dä×Ñ˜r¨]Ô;€Eä×Ñ˜r¨T¯[©[Ô9€Eä	�‰�R˜˜"Ó	€BØ�]‰]˜2Ó€FØ�n‰n˜RÓ €GÜ˜ Ô(Ø�n‰n˜RÓ €GÜ˜ Ô(ä”*œe×0Ñ0°"ÀÖNrJ   c                  ó  — d„ } t         j                  j                  d«      }d}|j                  dd|«      }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 r‚   )r%   rƒ   Úneffr„   r…   s    rH   r‡   z9test_kde_bandwidth_method_weighted.<locals>.scotts_factorú   s$   € ä�x‰x˜Ÿ™ c¨7¯9©9°Q©;Ñ&7Ó8Ð8rJ   r   rˆ   r   r   r‰   r   r   r‹   rŒ   r�   r‘   s              rH   Ú"test_kde_bandwidth_method_weightedrš   ù   sÒ   € ò9ô �)‰)×
Ñ
 Ó
(€CØ€LØ	�‰�A�q˜,Ó	'€Bô ×Ñ˜bÓ!€Dä×Ñ˜r¨]Ô;€Eä×Ñ˜r¨T¯[©[Ô9€Eä	�‰�R˜˜"Ó	€BØ�]‰]˜2Ó€FØ�n‰n˜RÓ €GÜ˜ Ô(Ø�n‰n˜RÓ €GÜ˜ Ô(ä”*œe×0Ñ0°"ÀÖNrJ   c                   ó   — e Zd Zd„ Zy)Ú_kde_subclass1c                 óÀ   — t        j                  |«      | _        | j                  j                  \  | _        | _        | j                  | _        | j                  «        y ©N)	r%   Ú
atleast_2dr-   Úshaper„   r3   r‡   Úcovariance_factorÚ_compute_covariance)Úselfr-   s     rH   Ú__init__z_kde_subclass1.__init__  sC   € Ü—}‘} WÓ-ˆŒØŸ™×+Ñ+‰ˆŒ�”Ø!%×!3Ñ!3ˆÔØ× Ñ Õ"rJ   N)Ú__name__Ú
__module__Ú__qualname__r¤   © rJ   rH   rœ   rœ     s   „ ó#rJ   rœ   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )Ú_kde_subclass2c                 óF   •— | j                   | _        t        ‰| �  |«       y rž   )r‡   r¡   Úsuperr¤   )r£   r-   Ú	__class__s     €rH   r¤   z_kde_subclass2.__init__   s   ø€ Ø!%×!3Ñ!3ˆÔÜ‰Ñ˜Õ!rJ   )r¥   r¦   r§   r¤   Ú__classcell__)r­   s   @rH   rª   rª     s   ø„ ÷"ð "rJ   rª   c                   ó   — e Zd Zd„ Zy)Ú_kde_subclass4c                 ó(   — d| j                  «       z  S )Nr   )Úsilverman_factor)r£   s    rH   r¡   z _kde_subclass4.covariance_factor&  s   € Ø�T×*Ñ*Ó,Ñ,Ð,rJ   N)r¥   r¦   r§   r¡   r¨   rJ   rH   r°   r°   %  s   „ ó-rJ   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   r[   r\   ©Údtypeéöÿÿÿé
   rˆ   ©Únum©Únulp)gœn—,°?gÇ»e‡?°?gWÍ[3®?g¥a úà)¶?gKd8ú;´?r]   r"   c                  ó   •— ‰ j                   S rž   )rŽ   )Úkdes   €rH   Ú<lambda>z/test_gaussian_kde_subclassing.<locals>.<lambda>H  s	   ø€  S§Z¢ZrJ   )r%   rh   Úfloatr4   r   r+   rœ   r
   rª   r°   r	   r¡   r¢   )Úx1rB   ÚysÚkde1Úy1Úkde2Úy2Úkde4Úy4Ú
y_expectedÚkde5Úy5r¿   s               @rH   Útest_gaussian_kde_subclassingrÍ   *  sÙ   ø€ Ü	�‰Ò#¬5Ô	1€BÜ	�‰�S˜" "Ô	%€Bô ×
Ñ
˜RÓ
 €CÙ	ˆR‹€Bô ˜"Ó€DÙ	ˆb‹€BÜ" 2 r°Õ3ô ˜"Ó€DÙ	ˆb‹€BÜ" 2 r°Õ3ô ˜"Ó€DÙ	ˆb‹€BÚM€Jä˜j¨"°aÕ8ð €DÛ/€DÔØ×ÑÔÙ	ˆb‹€BÜ" 2 r°Ö3rJ   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=¨?gùHŒ–êŸ«?g8(H	MT«?gÄ²™CR‘?r   r‰   Úscottr   r"   )r%   rh   rÁ   r4   r   r+   Úset_bandwidthr	   )rÂ   rB   rÊ   r¿   rÇ   s        rH   Ú$test_gaussian_kde_covariance_cachingrÑ   N  sv   € Ü	�‰Ò#¬5Ô	1€BÜ	�‰�S˜" !Ô	$€Bò N€Jô ×
Ñ
˜RÓ
 €CØ×Ñ ÐÔ$Ø×Ñ ÐÔ(Ù	ˆR‹€Bä˜j¨"°aÖ8rJ   c                  óD  — t        j                  g d¢t        ¬«      } t        j                  ddd¬«      }t	        j
                  | «      }|j                  |_        |j                  «         ||«      }t	        j
                  | d¬«      } ||«      }t        ||d¬	«       y
)zÞUgly, 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¹   rˆ   rº   Ú	silvermanr‰   r¼   N)
r%   rh   rÁ   r4   r   r+   r²   r¡   r¢   r
   )rÂ   rB   r¿   rÅ   rÆ   rÇ   s         rH   Útest_gaussian_kde_monkeypatchrÔ   ^  s…   € ô
 
�‰Ò#¬5Ô	1€BÜ	�‰�S˜" "Ô	%€Bô ×
Ñ
˜RÓ
 €CØ×0Ñ0€CÔØ×ÑÔÙ	ˆR‹€Bô ×Ñ˜b¨KÔ8€DÙ	ˆb‹€Bä" 2 r°Ö3rJ   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      rH   Útest_kde_integer_inputrÙ   s  s4   € ä	�‰�1‹€BÜ
×
Ñ
˜RÓ
 €CÚM€JÜ™c "›g z¸1Ö=rJ   )Ú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Ó   rZ   c              3   ó$   K  — | ]  }|d u –— Œ
 y ­wrž   r¨   )Ú.0Údts     rH   Ú	<genexpr>z(test_kde_output_dtype.<locals>.<genexpr>Š  s   è ø€ Ð
,¡˜"ˆ2�Œ:¡ùs   ‚r\   r¶   )rŠ   rM   )Úgetattrr%   ÚanyÚpytestÚskiprØ   r   r+   r·   Úresult_typerÛ   rŽ   )r·   rà   ÚbwrM   r-   ÚkÚpointsÚresults           rH   Útest_kde_output_dtyperï   ~  sÚ   € ô ”B˜˜tÓ$€EàÐ(Ñ(Ø‰äœ"˜g tÓ,ˆÙ"‰W�QŒZ¨ˆä
Ñ
, ¨¡Ó
,Ô,Ü�‰Œä�i‰i˜ Ô'€GÜ�i‰i˜ Ô'€GÜ×Ñ˜7¨b¸'ÔB€AÜ�Y‰Y�q Ô&€FÙˆv‹Y€Fà�<‰<œ2Ÿ>™>¨'°6¼2¿:¹:ÀgÓ;NØ*+¯(©(ó4ò 4ð 4ñ 4rJ   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	   ›FÃgçu	\–U.˜lt&0 )r    r¹   )rZ   r¹   z0points have dimension 3, dataset has dimension 2©Úmatch)
r%   r&   r'   Ústandard_normalr   r+   rè   r   r�   Úlogpdf)r;   r=   r@   rB   Úmsgs        rH   Útest_pdf_logpdf_validationrö   —  sq   € Ü
�)‰)×
Ñ
Ð FÓ
G€CØ	×	Ñ	˜WÓ	%€BÜ×Ñ˜bÓ!€DØ	×	Ñ	˜WÓ	%€Bà
<€CÜ	�‰”z¨Ö	-Ø�‰�BŒ÷ 
.×	-Ñ	-ús   Á4BÂBc                  ó<  — t         j                  j                  d«      } d}| j                  dd|«      }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   rˆ   r   éñÿÿÿé   é   r"   )r%   r&   r'   r(   r   r+   r4   r5   r1   r   Úlogrô   )	r;   r<   r=   r@   rB   r1   Úpdf2rô   Úlogpdf2s	            rH   Útest_pdf_logpdfrþ   ¢  sà   € Ü
�)‰)×
Ñ
 Ó
"€CØ€LØ	�‰�A�q˜,Ó	'€Bô ×Ñ˜bÓ!€Dä	�‰�S˜"˜bÓ	!€BØ
�-‰-˜Ó
€CØ�8‰8�B‹<€DÜ˜˜T¨2Õ.ä�V‰V�C‹[€FØ�k‰k˜"‹o€GÜ˜ °Õ4ô ×Ñ˜bÓ!€DÜ
�&‰&�—‘˜rÓ"Ó
#€CØ�;‰;�r‹?€DÜ˜˜T¨2Ö.rJ   c                  óÔ  — t         j                  j                  d«      } d}| j                  dd|«      }| j                  |«      }t	        j
                  ||¬«      }t        j                  ddd«      }|j                  |«      }|j                  |«      }t        ||d¬«       t        j                  |«      }|j                  |«      }	t        ||	d¬«       t         j                  j                  d	«      } t	        j
                  || j                  t        |«      «      ¬«      }t        j                  |j                  |«      «      }|j                  |«      }t        ||d¬«       y )
Nr   rˆ   r   rL   rø   rù   rú   r"   l   qX? )r%   r&   r'   r(   r   r+   r4   r5   r1   r   rû   rô   Úlen)
r;   r<   r=   rO   r@   rB   r1   rü   rô   rý   s
             rH   Útest_pdf_logpdf_weightedr  º  s  € Ü
�)‰)×
Ñ
 Ó
"€CØ€LØ	�‰�A�q˜,Ó	'€BØ	�‰�LÓ	!€Bô ×Ñ˜b¨"Ô-€Dä	�‰�S˜"˜bÓ	!€BØ
�-‰-˜Ó
€CØ�8‰8�B‹<€DÜ˜˜T¨2Õ.ä�V‰V�C‹[€FØ�k‰k˜"‹o€GÜ˜ °Õ4ô �)‰)×
Ñ
 
Ó
+€CÜ×Ñ˜b¨#¯*©*´S¸³WÓ*=Ô>€DÜ
�&‰&�—‘˜rÓ"Ó
#€CØ�;‰;�r‹?€DÜ˜˜T¨2Ö.rJ   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‹& rˆ   r¹   rX   rZ   )	r   r    rZ   r[   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%   Úconcatenater1   )rv   Ú
dimensionsr¿   Úpoints    €€€rH   Úfz<test_marginal_1_axis.<locals>.marginal_pdf_single.<locals>.fâ  s/   ø€ Ü—‘   U¨:Ñ%6Ð7Ó8ˆAØ—7‘7˜1“:˜a‘=Ð rJ   r   )r   Úquadr%   r7   ©r  r  r
  r¿   s   ` €€rH   Úmarginal_pdf_singlez1test_marginal_1_axis.<locals>.marginal_pdf_singleá  s,   ù€ ö	!ô �~‰~˜a¤"§&¡& ¬"¯&©&Ó1°!Ñ4Ð4rJ   c                 ó4   •— t        j                  ‰d| ¬«      S )Nr   ©r   Úarr©r%   Úapply_along_axis)rí   r  s    €rH   Úmarginal_pdfz*test_marginal_1_axis.<locals>.marginal_pdfç  s   ø€ Ü×"Ñ"Ð#6¸QÀFÔKÐKrJ   ç�íµ ÷Æ°>r   ©
r%   r&   r'   r(   rh   r   r+   Úmarginalr1   r   )r;   Ún_dataÚn_dimr-   rí   r  r1   r  Úrefr
  r¿   r  s            @@@rH   Útest_marginal_1_axisr  Ô  s­   ú€ Ü
�)‰)×
Ñ
Ð 3Ó
4€CØ€FØ€EØ�j‰j˜u f˜oˆjÓ.€GØ�Z‰Z˜e Q˜ZˆZÓ(€Fä—‘Ò5Ó6€Jä
×
Ñ
˜WÓ
%€CØ�|‰|˜JÓ'€HØ
�,‰,�v˜jÑ)Ó
*€Cõ5ôLñ �vÓ
€Cä�C˜ 4Ö(rJ   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  é   r[   rX   rZ   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%   rh   r1   )rw   rv   ÚwÚzr
  r¿   r  s       €€€rH   r  zRtest_marginal_2_axis.<locals>.marginal_pdf.<locals>.marginal_pdf_single.<locals>.fÿ  s9   ø€ Ø˜ZÑ(‘��1Ü—H‘H˜a  A q˜\Ó*�Ø—w‘w˜q“z !‘}Ð$rJ   r   )r   Údblquadr%   r7   r  s   ` €€rH   r  zGtest_marginal_2_axis.<locals>.marginal_pdf.<locals>.marginal_pdf_singleþ  s<   ù€ ö%ô ×$Ñ$ Q¬¯©¨´·±¼"¿&¹&¸Ä"Ç&Á&ÓIÈ!ÑLÐLrJ   r   r  r  )rí   r  r
  r¿   s     €€rH   r  z*test_marginal_2_axis.<locals>.marginal_pdfý  s!   ø€ õ	Mô ×"Ñ"Ð#6¸QÀFÔKÐKrJ   r  r   r  )r;   r  r  r-   rí   r  r1   r  r  r
  r¿   s            @@rH   Útest_marginal_2_axisr%  ï  s«   ù€ ä
�)‰)×
Ñ
Ð 3Ó
4€CØ€FØ€EØ�j‰j˜u f˜oˆjÓ.€GØ�Z‰Z˜e Q˜ZˆZÓ(€Fä—‘˜1˜a˜&Ó!€Jä
×
Ñ
˜WÓ
%€CØ�|‰|˜JÓ'€HØ
�,‰,�v˜jÑ)Ó
*€CõLñ �vÓ
€Cä�C˜ 4Ö(rJ   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  r[   rX   rZ   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  r1   r   rè   r   r�   )r;   r  r  r-   rí   r¿   Údimensions1Ú	marginal1Úpdf1Údimensions2Ú	marginal2rü   Úmessages                rH   Útest_marginal_ivr.    sN  € ä
�)‰)×
Ñ
Ð 3Ó
4€CØ€FØ€EØ�j‰j˜u f˜oˆjÓ.€GØ�Z‰Z˜e Q˜ZˆZÓ(€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Ð	1ús$   ÃE+ÄE7ÅFÅ+E4Å7F ÆFc            
      ó"  — t         j                  j                  d«      } d}d}t        j                  t	        d|«      D �cg c]  }| j                  dd|«      |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'   rh   Úranger(   r   r+   rô   rØ   Útestingr   ÚisneginfÚisnan)r;   Ún_dimensionsÚ	n_samplesr3   r=   r@   rô   s          rH   Útest_logpdf_overflowr6  1  sÙ   € ô �)‰)×
Ñ
 Ó
"€CØ€LØ€IÜ	�‰¼eØ	ˆ<ô?ó ñ ?¸�3—:‘:˜a  IÓ.°!Ó4ð ?ñ ó 
€Bô ×Ñ˜bÓ!€Dà�[‰[œŸ™ 1 lÓ3Ó4€FÜ‡J�J×ÑœBŸK™K¨¨q©	Ó2°EÔ:Ü‡J�J×ÑœBŸH™H V¨A¡YÓ/°Õ7ùòs   ÁDc                  ó6  — t         j                  j                  d«      } | j                  d¬«      }| j	                  g d¢|j
                  ¬«      }|j                  «       }t        j                  t        j                  |«      |¬«       t        ||dd¬«       y )Ni90  éd   rX   )rT   g      $@r8  rL   ç›+¡†›„=©Úatolr   )r%   r&   r'   Ú	lognormalÚchoicerY   Úcopyr   r+   Úlog10r   )r;   ÚvalsrM   Úorig_weightss       rH   Útest_weights_intactrB  C  sn   € ä
�)‰)×
Ñ
 Ó
&€CØ�=‰=˜cˆ=Ó"€DØ�j‰jÒ)°·	±	ˆjÓ:€GØ—<‘<“>€Lä	×Ñ”r—x‘x “~¨wÕ7Ü�G˜\°¸EÖBrJ   c                  óø   — g d¢} g d¢}t        j                  | |¬«      }t        j                  | t        j                  |«      ¬«      }g d¢}t	        |j                  |«      |j                  |«      dd¬«       y )N)gš™™™™™É?g      +@g      5@g     ÀR@g     ÀX@)r   r    r[   r  é   rL   )g333333Ó?é   éX   r9  r:  )r   r+   r%   rÛ   r   r5   )ÚvaluesrM   Úpdf_iÚpdf_fr=   s        rH   Útest_weights_integerrJ  N  sb   € â*€FÚ€GÜ×Ñ˜v¨wÔ7€EÜ×Ñ˜v¬r¯z©z¸'Ó/BÔC€Eâ	€BÜ�E—N‘N 2Ó&Ø—N‘N 2Ó&¨U¸ö@rJ   c                  ó$  — d„ } t         j                  j                  d«      }d}|j                  |«      }|j                  dd|«      }t	        j
                  |«      } | |«       t	        j
                  ||¬«      } | |«       t        j                  ddg«      }t        j                  dd	gd	d
gg«      }|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éÈ   g‚vIhÂ%<=)r;  i?  )ÚseedéŠ   r'   iÒ  )	Úresampler�   ÚAssertionErrorr   r%   r&   r}   Úhasattrr'   )Ú
gkde_trailÚn_sampleÚsamp1Úsamp2rN  Úrstate1Úrstate2r;   s           rH   Útest_seed_subz test_seed.<locals>.test_seed_sub\  s  € Øˆà×#Ñ# HÓ-ˆØ×#Ñ# HÓ-ˆÜÜœO¨U°EÀõ	
ð ˆØ×#Ñ# H°4Ð#Ó8ˆØ×#Ñ# H°4Ð#Ó8ˆÜ˜˜u¨5Õ1ä—)‘)×'Ñ'¨SÐ'Ó1ˆØ×#Ñ# H°7Ð#Ó;ˆÜ—)‘)×'Ñ'¨SÐ'Ó1ˆØ×#Ñ# H°7Ð#Ó;ˆÜ˜˜u¨5Õ1ô ”2—9‘9˜mÔ,ä—)‘)×'Ñ'¨Ó-ˆCØ×Ñ ¨sÐÕ3ð -rJ   r   r   r   r   rL   rT   rU   rV   rW   rX   )	r%   r&   r'   r(   r   r+   rh   ri   rj   )rY  r;   r<   rO   Úxn_1dÚgkde_1dÚgkde_1d_weightedr)   r/   Úxn_2dÚgkde_2dÚgkde_2d_weighteds               rH   Ú	test_seedr`  Z  sö   € ò4ô4 �)‰)×
Ñ
 Ó
(€CØ€LØ	�‰�LÓ	!€Bà�J‰J�q˜!˜\Ó*€Eä× Ñ  Ó'€GÙ�'ÔÜ×)Ñ)¨%¸Ô<ÐÙÐ"Ô#ô �8‰8�S˜#�JÓ€DÜ—‘˜C ˜:¨¨S zÐ2Ó3€JØ×#Ñ# D¨*¸<Ð#ÓH×JÑJ€Eä× Ñ  Ó'€GÙ�'ÔÜ×)Ñ)¨%¸Ô<ÐÙÐ"Õ#rJ   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¹   rQ   )r[   r¹   r   )r¹   rú   r   )r   r   r8  iè  z:The data appears to lie in a lower-dimensional subspace...rñ   )r%   r&   r'   rh   ri   r   r+   rj   r   ÚLinAlgErrorr�   )r;   ÚmuÚsigmaÚdatarõ   s        rH   Ú%test_singular_data_covariance_gh10205rf  Œ  s¯   € ô �)‰)×
Ñ
Ð 3Ó
4€CÜ	�‰’+Ó	€BÜ�H‰H’j¢+ª{Ð;Ó<€EØ×"Ñ" 2 u¨dÓ3€Dð'Ü×Ñ˜4Ÿ6™6Õ"øÜ×Ñò 'ØJˆÜœ6×-Ñ-°SÖ9Ü×Ñ˜tŸv™vÔ&÷ :×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 rZ   r\   rX   z9Number of dimensions is greater than number of samples...rñ   )r%   r&   r'   ri   ÚzerosÚeyerè   r   r�   r   r+   )r;   Úrvsr-  s      rH   Ú)test_fewer_points_than_dimensions_gh17436rk  ›  sm   € ô �)‰)×
Ñ
Ð 3Ó
4€CØ
×
!Ñ
!¤"§(¡(¨1£+¬r¯v©v°a«y¸qÐ
!Ó
A€CØI€GÜ	�‰”z¨Ö	1Ü×Ñ˜3Ô÷ 
2×	1Ñ	1ús   Á7BÂB)0Úscipyr   r   r   Únumpyr%   Únumpy.testingr   r   r   r	   r
   r   rè   r   r�   rI   rP   ÚmarkÚparametrizeÚparamÚxslowr{   r   r–   rš   r+   rœ   rª   r°   rÍ   rÑ   rÔ   rÙ   Ú_ftypesrï   rö   rþ   r  r  r%  r.  r6  rB  rJ  r`  rf  rk  r¨   rJ   rH   Ú<module>rt     sä  ðß *Ñ *Û ÷L÷ Ló Ý *ò$EòN(EðV ‡�×Ñ˜àØ(˜FŸL™L¨°V·[±[×5FÑ5FÐ4GÔHðóñ7Jóð7Jðt ‡�×Ñ˜àØ(˜FŸL™L¨°V·[±[×5FÑ5FÐ4GÔHðóñ:Jóð:JòzOò4Oô<#�U×'Ñ'ô #ô"�U×'Ñ'ô "ô-�U×'Ñ'ô -ò
!4òH9ò 4ò*>ò J€ð ‡�×Ñ˜ G¨w¸Ð.DÑ$DÓEØ‡�×Ñ˜ 'Ó*ñ4ó +ó Fð4ò.ò/ò0/ò4)ð6 ‡�×Ññ)ó ð)ò8"!ðJ ‡�×Ññ8ó ð8ò"Cò	@ò/$òd'ó
 rJ   