Ë
    HU h®„  ã                   ó”   — 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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_regexÚsuppress_warningsc                   ó  — 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    úW/var/www/timesheet/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.   r0   é   r!   çš™™™™™¹?Fr-   r   r0   rA   )rB   rB   rB   ç        ç      à?ç      ø?ç      Ð?)r"   r#   r$   r   r%   Údiffr   Úaranger
   r   Úinf)	r   r'   r(   r)   r*   Úarear3   ÚcountsÚdmys	            r   Útest_densityzTestHistogram.test_density0   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!   rD   r   é	   ©Úranger.   T©rQ   r?   é   ©Údecimal©rQ   Úweightsr?   é   ©r3   rQ   rW   éÿÿÿÿ)r"   rH   r   r   r%   r   rG   )r   r)   r:   r*   Úws        r   Útest_outlierszTestHistogram.test_outliersP   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!   rD   é   zsame shape asr.   rO   TrV   )r"   rH   r   r6   r   )r   r)   r[   r:   r*   s        r   Útest_arr_weights_mismatchz'TestHistogram.test_arr_weights_mismatchh   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!   rD   Tr>   ©rW   )r"   rH   r   r   Ú
issubdtypeÚdtypeÚintegerÚfloatingÚonesÚintÚfloat)r   r)   r:   r*   s       r   Ú	test_typezTestHistogram.test_typen   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@©rc   )g!çý°�³@gö·àS�±@g§’ ^z·@r   r2   ç      @)r"   r7   Ú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                 óz  — t        j                  g d¢t         j                  ¬«      }t        j                  |«      \  }}t	        «       5 }|j                  t        d«      }t        j                  g d¢«      \  }}t        t        |«      d«       t        ||«       t        ||«       d d d «       y # 1 sw Y   y xY w)N)r.   r.   r   rk   zConverting input from .*)TTFr.   )
r"   r7   Úuint8r   r   ÚrecordÚRuntimeWarningr   Úlenr
   )r   r)   Úint_histÚ	int_edgesÚsupÚrecr8   r9   s           r   Útest_bool_conversionz"TestHistogram.test_bool_conversion„   s�   € ô �H‰H’Y¤b§h¡hÔ/ˆÜ Ÿl™l¨1›oÑˆ�)ô
 Ó ð 	1 CØ—*‘*œ^Ð-GÓHˆCÜŸ,™,Ò':Ó;‰KˆD�%äœ˜S› 1Ô%Ü˜t XÔ.Ü˜u iÔ0÷	1÷ 	1ñ 	1ús   Á
AB1Â1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>   ra   ©rW   r?   r   r!   r^   ©r3   rW   )r.   r/   r/   r1   r1   )r1   r0   r/   r.   )r1   r€   r   r.   )r3   rW   r?   g      $@rl   rO   r@   )	r/   r.   r.   r.   r.   r.   r.   r.   r.   )çš™™™™™É?rB   rB   g333333³?)r"   r#   r$   rf   r   r	   r&   ÚconcatenateÚzerosrH   r
   r7   r   )r   r(   r[   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.   rZ   r/   y              ð?)r/   r.   r/   )r   r/   r0   r‚   r.   r/   r0   rY   r   )ÚDecimalr€   )r"   r7   r   r	   rU   r�   )r   ÚvaluesrW   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   )rQ   r3   )r"   r7   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.   r2   ©r   r
   r"   r7   ©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 )NrC   r4   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 )NrC   r4   r   r›   rF   ç      è?rP   )r"   r&   r   r   r6   ÚnanrI   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)	NrC   r4   r   r›   zmax must be larger thanrB   g{®Gáz„?rP   )r"   r&   r   r6   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è  ©r3   rQ   r   rZ   r.   )r"   r7   r   Úzipr   )
