ó
    �œ‘hˆ  ã                   ó”   • S SK r S SKrS SKJrJrJr  S SKJrJrJ	r	J
r
JrJrJrJrJrJr   " S S5      r " S S5      r " S S	5      rg)
é    N)Ú	histogramÚhistogram_bin_edgesÚhistogramdd)
Úassert_Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚassert_array_max_ulpÚassert_equalÚassert_raisesÚassert_raises_regexÚsuppress_warningsc                   ó  • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#\$RJ                  RM                  S"S#9S$ 5       r'S% r(S& r)S'r*g())ÚTestHistogramé   c                 ó   • g ©N© ©Úselfs    ÚcC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\numpy/lib/tests/test_histograms.pyÚsetup_methodÚTestHistogram.setup_method   ó   € Øó    c                 ó   • g r   r   r   s    r   Úteardown_methodÚTestHistogram.teardown_method   r   r   c                 óü   • Sn[         R                  R                  U5      n[        U5      u  p4[	        [         R
                  " USS9U5        [        [         R                  " SSS5      5      u  p4[        US5        g )Néd   r   ©Úaxisé
   )ÚnpÚrandomÚrandr   r   ÚsumÚlinspacer
   )r   ÚnÚvÚaÚbs        r   Útest_simpleÚTestHistogram.test_simple   s^   € ØˆÜ�I‰I�N‰N˜1ÓˆÜ˜1“‰ˆä”R—V’V˜A AÑ&¨Ô*ô œ2Ÿ;š; q¨"¨cÓ2Ó3‰ˆÜ˜1˜bÕ!r   c                 ó,  • [        / SQSS/5      u  p[        US/5        [        USS/5        [        [        [         SS/SS9  [        SS/SS9u  p4[	        U[
        R                  " S/5      5        [        U[
        R                  " SS/5      5        g )N©é   é   é   é   r2   r3   r   ©Úbinsç      ð?ç       @)r   r
   r   Ú
