Ë
    6Š·jŸ„  ã                   ó˜   — d dl Z d dlZd dlZd dlmZmZmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZ  G d„ d«      Z G d„ d«      Z G d„ d	«      Zy)
é    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_regexc                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"e#jH                  jK                  d!¬"«      d#„ «       Z&d$„ Z'd%„ Z(y&)'ÚTestHistogramc                  ó   — y ©N© ©Úselfs    úU/root/workspace/.venv/lib/python3.12/site-packages/numpy/lib/tests/test_histograms.pyÚsetup_methodzTestHistogram.setup_method   ó   € Øó    c                  ó   — y r   r   r   s    r   Úteardown_methodzTestHistogram.teardown_method   r   r   c                 ó  — d}t         j                  j                  |«      }t        |«      \  }}t	        t        j
                  |d¬«      |«       t        t        j                  ddd«      «      \  }}t        |d«       y )Néd   r   ©Úaxisé
   )ÚnpÚrandomÚrandr   r   ÚsumÚlinspacer
   )r   ÚnÚvÚaÚbs        r   Útest_simplezTestHistogram.test_simple   sb   € ØˆÜ�I‰I�N‰N˜1ÓˆÜ˜1“‰ˆˆAä”R—V‘V˜A AÔ&¨Ô*ô œ2Ÿ;™; q¨"¨cÓ2Ó3‰ˆˆAÜ˜1˜bÕ!r   c                 ó8  — t        g d¢ddg«      \  }}t        |dg«       t        |ddg«       t        t        t         ddgd¬«       t        ddgd¬«      \  }}t	        |t        j                  dg«      «       t        |t        j                  ddg«      «       y )N©é   é   é   é   r-   r.   r   ©Úbinsç      ð?ç       @)r   r
   r   Ú
ValueErrorr   r!   Úarrayr   )r   ÚhistÚedgesÚhÚes        r   Útest_one_binzTestHistogram.test_one_bin'   s�   € ä¢¨q°!¨fÓ5‰ˆˆeÜ˜4 ! Ô'Ü˜5 1 a &Ô)Ü”j¤)¨a°¨V¸!Õ<Ü˜!˜Q˜ aÔ(‰ˆˆ1Ü�QœŸ™ ! ›Ô&Ü˜œ2Ÿ8™8 R¨ HÓ-Õ.r   c                 óò  — d}t         j                  j                  |«      }t        |d¬«      \  }}t        j                  |t        j
                  |«      z  «      }t        |d«       t        j                  d«      }g d¢}t        ||d¬«      \  }}t        |d«       t        t        j                  |t        j
                  |«      z  «      d«       t        ||d¬«      \  }}t        |g d	¢«       t        j                  d«      }d
dddt         j                  g}t        ||d¬«      \  }}t        |g d¢«       t        j                  g d	¢ddt         j                  gd¬«      \  }}t        |dd
g«       y )Nr   T©Údensityr-   r    ©r   r-   r/   é   r    çš™™™™™¹?Fr,   r   r/   r@   )rA   rA   rA   ç        ç      à?ç      ø?ç      Ð?)r!   r"   r#   r   r$   Údiffr   Úaranger
   r   Úinf)	r   r&   r'   r(   r)   Úarear2   ÚcountsÚdmys	            r   Útest_densityzTestHistogram.test_density1   s.  € àˆÜ�I‰I�N‰N˜1ÓˆÜ˜ DÔ)‰ˆˆ1Ü�v‰v�aœ"Ÿ'™' !›*‘nÓ%ˆÜ˜D !Ô$ô �I‰I�b‹MˆÚˆÜ˜˜D¨$Ô/‰ˆˆ1Ü˜1˜bÔ!Ü”R—V‘V˜A¤§¡¨£
™NÓ+¨QÔ/ô ˜˜D¨%Ô0‰ˆˆ1Ü˜1šlÔ+ô �I‰I�b‹MˆØ�1�a˜œBŸF™FÐ#ˆÜ˜˜D¨$Ô/‰ˆˆ1Ü˜1Ò.Ô/ô —l‘lÚ˜3 ¤R§V¡VÐ,°dô<‰ˆ�ä�V˜c 1˜XÕ&r   c                 ól  — t        j                  d«      dz   }t        |ddg¬«      \  }}t        |j	                  «       d«       t        |ddg¬«      \  }}t        |j	                  «       d«       t        |ddgd¬«      \  }}t        |t        j                  |«      z  j	                  «       dd	¬
«       t        j                  d«      dz   }t        |ddg|d¬«      \  }}t        |t        j                  |«      z  j	                  «       d«       t        |dddg|¬«      \  }}t        ||dd «       y )Nr    rC   r   é	   ©Úranger-   T©rP   r>   é   ©Údecimal©rP   Úweightsr>   é   ©r2   rP   rV   éÿÿÿÿ)r!   rG   r   r   r$   r   rF   )r   r(   r9   r)   Úws        r   Útest_outlierszTestHistogram.test_outliersQ   s  € ä�I‰I�b‹M˜BÑˆô ˜ 1 a &Ô)‰ˆˆ1Ü�Q—U‘U“W˜aÔ ô ˜ 1 b 'Ô*‰ˆˆ1Ü�Q—U‘U“W˜aÔ ô ˜ 1 a &°$Ô7‰ˆˆ1Ü˜Q¤§¡¨£™^×0Ñ0Ó2°A¸rÕBô �I‰I�b‹M˜BÑˆÜ˜ 1 a &°!¸TÔB‰ˆˆ1Ü�aœ"Ÿ'™' !›*‘n×)Ñ)Ó+¨QÔ/ä˜ ¨1¨a¨&¸!Ô<‰ˆˆ1Ü�Q˜˜!˜B˜Õ r   c                 óÖ   — t        j                  d«      dz   }t        j                  d«      dz   }t        t        d«      5  t	        |ddg|d¬«      \  }}d d d «       y # 1 sw Y   y xY w)	Nr    rC   é   zsame shape asr-   rN   TrU   )r!   rG   r   r5   r   )r   r(   rZ   r9   r)   s        r   Útest_arr_weights_mismatchz'TestHistogram.test_arr_weights_mismatchi   sa   € Ü�I‰I�b‹M˜BÑˆÜ�I‰I�b‹M˜BÑˆÜ ¤¨_Ó=ñ 	GÜ˜Q q¨! f°aÀÔF‰DˆAˆq÷	G÷ 	Gñ 	Gús   ÁAÁA(c                 óÈ  — t        j                  d«      dz   }t        |«      \  }}t        t        j                  |j
                  t         j                  «      «       t        |d¬«      \  }}t        t        j                  |j
                  t         j                  «      «       t        |t        j                  dt        «      ¬«      \  }}t        t        j                  |j
                  t         j                  «      «       t        |t        j                  dt        «      ¬«      \  }}t        t        j                  |j
                  t         j                  «      «       y )Nr    rC   Tr=   ©rV   )r!   rG   r   r   Ú
