§
    µ³Ùgò#  ã                   óè   — d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZmZmZ eej                             d	¦  «        gZej        j        Z G d
„ d¦  «        ZdS )é    N)Úsuppress_warnings)Ú	variation)Ú	AxisError)Úarray_api_compatible)Úis_numpy)Úxp_assert_equalÚxp_assert_close)Útoo_small_nd_omitÚtoo_small_nd_not_omitÚSmallSampleWarningÚskip_xp_backendsc                   óŒ  — e Zd ZdZd„ Zej                             dddg¦  «        d„ ¦   «         Zd„ Z	ej                             dd	e
j        fd
 e
j        d¦  «        dz  fg¦  «         edd¬¦  «        d„ ¦   «         ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        ej                             dd e
j        d¦  «        fd e
j        de
j        ¬¦  «        fg¦  «        d„ ¦   «         ¦   «         Z edd¬¦  «        ej                             dde
j        fde
j        fg¦  «        d„ ¦   «         ¦   «         Z edd¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Zd „ Zd!„ Zej                             d"d#gd$z  dd%e
j        d&gg¦  «        d'„ ¦   «         Zej                             ddg fde
j        gd(z  fd)e
j        fg¦  «        d*„ ¦   «         Zd+„ Z edd¬¦  «        d,„ ¦   «         Z edd¬¦  «        ej                             d-d	d
g¦  «        d.„ ¦   «         ¦   «         Z edd¬¦  «        ej                             d/d e
j        d0¦  «         e
j        d1¦  «        e
j        de
j        d#e
j        gfdd2 e
j        d3¦  «        e
j        de
j        de
j        gfd% e
j        d2¦  «         e
j        d4¦  «        e
j        e
j        e
j        de
j        gfg¦  «        d5„ ¦   «         ¦   «         Z  edd¬¦  «        d6„ ¦   «         Z!d)S )7ÚTestVariationz.
    Test class for scipy.stats.variation
    c                 ó¾   — |                      d¦  «        }t          t          |d¬¦  «        |                     t	          j        d¦  «        dz  ¦  «        ¦  «         d S )Nç      "@é   ©Úddofg      @é   )Úaranger	   r   ÚasarrayÚmathÚsqrt©ÚselfÚxpÚxs      úV/granary/edev/quantum/lib/python3.11/site-packages/scipy/stats/tests/test_variation.pyÚ	test_ddofzTestVariation.test_ddof   sM   € Ø�IŠI�c‰NŒNˆÝ�	 !¨!Ð,Ñ,Ô,¨b¯jªj½¼À4¹¼ÈÑ9JÑ.KÔ.KÑLÔLÐLÐLÐLó    Úsgnr   éÿÿÿÿc                 óÖ   — |                      g d¢¦  «        }t          ||z  ¦  «        }|                      |t          j        d¦  «        z  dz  ¦  «        }t	          ||d¬¦  «         d S )N©ç      ð?ç       @ç      @ç      @g      @é   é   g»½×Ùß|Û=)Úrtol)r   r   r   r   r	   )r   r!   r   r   ÚvÚexpecteds         r   Ú	test_signzTestVariation.test_sign   si   € à�JŠJÐ+Ð+Ð+Ñ,Ô,ˆÝ�c˜!‘eÑÔˆØ—:’:˜c¥$¤)¨A¡,¤,Ñ.¨qÑ0Ñ1Ô1ˆÝ˜˜8¨%Ð0Ñ0Ô0Ð0Ð0Ð0r    c                 ó@   — t          t          d¦  «        d¦  «         d S )Nr(   ç        )r   r   ©r   r   s     r   Útest_scalarzTestVariation.test_scalar#   s   € å�	 #™œ¨Ñ,Ô,Ð,Ð,Ð,r    znan_policy, expectedÚ	propagateÚomitg«ªªªªª@r   Tz(`nan_policy` only supports NumPy backend)Únp_onlyÚreasonc                 ó‚   — |                      d¦  «        }|j        |d<   t          t          ||¬¦  «        |¦  «         d S )Nç      $@é	   ©Ú
