Ë
    âQ(hùO  ã                   ó²  — 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   é   ç{®Gáz„?ç      à?©Ú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              ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/stats/tests/test_kdeoth.pyÚtest_kde_1dr;   
   s¥  € ä‡I�I‡N�N�7ÔØ€LÜ	�‰�‰˜Ó	&€BØ�W‰W‹Y€FØ�F‰F˜ˆF‹N€Eô ×Ñ˜bÓ!€Dô 
�‰�R˜˜#Ó	€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} 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Ð  € ä‡I�I‡N�N�7ÔØ€LÜ	�‰�‰˜Ó	&€BÜ	�‰�‰˜Ó	%€BÜ�Z‰Z˜ BÔ'€FÜ�G‰G”B—J‘J  6¡	¨A™~°rÔ:Ó;€Eô ×Ñ˜b¨"Ô-€Dô 
�‰�R˜˜#Ó	€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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²Ôç}Ã”%­I²Tr   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  € ô ‡I�I‡N�N�7ÔØ€Lä�8‰8�S˜#�JÓ€DÜ—‘˜C ˜:¨¨S zÐ2Ó3€Jô 
�‰×	&Ñ	& t¨Z¸lÐ	&Ó	K×	MÑ	M€Bô ×Ñ˜bÓ!€Dô �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Ð/°%¸°Ó@€EØ×Ñ  u˜~°°t¸A±wÐ/?Ó@€Eä˜˜s¨AÕ.Ü˜˜s¨AÕ.Ü˜×*Ñ*¨4Ó0Ø ™Ÿ™Ó)¨9°a©<Ñ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*  € ô ‡I�I‡N�N�7ÔØ€Lä�8‰8�S˜#�JÓ€DÜ—‘˜C ˜:¨¨S zÐ2Ó3€Jô 
�‰×	&Ñ	& t¨Z¸lÐ	&Ó	K×	MÑ	M€BÜ	�‰�‰˜Ó	%€Bô ×Ñ˜b¨"Ô-€Dô �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Ð/°%¸°Ó@€EØ×Ñ  u˜~°°t¸A±wÐ/?Ó@€Eä˜˜s¨AÕ.Ü˜˜s¨AÕ.Ü˜×*Ñ*¨4Ó0Ø ™Ÿ™Ó)¨9°a©<Ñ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$   € ä�x‰x˜Ÿ	™	 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ô ‡I�I‡N�N�7ÔØ€LÜ	�‰�‰˜Ó	&€Bô ×Ñ˜bÓ!€Dä×Ñ˜r¨]Ô;€Eä×Ñ˜r¨T¯[©[Ô9€Eä	�‰�R˜˜"Ó	€BØ�]‰]˜2Ó€FØ�n‰n˜RÓ €GÜ˜ Ô(Ø�n‰n˜RÓ €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$   € ä�x‰x˜Ÿ™ c¨7¯9©9°Q©;Ñ&7Ó8Ð8r<   r   rl   rm   r   r   ro   rp   rq   ru   s
             r:   Ú"test_kde_bandwidth_method_weightedr~   ´   sÎ   € ò9ô ‡I�I‡N�N�7ÔØ€LÜ	�‰�‰˜Ó	&€Bô ×Ñ˜bÓ!€Dä×Ñ˜r¨]Ô;€Eä×Ñ˜r¨T¯[©[Ô9€Eä	�‰�R˜˜"Ó	€BØ�]‰]˜2Ó€FØ�n‰n˜RÓ €GÜ˜ Ô(Ø�n‰n˜RÓ €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)gœn—,°?gÇ»e‡?°?gWÍ[3®?g¥a úà)¶?gKd8ú;´?é   r   c                  ó   •— ‰ j                   S r‚   )rr   )Úkdes   €r:   ú<lambda>z/test_gaussian_kde_subclassing.<locals>.<lambda>  s   ø€  S§Z¡Z€ r<   )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Ô	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°Ö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=¨?gùHŒ–êŸ«?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Ô	1€BÜ	�‰�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
)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Ÿ   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Ô	1€BÜ	�‰�S˜" "Ô	%€Bô ×
Ñ
˜RÓ
 €CØ×0Ñ0€CÔØ×ÑÔÙ	ˆR‹€Bô ×Ñ˜b¨KÔ8€DÙ	ˆb‹€Bä" 2 r°Ö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ÚM€JÜ™c "›g z¸1Ö=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àÐ(Ñ(Ø‰äœ"˜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ñ 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	   ›FÃgçu	\–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  sz   € Ü
�)‰)×
Ñ
Ð FÓ
G€CØ	×	Ñ	˜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Ü   € Ü‡I�I‡N�N�1ÔØ€LÜ	�‰�‰˜Ó	&€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Ö.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  € Ü‡I�I‡N�N�1ÔØ€LÜ	�‰�‰˜Ó	&€BÜ	�‰�‰˜Ó	%€Bô ×Ñ˜b¨"Ô-€Dä	�‰�S˜"˜bÓ	!€BØ
�-‰-˜Ó
€CØ�8‰8�B‹<€DÜ˜˜T¨2Õ.ä�V‰V�C‹[€FØ�k‰k˜"‹o€GÜ˜ °Õ4ô ×Ñ˜b¬"¯)©)¯.©.¼¸R»Ó*AÔB€DÜ
�&‰&�—‘˜rÓ"Ó
#€CØ�;‰;�r‹?€DÜ˜˜T¨2Ö.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Ó8ˆAØ—7‘7˜1“:˜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   ø€ Ü×"Ñ"Ð#6¸QÀFÔ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Ó
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Ö(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Ü—H‘H˜a  A q˜\Ó*�Ø—w‘w˜q“z !‘}Ð$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ô ×"Ñ"Ð#6¸QÀFÔKÐKr<   r  r  r  )rÞ   r  r  r„   rÕ   r  r(   r   r	  rô   r¦   s            @@r:   Ú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Ö(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  Æ  se  € ä
�)‰)×
Ñ
Ð 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Ô÷ð =€GÜ	�‰”z¨Ô	1ñ  Ø�‰’YÔ÷ ð N€GÜ	�‰”z¨Ô	1ñ !Ø�‰’ZÔ ÷!ð !÷ð ú÷
 ð  ú÷