issubdtypeÚdtypeÚintegerÚfloatingÚonesÚintÚfloat)r   r(   r9   r)   s       r   Ú	test_typezTestHistogram.test_typeo   sÓ   € ä�I‰I�b‹M˜BÑˆÜ˜‹|‰ˆˆ1Ü”—‘˜aŸg™g¤r§z¡zÓ2Ô3ä˜ DÔ)‰ˆˆ1Ü”—‘˜aŸg™g¤r§{¡{Ó3Ô4ä˜¤B§G¡G¨B´Ó$4Ô5‰ˆˆ1Ü”—‘˜aŸg™g¤r§z¡zÓ2Ô3ä˜¤B§G¡G¨B´Ó$6Ô7‰ˆˆ1Ü”—‘˜aŸg™g¤r§{¡{Ó3Õ4r   c                 ó  — t        j                  g d¢t         j                  ¬«      }t        j                  g d¢t         j                  ¬«      }t        j                  ||d¬«      \  }}}t	        |j                  «       d«       y )N)g2V›ÿEq@g“áx>fQÀg-³ÅVT5@©rb   )g!çý°�³@gö·àS�±@g§’ ^z·@r   r1   ç      @)r!   r6   Úfloat32Úhistogram2dr   r$   )r   ÚxÚyÚcounts_histÚxedgesÚyedgess         r   Útest_f32_roundingzTestHistogram.test_f32_rounding~   sV   € ä�H‰HÒ8ÄÇ
Á
ÔKˆÜ�H‰HÒ<ÄBÇJÁJÔOˆÜ&(§n¡n°Q¸ÀÔ&DÑ#ˆ�V˜VÜ�[—_‘_Ó&¨Õ+r   c                 óF  — t        j                  g d¢t         j                  ¬«      }t        j                  |«      \  }}t	        j
                  t        d¬«      5  t        j                  g d¢«      \  }}t        ||«       t        ||«       d d d «       y # 1 sw Y   y xY w)N)r-   r-   r   rj   zConverting input from .*©Úmatch)TTF)r!   r6   Úuint8r   ÚpytestÚwarnsÚRuntimeWarningr
   )r   r(   Úint_histÚ	int_edgesr7   r8   s         r   Útest_bool_conversionz"TestHistogram.test_bool_conversion…   sw   € ô �H‰H’Y¤b§h¡hÔ/ˆÜ Ÿl™l¨1›oÑˆ�)ô
 �\‰\œ.Ð0JÔKñ 	1ÜŸ,™,Ò':Ó;‰KˆD�%ä˜t XÔ.Ü˜u iÔ0÷		1÷ 	1ñ 	1ús   Á3BÂB c                 ób  — t         j                  j                  d«      }t        j                  d«      dz  }t	        |«      \  }}t	        |d¬«      \  }}t	        ||¬«      \  }}t	        ||d¬«      \  }	}
t        |dz  |«       t        ||	«       t        j                  ddd«      }t        j                  t        j                  d«      t        j                  d«      f«      }t	        |t        j                  d	«      |¬
«      \  }}t        ||«       t	        g d¢dg d¢¬
«      \  }}t        |g d¢«       t	        g d¢dg d¢d¬«      \  }}t        |t        j                  g d¢«      dz  dz  dz  «       t	        t        j                  d«      g d¢g d¢d¬«      \  }}t        |g d¢«       y )Nr   é   Tr=   r`   ©rV   r>   r   r    r]   ©r2   rV   )r-   r.   r.   r0   r0   )r0   r/   r.   r-   )r0   r   r   r-   )r2   rV   r>   g      $@rk   rN   r?   )	r.   r-   r-   r-   r-   r-   r-   r-   r-   )çš™™™™™É?rA   rA   g333333³?)r!   r"   r#   re   r   r	   r%   ÚconcatenateÚzerosrG   r
   r6   r   )r   r'   rZ   r(   r)   ÚnaÚnbÚwaÚwbÚnwaÚnwbs              r   Útest_weightszTestHistogram.test_weights”   s`  € Ü�I‰I�N‰N˜3ÓˆÜ�G‰G�C‹L˜1ÑˆÜ˜‹|‰ˆˆ1Ü˜1 dÔ+‰ˆˆBÜ˜1 aÔ(‰ˆˆBÜ˜Q¨°4Ô8‰ˆˆSÜ! ! a¡%¨Ô,Ü! " cÔ*ô �K‰K˜˜2˜rÓ"ˆÜ�N‰NœBŸH™H Q›K¬¯©°«Ð4Ó5ˆÜ˜1¤2§9¡9¨R£=¸!Ô<‰ˆˆBÜ! " aÔ(ô š<¨aºÔF‰ˆˆBÜ˜2š|Ô,ÜÚ˜qª,ÀôF‰ˆˆBä! "¤b§h¡hª|Ó&<¸sÑ&BÀRÑ&GÈ!Ñ&KÔLô Ü�I‰I�a‹LÒ*Ú/¸ô?‰ˆˆ1ô 	˜AÒ1Õ2r   c           	      ó  — t        j                  g d¢«      }t        j                  g d¢«      dt        j                  g d¢«      z  z   }t        |g d¢|¬«      \  }}t        |t        j                  ddg«      dt        j                  dd	g«      z  z   «       t        |ddd	g|¬
«      \  }}t        |t        j                  ddg«      dt        j                  dd	g«      z  z   «       ddlm} t        j                  g d¢«      }t        j                   |d«       |d«       |d	«      g«      }t        |g d¢|¬«      \  }}t        | |d«       |d«      g«       t        |ddd	g|¬
«      \  }}t        | |d«       |d«      g«       y )N©gÍÌÌÌÌÌô?ç      @gffffff@)r-   rY   r.   y              ð?)r.   r-   r.   )r   r.   r/   r�   r-   r.   r/   rX   r   )ÚDecimalr   )r!   r6   r   r	   rT   r�   )r   ÚvaluesrV   r‡   rˆ   r�   s         r   Útest_exotic_weightsz!TestHistogram.test_exotic_weights±   sM  € ô —‘š/Ó*ˆÜ—(‘(š:Ó&¨¬b¯h©h²yÓ.AÑ)AÑAˆô ˜6ª	¸7ÔC‰ˆˆBÜ! "¤b§h¡h°°1¨vÓ&6¸¼b¿h¹hÈÈ1ÀvÓ>NÑ9NÑ&NÔOô ˜6¨°!°Q°ÀÔI‰ˆˆBÜ! "¤b§h¡h°°1¨vÓ&6¸¼b¿h¹hÈÈ1ÀvÓ>NÑ9NÑ&NÔOõ 	$Ü—‘š/Ó*ˆÜ—(‘(™G A›J©°«
±G¸A³JÐ?Ó@ˆô ˜6ª	¸7ÔC‰ˆˆBÜ! "¡w¨q£z±7¸1³:Ð&>Ô?ô ˜6¨°!°Q°ÀÔI‰ˆˆBÜ! "¡w¨q£z±7¸1³:Ð&>Õ?r   c                 ó‚   — t        j                  g d¢«      }t        j                  |ddgd¬«       t        |g d¢«       y )Nr�   éöÿÿÿr    r   )rP   r2   )r!   r6   r   r	   )r   r�   s     r   Útest_no_side_effectsz"TestHistogram.test_no_side_effectsÏ   s0   € ô —‘š/Ó*ˆÜ
�‰�V C¨ 9°3Õ7Ü! &ª/Õ:r   c                 óª   — t        g ddg¬«      \  }}t        |t        j                  dg«      «       t        |t        j                  ddg«      «       y )Nr   r-   r1   ©r   r
   r!   r6   ©r   r(   r)   s      r   Ú