nan_policy)r   Únanr	   r   )r   r;   r-   r   r   s        r   Útest_variation_nanz TestVariation.test_variation_nan'   sA   € ð �IŠI�c‰NŒNˆØŒvˆˆ!‰Ý�	 !°
Ð;Ñ;Ô;¸XÑFÔFÐFÐFÐFr    c                 óÌ   — |                      dd|j        dg¦  «        }t          j        t          d¬¦  «        5  t          |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr%   r&   r'   zinput contains nan©ÚmatchÚraiser:   )r   r<   ÚpytestÚraisesÚ
ValueErrorr   r   s      r   Útest_nan_policy_raisez#TestVariation.test_nan_policy_raise1   s­   € ð �JŠJ˜˜S "¤&¨#Ð.Ñ/Ô/ˆÝŒ]�:Ð-AÐBÑBÔBð 	-ð 	-Ý�a GÐ,Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s   ºAÁAÁ Ac                 ó”   — t          j        t          d¬¦  «        5  t          g d¢d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzmust be one ofr?   ©r   r)   r*   Úfoobarr:   )rB   rC   rD   r   r1   s     r   Útest_bad_nan_policyz!TestVariation.test_bad_nan_policy8   s•   € õ Œ]�:Ð-=Ð>Ñ>Ô>ð 	6ð 	6Ý�i�i�i¨HÐ5Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s   œ=½AÁAz&`keepdims` only supports NumPy backendc                 ó   — |                      |                     d¦  «        d¦  «        }t          |dd¬¦  «        }t          j        t          j        d¦  «        dz  gt          j        d¦  «        dz  gg¦  «        }t          ||¦  «         d S )Né
   )r)   é   r   T©ÚaxisÚkeepdimsr)   é   )Úreshaper   r   ÚnpÚarrayr   r	   )r   r   r   Úyr-   s        r   Útest_keepdimszTestVariation.test_keepdims>   s‚   € ð �JŠJ�r—y’y ‘}”} fÑ-Ô-ˆÝ�a˜a¨$Ð/Ñ/Ô/ˆÝ”8�bœg a™jœj¨™l˜^Ý œg a™jœj¨™l˜^ð-ñ .ô .ˆå˜˜8Ñ$Ô$Ð$Ð$Ð$r    zaxis, expectedr   ©r   r   )rL   r   ©Ú
fill_valuec                 ó  — |                      d¦  «        }|dk    rKt          j        t          t          ¬¦  «        5  t          ||d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   nt          ||d¬¦  «        }t          ||¦  «         d S )N)rL   r   r   r?   TrM   )ÚzerosrB   Úwarnsr   r   r   r   )r   rN   r-   r   r   rT   s         r   Útest_keepdims_size0z!TestVariation.test_keepdims_size0G   sË   € ð �HŠH�VÑÔˆØ�1Š9ˆ9Ý”Õ0Õ8MÐNÑNÔNð ;ð ;Ý˜a d°TÐ:Ñ:Ô:�ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;øõ ˜! $°Ð6Ñ6Ô6ˆAÝ˜˜8Ñ$Ô$Ð$Ð$Ð$s   ¼AÁAÁ"Azincr, expected_fillc                 óÈ   — |                      g d¢g d¢g¦  «        }t          |d|j        d         |z   d¬¦  «        }t          ||                     d|¬¦  «        ¦  «         d S )N)r   r   r)   r)   )r   r)   r*   r*   r   T)rN   r   rO   )r)   r   rW   )r   r   Úshaper   Úfull)r   ÚincrÚexpected_fillr   r   rT   s         r   Ú'test_keepdims_and_ddof_eq_len_plus_incrz5TestVariation.test_keepdims_and_ddof_eq_len_plus_incrU   si   € ð �JŠJ˜˜˜ l l lÐ3Ñ4Ô4ˆÝ�a˜a a¤g¨a¤j°4Ñ&7À$ÐGÑGÔGˆÝ˜˜2Ÿ7š7 6°m˜7ÑDÔDÑEÔEÐEÐEÐEr    c                 óú   — |                      |                     dt          ¬¦  «        d¦  «        }|j        |d<   t	          |dd¬¦  «        }t          |t          j        d¦  «        d	z  |j        gd
¬¦  «         d S )Né   ©Údtype)r)   r"   rV   r   r3   ©rN   r;   ç      ô?ç      ø?gVçž¯Ò<)Úatol)rQ   r   Úfloatr<   r   r	   r   r   )r   r   Úar,   s       r   Útest_propagate_nanz TestVariation.test_propagate_nan]   su   € ð
 �JŠJ�r—y’y ­%�yÑ0Ô0°'Ñ:Ô:ˆØ”&ˆˆ$‰Ý�a˜a¨KÐ8Ñ8Ô8ˆÝ˜�DœI c™NœN¨3Ñ.°´Ð7¸eÐDÑDÔDÐDÐDÐDr    z$Python list input uses NumPy backendc                 ó~   — t          ddgddggd ¬¦  «        }t          |t          j        d¦  «        dz  ¦  «         d S )Nr   r   r)   r*   ©rN   rh   ri   )r   r	   r   r   )r   r   rT   s      r   Útest_axis_nonezTestVariation.test_axis_noneg   sF   € õ ˜˜1�v  1˜vÐ&¨TÐ2Ñ2Ô2ˆÝ˜�4œ9 S™>œ>¨#Ñ-Ñ.Ô.Ð.Ð.Ð.r    c                 óÐ   — |                      g d¢g d¢g¦  «        }t          j        t          t          f¦  «        5  t          |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrG   )r   rL   é   rK   ro   )r   rB   rC   r   Ú