r   Úarrr8   r9   ÚmaskÚ
left_edgesÚright_edgesro   Ú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©	rC   rC   rC   r4   r5   rl   rl   g      @g      @é   ©ç      à¿r€   r¨   rZ   r.   )r"   r7   r   r   )r   rª   r8   r9   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)
NrC   r4   r   r›   r   rD   g333333ã?z
must be 1dr2   )r"   r&   r7   r   r6   r   )r   rŸ   r3   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.   r0   r.   Úuint64rk   r2   )r"   r7   r   r6   r   )r   rª   r3   r8   r9   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š™™™™™Ù?rD   g     à?)r   r6   r   rQ   r"   r7   rI   )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	                  t
        «       |5  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.   Úautor2   ©r   r.   r¨   r/   )r"   r7   r£   r   Úfilterrx   r   r6   r   r   r%   )r   Úone_nanÚall_nanr|   r:   r*   s         r   Útest_some_nan_valuesz"TestHistogram.test_some_nan_values  s  € ä—(‘(˜A˜q¤"§&¡&˜>Ó*ˆÜ—(‘(œBŸF™F¤B§F¡FÐ+Ó,ˆô  Ó!ˆØ�
‰
”>Ô"Øñ 	%äœ*¤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   Á;CE!Å!E*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/   r0   r€   r!   é   )r   r/   é   rÈ   ztimedelta64[D]r2   )r"   Ú
datetime64r7   rc   r   Úastyper   rg   )r   ÚbeginÚoffsetsr3   ÚdatesÚ	date_binsÚtdÚd_countÚd_edgeÚt_countÚt_edgeÚi_countÚi_edges                r   Útest_datetimezTestHistogram.test_datetime2  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 )NrX   r.   r/   r1   rk   r2   r   )r"   rc   Úitemsizer7   r   r   )r   rc   Úexponentrª   r8   r;   s         r   Údo_signed_overflow_boundsz'TestHistogram.do_signed_overflow_boundsK  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_boundsR  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 )Nr4   r5   r   r.   r¨   ©r"   ÚfinfoÚepsr7   rË   r   r   rc   ©r   Úfloat_smallÚfloat_largeræ   rª   rQ   ÚcountÚx_locs           r   Údo_precision_lower_boundz&TestHistogram.do_precision_lower_boundY  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 )Nr4   rC   rZ   r.   r¨   r   rä   rç   s           r   Údo_precision_upper_boundz&TestHistogram.do_precision_upper_boundh  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_precisionx  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_precision|  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"   r7   )r   r8   r;   r9   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 range)Úmatchr2   )r"   r7   ÚpytestÚraisesr6   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 áõr0   i�  i€>  )Úsampler3   )r.   r/   )r"   r…   rH   r   r   Útype)r   r   ÚxbinsÚybinsÚzbinsr8   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>f8rk   r/   )gÒèxÖ0€ge¨Òl	  €r¨   r.   r   )r"   r   r7   r
   )r   r8   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À   r2   r!   rZ   )r"   r   ry   )r   r;   ÚZrK   r9   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<   rM   r\   r_   ri   rt   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  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                   óâ   — 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À   Ústoner2   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
        r1   rX   rÉ   r/   r  é   r!   é   é   rO   é   é#   é   éG   rÈ   ©é2   iô  iˆ  r”   rZ   r€   r.   r0   úFor the ú estimator with datasize of ©Úerr_msgN)Úitemsr"   r&   r„   r   r   ry   )r   Ú
basic_testÚtestlenÚexpectedResultsÚx1Úx2ro   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/   r0   ©r.   r/   r0   r(  r)  r*  N)r,  r"   rH   rË   rh   r   r   ry   )	r   Ú	small_datr.  r/  Ú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ÚIQRr4  N)r   r6   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"   rf   r,  r   r   ry   )r   Únovar_datasetÚnovar_resultdictr  r2  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   Nr0   r   éüÿÿÿrÀ   rZ   g      Y@r  r  r   )r"   rf   r   r   ry   r7   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^   rA   )r  r  r  r  N)r"   r&   Úhstackr,  r   r   ry   )r   ÚxcenterÚoutlier_datasetÚoutlier_resultdictr  r2  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                 óR  — d„ }t        d«      D ��cg c]P  }t        j                  ddd¬«      j                  «       j	                  t
        «      D �cg c]  } |||«      ‘Œ c}‘ŒR }}}t        t        j                  |d¬«      dz
  «      }t        |g d	¢d
¬«       yc c}w c c}}w )zQVerify that Scott's rule and Stone's rule converges for normally distributed datac                 ó   — 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Únormalry   r   )ÚseedrX  Úrngro   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   r1   )ÚstartÚstoprœ   r   r   rD   )g333333Ã?g
×£p=
·?g{®Gáz´?g¸…ëQ¸ž?r/   rT   N)	rQ   r"   Ú	geomspaceÚroundrË   rg   ÚabsÚmeanr   )r   r]  r[  rX  ÚllÚavgs         r   Útest_scott_vs_stonez-TestHistogramOptimBinNums.test_scott_vs_stone,  s“   € ò	ô   ›)÷%Øô 46·<±<ÀbÈsÐXYÔ3Z×3`Ñ3`Ó3b×3iÑ3iÔjmÓ3nÖo¨4‰{˜4 Õ&Ôoð %ˆñ %ô ”"—'‘'˜" 1Ô%¨Ñ+Ó,ˆÜ˜CÒ!9À1ÖEùò pùó %s   ’A 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.
        rX   rS   r$  )r  r  r  r  rÀ   r  r  é    rÈ   éP   é!   éE   é   r&  r”   rZ   r€   r/   r.   r!   r0   rM  iÎÿÿÿ)iìÿÿÿrÈ   rP   r(  z
 estimatorz with datasize of r*  N)r,  r"   r&   rO  r   r   ry   )r   r-  r.  r/  r0  r1  Úx3ro   r  r2  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   r3   )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   é   rk   r2   )r"   r7   Úint8r   rË   Úint32r
   )r   r3   r)   r8   r9   Ú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           
      ó*  — t        «       5 }|dk(  r|j                  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  rO   rE  N)r   rÂ   rx   r   r"   r   ÚtilerH   )r   r3   r|   s      r   Útest_integerz&TestHistogramOptimBinNums.test_integere  sj   € ô Ó ð 	 CØ�wŠØ—