test_emptyzTestHistogram.test_emptyÖ   sA   € Ü˜ A q 6Ô+‰ˆˆ1Ü˜1œbŸh™h¨ s›mÔ,Ü˜1œbŸh™h¨¨1 vÓ.Õ/r   c                 óx   — t        j                  ddd¬«      }t        |d«       t        t        t        |d«       y )NrB   r3   r   ©Únumr   g333333@)r!   r%   r   r   Ú	TypeError©r   Úvalss     r   Útest_error_binnum_typez$TestHistogram.test_error_binnum_typeÛ   s,   € ä�{‰{˜3 ¨Ô-ˆÜ�$˜ÔÜ”i¤¨D°#Õ6r   c                 óî   — t        j                  ddd¬«      }t        |ddg¬«       t        t        t        |t         j
                  dg¬«       t        t        t        |dt         j                  g¬«       y )NrB   r3   r   rš   rE   ç      è?rO   )r!   r%   r   r   r5   ÚnanrH   r�   s     r   Útest_finite_rangezTestHistogram.test_finite_rangeá   sN   € ä�{‰{˜3 ¨Ô-ˆÜ�$˜t T˜lÕ+Ü”j¤)¨T¼"¿&¹&À$¸ÕHÜ”j¤)¨T¸$ÄÇÁ¸ÖHr   c                 ó°   — t        j                  ddd¬«      }t        t        d«      5  t        j                  |ddg¬«       d d d «       y # 1 sw Y   y xY w)	NrB   r3   r   rš   zmax must be larger thanrA   g{®Gáz„?rO   )r!   r%   r   r5   r   r�   s     r   Útest_invalid_rangez TestHistogram.test_invalid_rangeè   sF   € ä�{‰{˜3 ¨Ô-ˆÜ ¤Ð-FÓGñ 	2Ü�L‰L˜ c¨4 [Õ1÷	2÷ 	2ñ 	2ús   ©AÁAc                 óö   — t        j                  g d¢«      }t        j                  |dd¬«      \  }}|dkD  }|d d |   }|dd  |   }t        |||«      D ]"  \  }}}	t	        ||k\  «       t	        ||	k  «       Œ$ y )N)iQ  i”  iã  i&  iï  i  iÜ  ih   )r.   iè  ©r2   rP   r   rY   r-   )r!   r6   r   Úzipr   )
r   Úarrr7   r8   ÚmaskÚ
left_edgesÚright_edgesrn   ÚleftÚrights
             r   Útest_bin_edge_casesz!TestHistogram.test_bin_edge_casesî   s…   € ä�h‰hÒ=Ó>ˆÜ—l‘l 3¨T¸ÔC‰ˆˆeØ�a‰xˆØ˜3˜B�Z Ñ%ˆ
Ø˜A˜B�i ‘oˆÜ! # z°;Ó?ò 	‰NˆAˆt�UÜ�A˜‘IÔÜ�A˜‘IÕñ	r   c                 ó†   — t        j                  g d¢«      }t        j                  |dd¬«      \  }}t        |d   d«       y )N©	rB   rB   rB   r3   r4   rk   rk   g      @g      @é   ©ç      à¿r   r§   rY   r-   )r!   r6   r   r   )r   r©   r7   r8   s       r   Útest_last_bin_inclusive_rangez+TestHistogram.test_last_bin_inclusive_rangeù   s5   € Ü�h‰hÒCÓDˆÜ—l‘l 3¨R°yÔA‰ˆˆeÜ�T˜"‘X˜qÕ!r   c                 óâ   — t        j                  ddd¬«      }t        j                  ddgddgg«      }t        t        d«      5  t        j
                  ||¬	«       d d d «       y # 1 sw Y   y xY w)
NrB   r3   r   rš   r   rC   g333333ã?z
must be 1dr1   )r!   r%   r6   r   r5   r   )r   rž   r2   s      r   Útest_bin_array_dimsz!TestHistogram.test_bin_array_dimsþ   s\   € ä�{‰{˜3 ¨Ô-ˆÜ�x‰x˜!˜S˜ C¨ :Ð.Ó/ˆÜ ¤¨\Ó:ñ 	*Ü�L‰L˜ DÕ)÷	*÷ 	*ñ 	*ús   ÁA%Á%A.c                 óÞ   — t        j                  dg«      }t        j                  g d¢d¬«      }t        t        «      5  t        j                  ||¬«      \  }}d d d «       y # 1 sw Y   y xY w)Nr.   )r-   r/   r-   Úuint64rj   r1   )r!   r6   r   r5   r   )r   r©   r2   r7   r8   s        r   Ú test_unsigned_monotonicity_checkz.TestHistogram.test_unsigned_monotonicity_check  sT   € ô �h‰h˜�s‹mˆÜ�x‰xš	¨Ô2ˆÜœ:Ó&ñ 	7ÜŸ,™, s°Ô6‰KˆD�%÷	7÷ 	7ñ 	7ús   ¿A#Á#A,c           
      ó~  — t        t        t        t        d«      D �cg c]  }t	        j
                  d«      ‘Œ c}t        j                   gz   «       t        t        t        t        d«      D �cg c]  }t	        j
                  d«      ‘Œ c}t        j                  gz   «       t	        j                  t        d«      D �cg c]  }t	        j
                  d«      ‘Œ c}dgz   «       t	        j                  t        d«      D �cg c]  }t	        j
                  d«      ‘Œ c}dgz   «       y c c}w c c}w c c}w c c}w )Nr    gš™™™™™Ù?rC   g     à?)r   r5   r   rP   r!   r6   rH   )r   Úis     r   Útest_object_array_of_0dz%TestHistogram.test_object_array_of_0d  sÐ   € ä”jÜ¬u°R«yÖ9¨!œŸ™ �Ò9¼b¿f¹f¸W¸IÑEô	Gä”jÜ¬u°R«yÖ9¨!œŸ™ �Ò9¼R¿V¹V¸HÑDô	Fô 	�‰¬U°2«YÖ7¨”b—h‘h˜s•mÒ7Ð;KÐ:LÑLÔMÜ
�‰¬U°2«YÖ7¨”b—h‘h˜s•mÒ7¸2¸$Ñ>Õ?ùò :ùâ9ùò 8ùÚ7s   �D+Á/D0Ã D5ÄD:c                 óô  — t        j                  ddt         j                  g«      }t        j                  t         j                  t         j                  g«      }t        j                  «       5  t        j
                  dt        «       t        t        t        |d¬«       t        t        t        |d¬«       t        |dd¬«      \  }}t        |j                  «       d«       t        |dd¬«      \  }}t        |j                  «       d«       t        |ddg¬«      \  }}t        |j                  «       d«       t        |ddg¬«      \  }}t        |j                  «       d«       d d d «       y # 1 sw Y   y xY w)	Nr   r-   ÚignoreÚautor1   ©r   r-   r§   r.   )r!   r6   r¢   ÚwarningsÚcatch_warningsÚsimplefilterrz   r   r5   r   r   r$   )r   Úone_nanÚall_nanr9   r)   s        r   Útest_some_nan_valuesz"TestHistogram.test_some_nan_values  s  € ä—(‘(˜A˜q¤"§&¡&˜>Ó*ˆÜ—(‘(œBŸF™F¤B§F¡FÐ+Ó,ˆô ×$Ñ$Ó&ñ 	%Ü×!Ñ! (¬NÔ;äœ*¤i°¸vÕFÜœ*¤i°¸vÕFô ˜W¨6¸Ô@‰DˆAˆqÜ˜Ÿ™› !Ô$Ü˜W¨6¸Ô@‰DˆAˆqÜ˜Ÿ™› !Ô$ô ˜W¨A¨q¨6Ô2‰DˆAˆqÜ˜Ÿ™› !Ô$Ü˜W¨A¨q¨6Ô2‰DˆAˆqÜ˜Ÿ™› !Ô$÷!	%÷ 	%ñ 	%ús   Á.C7E.Å.E7c                 ó„  — t        j                  dd«      }t        j                  g d¢«      }t        j                  g d¢«      }||z   }||z   }t        j                  d«      }t	        ||¬«      \  }}t	        |j                  |«      |j                  |«      ¬«      \  }	}
t	        ||¬«      \  }}t        ||«       t        |	|«       t        ||z
  j                  t        «      |«       t        |