IndexErrorr   r   s      r   Útest_bad_axiszTestVariation.test_bad_axisn   s¬   € à�JŠJ˜	˜	˜	 9 9 9Ð-Ñ.Ô.ˆÝŒ]�I¥zÐ2Ñ3Ô3ð 	"ð 	"Ý�a˜bÐ!Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   ¼AÁAÁ"Ac                 óV  — |                      g d¢¦  «        }t          |¦  «        }t          ||                      |j        ¦  «        ¦  «         |                     |d|z  g¦  «        }t          |d¬¦  «        }t          ||                      |j        |j        g¦  «        ¦  «         d S )N)r8   ç      Àr%   ç      Àrw   g      $Àr   ro   )r   r   r   ÚinfÚstack)r   r   r   rT   Úx2Úy2s         r   Útest_mean_zerozTestVariation.test_mean_zerot   s›   € ð �JŠJÐ/Ð/Ð/Ñ0Ô0ˆÝ�a‰LŒLˆÝ˜˜2Ÿ:š: b¤fÑ-Ô-Ñ.Ô.Ð.à�XŠX�q˜$˜q™&�kÑ"Ô"ˆÝ�r Ð"Ñ"Ô"ˆÝ˜˜BŸJšJ¨¬°´Ð'7Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r    r   r0   rL   r)   r9   c                 ó¬   — |                      |¦  «        }t          |¦  «        }t          ||                      |j        |j        ¬¦  «        ¦  «         d S )Nre   )r   r   r   r<   rf   )r   r   r   rT   s       r   Útest_return_nanzTestVariation.test_return_nan   sF   € à�JŠJ�q‰MŒMˆå�a‰LŒLˆÝ˜˜2Ÿ:š: b¤f°A´G˜:Ñ<Ô<Ñ=Ô=Ð=Ð=Ð=r    r*   Nc                 óò  — |                      d¦  «        }t          ¦   «         5 }|                     t          d¦  «         |dk    rft	          |¦  «        rEt          j        t          d¬¦  «        5  t          ||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   n#t          ||¬¦  «        }nt          ||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          || 
                    |¦  «        ¦  «         d S )N)r*   r   zstd*r   zSee documentation...r?   ro   )Úemptyr   ÚfilterÚUserWarningr   rB   r[   r   r   r   r   )r   rN   r-   r   r   ÚsuprT   s          r   Útest_2d_size_zero_with_axisz)TestVariation.test_2d_size_zero_with_axis†   si  € ð �HŠH�VÑÔˆÝÑ Ô ð 
	, Cà�JŠJ•{ FÑ+Ô+Ð+Ø�qŠyˆyÝ˜B‘<”<ð 0ÝœÕ&8Ð@VÐWÑWÔWð 4ð 4Ý% a¨dÐ3Ñ3Ô3˜ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4øõ " !¨$Ð/Ñ/Ô/�A�Aå˜a dÐ+Ñ+Ô+�ð
	,ð 
	,ð 
	,ñ 
	,ô 
	,ð 
	,ð 
	,ð 
	,ð 
	,ð 
	,ð 
	,øøøð 
	,ð 
	,ð 
	,ð 
	,õ 	˜˜2Ÿ:š: hÑ/Ô/Ñ0Ô0Ð0Ð0Ð0s6   ¤AC	Á0BÂC	ÂB	ÂC	ÂB	Â'C	Ã	CÃCc                 ó¤   — |                      ddg¦  «        }t          t          |d¬¦  «        |                      |j         ¦  «        ¦  «         d S )Nrv   g      Àr)   r   )r   r   r   rx   )r   r   Úx1s      r   Útest_neg_infzTestVariation.test_neg_inf—   sL   € ð �ZŠZ˜˜c˜
Ñ#Ô#ˆÝ�	 "¨1Ð-Ñ-Ô-¨r¯zªz¸2¼6¸'Ñ/BÔ/BÑCÔCÐCÐCÐCr    c                 óÊ   — |                      |j        dd|j        gdd|j        |j        gg¦  «        }t          t          |ddd¬¦  «        |j         |j         g¦  «         d S )Nr   iöÿÿÿiìÿÿÿéýÿÿÿr)   r4   ©rN   r   r;   )r   r<   r   r   rx   )r   r   rz   s      r   Útest_neg_inf_nanzTestVariation.test_neg_inf_nan�   sz   € ð �ZŠZ˜"œ& ! S¨"¬&Ð1Ø˜r 2¤6¨2¬6Ð2ð4ñ 5ô 5ˆå�	 "¨1°1ÀÐHÑHÔHØœ&˜ 2¤6 'Ð*ñ	,ô 	,ð 	,ð 	,ð 	,r    r;   c           	      ó¢  — |                      dd|j        dgdd|j        dgdd|j        dgg¦  «        }|dk    rKt          j        t          t
          ¬¦  «        5  t          |d|¬	¦  «        }d d d ¦  «         n# 1 swxY w Y   nt          |d|¬	¦  «        }t          ||j        |j        |j        t          j
        d