‘
œ>Ô*ÜÜ×&Ñ&¤r§w¡w¬r¯y©y¸«|¸TÓ'BÀDÓIÜ—	‘	˜!“ô÷	÷ 	ñ 	ús   ‹A5B	Â	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.
        rO   rE  r  r"  r/   rB   rƒ   N)r   r"   r   ry  rH   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À   r4  ra   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+   r8  r?  rC  rK  rS  rf  ro  rû   r  Úparametrizerw  rz  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µ   rD   rE   )rµ   rE   r�   )rµ   r�   rD   )rD   rD   rE   )rD   rE   r�   )rD   r�   r�   )r/   r0   r0   rZ   r.   r   r0   rP   )r   r.   r   )r   r   r.   )r.   r   r   )rq  r   r/   )r   r.   r/   r0   T©r3   r?   g      (@)r/   r0   r1   r1   rR   )r   r.   r   r   )r   r   r.   r   )r.   r   r   r   g      @r   )r1   r0   r/   rq  r/   r¨   )r€   r€   r€   r4   r€   )r"   r7   r   r
   r   Úallr	   ÚsplitÚsqueezer…   ÚlistrQ   rH   )	r   ro   ÚHr9   ÚanswerÚedrp   Ú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€   r1   rA   )rA   r1   r€   )r€   rA   r1   )r1   rA   r€   )rA   r€   r1   )r1   r€   rA   r!   r0   ©r"   r#   r$   r   r   Úshape©r   r3   Úrr*   r‰  r9   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É   r1   r€   rA   )r1   r€   rÉ   rA   )r€   rA   r1   rÉ   )rÉ   rA   r€   r1   )r€   rÉ   rA   r1   )r1   rA   rÉ   r€   )rA   r€   rÉ   r1   )rÉ   r€   r1   rA   )rÉ   r1   rA   r€   )rA   r1   rÉ   r€   )rA   rÉ   r€   r1   )r1   rA   r€   rÉ   )r1   rÉ   r€   rA   )r€   r1   rA   rÉ   )r€   rÉ   r1   rA   )rA   rÉ   r1   r€   )rA   r€   r1   rÉ   )r1   rÉ   rA   r€   )r1   r€   rA   rÉ   )rÉ   rA   r1   r€   )r€   r1   rÉ   rA   )r€   rA   rÉ   r1   )rA   r1   r€   rÉ   )rÉ   r€   rA   r1   r!   r1   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>   ra   r�   )r"   r#   r$   r   rf   r
   rg   )r   r(   r8   r9   Ú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/   r2   r   )rµ   rC   rD   )r"   r…   rg   r   r
   r7   )r   ro   r8   r9   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.   r2   rC   r/   )r/   r/   r/   )r   r   r"   r7   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 )
NrX   r/   r1   )rZ   r/   r1   r€   r2   )r.   g®Gáz®ï?r.   r.   r.   )r.   r/   r0   éýÿÿÿr-   )r"   rH   Úreshaper   r6   r   r   )r   ro   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)NÚignore)ÚinvalidrA   r0   r/   r.   r   r!   r2   rZ   )r"   ÚerrstaterH   r�  r7   r   rI   r   )r   ro   Úexpectedr:   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»ÿÿÿï?)rC   rD   r4   r2   r   rC   r.   r4   g8ß   ð?gq¬‹Ûh ð?)r   r   )r   ro   r3   r8   Ú_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   r0   rC   r4   rF   r¢   rD   rP   )r"   r#   r   r   r6   rI   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.   r2   r5   r4   N©r"   r7   r   r   )r   ro   rp   Úx_edgesÚy_edgesr8   r9   Ú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€   rS   rÈ   r2   r   r.   N)r"   r7   r   r   rc   )r   ro   rp   r«  r¬  r8   r9   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   rZ   r.   r2   )r   r   )r"   r7   Úint64r   r   )r   Úbigro   r«  rp   r¬  r8   r9   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/   rX   )r   rA   rX   r0   rO   r.   rÉ   r2   Tr„  g      �?rª  )r   r«  r¬  Úrelative_areasro   rp   r8   r9   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"   rH   r7   r   r   r   )r   r(   r3   r8   r9   Ú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û   Únumpyr"   r   r   r   Únumpy.testingr   r   r   r	   r
   r   r   r   r   r   r   r  r‚  r   r   r   ú<module>r¾     sF   ðÛ ã ß =Ñ =÷÷ ÷ ÷]"ñ ]"÷~R8ñ R8÷jP)ò P)r   