j                  t        «      |«       t        |j                  |j                  «       t        |
j                  |«       y )Nz
2000-01-01ÚD)	r   r   r-   r-   r.   r/   r   r    é   )r   r.   é   rÊ   ztimedelta64[D]r1   )r!   Ú
datetime64r6   rb   r   Úastyper   rf   )r   ÚbeginÚoffsetsr2   ÚdatesÚ	date_binsÚtdÚd_countÚd_edgeÚt_countÚt_edgeÚi_countÚi_edges                r   Útest_datetimezTestHistogram.test_datetime0  só   € Ü—‘˜l¨CÓ0ˆÜ—(‘(Ò8Ó9ˆÜ�x‰xšÓ&ˆØ˜‘ˆØ˜D‘Lˆ	ä�X‰XÐ&Ó'ˆô
 $ E°	Ô:‰ˆ�Ü# G§N¡N°2Ó$6¸T¿[¹[È»_ÔM‰ˆ�Ü# G°$Ô7‰ˆ�ä�W˜gÔ&Ü�W˜gÔ&ä�f˜u‘n×,Ñ,¬SÓ1°6Ô:Ü�V—]‘]¤3Ó'¨Ô0ä�V—\‘\ 5§;¡;Ô/Ü�V—\‘\ 2Õ&r   c                 ó  — dt        j                  |«      j                  z  dz
  }t        j                  d|z   dz   d|z  dz
  g|¬«      }t	        |d¬«      \  }}t        |d|z   dz   dd|z  dz
  g«       t        |ddg«       y )NrW   r-   r.   r0   rj   r1   r   )r!   rb   Úitemsizer6   r   r   )r   rb   Úexponentr©   r7   r:   s         r   Údo_signed_overflow_boundsz'TestHistogram.do_signed_overflow_boundsI  s‰   € Ø”r—x‘x “×/Ñ/Ñ/°!Ñ3ˆÜ�h‰h˜˜H™˜ qÑ(¨!¨X©+¸©/Ð:À%ÔHˆÜ˜C aÔ(‰ˆˆaÜ�Q˜!˜X™+˜¨Ñ)¨1¨a°©k¸A©oÐ>Ô?Ü�T˜A˜q˜6Õ"r   c                 ó:  — | j                  t        j                  «       | j                  t        j                  «       | j                  t        j                  «       | j                  t        j
                  «       | j                  t        j                  «       y r   )rÝ   r!   ÚbyteÚshortÚintcÚint_Úlonglongr   s    r   Útest_signed_overflow_boundsz)TestHistogram.test_signed_overflow_boundsP  s\   € Ø×&Ñ&¤r§w¡wÔ/Ø×&Ñ&¤r§x¡xÔ0Ø×&Ñ&¤r§w¡wÔ/Ø×&Ñ&¤r§w¡wÔ/Ø×&Ñ&¤r§{¡{Õ3r   c                 óR  — t        j                  |«      j                  }t        j                  dg|«      }t        j                  d|z   dg|«      }|j	                  |«      d   dk7  ry t        j
                  |d|¬«      \  }}t        |dg«       t        |j                  |«       y )Nr3   r4   r   r-   r§   ©r!   ÚfinfoÚepsr6   rÍ   r   r   rb   ©r   Úfloat_smallÚfloat_largerè   r©   rP   ÚcountÚx_locs           r   Údo_precision_lower_boundz&TestHistogram.do_precision_lower_boundW  sŽ   € Ü�h‰h�{Ó#×'Ñ'ˆä�h‰h˜�u˜kÓ*ˆÜ—‘˜# ™) SÐ)¨;Ó7ˆð �<‰<˜Ó$ QÑ'¨1Ò,Øô —|‘| C¨a°uÔ=‰ˆˆuÜ�U˜Q˜CÔ Ü�U—[‘[ +Õ.r   c                 óR  — t        j                  |«      j                  }t        j                  dg|«      }t        j                  dd|z
  g|«      }|j	                  |«      d   dk7  ry t        j
                  |d|¬«      \  }}t        |dg«       t        |j                  |«       y )Nr3   rB   rY   r-   r§   r   ræ   ré   s           r   Údo_precision_upper_boundz&TestHistogram.do_precision_upper_boundf  sŽ   € Ü�h‰h�{Ó#×'Ñ'ˆä�h‰h˜�u˜kÓ*ˆÜ—‘˜#˜s S™yÐ)¨;Ó7ˆð �<‰<˜Ó$ RÑ(¨AÒ-Øô —|‘| C¨a°uÔ=‰ˆˆuÜ�U˜Q˜CÔ ä�U—[‘[ +Õ.r   c                 óL   — | j                  ||«       | j                  ||«       y r   )rî   rð   )r   rê   rë   s      r   Údo_precisionzTestHistogram.do_precisionv  s"   € Ø×%Ñ% k°;Ô?Ø×%Ñ% k°;Õ?r   c                 ó,  — | j                  t        j                  t        j                  «       | j                  t        j                  t        j                  «       | j                  t        j                  t        j
                  «       | j                  t        j                  t        j                  «       | j                  t        j                  t        j
                  «       | j                  t        j                  t        j
                  «       y r   )rò   r!   ÚhalfÚsingleÚdoubleÚ
longdoubler   s    r   Útest_precisionzTestHistogram.test_precisionz  s’   € à×Ñœ"Ÿ'™'¤2§9¡9Ô-Ø×Ñœ"Ÿ'™'¤2§9¡9Ô-Ø×Ñœ"Ÿ'™'¤2§=¡=Ô1Ø×Ñœ"Ÿ)™)¤R§Y¡YÔ/Ø×Ñœ"Ÿ)™)¤R§]¡]Ô3Ø×Ñœ"Ÿ)™)¤R§]¡]Õ3r   c                 ó<  — t        g d¢ddg«      \  }}t        g d¢ddg«      }t        ||«       t        j                  g d¢«      }t        |dd¬«      \  }}t        |dd¬«      }t        ||«       t        |dd	¬«      \  }}t        |dd	¬«      }t        ||«       y )
Nr,   r-   r.   r±   r²   r³   r§   rÀ   rÁ   )r   r   r
   r!   r6   )r   r7   r:   r8   r©   s        r   Útest_histogram_bin_edgesz&TestHistogram.test_histogram_bin_edgesƒ  s“   € ÜšL¨1¨a¨&Ó1‰ˆˆaÜ#¢L°1°a°&Ó9ˆÜ˜5 !Ô$ä�h‰hÒCÓDˆÜ˜C b°	Ô:‰ˆˆaÜ# C¨b¸	ÔBˆÜ˜5 !Ô$ä˜C f°FÔ;‰ˆˆaÜ# C¨f¸FÔCˆÜ˜5 !Õ$r   c                 ó²   — t        j                  ddgdz  «      }t        j                  t        d¬«      5  t        |d¬«       d d d «       y # 1 sw Y   y xY w)Nr-   g     ð?r    zToo many bins for data rangeru   r1   )r!   r6   rx   Úraisesr5   r   )r   r©   s     r   Útest_small_value_rangez$TestHistogram.test_small_value_range‘  sG   € Ü�h‰h˜˜9�~¨Ñ*Ó+ˆÜ�]‰]œ:Ð-KÔLñ 	$Ü�c Õ#÷	$÷ 	$ñ 	$ús   ¶AÁAz,Bad memory reports lead to OOM in ci testing)Úreasonc                 óÔ   — t        j                  ddg«      }d}d}t        j                  d«      }t        j                  ||||f¬«      }t	        t        |«      t        d«      «       y )Ni áõr/   i�  i€>  )Úsampler2   )r-   r.   )r!   r„   rG   r   r   Útype)r   r   ÚxbinsÚybinsÚzbinsr7   s         r   Útest_big_arrayszTestHistogram.test_big_arrays˜  sU   € ä—‘˜9 a˜.Ó)ˆØˆØˆÜ—	‘	˜%Ó ˆÜ�~‰~ V°5¸%ÀÐ2GÔHˆÜ”T˜$“Z¤ f£Õ.r   c                 ó¬   — t        j                  t        j                  dgd¬«      dd¬«      \  }}t        j                  ddg«      }t        ||«       y )	Ng$ë°Áx€z>f8rj   r.   )gÒèxÖ0€ge¨Òl	  €r§   r-   r   )r!   r   r6   r
   )r   r7   r:   Úexpected_hists       r   Útest_gh_23110zTestHistogram.test_gh_23110¡  sG   € Ü—,‘,œrŸx™x¨¨¸5ÔAØ$%Ø%7ô9‰ˆˆaô Ÿ™ ! Q Ó(ˆÜ˜4 Õ/r   c                 ó®   — d}dddddd||||||dg}t        j                  |d¬«      \  }}t        |«      dk  sJ ‚|d   |d   k(  sJ ‚|d   |d   k(  sJ ‚y )	Ng˜    ð?r   r-   r.   rÀ   r1   r    rY   )r!   r   Úlen)r   r:   ÚZrJ   r8   s        r   Útest_gh_28400zTestHistogram.test_gh_28400¨  sy   € ØˆØ��1�a˜˜A˜q ! Q¨¨1¨a°Ð3ˆÜŸ™ Q¨VÔ4‰ˆ�Ü�6‹{˜RÒÐÐØ�Q‰x˜1˜Q™4ÒÐÐØ�R‰y˜A˜b™EÒ!Ð!Ñ!r   N))Ú__name__Ú