¦  «        dz  g¦  «         d S )Nr   rK   r   éûÿÿÿr)   r*   r4   r?   rg   gUUUUUUå?)rS   r<   rB   r[   r   r
   r   r	   rx   r   r   )r   r;   r   r   rT   s        r   Útest_combined_edge_casesz&TestVariation.test_combined_edge_cases¥   s,  € ð �HŠH�q˜"˜bœf aÐ(Ø˜"˜bœf aÐ(Ø˜"˜bœf aÐ(ð*ñ +ô +ˆð ˜ÒÐÝ”Õ0Õ8IÐJÑJÔJð @ð @Ý˜a a°JÐ?Ñ?Ô?�ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @øõ ˜! !°
Ð;Ñ;Ô;ˆAÝ˜˜BœF B¤F¨B¬FµD´I¸c±N´NÀ1Ñ4DÐEÑFÔFÐFÐFÐFs   ÁA9Á9A=Â A=zddof, expectedgUUUUUUÅ?g      ä?ç      à?g«ªªªªªê?rh   c           
      ó.  — |j         }|                     dd|dgg d¢|dd|g|dd|g||||gg d¢g d	¢g¦  «        }t          j        t          t
          ¬
¦  «        5  t          |d|d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          ||¦  «         d S )Nr%   r&   r'   )r0   r(   r'   r%   g      à¿r�   r   )r'   r'   r'   r'   )r0   r0   r0   r0   r?   r   r4   rŠ   )r<   r   rB   r[   r   r
   r   r	   )r   r   r-   r   r<   r   r,   s          r   Útest_more_nan_policy_omit_testsz-TestVariation.test_more_nan_policy_omit_tests³   s  € ð ŒfˆØ�JŠJ˜˜c 3¨Ð,Ø,Ð,Ð,Ø˜c 3¨Ð,Ø˜c 3¨Ð,Ø˜c 3¨Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð.ñ /ô /ˆõ Œ\Õ,Õ4EÐFÑFÔFð 	Cð 	CÝ˜! !¨$¸6ÐBÑBÔBˆAð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cå˜˜8Ñ$Ô$Ð$Ð$Ð$s   ÁA:Á:A>ÂA>c           	      ó   — |                      g d¢¦  «        }|                      ddd|j        dd|j        g¦  «        }t          |d¬¦  «        }t          |dd¬	¦  «        }t          |t	          j        d
¦  «        dz  ¦  «         ||k    sJ ‚d S )Nr$   r   r)   r*   r   rL   r   r4   )r;   r   g      @)r   r<   r   r	   r   r   )r   r   rl   Únan_arT   Únan_ys         r   Útest_variation_ddofz!TestVariation.test_variation_ddofÌ   s”   € ð
 �JŠJÐ+Ð+Ð+Ñ,Ô,ˆØ—