!ð !ús$   Ã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Ë   € ô ‡I�I‡N�N�1ÔØ€LØ€IÜ	�‰¼UØ	ˆ<ó>ö ¸”2—9‘9—?‘? 9Ó-°Ó3ò ó 
€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                  ón  — t         j                  j                  d«       t         j                  j                  d¬«      } t         j                  j	                  g d¢| j
                  ¬«      }|j                  «       }t        j                  t        j                  | «      |¬«       t        ||dd¬«       y )Né90  éd   rJ   )rF   g      $@r(  r>   ç›+¡†›„=©Úatolr  )r   r   r    Ú	lognormalÚchoicerK   Úcopyr   r$   Úlog10r   )Úvalsr?   Úorig_weightss      r:   Útest_weights_intactr2  ý  sx   € ä‡I�I‡N�N�5ÔÜ�9‰9×Ñ CÐÓ(€DÜ�i‰i×ÑÒ/°d·i±iÐÓ@€GØ—<‘<“>€Lä	×Ñ”r—x‘x “~¨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   € ä‡I�I‡N�N�5ÔÚ*€FÚ€GÜ×Ñ˜v¨wÔ7€EÜ×Ñ˜v¬r¯z©z¸'Ó/BÔC€Eâ	€BÜ�E—N‘N 2Ó&Ø—N‘N 2Ó&¨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éÈ   g‚vIhÂ%<=)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Ó-ˆÜÜœ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ð -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ú   € ò4ô4 ‡I�I‡N�N�7ÔØ€LÜ	�‰�‰˜Ó	%€Bä�I‰I�O‰O˜LÓ)€Eä× Ñ  Ó'€GÙ�'ÔÜ×)Ñ)¨%¸Ô<ÐÙÐ"Ô#ô �8‰8�S˜#�JÓ€DÜ—‘˜C ˜:¨¨S zÐ2Ó3€JÜ�I‰I×)Ñ)¨$°
ÀÐ)ÓN×PÑP€Eä× Ñ  Ó'€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Ó
4€CÜ	�‰’+Ó	€BÜ�H‰H’j¢+ª{Ð;Ó<€EØ×"Ñ" 2 u¨dÓ3€Dð'Ü×Ñ˜4Ÿ6™6Õ"øÜ×Ñò 'ØJˆÜœ6×-Ñ-°SÔ9ñ 	'Ü×Ñ˜tŸv™vÔ&÷	'÷ 	'ó 	'úð'ú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  sv   € ô �)‰)×
Ñ
Ð 3Ó
4€CØ
×
!Ñ
!¤"§(¡(¨1£+¬r¯v©v°a«y¸qÐ
!Ó
A€CØI€GÜ	�‰”z¨Ô	1ñ  Ü×Ñ˜3Ô÷ ÷  ñ  ús   Á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×'Ñ'ô -ò
!4òH9ò 4ò*>ò J€ð ‡�×Ñ˜ G¨w¸Ð.DÑ$DÓEØ‡�×Ñ˜ 'Ó*ñ4ó +ó Fð4ò.ò/ò0/ò2)ð6 ‡�×Ññ)ó ð)ò8"!ðJ ‡�×Ññ8ó ð8ò"Cò
@ò/$òd'ó
 r<   