__module__Ú__qualname__r   r   r*   r;   rL   r[   r^   rh   rs   r}   r‹   r‘   r”   r˜   rŸ   r£   r¥   r¯   rµ   r·   rº   r½   rÇ   rÙ   rÝ   rä   rî   rð   rò   rø   rú   rý   rx   ÚmarkÚskipr  r  r  r   r   r   r   r      sÚ   „ òòò	"ò/ò'ò@!ò0Gò5ò,ò1ò3ò:@ò<;ò0ò
7òIò2ò	ò"ò
*ò7ò	@ò%ò0'ò2#ò4ò/ò/ò @ò4ò%ò$ð ‡[�[×ÑÐKÐÓLñ/ó Mð/ò0ó"r   r   c                   óâ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zej                  j                  dg d¢«      d„ «       Zej                  j                  dg d¢«      d„ «       Zd„ Zd„ Zy)ÚTestHistogramOptimBinNumsz]
    Provide test coverage when using provided estimators for optimal number of
    bins
    c                 ó¼   — g d¢}|D ]S  }t        g |¬«      \  }}t        |t        j                  dg«      «       t        |t        j                  ddg«      «       ŒU y )N©ÚfdÚscottÚriceÚsturgesÚdoaneÚsqrtrÀ   Ústoner1   r   r-   r–   )r   Úestimator_listÚ	estimatorr(   r)   s        r   r˜   z$TestHistogramOptimBinNums.test_empty¶  sU   € ò<ˆð (ò 	4ˆIÜ˜R iÔ0‰DˆAˆqÜ˜q¤"§(¡(¨A¨3£-Ô0Ü˜q¤"§(¡(¨A¨q¨6Ó"2Õ3ñ	4r   c                 ó´  — dddddddddœdddddd	dd
dœdddddddddœdœ}|j                  «       D ]¤  \  }}t        j                  dd|dz  dz  «      }t        j                  dd|dz  dz  «      }t        j                  ||f«      }|j                  «       D ];  \  }}t        j                  ||«      \  }	}
t        t        |	«      |d|› d|› �¬«       Œ= Œ¦ y)z²
        Straightforward testing with a mixture of linspace data (for
        consistency). All test values have been precomputed and the values
        shouldn't change
        r0   rW   rË   r.   r  é   r    é   é   rN   é   é#   é   éG   rÊ   ©é2   iô  iˆ  r“   rY   r   r-   r/   úFor the ú estimator with datasize of ©Úerr_msgN)Úitemsr!   r%   rƒ   r   r   r
  )r   Ú
basic_testÚtestlenÚexpectedResultsÚx1Úx2rn   r  Únumbinsr(   r)   s              r   r*   z%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Ü—‘  B˜xÓ(ˆAØ&5×&;Ñ&;Ó&=ò <Ñ"�	˜7Ü—|‘| A yÓ1‘��1ÜœS ›V W¸ÀÀð L1Ø18°	ð7;ö <ñ<ñ		<r   c           
      ó\  — ddddddddœddddddddœddddddddœdœ}|j                  «       D ]{  \  }}t        j                  |«      j                  t        «      }|j                  «       D ];  \  }}t        j
                  ||«      \  }}t        t        |«      |d|› d|› �¬«       Œ= Œ} y	)
z¸
        Smaller datasets have the potential to cause issues with the data
        adaptive methods, especially the FD method. All bin numbers have been
        precalculated.
        r-   )r  r  r  r  r  r  r  r.   r/   ©r-   r.   r/   r)  r*  r+  N)r-  r!   rG   rÍ   rg   r   r   r
  )	r   Ú	small_datr/  r0  Útestdatr  Úexpbinsr(   r)   s	            r   Ú
test_smallz$TestHistogramOptimBinNums.test_smallÙ  s×   € ð  !¨1°aÀAØ"#¨Q¸ñ<à ¨1°aÀAØ"#¨Q¸ñ<à ¨1°aÀAØ"#¨Q¸ñ<ñ	=ˆ	ð )2¯©Ó(9ò 	<Ñ$ˆG�_Ü—i‘i Ó(×/Ñ/´Ó6ˆGØ&5×&;Ñ&;Ó&=ò <Ñ"�	˜7Ü—|‘| G¨YÓ7‘��1ÜœS ›V W¸ÀÀð L1Ø18°	ð7;ö <ñ<ñ	<r   c                 óJ   — g d¢}|D ]  }t        t        t        g d¢|«       Œ y)zS
        Check a Value Error is thrown when an unknown string is passed in
        )ÚmadÚfreemanÚ
histogramsÚIQRr5  N)r   r5   r   )r   Ú
check_listr  s      r   Útest_incorrect_methodsz0TestHistogramOptimBinNums.test_incorrect_methodsí  s(   € ò =ˆ
Ø#ò 	GˆIÜœ*¤i²¸IÕFñ	Gr   c           	      óÚ   — t        j                  d«      }dddddddddœ}|j                  «       D ]8  \  }}t        j                  ||«      \  }}t	        t        |«      ||› d�¬«       Œ: y)zŒ
        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   r-   r  z estimator, No Variance testr+  N)r!   re   r-  r   r   r
  )r   Únovar_datasetÚnovar_resultdictr  r3  r(   r)   s          r   Útest_novariancez)TestHistogramOptimBinNums.test_novarianceõ  s}   € ô
 Ÿ™ ›ˆØ"#¨a¸ÀqØ%&°¸1ÀqñJÐð #3×"8Ñ"8Ó":ò 	MÑˆI�wÜ—<‘< ¨yÓ9‰DˆAˆqÜœ˜Q› Ø$- ;Ð.JÐ!KöMñ	Mr   c                 ój  — t        j                  d«      }d|dd d|dd t        |d«      }t        |d   d«       t        |d   d	«       t	        |«      dk  sJ ‚t        |d
«      }t        |t        j
                  ddg«      «       t        |d«      }t        |t        j                  ddd«      «       y)zY
        Check when IQR is 0, but variance exists, we return a reasonable value.
        éè  r   Nr/   r   éüÿÿÿrÀ   rY   g      Y@r  r  r!  )r!   re   r   r   r
  r6   r%   )r   Úlim_var_dataÚ