’
˜A˜q ! R¤V¨Q°°2´6Ð:Ñ;Ô;ˆÝ�a˜aÐ Ñ Ô ˆÝ˜%¨F¸Ð;Ñ;Ô;ˆÝ˜�4œ9 S™>œ>¨!Ñ+Ñ,Ô,Ð,Ø�EŠzˆzˆzˆzˆzˆzr    )"Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rB   ÚmarkÚparametrizer.   r2   rR   r<   r   r   r=   rE   rI   rU   r€   r_   r\   rx   rb   rm   rp   rt   r|   r~   r„   r‡   r‹   rŽ   r‘   r•   © r    r   r   r      sž  € € € € € ðð ðMð Mð Mð „[×Ò˜U Q¨ GÑ,Ô,ð1ð 1ñ -Ô,ð1ð-ð -ð -ð „[×ÒÐ3Ø*¨B¬FÐ3Ø% w r¤w¨t¡}¤}°Q¡Ð7ð9ñ:ô :ð Ð˜dØGðIñ Iô IðGð GñIô Iñ:ô :ð
Gð
 Ð˜dØGðIñ Iô Ið-ð -ñIô Ið-ð
 Ð˜dØGðIñ Iô Ið6ð 6ñIô Ið6ð Ð˜dØEðGñ Gô Gð%ð %ñGô Gð%ð Ð˜dØEðGñ Gô Gà„[×ÒÐ-Ø  ( "¤(¨6Ñ"2Ô"2Ð3Ø  ' "¤'¨&¸R¼VÐ"DÑ"DÔ"DÐEðGñHô Hð%ð %ñHô HñGô Gð
%ð Ð˜dØEðGñ Gô Gà„[×ÒÐ2°a¸¼°[À1ÀbÄfÀ+Ð4NÑOÔOðFð Fñ PÔOñGô GðFð
 Ð˜dØGðIñ Iô IðEð EñIô IðEð Ð˜dÐ+QÐRÑRÔRð/ð /ñ SÔRð/ð"ð "ð "ð	:ð 	:ð 	:ð „[×Ò˜S B 4¨¡6¨A¨q°"´&¸!Ð+<Ð"=Ñ>Ô>ð>ð >ñ ?Ô>ð>ð „[×ÒÐ-Ø  "˜g¨¨B¬F¨8°A©: ¸¸r¼v¸ÐGñIô Ið1ð 1ñIô Ið1ðDð Dð Dð Ð˜dØGðIñ Iô Ið,ð ,ñIô Ið,ð Ð˜dØGðIñ Iô Ià„[×Ò˜\¨K¸Ð+@ÑAÔAð	Gð 	Gñ BÔAñIô Ið	Gð Ð˜dØGðIñ Iô Ià„[×ÒØØ
ˆgˆbŒg�c‰lŒl˜G˜BœG C™LœL¨"¬&°!°R´V¸SÀ"Ä&ÐIÐ	JØ
ˆc�7�2”7˜3‘<”< ¤¨¨B¬F°A°r´vÐ>Ð	?Ø
ˆgˆbŒg�c‰lŒl˜G˜BœG C™LœL¨"¬&°"´&¸"¼&À!ÀRÄVÐLÐ	Mð	Oñô ð%ð %ñô ñIô Ið%ð" Ð˜dØGðIñ Iô Iðð ñIô Iðð ð r    r   )r   ÚnumpyrR   rB   Únumpy.testingr   Úscipy.statsr   Úscipy._lib._utilr   Úscipy.conftestr   Úscipy._lib._array_apir   Úscipy._lib._array_api_no_0dr   r	   Úscipy.stats._axis_nan_policyr
   r   r   rš   ÚusefixturesÚ
pytestmarkr   r   rœ   r    r   ú<module>r§      s+  ðØ €€€à Ð Ð Ð Ø €€€Ø +Ð +Ð +Ð +Ð +Ð +à !Ð !Ð !Ð !Ð !Ð !Ø &Ð &Ð &Ð &Ð &Ð &Ø /Ð /Ð /Ð /Ð /Ð /Ø *Ð *Ð *Ð *Ð *Ð *Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ Hð>ð >ð >ð >ð >ð >ð >ð >ð >ð >ð # F¤K×$;Ò$;Ð<NÑ$OÔ$OÐP€
Ø”;Ô/Ð ðCð Cð Cð Cð Cñ Cô Cð Cð Cð Cr    