Ë
    ¡ehžƒ  ã                   ó”   — 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 d dlZ G d„ d«      Z G d„ d«      Z G d„ d	«      Zy)
é    N)Ú	histogramÚhistogramddÚhistogram_bin_edges)
Úassert_Úassert_equalÚassert_array_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_raisesÚassert_allcloseÚassert_array_max_ulpÚ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'y%)&ÚTestHistogramc                  ó   — y ©N© ©Úselfs    ú]/var/www/skyplay_api_hub/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_density)   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_outliersI   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_mismatcha   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_typeh   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_roundingw   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 D˜kÕ*Ü”j¤)¨T¼"¿&¹&À¸ÕGÜ”j¤)¨T¸$¼r¿v¹v¸ÖGr   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_datetime,  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_boundsE  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_boundsL  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_boundS  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_boundb  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_precisionr  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_precisionv  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   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      sÕ   „ òòò	"ò/ò'ò@!ò0Gò5ò,ò1ò"3ò:@ò<;ò0ò
7òHò2ò	ò"ò
*ò7ò	@ò%ò2'ò2#ò4ò/ò/ò @ò4ò%ò$ð ‡[�[×ÑÐKÐÓLñ/ó Mð/ó0r   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 ]E  \  }}t        j                  ||«      \  }	}
t        t        |	«      |dj                  ||«      ¬«       ŒG Œ° 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 {0} estimator with datasize of {1}©Úerr_msgN)Úitemsr"   r&   r„   r   r   ry   Úformat)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Ó(:ò 		PÑ$ˆG�_ô —‘˜S " g°¡l°QÑ&6Ó7ˆBÜ—‘˜Q  G¨q¡L°1Ñ$4Ó5ˆBÜ—‘  B˜xÓ(ˆAØ&5×&;Ñ&;Ó&=ò PÑ"�	˜7Ü—|‘| A yÓ1‘��1ÜœS ›V Wð 74ß4:±F¸9ÀgÓ4NöPñPñ		Pr   c           
      óp  — 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 ]E  \  }}t        j
                  ||«      \  }}t        t        |«      |dj                  ||«      ¬«       ŒG Œ‡ 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&  N)	r(  r"   rH   rË   rh   r   r   ry   r)  )	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ò 	PÑ$ˆG�_Ü—i‘i Ó(×/Ñ/´Ó6ˆGØ&5×&;Ñ&;Ó&=ò PÑ"�	˜7Ü—|‘| G¨YÓ7‘��1ÜœS ›V Wð 74ß4:±F¸9ÀgÓ4NöPñPñ	P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ÚIQRr1  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 ]D  \  }}t        j                  ||«      \  }}t	        t        |«      |dj                  |«      ¬«       ŒF 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{0} estimator, No Variance testr&  N)r"   rf   r(  r   r   ry   r)  )r   Únovar_datasetÚnovar_resultdictr  r/  r)   r*   s          r   Útest_novariancez)TestHistogramOptimBinNums.test_novarianceê  s~   € ô
 Ÿ™ ›ˆØ"#¨a¸ÀqØ%&°¸1ÀqñJÐð #3×"8Ñ"8Ó":ò 	?ÑˆI�wÜ—<‘< ¨yÓ9‰DˆAˆqÜœ˜Q› ð 3,ß,2©F°9Ó,=ö?ñ	?r   c                 óP  — t        j                  d«      }d|dd d|dd t        |d«      }t        |t        j                  ddd«      «       t        |d	«      }t        |t        j
                  ddg«      «       t        |d
«      }t        |t        j                  ddd«      «       y)zu
        Check when IQR is 0, but variance exists, we return the sturges value
        and not the fd value.
        éè  r   Nr0   r   éüÿÿÿrÀ   r  r  r  )r"   rf   r   r   r&   r7   )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¤§¡¨Q°°RÓ!8Ô9ä& |°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  r/  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   )ÚseedrU  Ú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   rZ  rX  rU  Ú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 ]\  \  }}	t        j                  ||d¬«      \  }
}dj                  |«      }|dj                  |«      z  }t        t        |
«      |	|¬«       Œ^ Œß 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   rJ  iÎÿÿÿ)iìÿÿÿrÈ   rP   zFor the {0} estimatorz with datasize of {0}r&  N)r(  r"   r&   rL  r   r)  r   ry   )r   r*  r+  r,  r-  r.  Úx3ro   r  r/  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¸)ÔD‘��1Ø-×4Ñ4°YÓ?�ØÐ.×5Ñ5°gÓ>Ñ>�Üœ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_dataM  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   rB  N)r   rÂ   rx   r   r"   r   ÚtilerH   )r   r3   r|   s      r   Útest_integerz&TestHistogramOptimBinNums.test_integerW  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   rB  r  r  r/   rB   rƒ   N)r   r"   r   rv  rH   r   s    r   Útest_integer_non_autoz/TestHistogramOptimBinNums.test_integer_non_autod  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À   r1  ra   N)r   r�   r   )r   r  r  s      r   Útest_simple_weightedz.TestHistogramOptimBinNums.test_simple_weightedo  s,   € ò DˆØ'ò 	8ˆIÜœ)¤Y²	Ø#ªYö8ñ	8r   N)r	  r
  r  Ú__doc__r™   r+   r5  r<  r@  rH  rP  rc  rl  rû   r  Úparametrizert  rw  ry  r{  r   r   r   r  r  ¥  sœ   „ ñò
4òPò4Pò(Gò?ò=ò$*ò(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   )rn  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/   rn  r/   r¨   )r€   r€   r€   r4   r€   )r"   r7   r   r   r   Úallr
   ÚsplitÚsqueezer…   ÚlistrQ   rH   )	r   ro   ÚHr9   ÚanswerÚedrp   ÚzÚZs	            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_2d'  sï   € ô —(‘(š9Ó%ˆÜ—(‘(š9Ó%ˆÜŸ™Ø�ˆFØ�ˆFð#ó ˆô
 �H‰H�a�S˜A˜3˜q™5‘[ A 3 q¡5Ñ(¨A¨3¨q©5Ñ0Ó1ˆÜ�H‰H�a�S˜A˜3˜q™5‘[ A 3 q¡5Ñ(¨A¨3¨q©5Ñ0Ó1ˆô " 1 a &°¸Ð/AÔB‰ˆˆeÜ�T˜>Ô*ô " 1 a &°¸Ð/AÈ4ÔP‰ˆˆeÜ�T˜9Õ%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_1dB  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  y  sQ   „ ò#!òJ"ò"ò	-ò@ò
5òAò
)ò ò.Gò*ò	4ò
$ò&ó6)r   r  )Únumpyr"   r   r   r   Únumpy.testingr   r   r   r	   r
   r   r   r   r   r   rû   r   r  r  r   r   r   ú<module>r¼     sH   ðÛ ç =Ñ =÷÷ ÷ ó
 ÷V0ñ V0÷rQ8ñ Q8÷hP)ò P)r   