edges_autoÚedges_fdÚedges_sturgess        r   Útest_limited_variancez/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                 ó$  — t        j                  ddd«      }t        j                  t        j                  ddd«      |f«      }dddd	d
œ}|j                  «       D ]3  \  }}t        j                  ||«      \  }}t        t        |«      |«       Œ5 y)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    r(  i’ÿÿÿéœÿÿÿr   é   r]   r@   )r  r  r  r  N)r!   r%   Úhstackr-  r   r   r
  )r   ÚxcenterÚoutlier_datasetÚoutlier_resultdictr  r3  r(   r)   s           r   Útest_outlierz&TestHistogramOptimBinNums.test_outlier  s„   € ô —+‘+˜c 2 rÓ*ˆÜŸ)™)¤R§[¡[°°t¸QÓ%?ÀÐ$IÓJˆà$&°¸RÈ!ÑLÐà"4×":Ñ":Ó"<ò 	*ÑˆI�wÜ—<‘< °Ó;‰DˆAˆqÜœ˜Q› Õ)ñ	*r   c                 óV  — d„ }t        j                  ddd¬«      j                  «       j                  t        «      }t        d«      D ��cg c]  }|D �cg c]  } |||«      ‘Œ c}‘Œ }}}t        t        j                  |d¬«      dz
  «      }t        |g d	¢d
¬«       y c c}w c c}}w )Nc                 ó   — t         j                  j                  | «      }|j                  dd|¬«      }t	        t        j
                  |d«      d   «      t	        t        j
                  |d«      d   «      }}|||z   z  S )Nr   r.   )ÚlocÚscaleÚsizer  r  )r!   r"   ÚRandomStateÚnormalr
  r   )ÚseedrY  Úrngrn   r(   r)   s         r   Únbins_ratiozBTestHistogramOptimBinNums.test_scott_vs_stone.<locals>.nbins_ratio.  sl   € Ü—)‘)×'Ñ'¨Ó-ˆCØ—