ValueErrorr   r%   Úarrayr   )r   ÚhistÚedgesÚhÚes        r   Útest_one_binÚTestHistogram.test_one_bin&   s}   € ä¢¨q°!¨fÓ5‰ˆÜ˜4 ! Ô'Ü˜5 1 a &Ô)Ü”j¤)¨a°¨V¸!Ò<Ü˜!˜Q˜ aÑ(‰ˆÜ�QœŸš ! ›Ô&Ü˜œ2Ÿ8š8 R¨ HÓ-Õ.r   c                 óÒ  • Sn[         R                  R                  U5      n[        USS9u  p4[         R                  " U[         R
                  " U5      -  5      n[        US5        [         R                  " S5      n/ SQn[        X&SS9u  p4[        US5        [        [         R                  " U[         R
                  " U5      -  5      S5        [        X&SS9u  p4[        U/ S	Q5        [         R                  " S5      nS
SSS[         R                  /n[        X&SS9u  p4[        U/ SQ5        [         R                  " / S	QSS[         R                  /SS9u  px[        USS
/5        g )Nr!   T©Údensityr2   r$   ©r   r2   r4   é   r$   çš™™™™™¹?Fr1   r   r4   rF   )rG   rG   rG   ç        ç      à?ç      ø?ç      Ð?)r%   r&   r'   r   r(   Údiffr   Úaranger
   r   Úinf)	r   r*   r+   r,   r-   Úarear7   ÚcountsÚdmys	            r   Útest_densityÚTestHistogram.test_density0   s  € àˆÜ�I‰I�N‰N˜1ÓˆÜ˜ DÑ)‰ˆÜ�vŠv�aœ"Ÿ'š' !›*‘nÓ%ˆÜ˜D !Ô$ô �IŠI�b‹MˆÚˆÜ˜¨$Ñ/‰ˆÜ˜1˜bÔ!Ü”R—V’V˜A¤§¢¨£
™NÓ+¨QÔ/ô ˜¨%Ñ0‰ˆÜ˜1šlÔ+ô �IŠI�b‹MˆØ�1�a˜œBŸF™FÐ#ˆÜ˜¨$Ñ/‰ˆÜ˜1Ò.Ô/ô —l’lÚ˜3 ¤R§V¡VÐ,°dñ<‰ˆä�V˜c 1˜XÕ&r   c                 óD  • [         R                  " S5      S-   n[        USS/S9u  p#[        UR	                  5       S5        [        USS/S9u  p#[        UR	                  5       S5        [        USS/SS9u  p#[        U[         R                  " U5      -  R	                  5       SS	S
9  [         R                  " S5      S-   n[        USS/USS9u  p#[        U[         R                  " U5      -  R	                  5       S5        [        USSS/US9u  p#[        X$SS 5        g )Nr$   rI   r   é	   ©Úranger2   T©rW   rD   é   ©Údecimal©rW   ÚweightsrD   é   ©r7   rW   r]   éÿÿÿÿ)r%   rM   r   r   r(   r   rL   )r   r,   r>   r-   Úws        r   Útest_outliersÚTestHistogram.test_outliersP   s   € ä�IŠI�b‹M˜BÑˆô ˜ 1 a &Ñ)‰ˆÜ�Q—U‘U“W˜aÔ ô ˜ 1 b 'Ñ*‰ˆÜ�Q—U‘U“W˜aÔ ô ˜ 1 a &°$Ñ7‰ˆÜ˜Q¤§¢¨£™^×0Ñ0Ó2°A¸rÒBô �IŠI�b‹M˜BÑˆÜ˜ 1 a &°!¸TÑB‰ˆÜ�aœ"Ÿ'š' !›*‘n×)Ñ)Ó+¨QÔ/ä˜ ¨1¨a¨&¸!Ñ<‰ˆÜ�Q˜!˜B˜Õ r   c                 óÜ   • [         R                  " S5      S-   n[         R                  " S5      S-   n[        [        S5         [	        USS/USS9u  p4S S S 5        g ! , (       d  f       g = f)	Nr$   rI   é   zsame shape asr2   rU   Tr\   )r%   rM   r   r:   r   )r   r,   ra   r>   r-   s        r   Útest_arr_weights_mismatchÚ'TestHistogram.test_arr_weights_mismatchh   sR   € Ü�IŠI�b‹M˜BÑˆÜ�IŠI�b‹M˜BÑˆÜ ¤¨_Õ=Ü˜Q q¨! f°aÀÑF‰DˆA÷ >×=Ö=ús   ÁAÁ
A+c                 ó¼  • [         R                  " S5      S-   n[        U5      u  p#[        [         R                  " UR
                  [         R                  5      5        [        USS9u  p#[        [         R                  " UR
                  [         R                  5      5        [        U[         R                  " S[        5      S9u  p#[        [         R                  " UR
                  [         R                  5      5        [        U[         R                  " S[        5      S9u  p#[        [         R                  " UR
                  [         R                  5      5        g )Nr$   rI   TrC   ©r]   )r%   rM   r   r   Ú
issubdtypeÚdtypeÚintegerÚfloatingÚonesÚintÚfloat)r   r,   r>   r-   s       r   Ú	test_typeÚTestHistogram.test_typen   sË   € ä�IŠI�b‹M˜BÑˆÜ˜‹|‰ˆÜ”—’˜aŸg™g¤r§z¡zÓ2Ô3ä˜ DÑ)‰ˆÜ”—’˜aŸg™g¤r§{¡{Ó3Ô4ä˜¤B§G¢G¨B´Ó$4Ñ5‰ˆÜ”—’˜aŸg™g¤r§z¡zÓ2Ô3ä˜¤B§G¢G¨B´Ó$6Ñ7‰ˆÜ”—’˜aŸg™g¤r§{¡{Ó3Õ4r   c                 óü   • [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9n[         R                  " XSS9u  p4n[	        UR                  5       S5        g )N)g2V›ÿEq@g“áx>fQÀg-³ÅVT5@©rk   )g!çý°�³@gö·àS�±@g§’ ^z·@r!   r6   ç      @)r%   r;   Úfloat32Úhistogram2dr   r(   )r   ÚxÚyÚcounts_histÚxedgesÚyedgess         r   Útest_f32_roundingÚTestHistogram.test_f32_rounding}   sR   € ä�HŠHÒ8ÄÇ
Á
ÑKˆÜ�HŠHÒ<ÄBÇJÁJÑOˆÜ&(§n¢n°QÀÑ&DÑ#ˆ˜VÜ�[—_‘_Ó&¨Õ+r   c                 ó|  • [         R                  " / SQ[         R                  S9n[         R                  " U5      u  p#[	        5        nUR                  [        S5      n[         R                  " / SQ5      u  pg[        [        U5      S5        [        Xb5        [        Xs5        S S S 5        g ! , (       d  f       g = f)N)r2   r2   r   rt   zConverting input from .*)TTFr2   )
r%   r;   Úuint8r   r   ÚrecordÚRuntimeWarningr   Úlenr
   )r   r,   Úint_histÚ	int_edgesÚsupÚrecr<   r=   s           r   Útest_bool_conversionÚ"TestHistogram.test_bool_conversion„   s~   € ô �HŠH’Y¤b§h¡hÑ/ˆÜ Ÿlšl¨1›oÑˆô
 Ô  CØ—*‘*œ^Ð-GÓHˆCÜŸ,š,Ò':Ó;‰KˆDäœ˜S› 1Ô%Ü˜tÔ.Ü˜uÔ0÷ !× Ö ús   ÁAB-Â-
B;c                 ó0  • [         R                  R                  S5      n[         R                  " S5      S-  n[	        U5      u  p4[	        USS9u  pV[	        XS9u  px[	        XSS9u  pš[        US-  U5        [        XY5        [         R                  " SSS5      n[         R                  " [         R                  " S5      [         R                  " S5      45      n[	        U[         R                  " S	5      US
9u  px[        Xr5        [	        / SQS/ SQS
9u  px[        U/ SQ5        [	        / SQS/ SQSS9u  px[        U[         R                  " / SQ5      S-  S-  S-  5        [	        [         R                  " S5      / SQ/ SQSS9u  p4[        U/ SQ5        g )Nr!   é   TrC   ri   ©r]   rD   r   r$   re   ©r7   r]   )r2   r3   r3   r5   r5   )r5   r4   r3   r2   )r5   r‹   r   r2   )r7   r]   rD   g      $@ru   rU   rE   )	r3   r2   r2   r2   r2   r2   r2   r2   r2   )çš™™™™™É?rG   rG   g333333³?)r%   r&   r'   rn   r   r	   r)   ÚconcatenateÚzerosrM   r
   r;   r   )r   r+   ra   r,   r-   ÚnaÚnbÚwaÚwbÚnwaÚnwbs              r   Útest_weightsÚTestHistogram.test_weights•   sH  € Ü�I‰I�N‰N˜3ÓˆÜ�GŠG�C‹L˜1ÑˆÜ˜‹|‰ˆÜ˜1 dÑ+‰ˆÜ˜1Ñ(‰ˆÜ˜Q°4Ñ8‰ˆÜ! ! a¡%¨Ô,Ü! "Ô*ô �KŠK˜˜2˜rÓ"ˆÜ�NŠNœBŸHšH Q›K¬¯ª°«Ð4Ó5ˆÜ˜1¤2§9¢9¨R£=¸!Ñ<‰ˆÜ! "Ô(ô š<¨aºÑF‰ˆÜ˜2š|Ô,ÜÚ˜qª,ÀñF‰ˆä! "¤b§h¢hª|Ó&<¸sÑ&BÀRÑ&GÈ!Ñ&KÔLô Ü�IŠI�a‹LÒ*Ú/¸ñ?‰ˆô 	˜AÒ1Õ2r   c           	      ó  • [         R                  " / SQ5      n[         R                  " / SQ5      S[         R                  " / SQ5      -  -   n[        U/ SQUS9u  p4[        U[         R                  " SS/5      S[         R                  " SS	/5      -  -   5        [        USSS	/US
9u  p4[        U[         R                  " SS/5      S[         R                  " SS	/5      -  -   5        SSKJn  [         R                  " / SQ5      n[         R                  " U" S5      U" S5      U" S	5      /5      n[        U/ SQUS9u  p4[        X5" S5      U" S5      /5        [        USSS	/US
9u  p4[        X5" S5      U" S5      /5        g )N©gÍÌÌÌÌÌô?ç      @gffffff@)r2   r`   r3   y              ð?)r3   r2   r3   )r   r3   r4   r�   r2   r3   r4   r_   r   )ÚDecimalr‹   )r%   r;   r   r	   r[   rœ   )r   Úvaluesr]   r“   r”   rœ   s         r   Útest_exotic_weightsÚ!TestHistogram.test_exotic_weights²   sE  € ô —’š/Ó*ˆÜ—(’(š:Ó&¨¬b¯hªh²yÓ.AÑ)AÑAˆô ˜6ª	¸7ÑC‰ˆÜ! "¤b§h¢h°°1¨vÓ&6¸¼b¿hºhÈÈ1ÀvÓ>NÑ9NÑ&NÔOô ˜6¨°!°Q°ÀÑI‰ˆÜ! "¤b§h¢h°°1¨vÓ&6¸¼b¿hºhÈÈ1ÀvÓ>NÑ9NÑ&NÔOõ 	$Ü—’š/Ó*ˆÜ—(’(™G A›J©°«
±G¸A³JÐ?Ó@ˆô ˜6ª	¸7ÑC‰ˆÜ! " w¨q£z±7¸1³:Ð&>Ô?ô ˜6¨°!°Q°ÀÑI‰ˆÜ! " w¨q£z±7¸1³:Ð&>Õ?r   c                 ó€   • [         R                  " / SQ5      n[         R                  " USS/SS9  [        U/ SQ5        g )Nrš   éöÿÿÿr$   r!   )rW   r7   )r%   r;   r   r	   )r   r�   s     r   Útest_no_side_effectsÚ"TestHistogram.test_no_side_effectsÐ   s0   € ô —’š/Ó*ˆÜ
�Š�V C¨ 9°3Ò7Ü! &ª/Õ:r   c                 ó¦   • [        / SS/S9u  p[        U[        R                  " S/5      5        [        U[        R                  " SS/5      5        g )Nr   r2   r6   ©r   r
   r%   r;   ©r   r,   r-   s      r   Ú
test_emptyÚTestHistogram.test_empty×   s?   € Ü˜ A q 6Ñ+‰ˆÜ˜1œbŸhšh¨ s›mÔ,Ü˜1œbŸhšh¨¨1 vÓ.Õ/r   c                 ót   • [         R                  " SSSS9n[        US5        [        [        [        US5        g )NrH   r8   r!   ©Únumr‹   g333333@)r%   r)   r   r   Ú	TypeError©r   Úvalss     r   Útest_error_binnum_typeÚ$TestHistogram.test_error_binnum_typeÜ   s,   € ä�{Š{˜3 ¨Ñ-ˆÜ�$˜ÔÜ”i¤¨D°#Õ6r   c                 óØ   • [         R                  " SSSS9n[        USS/S9  [        [        [        U[         R
                  S/S9  [        [        [        US[         R                  /S9  g )NrH   r8   r!   rª   rK   ç      è?rV   )r%   r)   r   r   r:   ÚnanrN   r­   s     r   Útest_finite_rangeÚTestHistogram.test_finite_rangeâ   sN   € ä�{Š{˜3 ¨Ñ-ˆÜ�$˜t T˜lÒ+Ü”j¤)¨T¼"¿&¹&À$¸ÒHÜ”j¤)¨T¸$ÄÇÁ¸ÓHr   c                 ó²   • [         R                  " SSSS9n[        [        S5         [         R                  " USS/S9  S S S 5        g ! , (       d  f       g = f)	NrH   r8   r!   rª   zmax must be larger thanrG   g{®Gáz„?rV   )r%   r)   r   r:   r   r­   s     r   Útest_invalid_rangeÚ TestHistogram.test_invalid_rangeé   s>   € ä�{Š{˜3 ¨Ñ-ˆÜ ¤Ð-FÕGÜ�LŠL˜ c¨4 [Ò1÷ H×GÖGús   §AÁ
Ac                 óî   • [         R                  " / SQ5      n[         R                  " USSS9u  p#US:„  nUS S U   nUSS  U   n[        XU5       H   u  pxn	[	        Xx:¬  5        [	        Xy:  5        M"     g )N)iQ  i”  iã  i&  iï  i  iÜ  ih   )r3   iè  ©r7   rW   r   r`   r2   )r%   r;   r   Úzipr   )
r   Úarrr<   r=   ÚmaskÚ
left_edgesÚright_edgesrx   ÚleftÚrights
             r   Útest_bin_edge_casesÚ!TestHistogram.test_bin_edge_casesï   sw   € ä�hŠhÒ=Ó>ˆÜ—l’l 3¨T¸ÑC‰ˆØ�a‰xˆØ˜3˜B�Z Ñ%ˆ
Ø˜A˜B�i ‘oˆÜ! #°;Ö?‰NˆA�UÜ�A‘IÔÜ�A‘IÖò @r   c                 ó‚   • [         R                  " / SQ5      n[         R                  " USSS9u  p#[        US   S5        g )N©	rH   rH   rH   r8   r9   ru   ru   g      @g      @é   ©ç      à¿r‹   rº   r`   r2   )r%   r;   r   r   )r   r¼   r<   r=   s       r   Útest_last_bin_inclusive_rangeÚ+TestHistogram.test_last_bin_inclusive_rangeú   s3   € Ü�hŠhÒCÓDˆÜ—l’l 3¨R°yÑA‰ˆÜ�T˜"‘X˜qÕ!r   c                 óä   • [         R                  " SSSS9n[         R                  " SS/SS//5      n[        [        S5         [         R
                  " XS	9  S S S 5        g ! , (       d  f       g = f)
NrH   r8   r!   rª   r   rI   g333333ã?z
must be 1dr6   )r%   r)   r;   r   r:   r   )r   r®   r7   s      r   Útest_bin_array_dimsÚ!TestHistogram.test_bin_array_dimsÿ   sQ   € ä�{Š{˜3 ¨Ñ-ˆÜ�xŠx˜!˜S˜ C¨ :Ð.Ó/ˆÜ ¤¨\Õ:Ü�LŠL˜Ò)÷ ;×:Ö:ús   ÁA!Á!
A/c                 óÞ   • [         R                  " S/5      n[         R                  " / SQSS9n[        [        5         [         R                  " XS9u  p4S S S 5        g ! , (       d  f       g = f)Nr3   )r2   r4   r2   Úuint64rt   r6   )r%   r;   r   r:   r   )r   r¼   r7   r<   r=   s        r   Ú test_unsigned_monotonicity_checkÚ.TestHistogram.test_unsigned_monotonicity_check  sG   € ô �hŠh˜�s‹mˆÜ�xŠxš	¨Ñ2ˆÜœ:Õ&ÜŸ,š, sÑ6‰KˆD÷ '×&Ö&ús   ¾AÁ
A,c           
      ó¢  • [        [        [        [        S5       Vs/ s H  n[        R
                  " S5      PM     sn[        R                  * /-   5        [        [        [        [        S5       Vs/ s H  n[        R
                  " S5      PM     sn[        R                  /-   5        [        R                  " [        S5       Vs/ s H  n[        R
                  " S5      PM     snS/-   5        [        R                  " [        S5       Vs/ s H  n[        R
                  " S5      PM     snS/-   5        g s  snf s  snf s  snf s  snf )Nr$   gš™™™™™Ù?rI   g     à?)r   r:   r   rW   r%   r;   rN   )r   Úis     r   Útest_object_array_of_0dÚ%TestHistogram.test_object_array_of_0d  sà   € ä”jÜ¬u°R¬yÓ9ªy¨!œŸš ž©yÑ9¼b¿f¹f¸W¸IÑEô	Gä”jÜ¬u°R¬yÓ9ªy¨!œŸš ž©yÑ9¼R¿V¹V¸HÑDô	Fô 	�Š¬U°2¬YÓ7ªY¨”b—h’h˜s–m©YÑ7Ð;KÐ:LÑLÔMÜ
�Š¬U°2¬YÓ7ªY¨”b—h’h˜s–m©YÑ7¸2¸$Ñ>Õ?ùò :ùâ9ùò 8ùÚ7s   � D=Á3 EÃ	 EÄ Ec                 ó¼  • [         R                  " SS[         R                  /5      n[         R                  " [         R                  [         R                  /5      n[        5       nUR	                  [
        5        U   [        [        [        USS9  [        [        [        USS9  [        USSS9u  pE[        UR                  5       S5        [        USSS9u  pE[        UR                  5       S5        [        USS/S9u  pE[        UR                  5       S5        [        USS/S9u  pE[        UR                  5       S5        S S S 5        g ! , (       d  f       g = f)Nr   r2   Úautor6   ©r   r2   rº   r3   )r%   r;   r³   r   Úfilterr‚   r   r:   r   r   r(   )r   Úone_nanÚall_nanr†   r>   r-   s         r   Útest_some_nan_valuesÚ"TestHistogram.test_some_nan_values  sü   € ä—(’(˜A˜q¤"§&¡&˜>Ó*ˆÜ—(’(œBŸF™F¤B§F¡FÐ+Ó,ˆô  Ó!ˆØ�
‰
”>Ô"Úäœ*¤i°¸vÒFÜœ*¤i°¸vÒFô ˜W¨6¸Ñ@‰DˆAÜ˜Ÿ™› !Ô$Ü˜W¨6¸Ñ@‰DˆAÜ˜Ÿ™› !Ô$ô ˜W¨A¨q¨6Ñ2‰DˆAÜ˜Ÿ™› !Ô$Ü˜W¨A¨q¨6Ñ2‰DˆAÜ˜Ÿ™› !Ô$÷ �SŽSús   Á=CEÅ
Ec                 óf  • [         R                  " SS5      n[         R                  " / SQ5      n[         R                  " / SQ5      nX-   nX-   n[         R                  " S5      n[	        XES9u  px[	        UR                  U5      UR                  U5      S9u  pš[	        X#S9u  p¼[        X{5        [        X›5        [        X�-
  R                  [        5      U5        [        U
R                  [        5      U5        [        UR                  UR                  5        [        U
R                  U5        g )Nz
2000-01-01ÚD)	r   r   r2   r2   r3   r4   r‹   r$   é   )r   r3   é   rà   ztimedelta64[D]r6   )r%   Ú
datetime64r;   rk   r   Úastyper   ro   )r   ÚbeginÚoffsetsr7   ÚdatesÚ	date_binsÚtdÚd_countÚd_edgeÚt_countÚt_edgeÚi_countÚi_edges                r   Útest_datetimeÚTestHistogram.test_datetime2  sß   € Ü—’˜l¨CÓ0ˆÜ—(’(Ò8Ó9ˆÜ�xŠxšÓ&ˆØ‘ˆØ‘Lˆ	ä�XŠXÐ&Ó'ˆô
 $ EÑ:‰ˆÜ# G§N¡N°2Ó$6¸T¿[¹[È»_ÑM‰ˆÜ# GÑ7‰ˆä�WÔ&Ü�WÔ&ä�f‘n×,Ñ,¬SÓ1°6Ô:Ü�V—]‘]¤3Ó'¨Ô0ä�V—\‘\ 5§;¡;Ô/Ü�V—\‘\ 2Õ&r   c                 ó  • S[         R                  " U5      R                  -  S-
  n[         R                  " SU-  * S-   SU-  S-
  /US9n[	        USS9u  pE[        USU-  * S-   SSU-  S-
  /5        [        USS/5        g )Nr^   r2   r3   r5   rt   r6   r   )r%   rk   Úitemsizer;   r   r   )r   rk   Úexponentr¼   r<   r?   s         r   Údo_signed_overflow_boundsÚ'TestHistogram.do_signed_overflow_boundsK  s‡   € Ø”r—x’x “×/Ñ/Ñ/°!Ñ3ˆÜ�hŠh˜˜H™˜ qÑ(¨!¨X©+¸©/Ð:À%ÑHˆÜ˜C aÑ(‰ˆÜ�Q˜!˜X™+˜¨Ñ)¨1¨a°©k¸A©oÐ>Ô?Ü�T˜A˜q˜6Õ"r   c                 ó:  • U R                  [        R                  5        U R                  [        R                  5        U R                  [        R                  5        U R                  [        R
                  5        U R                  [        R                  5        g r   )rô   r%   ÚbyteÚshortÚintcÚint_Úlonglongr   s    r   Útest_signed_overflow_boundsÚ)TestHistogram.test_signed_overflow_boundsR  s\   € Ø×&Ñ&¤r§w¡wÔ/Ø×&Ñ&¤r§x¡xÔ0Ø×&Ñ&¤r§w¡wÔ/Ø×&Ñ&¤r§w¡wÔ/Ø×&Ñ&¤r§{¡{Õ3r   c                 óT  • [         R                  " U5      R                  n[         R                  " S/U5      n[         R                  " SU-   S/U5      nUR	                  U5      S   S:w  a  g [         R
                  " USUS9u  pg[        US/5        [        UR                  U5        g )Nr8   r9   r   r2   rº   ©r%   ÚfinfoÚepsr;   rã   r   r   rk   ©r   Úfloat_smallÚfloat_larger  r¼   rW   ÚcountÚx_locs           r   Údo_precision_lower_boundÚ&TestHistogram.do_precision_lower_boundY  sŒ   € Ü�hŠh�{Ó#×'Ñ'ˆä�hŠh˜�u˜kÓ*ˆÜ—’˜# ™) SÐ)¨;Ó7ˆð �<‰<˜Ó$ QÑ'¨1Ó,Øô —|’| C¨a°uÑ=‰ˆÜ�U˜Q˜CÔ Ü�U—[‘[ +Õ.r   c                 óT  • [         R                  " U5      R                  n[         R                  " S/U5      n[         R                  " SSU-
  /U5      nUR	                  U5      S   S:w  a  g [         R
                  " USUS9u  pg[        US/5        [        UR                  U5        g )Nr8   rH   r`   r2   rº   r   rÿ   r  s           r   Údo_precision_upper_boundÚ&TestHistogram.do_precision_upper_boundh  sŒ   € Ü�hŠh�{Ó#×'Ñ'ˆä�hŠh˜�u˜kÓ*ˆÜ—’˜#˜s S™yÐ)¨;Ó7ˆð �<‰<˜Ó$ RÑ(¨AÓ-Øô —|’| C¨a°uÑ=‰ˆÜ�U˜Q˜CÔ ä�U—[‘[ +Õ.r   c                 óH   • U R                  X5        U R                  X5        g r   )r  r
  )r   r  r  s      r   Údo_precisionÚTestHistogram.do_precisionx  s   € Ø×%Ñ% kÔ?Ø×%Ñ% kÕ?r   c                 ó,  • U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R
                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R
                  5        U R                  [        R                  [        R
                  5        g r   )r  r%   ÚhalfÚsingleÚdoubleÚ
longdoubler   s    r   Útest_precisionÚTestHistogram.test_precision|  s’   € à×Ñœ"Ÿ'™'¤2§9¡9Ô-Ø×Ñœ"Ÿ'™'¤2§9¡9Ô-Ø×Ñœ"Ÿ'™'¤2§=¡=Ô1Ø×Ñœ"Ÿ)™)¤R§Y¡YÔ/Ø×Ñœ"Ÿ)™)¤R§]¡]Ô3Ø×Ñœ"Ÿ)™)¤R§]¡]Õ3r   c                 ó  • [        / SQSS/5      u  p[        / SQSS/5      n[        X25        [        R                  " / SQ5      n[        USSS9u  p[        USSS9n[        X25        [        USS	S9u  p[        USS	S9n[        X25        g )
Nr1   r2   r3   rÅ   rÆ   rÇ   rº   r×   rØ   )r   r   r
   r%   r;   )r   r<   r?   r=   r¼   s        r   Útest_histogram_bin_edgesÚ&TestHistogram.test_histogram_bin_edges…  s‡   € ÜšL¨1¨a¨&Ó1‰ˆÜ#¢L°1°a°&Ó9ˆÜ˜5Ô$ä�hŠhÒCÓDˆÜ˜C b°	Ñ:‰ˆÜ# C¨b¸	ÑBˆÜ˜5Ô$ä˜C f°FÑ;‰ˆÜ# C¨f¸FÑCˆÜ˜5Õ$r   c                 ó´   • [         R                  " SS/S-  5      n[        R                  " [        SS9   [        USS9  S S S 5        g ! , (       d  f       g = f)Nr2   g     ð?r$   zToo many bins for data range)Úmatchr6   )r%   r;   ÚpytestÚraisesr:   r   )r   r¼   s     r   Útest_small_value_rangeÚ$TestHistogram.test_small_value_range“  s?   € Ü�hŠh˜˜9�~¨Ñ*Ó+ˆÜ�]Š]œ:Ð-KÓLÜ�c Ò#÷ M×LÖLús   µA	Á	
Az,Bad memory reports lead to OOM in ci testing)Úreasonc                 óÐ   • [         R                  " SS/5      nSnSn[         R                  " S5      n[         R                  " XX44S9n[	        [        U5      [        S5      5        g )Ni áõr4   i�  i€>  )Úsampler7   )r2   r3   )r%   r�   rM   r   r   Útype)r   r!  ÚxbinsÚybinsÚzbinsr<   s         r   Útest_big_arraysÚTestHistogram.test_big_arraysš  sQ   € ä—’˜9 a˜.Ó)ˆØˆØˆÜ—	’	˜%Ó ˆÜ�~Š~ V¸%Ð2GÑHˆÜ”T˜$“Z¤ f£Õ.r   c                 ó¢   • [         R                  " [         R                  " S/SS9SSS9u  p[         R                  " SS/5      n[        X5        g )	Ng$ë°Áx€z>f8rt   r3   )gÒèxÖ0€ge¨Òl	  €rº   r2   r   )r%   r   r;   r
   )r   r<   r?   Úexpected_hists       r   Útest_gh_23110ÚTestHistogram.test_gh_23110£  sC   € Ü—,’,œrŸxšx¨¨¸5ÑAØ$%Ø%7ñ9‰ˆô Ÿš ! Q Ó(ˆÜ˜4Õ/r   c                 ó¨   • SnSSSSSSXXXS/n[         R                  " USS9u  p4[        U5      S:  d   eUS   US   :X  d   eUS   US   :X  d   eg )	Ng˜    ð?r   r2   r3   r×   r6   r$   r`   )r%   r   rƒ   )r   r?   ÚZrP   r=   s        r   Útest_gh_28400ÚTestHistogram.test_gh_28400ª  sq   € ØˆØ��1�a˜˜A˜q Q¨1°Ð3ˆÜŸš Q¨VÑ4‰ˆÜ�6‹{˜RÓÐÐØ�Q‰x˜1˜Q™4ÓÐÐØ�R‰y˜A˜b™EÓ!Ð!Ñ!r   r   N)+Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r.   r@   rR   rb   rf   rq   r}   rˆ   r—   rž   r¢   r§   r¯   r´   r·   rÂ   rÉ   rÌ   rÐ   rÔ   rÜ   rï   rô   rü   r  r
  r  r  r  r  r  ÚmarkÚskipr&  r*  r.  Ú__static_attributes__r   r   r   r   r      sÚ   † òòò	"ò/ò'ò@!ò0Gò5ò,ò1ò"3ò:@ò<;ò0ò
7òIò2ò	ò"ò
*ò7ò	@ò%ò2'ò2#ò4ò/ò/ò @ò4ò%ò$ð ‡[�[×ÑÐKÐÐLñ/ó Mð/ò0õ"r   r   c                   óê   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS r\R                  R!                  S/ SQ5      S 5       r\R                  R!                  S/ SQ5      S 5       rS rS rSrg)ÚTestHistogramOptimBinNumsi²  zQ
Provide test coverage when using provided estimators for optimal number of
bins
c                 ó¼   • / SQnU HR  n[        / US9u  p4[        U[        R                  " S/5      5        [        U[        R                  " SS/5      5        MT     g )N©ÚfdÚscottÚriceÚsturgesÚdoaneÚsqrtr×   Ústoner6   r   r2   r¥   )r   Úestimator_listÚ	estimatorr,   r-   s        r   r§   Ú$TestHistogramOptimBinNums.test_empty¸  sN   € ò<ˆó (ˆIÜ˜R iÑ0‰DˆAÜ˜q¤"§(¢(¨A¨3£-Ô0Ü˜q¤"§(¢(¨A¨q¨6Ó"2Ö3ò (r   c                 ó´  • SSSSSSSSS.SSSSSS	SS
S.SSSSSSSSS.S.nUR                  5        H£  u  p#[        R                  " SSUS-  S-  5      n[        R                  " SSUS-  S-  5      n[        R                  " XE45      nUR                  5        H7  u  px[        R                  " Xg5      u  pš[        [        U	5      USU SU 3S9  M9     M¥     g)z’
Straightforward testing with a mixture of linspace data (for
consistency). All test values have been precomputed and the values
shouldn't change
r5   r^   rá   r3   r:  é   r$   é   é   rU   é   é#   é   éG   rà   ©é2   iô  iˆ  r¡   r`   r‹   r2   r4   úFor the ú estimator with datasize of ©Úerr_msgN)Úitemsr%   r)   r�   r   r   rƒ   )r   Ú
basic_testÚtestlenÚexpectedResultsÚx1Úx2rx   rC  Únumbinsr,   r-   s              r   r.   Ú%TestHistogramOptimBinNums.test_simpleÁ  s   € ð $%°¸AÈ1Ø&'°¸AÈñKà#$°¸BÈ2Ø&(°"¸bÈ1ñNà#%°¸BÈ2Ø&(°"¸bÈ2ñOñ	Pˆ
ð )3×(8Ñ(8Ö(:Ñ$ˆGô —’˜S " g°¡l°QÑ&6Ó7ˆBÜ—’˜Q  G¨q¡L°1Ñ$4Ó5ˆBÜ—’ ˜xÓ(ˆAØ&5×&;Ñ&;Ö&=Ñ"�	Ü—|’| AÓ1‘�ÜœS ›V W¸ÀÀð L1Ø18°	ð7;ô <ó '>ò );r   c           
      óZ  • SSSSSSSS.SSSSSSSS.SSSSSSSS.S.nUR                  5        Hy  u  p#[        R                  " U5      R                  [        5      nUR                  5        H7  u  pV[        R
                  " XE5      u  px[        [        U5      USU SU 3S9  M9     M{     g	)
z˜
Smaller datasets have the potential to cause issues with the data
adaptive methods, especially the FD method. All bin numbers have been
precalculated.
r2   )r;  r<  r=  r>  r?  r@  rA  r3   r4   ©r2   r3   r4   rO  rP  rQ  N)rS  r%   rM   rã   rp   r   r   rƒ   )	r   Ú	small_datrU  rV  ÚtestdatrC  Úexpbinsr,   r-   s	            r   Ú
test_smallÚ$TestHistogramOptimBinNums.test_smallÛ  sÅ   € ð  !¨1°aÀAØ"#¨Q¸ñ<à ¨1°aÀAØ"#¨Q¸ñ<à ¨1°aÀAØ"#¨Q¸ñ<ñ	=ˆ	ð )2¯©Ö(9Ñ$ˆGÜ—i’i Ó(×/Ñ/´Ó6ˆGØ&5×&;Ñ&;Ö&=Ñ"�	Ü—|’| GÓ7‘�ÜœS ›V W¸ÀÀð L1Ø18°	ð7;ô <ó '>ò ):r   c                 óN   • / SQnU H  n[        [        [        / SQU5        M     g)zC
Check a Value Error is thrown when an unknown string is passed in
)ÚmadÚfreemanÚ
histogramsÚIQRr\  N)r   r:   r   )r   Ú
check_listrC  s      r   Útest_incorrect_methodsÚ0TestHistogramOptimBinNums.test_incorrect_methodsï  s!   € ò =ˆ
Û#ˆIÜœ*¤i²¸IÖFò $r   c           	      óÖ   • [         R                  " S5      nSSSSSSSSS.nUR                  5        H4  u  p4[         R                  " X5      u  pV[	        [        U5      UU S3S9  M6     g)zt
Check that methods handle no variance in data
Primarily for Scott and FD as the SD and IQR are both 0 in this case
r!   r2   r:  z estimator, No Variance testrQ  N)r%   rn   rS  r   r   rƒ   )r   Únovar_datasetÚnovar_resultdictrC  rY  r,   r-   s          r   Útest_novarianceÚ)TestHistogramOptimBinNums.test_novariance÷  sp   € ô
 Ÿš ›ˆØ"#¨a¸ÀqØ%&°¸1ÀqñJÐð #3×"8Ñ"8Ö":ÑˆIÜ—<’< Ó9‰DˆAÜœ˜Q› Ø$- ;Ð.JÐ!KôMò #;r   c                 ór  • [         R                  " S5      nSUSS& SUSS& [        US5      n[        US   S5        [        US   S	5        [	        U5      S:  d   e[        US
5      n[        U[         R
                  " SS/5      5        [        US5      n[        U[         R                  " SSS5      5        g)zI
Check when IQR is 0, but variance exists, we return a reasonable value.
éè  r   Nr4   r!   éüÿÿÿr×   r`   g      Y@r;  r>  rG  )r%   rn   r   r   rƒ   r;   r)   )r   Úlim_var_dataÚ
edges_autoÚedges_fdÚedges_sturgess        r   Útest_limited_varianceÚ/TestHistogramOptimBinNums.test_limited_variance  s©   € ô —w’w˜t“}ˆØˆ�R�aÐØˆ�R�SÐä(¨°vÓ>ˆ
Ü�Z ‘] AÔ&Ü�Z ‘^ TÔ*Ü�:‹ Ó$Ð$Ð$ä& |°TÓ:ˆÜ�XœrŸxšx¨¨C¨Ó1Ô2ä+¨L¸)ÓDˆÜ�]¤B§K¢K°°3¸Ó$;Õ<r   c                 ó*  • [         R                  " SSS5      n[         R                  " [         R                  " SSS5      U45      nSSSS	S
.nUR                  5        H2  u  pE[         R                  " X$5      u  pg[        [        U5      U5        M4     g)a»  
Check the FD, Scott and Doane with outliers.

The FD estimates a smaller binwidth since it's less affected by
outliers. Since the range is so (artificially) large, this means more
bins, most of which will be empty, but the data of interest usually is
unaffected. The Scott estimator is more affected and returns fewer bins,
despite most of the variance being in one area of the data. The Doane
estimator lies somewhere between the other two.
r¡   r$   rN  i’ÿÿÿéœÿÿÿr‹   é   re   rF   )r;  r<  r?  rA  N)r%   r)   ÚhstackrS  r   r   rƒ   )r   ÚxcenterÚoutlier_datasetÚoutlier_resultdictrC  rY  r,   r-   s           r   Útest_outlierÚ&TestHistogramOptimBinNums.test_outlier  sy   € ô —+’+˜c 2 rÓ*ˆÜŸ)š)¤R§[¢[°°t¸QÓ%?ÀÐ$IÓJˆà$&°¸RÈ!ÑLÐà"4×":Ñ":Ö"<ÑˆIÜ—<’< Ó;‰DˆAÜœ˜Q› Ö)ò #=r   c                 óL  • S n[        S5       VVs/ s HP  n[        R                  " SSSS9R                  5       R	                  [
        5       Vs/ s H
  o1" X#5      PM     snPMR     nnn[        [        R                  " USS9S-
  5      n[        U/ S	QS
S9  gs  snf s  snnf )zQVerify that Scott's rule and Stone's rule converges for normally distributed datac                 óú   • [         R                  R                  U 5      nUR                  SSUS9n[	        [         R
                  " US5      S   5      [	        [         R
                  " US5      S   5      pTXDU-   -  $ )Nr   r3   )ÚlocÚscaleÚsizerA  r<  )r%   r&   ÚRandomStateÚnormalrƒ   r   )Úseedr…  Úrngrx   r,   r-   s         r   Únbins_ratioÚBTestHistogramOptimBinNums.test_scott_vs_stone.<locals>.nbins_ratio/  sh   € Ü—)‘)×'Ñ'¨Ó-ˆCØ—
‘
˜q¨°�
Ð5ˆAÜ”r—|’| A wÓ/°Ñ2Ó3´S¼¿ºÀaÈÓ9QÐRSÑ9TÓ5UˆqØ˜A™‘;Ðr   r$   r!   r5   )ÚstartÚstopr«   r   r"   rI   )g333333Ã?g
×£p=
·?g{®Gáz´?g¸…ëQ¸ž?r3   rZ   N)	rW   r%   Ú	geomspaceÚroundrã   ro   ÚabsÚmeanr   )r   rŠ  rˆ  r…  ÚllÚavgs         r   Útest_scott_vs_stoneÚ-TestHistogramOptimBinNums.test_scott_vs_stone,  sš   € ò	ô   œ)ô%Ú#�$ô 46·<²<ÀbÈsÐXYÑ3Z×3`Ñ3`Ó3b×3iÑ3iÔjmÔ3nÓoÒ3n¨4ˆ{˜4Ö&Ñ3nÔoÙ#ð 	ñ %ô ”"—'’'˜" 1Ñ%¨Ñ+Ó,ˆÜ˜CÒ!9À1ÓEùò pùó %s   ’?B ÁBÁ"B ÂB c           	      óæ  • SSSSSSS.SSSSSSS.S	S	S
SS	SS.S.nUR                  5        HÂ  u  p#[        R                  " SSUS-  S-  5      n[        R                  " SSUS-  S-  5      n[        R                  " SSU5      n[        R                  " XEU45      nUR                  5        H=  u  p‰[        R                  " XxSS9u  p«SU S3nUSU 3-  n[        [        U
5      XœS9  M?     MÄ     g)zÊ
Straightforward testing with a mixture of linspace data (for
consistency). Adding in a 3rd mixture that will then be
completely ignored. All test values have been precomputed and
the shouldn't change.
r^   rY   rK  )r;  r<  r=  r>  r×   rA  rF  é    rà   éP   é!   éE   é   rM  r¡   r`   r‹   r3   r2   r$   r4   ry  iÎÿÿÿ)iìÿÿÿrà   rV   rO  z
 estimatorz with datasize of rQ  N)rS  r%   r)   r{  r   r   rƒ   )r   rT  rU  rV  rW  rX  Úx3rx   rC  rY  r,   r-   Úmsgs                r   Útest_simple_rangeÚ+TestHistogramOptimBinNums.test_simple_range<  s  € ð $%°¸BØ(*°BÀñDà#%°¸BØ(*°BÀñEà#%°¸BØ(*°BÀñEñˆ
ð )3×(8Ñ(8Ö(:Ñ$ˆGô —’˜S " g°¡l°QÑ&6Ó7ˆBÜ—’˜Q  G¨q¡L°1Ñ$4Ó5ˆBÜ—’˜T 3¨Ó0ˆBÜ—	’	˜2 2˜,Ó'ˆAØ&5×&;Ñ&;Ö&=Ñ"�	Ü—|’| A¸	ÑB‘�Ø   ¨:Ð6�ØÐ+¨G¨9Ð5Ñ5�ÜœS ›V WÔ:ó	 '>ò );r   r7   )r×   r;  r?  r<  rA  r=  r>  c                 ó  • [         R                  " / SQ[         R                  S9n[         R                  " X!S9u  p4[         R                  " UR	                  [         R
                  5      US9u  pV[        X55        [        XF5        g )N)éþÿÿÿr   é   rt   r6   )r%   r;   Úint8r   rã   Úint32r
   )r   r7   r,   r<   r=   Úhist32Úedges32s          r   Útest_signed_integer_dataÚ2TestHistogramOptimBinNums.test_signed_integer_data[  sW   € ô �HŠH’\¬¯©Ñ1ˆÜ—l’l 1Ñ0‰ˆÜŸ,š, q§x¡x´·±Ó'9ÀÑE‰ˆÜ˜4Ô(Ü˜5Õ*r   c           
      ó>  • [        5        nUS:X  a  UR                  [        5        [        [        R
                  " [        R                  " [        R                  " S5      S5      U5      [        R                  " S5      5        SSS5        g! , (       d  f       g= f)z5
Test that bin width for integer data is at least 1.
rA  rU   rp  N)r   rÙ   r‚   r   r%   r   ÚtilerM   )r   r7   r†   s      r   Útest_integerÚ&TestHistogramOptimBinNums.test_integere  sa   € ô Ô  CØ�w‹Ø—
‘
œ>Ô*ÜÜ×&Ò&¤r§w¢w¬r¯yªy¸«|¸TÓ'BÀDÓIÜ—	’	˜!“ô÷ !× Ö ús   ‹A:BÂ
Bc           	      ób  • [        [        R                  " [        R                  " [        R                  " S5      S5      S5      [        R                  " S5      S-  5        [        [        R                  " [        R                  " [        R                  " S5      S5      SS/5      SS/5        g)	zH
Test that the bin-width>=1 requirement *only* applies to auto binning.
rU   rp  rF  rI  r3   rG   rŽ   N)r   r%   r   rª  rM   r   s    r   Útest_integer_non_autoÚ/TestHistogramOptimBinNums.test_integer_non_autor  sw   € ô 	Ü×"Ò"¤2§7¢7¬2¯9ª9°Q«<¸Ó#>ÀÓCÜ�IŠI�b‹M˜AÑô	ô 	Ü×"Ò"¤2§7¢7¬2¯9ª9°Q«<¸Ó#>ÀÀRÀÓIØ�ˆHõ	r   c           	      óP   • / SQnU H  n[        [        [        / SQU/ SQS9  M     g)z-
Check that weighted data raises a TypeError
)r;  r<  r=  r>  r×   r\  ri   N)r   r¬   r   )r   rB  rC  s      r   Útest_simple_weightedÚ.TestHistogramOptimBinNums.test_simple_weighted}  s'   € ò DˆÛ'ˆIÜœ)¤Y²	Ø#ªYô8ò (r   r   N)r0  r1  r2  r3  Ú__doc__r§   r.   r`  rh  rm  rv  r  r”  rž  r  r4  Úparametrizer§  r«  r®  r±  r6  r   r   r   r8  r8  ²  s›   † ñò
4ò<ò4<ò(GòMò=ò&*ò(Fò ;ð> ‡[�[×Ñ˜Vò &Bó Cñ+óCð+ð ‡[�[×Ñ˜Vò &Bó Cñ	óCð	ò	õ8r   r8  c                   ón   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rSrg)ÚTestHistogramddi‡  c           	      ó”  • [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        USSS	/S
S/S
S//S9u  p#[         R                  " / SQ/ SQ/ SQ// SQ/ SQ/ SQ//5      n[        X$5        / SQ/ SQ/ SQ/n[        XSS9u  p#[	        [         R
                  " X$S-  :H  5      5        [        USSS	/S
S/S
S//SS9u  p#[         R                  " / SQ/ SQ/ SQ// SQ/ SQ/ SQ//5      n[        X$S-  S5        [         R                  " USS	S9 Vs/ s H  n[         R                  " U5      PM     nn[        USSS/S
S/S
S//S 9u  p#[         R                  " S
S
/S
S
/S
S
//S
S	/S
S
/S	S
//S
S	/S
S
/S
S
//S
S
/S
S
/S
S
///5      n[        X$5        [         R                  " S!5      nS"U[        [        S#5      5      [        [        S#5      5      [        [        S#5      5      4'   [        [         R                  " S#5      [         R                  " S#5      [         R                  " S#5      /S#5      u  p#[        X(5        g s  snf )$N)rÈ   rI   rJ   )rÈ   rJ   r›   )rÈ   r›   rI   )rI   rI   rJ   )rI   rJ   r›   )rI   r›   r›   )r3   r4   r4   r`   r2   r   r4   rV   )r   r2   r   )r   r   r2   )r2   r   r   )r¡  r   r3   )r   r2   r3   r4   T©r7   rD   g      (@)r3   r4   r5   r5   rX   )r   r2   r   r   )r   r   r2   r   )r2   r   r   r   g      @r"   )r5   r4   r3   r¡  r3   rº   )r‹   r‹   r‹   r8   r‹   )r%   r;   r   r
   r   Úallr	   ÚsplitÚsqueezer�   ÚlistrW   rM   )	r   rx   ÚHr=   ÚanswerÚedry   Úzr-  s	            r   r.   ÚTestHistogramdd.test_simple‰  sI  € Ü�HŠH’n¢o²~Ú$¢o²ðHó Iˆä˜q )Ø')¨1 g°°1¨v¸¸1°vÐ%>ñ@‰ˆä—’šI¢y²)Ð<Ú%¢y²)Ð<ð>ó ?ˆä˜1Ô%ò š,ªÐ5ˆÜ˜q°4Ñ8‰ˆÜ”—’�q S™LÑ(Ó)Ô*ô ˜q )Ø')¨1 g°°1¨v¸¸1°vÐ%>Ø'+ñ-‰ˆô —’šLª,ºÐEÚ(ª,ºÐEðGó Hˆä! !¨b¡[°!Ô4ô %'§H¢H¨Q°¸Ò$:Ó;Ò$:˜qŒR�ZŠZ˜Ž]Ñ$:ˆÐ;ÜØ�I r¨1 g°°1¨v¸¸1°vÐ%>ñ@‰ˆä—’˜Q ˜F Q¨ F¨Q°¨FÐ3Ø ˜F Q¨ F¨Q°¨FÐ3Ø ˜F Q¨ F¨Q°¨FÐ3Ø ˜F Q¨ F¨Q°¨FÐ3ð5ó 6ˆô 	˜1Ô%ä�HŠH�YÓˆØ<>ˆŒ$Œu�Q‹x‹.œ$œu Q›x›.¬$¬u°Q«x«.Ð
8Ñ9Ü¤§	¢	¨!£¬b¯iªi¸«l¼B¿IºIÀa»LÐIÈ1ÓM‰ˆÜ˜1Õ ùò <s   Ä Ic                 ó¤   • Sn[         R                  R                  SS5      nU H(  n[        X#5      u  pE[	        UR
                  U:H  5        M*     g )N))r‹   r5   rF   )rF   r5   r‹   )r‹   rF   r5   )r5   rF   r‹   )rF   r‹   r5   )r5   r‹   rF   r$   r4   ©r%   r&   r'   r   r   Úshape©r   r7   Úrr-   r½  r=   s         r   Útest_shape_3dÚTestHistogramdd.test_shape_3d®  sC   € ðˆä�I‰I�N‰N˜2˜qÓ!ˆÛˆAÜ" 1Ó(‰HˆAÜ�A—G‘G˜q‘LÖ!ò r   c                 ó¤   • Sn[         R                  R                  SS5      nU H(  n[        X#5      u  pE[	        UR
                  U:H  5        M*     g )N))rá   r5   r‹   rF   )r5   r‹   rá   rF   )r‹   rF   r5   rá   )rá   rF   r‹   r5   )r‹   rá   rF   r5   )r5   rF   rá   r‹   )rF   r‹   rá   r5   )rá   r‹   r5   rF   )rá   r5   rF   r‹   )rF   r5   rá   r‹   )rF   rá   r‹   r5   )r5   rF   r‹   rá   )r5   rá   r‹   rF   )r‹   r5   rF   rá   )r‹   rá   r5   rF   )rF   rá   r5   r‹   )rF   r‹   r5   rá   )r5   rá   rF   r‹   )r5   r‹   rF   rá   )rá   rF   r5   r‹   )r‹   r5   rá   rF   )r‹   rF   rá   r5   )rF   r5   r‹   rá   )rá   r‹   rF   r5   r$   r5   rÃ  rÅ  s         r   Útest_shape_4dÚTestHistogramdd.test_shape_4d·  sF   € ðHˆô �I‰I�N‰N˜2˜qÓ!ˆÛˆAÜ" 1Ó(‰HˆAÜ�A—G‘G˜q‘LÖ!ò r   c                 ó˜  • [         R                  R                  SS5      n[        U5      u  p#[        USS9u  pC[        U[         R                  " S5      S9u  pS[        XR5        [        U[         R                  " S5      S-  SS9u  pS[        XT5        [        U[         R                  " S[        5      S-  S9u  pS[        USU-  5        g )Nr!   r3   TrC   ri   rŒ   )r%   r&   r'   r   rn   r
   ro   )r   r+   r<   r=   Ún_histÚw_hists         r   r—   ÚTestHistogramdd.test_weightsÅ  sž   € Ü�I‰I�N‰N˜3 Ó"ˆÜ! !“n‰ˆÜ# A¨tÑ4‰ˆÜ# A¬r¯wªw°s«|Ñ<‰ˆÜ˜6Ô(Ü# A¬r¯wªw°s«|¸aÑ/?ÈÑN‰ˆÜ˜6Ô*Ü# A¬r¯wªw°s¼CÓ/@À1Ñ/DÑE‰ˆÜ˜6 1 t¡8Õ,r   c                 óœ   • [         R                  " S[        5      n[        USS9u  p#[	        US   [         R
                  " / SQ5      5        g )N)r$   r3   r3   r6   r   )rÈ   rH   rI   )r%   r�   ro   r   r
   r;   )r   rx   r<   r=   s       r   Útest_identical_samplesÚ&TestHistogramdd.test_identical_samplesÐ  s7   € Ü�HŠH�WœcÓ"ˆÜ! !¨!Ñ,‰ˆÜ˜5 ™8¤R§X¢XªoÓ%>Õ?r   c                 óä   • [        / / /SS/SS/4S9u  p[        U[        R                  " S//5      5        [        R                   " / / / /SS9u  p[        U[        R                  " S5      5        g )Nr   r2   r6   rH   r3   )r3   r3   r3   )r   r   r%   r;   r�   r¦   s      r   r§   ÚTestHistogramdd.test_emptyÕ  sc   € Ü˜B ˜8¨A¨q¨6°A°q°6Ð*:Ñ;‰ˆÜ˜Q¤§¢¨2¨$¨Ó 0Ô1Ü�~Š~˜r 2 r˜l°Ñ3‰ˆÜ˜Q¤§¢¨Ó 3Õ4r   c           
      ó`  • [         R                  " S5      R                  SS5      n[        [        [         R
                  U/ SQS9  [        [        [         R
                  U/ SQS9  [        [        [         R
                  USSS/ SQ/S9  [        [         R
                  " USSS/ S	Q/S95        g )
Nr^   r3   r5   )r`   r3   r5   r‹   r6   )r2   g®Gáz®ï?r2   r2   r2   )r2   r3   r4   éýÿÿÿr1   )r%   rM   Úreshaper   r:   r   r   )r   rx   s     r   Útest_bins_errorsÚ TestHistogramdd.test_bins_errorsÛ  s}   € ô �IŠI�a‹L× Ñ   AÓ&ˆÜ”j¤"§.¡.°!º-ÒHÜ”j¤"§.¡.°!º/ÒJÜÜœŸ™¨°°A°qº-Ð0Hò	Jä”—’˜q¨¨1¨a²Ð'>Ñ?Õ@r   c           
      óp  • [         R                  " SS9   [         R                  " S5      R                  SS5      n[         R                  " SS/SS/SS//5      n[         R
                  " US[         R                  * SS//S	9u  p4[        X25        [         R
                  " US[         R                  " S
S[         R                  /5      /S	9u  p4[        X25        [         R
                  " US[         R                  * S[         R                  //S	9u  p4[        X25        S S S 5        g ! , (       d  f       g = f)NÚignore)ÚinvalidrF   r4   r3   r2   r   r$   r6   r`   )r%   ÚerrstaterM   r×  r;   r   rN   r   )r   rx   Úexpectedr>   r?   s        r   Útest_inf_edgesÚTestHistogramdd.test_inf_edgeså  sã   € ä�[Š[ Ó*Ü—	’	˜!“×$Ñ$ Q¨Ó*ˆAÜ—x’x ! Q ¨!¨Q¨°!°Q°Ð 8Ó9ˆHÜ—>’> !¨1´·±¨w¸¸2Ð.>Ð*?Ñ@‰DˆAÜ˜AÔ(Ü—>’> !¨1¬b¯hªh¸¸A¼r¿v¹v°Ó.GÐ*HÑI‰DˆAÜ˜AÔ(Ü—>’> !¨1´·±¨w¸¼2¿6¹6Ð.BÐ*CÑD‰DˆAÜ˜AÔ(÷ +×*Ö*ús   •D	D'Ä'
D5c                 ó¬  • S/n/ SQ/n[        XS9u  p4[        US   S:H  5        [        US   S:H  5        S/n/ SQ/n[        XS9u  p4[        US   S:H  5        [        US   S:H  5        S/n/ SQ/n[        XS9u  p4[        US   S:H  5        [        US   S:H  5        S	/n/ SQ/n[        XS9u  p4[        US   S:H  5        [        US   S:H  5        g )
NgÐG»ÿÿÿï?)rH   rI   r8   r6   r   rH   r2   r8   g8ß   ð?gq¬‹Ûh ð?)r   r   )r   rx   r7   r<   Ú_s        r   Útest_rightmost_binedgeÚ&TestHistogramdd.test_rightmost_binedgeñ  sî   € àˆNˆÚÐˆÜ˜aÑ+‰ˆÜ��Q‘˜3‘ÔÜ��Q‘˜2‘ÔØˆEˆÚÐˆÜ˜aÑ+‰ˆÜ��Q‘˜3‘ÔÜ��Q‘˜2‘ÔØˆNˆÚÐˆÜ˜aÑ+‰ˆÜ��Q‘˜3‘ÔÜ��Q‘˜3‘ÔØˆHˆÚÐˆÜ˜aÑ+‰ˆÜ��Q‘˜3‘ÔÜ��Q‘˜3‘Õr   c           	      ó  • [         R                  R                  S5      n[        USS/SS/SS//S9  [        [        [        USS/SS/S[         R
                  //S9  [        [        [        USS/[         R                  S/SS//S9  g )N)r!   r4   rH   r8   rK   r²   rI   rV   )r%   r&   r   r   r:   rN   r³   r­   s     r   r´   Ú!TestHistogramdd.test_finite_range  s…   € Ü�y‰y×Ñ Ó)ˆÜ�D # s ¨d°D¨\¸DÀ#¸;Ð GÒHÜ”j¤+¨tØ! 3˜Z¨$°¨¸¼b¿f¹f°~ÐFò	Hä”j¤+¨tØ! 3˜Z¬"¯&©&°$¨¸$À¸ÐEó	Gr   c                 óþ   • [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      nSn[        X4X44S9u  pV[         R                  " S/S//5      n[        XW5        g)z9Test that adjacent entries in an edge array can be equal )r   r2   r3   )r   r3   r3   r2   r6   r9   r8   N©r%   r;   r   r   )r   rx   ry   Úx_edgesÚy_edgesr<   r=   Úhist_expecteds           r   Útest_equal_edgesÚ TestHistogramdd.test_equal_edges  sk   € ä�HŠH’YÓˆÜ�HŠH’YÓˆÜ—(’(š9Ó%ˆØˆÜ! 1 &°Ð/AÑB‰ˆäŸšØˆDØˆDð"
ó ˆô 	�TÕ)r   c                 ó   • [         R                  " / SQ5      nUS-  n[         R                  " / SQ5      nUS-  n[        X4X44S9u  pV[        US   R                  UR                  5        [        US   R                  UR                  5        g)z;Test that if an edge array is input, its type is preserved )r   r$   rà   r$   )r   r‹   rY   rà   r6   r   r2   N)r%   r;   r   r   rk   )r   rx   ry   ré  rê  r<   r=   s          r   Útest_edge_dtypeÚTestHistogramdd.test_edge_dtype  so   € ä�HŠH’[Ó!ˆØ�‰FˆÜ—(’(š>Ó*ˆØ˜B‘,ˆÜ! 1 &°Ð/AÑB‰ˆä�U˜1‘X—^‘^ W§]¡]Ô3Ü�U˜1‘X—^‘^ W§]¡]Õ3r   c                 óì   • Sn[         R                  " S/[         R                  5      n[         R                  " SS/[         R                  5      nX-   nX-   n[        X$4X54S9u  pg[	        US   S5        g )Nl            r   r`   r2   r6   )r   r   )r%   r;   Úint64r   r   )r   Úbigrx   ré  ry   rê  r<   r=   s           r   Útest_large_integersÚ#TestHistogramdd.test_large_integers)  sd   € Øˆä�HŠH�a�Sœ"Ÿ(™(Ó#ˆÜ—(’(˜B ˜8¤R§X¡XÓ.ˆØ‰GˆØ‘-ˆä! 1 &°Ð/AÑB‰ˆä�T˜$‘Z Õ#r   c                 ó´  • [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " SS/SS//5      n[         R                  " S/S/S-  -   S/S-  -   S/S-  -   5      n[         R                  " S/S/S-  -   S/S-  -   S/S-  -   5      n[        XT4X!4S9u  pg[        Xc5        [        XT4X!4SS	9u  pg[        US
5        g )N)r   r3   r^   )r   rF   r^   r4   rU   r2   rá   r6   Tr¸  g      �?rè  )r   ré  rê  Úrelative_areasrx   ry   r<   r=   s           r   Útest_density_non_uniform_2dÚ+TestHistogramdd.test_density_non_uniform_2d5  sá   € ô —(’(š9Ó%ˆÜ—(’(š9Ó%ˆÜŸšØ�ˆFØ�ˆFð#ó ˆô
 �HŠH�a�S˜A˜3 ™7‘] a S¨1¡WÑ,°¨s°Q©wÑ6Ó7ˆÜ�HŠH�a�S˜A˜3 ™7‘] a S¨1¡WÑ,°¨s°Q©wÑ6Ó7ˆô " 1 &°Ð/AÑB‰ˆÜ�TÔ*ô " 1 &°Ð/AÈ4ÑP‰ˆÜ�T˜;Õ'r   c                 óÈ   • [         R                  " S5      n[         R                  " / SQ5      n[        XSS9u  p4[	        U4U4SS9u  pV[        X55        [        XFS   5        g )Nr$   rE   TrC   r   )r%   rM   r;   r   r   r   )r   r+   r7   r<   r=   Úhist_ddÚedges_dds          r   Útest_density_non_uniform_1dÚ+TestHistogramdd.test_density_non_uniform_1dP  sU   € ä�IŠI�b‹MˆÜ�xŠxÒ(Ó)ˆÜ °Ñ6‰ˆÜ'¨¨¨t¨g¸tÑDÑˆÜ�TÔ#Ü�U Q™KÕ(r   r   N)r0  r1  r2  r3  r.   rÇ  rÊ  r—   rÑ  r§   rØ  rß  rã  r´   rì  rï  rô  rø  rý  r6  r   r   r   r¶  r¶  ‡  sQ   † ò#!òJ"ò"ò	-ò@ò
5òAò
)ò ò.Gò*ò	4ò
$ò(õ6)r   r¶  )r  Únumpyr%   r   r   r   Únumpy.testingr   r   r   r	   r
   r   r   r   r   r   r   r8  r¶  r   r   r   Ú<module>r     sF   ðÛ ã ß =Ñ =÷÷ ÷ ÷]"ñ ]"÷~R8ñ R8÷jP)ò P)r   