‘
˜q¨°�
Ó5ˆAÜ”r—|‘| A wÓ/°Ñ2Ó3´S¼¿¹ÀaÈÓ9QÐRSÑ9TÓ5UˆqˆAØ˜˜A™‘;Ðr   r    r   r0   )ÚstartÚstopr›   r   r   rC   )g333333Ã?g
×£p=
·?g{®Gáz´?g¸…ëQ¸ž?r.   rS   )	r!   Ú	geomspaceÚroundrÍ   rf   rP   ÚabsÚmeanr   )r   r^  Ú
geom_spacer\  rY  ÚllÚavgs          r   Útest_scott_vs_stonez-TestHistogramOptimBinNums.test_scott_vs_stone*  sŠ   € ò	ô —\‘\¨°¸!Ô<×BÑBÓD×KÑKÌCÓPˆ
ÜKPÐQSË9×UÀ4°:Ö>¨4‰{˜4 Õ&Ô>ÐUˆÑUô ”"—'‘'˜" 1Ô%¨Ñ+Ó,ˆÜ˜CÒ!9À1ÖEùò ?ùÓUs   Á	B%ÁB Á$B%Â B%c           	      óì  — dddddddœdddddddœd	d	d
dd	ddœdœ}|j                  «       D ]Æ  \  }}t        j                  dd|dz  dz  «      }t        j                  dd|dz  dz  «      }t        j                  dd|«      }t        j                  |||f«      }|j                  «       D ]E  \  }}	t        j                  ||d¬«      \  }
}d|› d�}|d|› �z  }t        t        |
«      |	|¬«       ŒG ŒÈ y)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.
        rW   rR   r%  )r  r  r  r  rÀ   r  r   é    rÊ   éP   é!   éE   é   r'  r“   rY   r   r.   r-   r    r/   rN  iÎÿÿÿ)iìÿÿÿrÊ   rO   r)  z
 estimatorz with datasize of r+  N)r-  r!   r%   rP  r   r   r
  )r   r.  r/  r0  r1  r2  Úx3rn   r  r3  r(   r)   Úmsgs                r   Útest_simple_rangez+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˜r 2˜,Ó'ˆAØ&5×&;Ñ&;Ó&=ò ;Ñ"�	˜7Ü—|‘| A y¸	ÔB‘��1Ø   ¨:Ð6�ØÐ+¨G¨9Ð5Ñ5�ÜœS ›V W°cÖ:ñ	;ñ	;r   r2   )rÀ   r  r  r  r  r  r  c                 ó$  — t        j                  g d¢t         j                  ¬«      }t        j                  ||¬«      \  }}t        j                  |j	                  t         j
                  «      |¬«      \  }}t        ||«       t        ||«       y )N)éþÿÿÿr   é   rj   r1   )r!   r6   Úint8r   rÍ   Úint32r
   )r   r2   r(   r7   r8   Úhist32Úedges32s          r   Útest_signed_integer_dataz2TestHistogramOptimBinNums.test_signed_integer_data[  sa   € ô �H‰H’\¬¯©Ô1ˆÜ—l‘l 1¨4Ô0‰ˆˆeÜŸ,™, q§x¡x´·±Ó'9ÀÔE‰ˆ�Ü˜4 Ô(Ü˜5 'Õ*r   c           
      óH  — t        j                  «       5  |dk(  rt        j                  dt        «       t	        t        j                  t        j                  t        j                  d«      d«      |«      t        j                  d«      «       ddd«       y# 1 sw Y   yxY w)zE
        Test that bin width for integer data is at least 1.
        r  r¿   rN   rF  N)	rÂ   rÃ   rÄ   rz   r   r!   r   ÚtilerG   )r   r2   s     r   Útest_integerz&TestHistogramOptimBinNums.test_integere  sr   € ô ×$Ñ$Ó&ñ 	Ø�wŠÜ×%Ñ% h´Ô?ÜÜ×&Ñ&¤r§w¡w¬r¯y©y¸«|¸TÓ'BÀDÓIÜ—	‘	˜!“ô÷	÷ 	ñ 	ús   •A:BÂB!c           	      óT  — t        t        j                  t        j                  t        j                  d«      d«      d«      t        j                  d«      dz  «       t        t        j                  t        j                  t        j                  d«      d«      ddg«      ddg«       y)	zX
        Test that the bin-width>=1 requirement *only* applies to auto binning.
        rN   rF  r   r#  r.   rA   r‚   N)r   r!   r   r{  rG   r   s    r   Útest_integer_non_autoz/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           	      óR   — g d¢}|D ]  }t        t        t        g d¢|g d¢¬«       Œ  y)z=
        Check that weighted data raises a TypeError
        )r  r  r  r  rÀ   r5  r`   N)r   rœ   r   )r   r  r  s      r   Útest_simple_weightedz.TestHistogramOptimBinNums.test_simple_weighted}  s,   € ò DˆØ'ò 	8ˆIÜœ)¤Y²	Ø#ªYö8ñ	8r   N)r  r  r  Ú__doc__r˜   r*   r9  r@  rD  rL  rT  rh  rq  rx   r  Úparametrizery  r|  r~  r€  r   r   r   r  r  °  s›   „ ñò
4ò<ò4<ò(GòMò=ò&*ò(Fò$;ð> ‡[�[×Ñ˜Vò &Bó Cñ+óCð+ð ‡[�[×Ñ˜Vò &Bó Cñ	óCð	ò	ó8r   r  c                   óf   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestHistogramddc           	      ó¬  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        |ddd	gd
dgd
dgg¬«      \  }}t        j                  g d¢g d¢g d¢gg d¢g d¢g d¢gg«      }t        ||«       g d¢g d¢g d¢g}t        ||d¬«      \  }}t	        t        j
                  ||dz  k(  «      «       t        |ddd	gd
dgd
dggd¬«      \  }}t        j                  g d¢g d¢g d¢gg d¢g d¢g d¢gg«      }t        ||dz  d«       t        j                  |dd	¬«      D �cg c]  }t        j                  |«      ‘Œ }}t        |dddgd
dgd
dgg¬ «      \  }}t        j                  d
d
gd
d
gd
d
ggd
d	gd
d
gd	d
ggd
d	gd
d
gd
d
ggd
d
gd
d
gd
d
ggg«      }t        ||«       t        j                  d!«      }d"|t        t        d#«      «      t        t        d#«      «      t        t        d#«      «      f<   t        t        j                  d#«      t        j                  d#«      t        j                  d#«      gd#«      \  }}t        ||«       y c c}w )$N)r´   rC   rD   )r´   rD   rŽ   )r´   rŽ   rC   )rC   rC   rD   )rC   rD   rŽ   )rC   rŽ   rŽ   )r.   r/   r/   rY   r-   r   r/   rO   )r   r-   r   )r   r   r-   )r-   r   r   )rs  r   r.   )r   r-   r.   r/   T©r2   r>   g      (@)r.   r/   r0   r0   rQ   )r   r-   r   r   )r   r   r-   r   )r-   r   r   r   g      @r   )r0   r/   r.   rs  r.   r§   )r   r   r   r3   r   )r!   r6   r   r
   r   Úallr	   ÚsplitÚsqueezer„   ÚlistrP   rG   )	r   rn   ÚHr8   ÚanswerÚedro   Úzr  s	            r   r*   zTestHistogramdd.test_simple‰  s\  € Ü�H‰H’n¢o²~Ú$¢o²ðHó Iˆä˜q )Ø')¨1 g°°1¨v¸¸1°vÐ%>ô@‰ˆˆ5ä—‘šI¢y²)Ð<Ú%¢y²)Ð<ð>ó ?ˆä˜1˜fÔ%ò š,ªÐ5ˆÜ˜q r°4Ô8‰ˆˆ5Ü”—‘�q˜F S™LÑ(Ó)Ô*ô ˜q )Ø')¨1 g°°1¨v¸¸1°vÐ%>Ø'+ô-‰ˆˆ5ô —‘šLª,ºÐEÚ(ª,ºÐEðGó Hˆä! ! V¨b¡[°!Ô4ô %'§H¡H¨Q°¸Ô$:Ö;˜qŒR�Z‰Z˜�]Ð;ˆÐ;ÜØ�I r¨1 g°°1¨v¸¸1°vÐ%>ô@‰ˆˆ5ä—‘˜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˜fÔ%ä�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‰ˆˆ5Ü˜1˜aÕ ùò <s   Ä%Ic                 ó¤   — d}t         j                  j                  dd«      }|D ])  }t        ||«      \  }}t	        |j
                  |k(  «       Œ+ y )N))r   r0   r@   )r@   r0   r   )r   r@   r0   )r0   r@   r   )r@   r   r0   )r0   r   r@   r    r/   ©r!   r"   r#   r   r   Úshape©r   r2   Úrr)   r‹  r8   s         r   Útest_shape_3dzTestHistogramdd.test_shape_3d®  sL   € ðˆä�I‰I�N‰N˜2˜qÓ!ˆØò 	"ˆAÜ" 1 aÓ(‰HˆAˆuÜ�A—G‘G˜q‘LÕ!ñ	"r   c                 ó¤   — d}t         j                  j                  dd«      }|D ])  }t        ||«      \  }}t	        |j
                  |k(  «       Œ+ y )N))rË   r0   r   r@   )r0   r   rË   r@   )r   r@   r0   rË   )rË   r@   r   r0   )r   rË   r@   r0   )r0   r@   rË   r   )r@   r   rË   r0   )rË   r   r0   r@   )rË   r0   r@   r   )r@   r0   rË   r   )r@   rË   r   r0   )r0   r@   r   rË   )r0   rË   r   r@   )r   r0   r@   rË   )r   rË   r0   r@   )r@   rË   r0   r   )r@   r   r0   rË   )r0   rË   r@   r   )r0   r   r@   rË   )rË   r@   r0   r   )r   r0   rË   r@   )r   r@   rË   r0   )r@   r0   r   rË   )rË   r   r@   r0   r    r0   r�  r’  s         r   Útest_shape_4dzTestHistogramdd.test_shape_4d·  sO   € ðHˆô �I‰I�N‰N˜2˜qÓ!ˆØò 	"ˆAÜ" 1 aÓ(‰HˆAˆuÜ�A—G‘G˜q‘LÕ!ñ	"r   c                 ó¸  — t         j                  j                  dd«      }t        |«      \  }}t        |d¬«      \  }}t        |t        j                  d«      ¬«      \  }}t        ||«       t        |t        j                  d«      dz  d¬«      \  }}t        ||«       t        |t        j                  dt        «      dz  ¬«      \  }}t        |d|z  «       y )Nr   r.   Tr=   r`   r€   )r!   r"   r#   r   re   r
   rf   )r   r'   r7   r8   Ún_histÚw_hists         r   r‹   zTestHistogramdd.test_weightsÅ  s¬   € Ü�I‰I�N‰N˜3 Ó"ˆÜ! !“n‰ˆˆeÜ# A¨tÔ4‰ˆ�Ü# A¬r¯w©w°s«|Ô<‰ˆ�Ü˜6 4Ô(Ü# A¬r¯w©w°s«|¸aÑ/?ÈÔN‰ˆ�Ü˜6 6Ô*Ü# A¬r¯w©w°s¼CÓ/@À1Ñ/DÔE‰ˆ�Ü˜6 1 t¡8Õ,r   c                 ó    — t        j                  dt        «      }t        |d¬«      \  }}t	        |d   t        j
                  g d¢«      «       y )N)r    r.   r.   r1   r   )r´   rB   rC   )r!   r„   rf   r   r
   r6   )r   rn   r7   r8   s       r   Útest_identical_samplesz&TestHistogramdd.test_identical_samplesÐ  s9   € Ü�H‰H�WœcÓ"ˆÜ! !¨!Ô,‰ˆˆeÜ˜5 ™8¤R§X¡XªoÓ%>Õ?r   c                 óî   — t        g g gddgddgf¬«      \  }}t        |t        j                  dgg«      «       t        j                   g g g gd¬«      \  }}t        |t        j                  d«      «       y )Nr   r-   r1   rB   r.   )r.   r.   r.   )r   r   r!   r6   r„   r—   s      r   r˜   zTestHistogramdd.test_emptyÕ  sg   € Ü˜B ˜8¨A¨q¨6°A°q°6Ð*:Ô;‰ˆˆ1Ü˜Q¤§¡¨2¨$¨Ó 0Ô1Ü�~‰~˜r 2 r˜l°Ô3‰ˆˆ1Ü˜Q¤§¡¨Ó 3Õ4r   c           
      ót  — t        j                  d«      j                  dd«      }t        t        t         j
                  |g d¢¬«       t        t        t         j
                  |g d¢¬«       t        t        t         j
                  |dddg d¢g¬«       t        t        j
                  |dddg d	¢g¬«      «       y )
NrW   r.   r0   )rY   r.   r0   r   r1   )r-   g®Gáz®ï?r-   r-   r-   )r-   r.   r/   éýÿÿÿr,   )r!   rG   Úreshaper   r5   r   r   )r   rn   s     r   Útest_bins_errorsz TestHistogramdd.test_bins_errorsÛ  s}   € ô �I‰I�a‹L× Ñ   AÓ&ˆÜ”j¤"§.¡.°!º-ÕHÜ”j¤"§.¡.°!º/ÕJÜÜœŸ™¨°°A°qº-Ð0Hõ	Jä”—‘˜q¨¨1¨a²Ð'>Ô?Õ@r   c           
      ó|  — t        j                  d¬«      5  t        j                  d«      j                  dd«      }t        j                  ddgddgddgg«      }t        j
                  |dt         j                   ddgg¬	«      \  }}t        ||«       t        j
                  |dt        j                  d
dt         j                  g«      g¬	«      \  }}t        ||«       t        j
                  |dt         j                   dt         j                  gg¬	«      \  }}t        ||«       d d d «       y # 1 sw Y   y xY w)Nr¿   )Úinvalidr@   r/   r.   r-   r   r    r1   rY   )r!   ÚerrstaterG   rŸ  r6   r   rH   r   )r   rn   Úexpectedr9   r:   s        r   Útest_inf_edgeszTestHistogramdd.test_inf_edgeså  sø   € ä�[‰[ Ô*ñ 	)Ü—	‘	˜!“×$Ñ$ Q¨Ó*ˆAÜ—x‘x ! Q ¨!¨Q¨°!°Q°Ð 8Ó9ˆHÜ—>‘> !¨1´·±¨w¸¸2Ð.>Ð*?Ô@‰DˆAˆqÜ˜A˜xÔ(Ü—>‘> !¨1¬b¯h©h¸¸A¼r¿v¹v°Ó.GÐ*HÔI‰DˆAˆqÜ˜A˜xÔ(Ü—>‘> !¨1´·±¨w¸¼2¿6¹6Ð.BÐ*CÔD‰DˆAˆqÜ˜A˜xÔ(÷	)÷ 	)ñ 	)ús   —DD2Ä2D;c                 óÔ  — dg}g d¢g}t        ||¬«      \  }}t        |d   dk(  «       t        |d   dk(  «       dg}g d¢g}t        ||¬«      \  }}t        |d   dk(  «       t        |d   dk(  «       dg}g d¢g}t        ||¬«      \  }}t        |d   dk(  «       t        |d   dk(  «       d	g}g d¢g}t        ||¬«      \  }}t        |d   dk(  «       t        |d   dk(  «       y )
NgÐG»ÿÿÿï?)rB   rC   r3   r1   r   rB   r-   r3   g8ß   ð?gq¬‹Ûh ð?)r   r   )r   rn   r2   r7   Ú_s        r   Útest_rightmost_binedgez&TestHistogramdd.test_rightmost_binedgeñ  sþ   € àˆNˆÚÐˆÜ˜a dÔ+‰ˆˆaÜ��Q‘˜3‘ÔÜ��Q‘˜2‘ÔØˆEˆÚÐˆÜ˜a dÔ+‰ˆˆaÜ��Q‘˜3‘ÔÜ��Q‘˜2‘ÔØˆNˆÚÐˆÜ˜a dÔ+‰ˆˆaÜ��Q‘˜3‘ÔÜ��Q‘˜3‘ÔØˆHˆÚÐˆÜ˜a dÔ+‰ˆˆaÜ��Q‘˜3‘ÔÜ��Q‘˜3‘Õr   c           	      ó&  — t         j                  j                  d«      }t        |ddgddgddgg¬«       t        t        t        |ddgddgdt         j
                  gg¬«       t        t        t        |ddgt         j                  dgddgg¬«       y )N)r   r/   rB   r3   rE   r¡   rC   rO   )r!   r"   r   r   r5   rH   r¢   r�   s     r   r£   z!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                 ó  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }d}t        ||f||f¬«      \  }}t        j                  dgdgg«      }t        ||«       y)z: Test that adjacent entries in an edge array can be equal )r   r-   r.   )r   r.   r.   r-   r1   r4   r3   N©r!   r6   r   r   )r   rn   ro   Úx_edgesÚy_edgesr7   r8   Úhist_expecteds           r   Útest_equal_edgesz TestHistogramdd.test_equal_edges  ss   € ä�H‰H’YÓˆÜ�H‰H’YÓˆÜ—(‘(š9Ó%ˆØˆÜ! 1 a &°¸Ð/AÔB‰ˆˆeäŸ™ØˆDØˆDð"
ó ˆô 	�T˜=Õ)r   c                 ó(  — t        j                  g d¢«      }|dz  }t        j                  g d¢«      }|dz  }t        ||f||f¬«      \  }}t        |d   j                  |j                  «       t        |d   j                  |j                  «       y)z< Test that if an edge array is input, its type is preserved )r   r    rÊ   r    )r   r   rR   rÊ   r1   r   r-   N)r!   r6   r   r   rb   )r   rn   ro   r¬  r­  r7   r8   s          r   Útest_edge_dtypezTestHistogramdd.test_edge_dtype  su   € ä�H‰H’[Ó!ˆØ�‰FˆÜ—(‘(š>Ó*ˆØ˜B‘,ˆÜ! 1 a &°¸Ð/AÔB‰ˆˆeä�U˜1‘X—^‘^ W§]¡]Ô3Ü�U˜1‘X—^‘^ W§]¡]Õ3r   c                 óø   — d}t        j                  dgt         j                  «      }t        j                  ddgt         j                  «      }||z   }||z   }t        ||f||f¬«      \  }}t	        |d   d«       y )Nl            r   rY   r-   r1   )r   r   )r!   r6   Úint64r   r   )r   Úbigrn   r¬  ro   r­  r7   r8   s           r   Útest_large_integersz#TestHistogramdd.test_large_integers)  sn   € Øˆä�H‰H�a�Sœ"Ÿ(™(Ó#ˆÜ—(‘(˜B ˜8¤R§X¡XÓ.ˆØ�!‰GˆØ˜‘-ˆä! 1 a &°¸Ð/AÔB‰ˆˆeä�T˜$‘Z Õ#r   c                 óÄ  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  ddgddgg«      }t        j                  dgdgdz  z   dgdz  z   dgdz  z   «      }t        j                  dgdgdz  z   dgdz  z   dgdz  z   «      }t        ||f||f¬«      \  }}t        ||«       t        ||f||fd¬	«      \  }}t        |d
«       y )N)r   r.   rW   )r   r@   rW   r/   rN   r-   rË   r1   Tr†  g      �?r«  )r   r¬  r­  Úrelative_areasrn   ro   r7   r8   s           r   Útest_density_non_uniform_2dz+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 &°¸Ð/AÔB‰ˆˆeÜ�T˜>Ô*ô " 1 a &°¸Ð/AÈ4ÔP‰ˆˆeÜ�T˜;Õ'r   c                 óÚ   — t        j                  d«      }t        j                  g d¢«      }t        ||d¬«      \  }}t	        |f|fd¬«      \  }}t        ||«       t        ||d   «       y )Nr    r?   Tr=   r   )r!   rG   r6   r   r   r   )r   r'   r2   r7   r8   Úhist_ddÚedges_dds          r   Útest_density_non_uniform_1dz+TestHistogramdd.test_density_non_uniform_1dP  s_   € ä�I‰I�b‹MˆÜ�x‰xÒ(Ó)ˆÜ  4°Ô6‰ˆˆeÜ'¨¨¨t¨g¸tÔDÑˆ�Ü�T˜7Ô#Ü�U˜H Q™KÕ(r   N)r  r  r  r*   r”  r–  r‹   r›  r˜   r   r¥  r¨  r£   r¯  r±  rµ  r¸  r¼  r   r   r   r„  r„  ‡  sQ   „ ò#!òJ"ò"ò	-ò@ò
5òAò
)ò ò.Gò*ò	4ò
$ò(ó6)r   r„  )rÂ   rx   Únumpyr!   r   r   r   Únumpy.testingr   r   r   r	   r
   r   r   r   r   r   r  r„  r   r   r   ú<module>r¿     sI   ðÛ ã ã ß =Ñ =÷
÷ 
õ 
÷Z"ñ Z"÷xT8ñ T8÷nP)ò P)r   