Ë
    ›2ÚiÞ  ã                   ó    — 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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_warnings)Úrequires_memoryc                   ó  — 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! e"d ¬!«      e#jH                  jJ                  d"„ «       «       Z&d#„ Z'y$)%ÚTestHistogramc                  ó   — y ©N© ©Úselfs    úV/var/www/html/acx/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/   r0   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/   r1   é   r"   çš™™™™™¹?Fr.   r   r1   rB   )rC   rC   rC   ç        ç      à?ç      ø?ç      Ð?)r#   r$   r%   r   r&   Údiffr	   Úaranger   r   Úinf)	r   r(   r)   r*   r+   Úarear4   Ú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"   rE   r   é	   ©Úranger/   T©rR   r@   é   ©Údecimal©rR   Úweightsr@   é   ©r4   rR   rX   éÿÿÿÿ)r#   rI   r   r   r&   r	   rH   )r   r*   r;   r+   Úws        r   Útest_outlierszTestHistogram.test_outliersJ   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"   rE   é   zsame shape asr/   rP   TrW   )r#   rI   r   r7   r   )r   r*   r\   r;   r+   s        r   Útest_arr_weights_mismatchz'TestHistogram.test_arr_weights_mismatchb   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"   rE   Tr?   ©rX   )r#   rI   r   r   Ú
issubdtypeÚdtypeÚintegerÚfloatingÚonesÚintÚfloat)r   r*   r;   r+   s       r   Ú	test_typezTestHistogram.test_typei   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@©rd   )g!çý°�³@gö·àS�±@g§’ ^z·@r   r3   ç      @)r#   r8   Úfloat32Úhistogram2dr   r&   )r   ÚxÚyÚcounts_histÚxedgesÚyedgess         r   Útest_f32_roundingzTestHistogram.test_f32_roundingx   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   rl   zConverting input from .*)TTFr/   )
r#   r8   Úuint8r   r   ÚrecordÚRuntimeWarningr   Úlenr   )r   r*   Úint_histÚ	int_edgesÚsupÚrecr9   r:   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?   rb   ©rX   r@   r   r"   r_   ©r4   rX   )r/   r0   r0   r2   r2   )r2   r1   r0   r/   )r2   r�   r   r/   )r4   rX   r@   g      $@rm   rP   rA   )	r0   r/   r/   r/   r/   r/   r/   r/   r/   )gš™™™™™É?rC   rC   g333333³?)r#   r$   r%   rg   r   r
   r'   ÚconcatenateÚzerosrI   r   r8   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/   r[   r0   y              ð?)r0   r/   r0   )r   r0   r1   rƒ   r/   r0   r1   rZ   r   )ÚDecimalr�   )r#   r8   r   r
   rV   r�   )r   ÚvaluesrX   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   )rR   r4   )r#   r8   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/   r3   ©r   r   r#   r8   ©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 )NrD   r5   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 )NrD   r5   r   r›   rG   ç      è?rQ   )r#   r'   r   r   r7   ÚnanrJ   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)	NrD   r5   r   r›   zmax must be larger thanrC   g{®Gáz„?rQ   )r#   r'   r   r7   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   )r0   iè  ©r4   rR   r   r[   r/   )r#   r8   r   Úzipr   )
r   Úarrr9   r:   ÚmaskÚ
left_edgesÚright_edgesrp   Ú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©	rD   rD   rD   r5   r6   rm   rm   g      @g      @é   ©ç      à¿r�   r¨   r[   r/   )r#   r8   r   r   )r   rª   r9   r:   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)
NrD   r5   r   r›   r   rE   g333333ã?z
must be 1dr3   )r#   r'   r8   r   r7   r   )r   rŸ   r4   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)Nr0   )r/   r1   r/   Úuint64rl   r3   )r#   r8   r   r7   r   )r   rª   r4   r9   r:   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š™™™™™Ù?rE   g	     à?)r   r7   r   rR   r#   r8   rJ   )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/   Úautor3   ©r   r/   r¨   r0   )r#   r8   r£   r   Úfilterry   r   r7   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/   r0   r1   r�   r"   é   )r   r0   é   rÈ   ztimedelta64[D]r3   )r#   Ú
datetime64r8   rd   r   Úastyper   rh   )r   ÚbeginÚoffsetsr4   Ú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 )NrY   r/   r0   r2   rl   r3   r   )r#   rd   Úitemsizer8   r   r   )r   rd   Úexponentrª   r9   r<   s         r   Údo_signed_overflow_boundsz'TestHistogram.do_signed_overflow_boundsF  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_boundsM  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 )Nr5   r6   r   r/   r¨   ©r#   ÚfinfoÚepsr8   rË   r   r   rd   ©r   Úfloat_smallÚfloat_largeræ   rª   rR   ÚcountÚx_locs           r   Údo_precision_lower_boundz&TestHistogram.do_precision_lower_boundT  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 )Nr5   rD   r[   r/   r¨   rä   rç   s           r   Údo_precision_upper_boundz&TestHistogram.do_precision_upper_bounde  s�   € Ü�h‰h�{Ó#×'Ñ'ˆä�h‰h˜�u˜kÓ*ˆÜ—‘˜#˜s S™yÐ)¨;Ó7ˆð �<‰<˜Ó$ RÑ(¨AÒ-Øô —|‘| C¨a°uÔ=‰ˆˆuÜ�U˜Q˜CÔ ô 	�U—[‘[ +Õ.r   c                 óL   — | j                  ||«       | j                  ||«       y r   )rì   rî   )r   rè   ré   s      r   Údo_precisionzTestHistogram.do_precisionv  s"   € Ø×%Ñ% k°;Ô?Ø×%Ñ% k°;Õ?r   c                 ó,  — | j                  t        j                  t        j                  «       | j                  t        j                  t        j                  «       | j                  t        j                  t        j
                  «       | j                  t        j                  t        j                  «       | j                  t        j                  t        j
                  «       | j                  t        j                  t        j
                  «       y r   )rð   r#   ÚhalfÚsingleÚdoubleÚ
longdoubler   s    r   Útest_precisionzTestHistogram.test_precisionz  s’   € à×Ñœ"Ÿ'™'¤2§9¡9Ô-Ø×Ñœ"Ÿ'™'¤2§9¡9Ô-Ø×Ñœ"Ÿ'™'¤2§=¡=Ô1Ø×Ñœ"Ÿ)™)¤R§Y¡YÔ/Ø×Ñœ"Ÿ)™)¤R§]¡]Ô3Ø×Ñœ"Ÿ)™)¤R§]¡]Õ3r   c                 ó<  — t        g d¢ddg«      \  }}t        g d¢ddg«      }t        ||«       t        j                  g d¢«      }t        |dd¬«      \  }}t        |dd¬«      }t        ||«       t        |dd	¬«      \  }}t        |dd	¬«      }t        ||«       y )
Nr.   r/   r0   r²   r³   r´   r¨   rÀ   rÁ   )r   r   r   r#   r8   )r   r9   r<   r:   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   g    _ B)Ú
free_bytesc                 óÔ   — t        j                  ddg«      }d}d}t        j                  d«      }t        j                  ||||f¬«      }t	        t        |«      t        d«      «       y )Ni áõr1   i�  i€>  )Úsampler4   )r/   r0   )r#   r…   rI   r   r   Útype)r   rû   ÚxbinsÚybinsÚzbinsr9   s         r   Útest_big_arrayszTestHistogram.test_big_arrays‘  sW   € ô —‘˜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>f8rl   r0   )gÒèxÖ0€ge¨Òl	  €r¨   r/   r   )r#   r   r8   r   )r   r9   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=   rN   r]   r`   rj   ru   r   rŒ   r’   r•   r™   r    r¤   r¦   r°   r¶   r¸   r»   r¾   rÅ   r×   rÛ   râ   rì   rî   rð   rö   rø   r   ÚpytestÚmarkÚslowr   r  r   r   r   r   r      sÓ   „ òòò	"ò/ò'ò@!ò0Gò5ò,ò1ò"3ò:@ò<;ò0ò
7òHò2ò	ò"ò
*ò7ò	@ò%ò2'ò2#ò4ò/ò"/ò"@ò4ò%ñ  Ô%Ø‡[�[×Ññ/ó ó &ð/ó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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À   Ústoner3   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
        r2   rY   rÉ   r0   r  é   r"   é   é   rP   é   é#   é   éG   rÈ   ©é2   iô  iˆ  r”   r[   r�   r/   r1   ú*For the {0} estimator with datasize of {1}©Úerr_msgN)Úitemsr#   r'   r„   r   r   rz   Úformat)r   Ú
basic_testÚtestlenÚexpectedResultsÚx1Úx2rp   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           
      óJ  — 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 ]r  \  }}t        j                  |«      }|j                  «       D ]E  \  }}t        j                  ||«      \  }}t	        t        |«      |dj                  ||«      ¬«       ŒG Œt 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  r0   r1   ©r/   r0   r1   r!  r"  N)r$  r#   rI   r   r   rz   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 Ó(ˆ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ÚIQRr-  N)r   r7   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#   rg   r$  r   r   rz   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.
        iè  r   Nr1   r   éüÿÿÿrÀ   r  r  r  )r#   rg   r   r   r'   r8   )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_   rB   )r  r  r  r  N)r#   r'   Úhstackr$  r   r   rz   )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   r0   )ÚlocÚscaleÚsizer  r  )r#   r$   ÚRandomStateÚnormalrz   r   )ÚseedrP  Úrngrp   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   r2   )ÚstartÚstoprœ   r   r    rE   )g333333Ã?g
×£p=
·?g{®Gáz´?g¸…ëQ¸ž?r0   rU   N)	rR   r#   Ú	geomspaceÚroundrË   rh   ÚabsÚmeanr	   )r   rU  rS  rP  Ú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.
        rY   rT   r  )r  r  r  r  rÀ   r  r  é    rÈ   éP   é!   éE   é   r  r”   r[   r�   r0   r/   r"   r1   rE  iÎÿÿÿ)iìÿÿÿrÈ   rQ   zFor the {0} estimatorz with datasize of {0}r"  N)r$  r#   r'   rG  r   r%  r   rz   )r   r&  r'  r(  r)  r*  Úx3rp   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   r4   )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   é   rl   r3   )r#   r8   Úint8r   rË   Úint32r   )r   r4   r*   r9   r:   Úhist32Úedges32s          r   Útest_signed_integer_dataz2TestHistogramOptimBinNums.test_signed_integer_dataK  sa   € ô �H‰H’\¬¯©Ô1ˆÜ—l‘l 1¨4Ô0‰ˆˆeÜŸ,™, q§x¡x´·±Ó'9ÀÔE‰ˆ�Ü˜4 Ô(Ü˜5 'Õ*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À   r-  rb   N)r   r�   r   )r   r  r  s      r   Útest_simple_weightedz.TestHistogramOptimBinNums.test_simple_weightedU  s,   € ò DˆØ'ò 	8ˆIÜœ)¤Y²	Ø#ªYö8ñ	8r   N)r  r  r  Ú__doc__r™   r,   r1  r8  r<  rC  rK  r^  rg  r  r  Úparametrizero  rq  r   r   r   r  r  £  sj   „ ñò
4òPò4Pò(Gò?ò=ò$*ò(Fò ;ð> ‡[�[×Ñ˜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µ   rE   rF   )rµ   rF   r�   )rµ   r�   rE   )rE   rE   rF   )rE   rF   r�   )rE   r�   r�   )r0   r1   r1   r[   r/   r   r1   rQ   )r   r/   r   )r   r   r/   )r/   r   r   )ri  r   r0   )r   r/   r0   r1   T©r4   r@   g      (@)r0   r1   r2   r2   rS   )r   r/   r   r   )r   r   r/   r   )r/   r   r   r   g      @r    )r2   r1   r0   ri  r0   r¨   )r�   r�   r�   r5   r�   )r#   r8   r   r   r   Úallr
   ÚsplitÚsqueezer…   ÚlistrR   rI   )	r   rp   ÚHr:   ÚanswerÚedrq   ÚzÚZs	            r   r,   zTestHistogramdd.test_simplea  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�   r2   rB   )rB   r2   r�   )r�   rB   r2   )r2   rB   r�   )rB   r�   r2   )r2   r�   rB   r"   r1   ©r#   r$   r%   r   r   Úshape©r   r4   Úrr+   r|  r:   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É   r2   r�   rB   )r2   r�   rÉ   rB   )r�   rB   r2   rÉ   )rÉ   rB   r�   r2   )r�   rÉ   rB   r2   )r2   rB   rÉ   r�   )rB   r�   rÉ   r2   )rÉ   r�   r2   rB   )rÉ   r2   rB   r�   )rB   r2   rÉ   r�   )rB   rÉ   r�   r2   )r2   rB   r�   rÉ   )r2   rÉ   r�   rB   )r�   r2   rB   rÉ   )r�   rÉ   r2   rB   )rB   rÉ   r2   r�   )rB   r�   r2   rÉ   )r2   rÉ   rB   r�   )r2   r�   rB   rÉ   )rÉ   rB   r2   r�   )r�   r2   rÉ   rB   )r�   rB   rÉ   r2   )rB   r2   r�   rÉ   )rÉ   r�   rB   r2   r"   r2   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   r0   Tr?   rb   r‚   )r#   r$   r%   r   rg   r   rh   )r   r)   r9   r:   Ú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"   r0   r0   r3   r   )rµ   rD   rE   )r#   r…   rh   r   r   r8   )r   rp   r9   r:   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/   r3   rD   r0   )r0   r0   r0   )r   r   r#   r8   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 )
NrY   r0   r2   )r[   r0   r2   r�   r3   )r/   g®Gáz®ï?r/   r/   r/   )r/   r0   r1   éýÿÿÿr.   )r#   rI   Úreshaper   r7   r   r   )r   rp   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)ÚinvalidrB   r1   r0   r/   r   r"   r3   r[   )r#   ÚerrstaterI   r‘  r8   r   rJ   r   )r   rp   Ú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»ÿÿÿï?)rD   rE   r5   r3   r   rD   r/   r5   g8ß   ð?gq¬‹Ûh ð?)r   r   )r   rp   r4   r9   Ú_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   r1   rD   r5   rG   r¢   rE   rQ   )r#   r$   r   r   r7   rJ   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/   r0   )r   r0   r0   r/   r3   r6   r5   N©r#   r8   r   r   )r   rp   rq   Úx_edgesÚy_edgesr9   r:   Ú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�   rT   rÈ   r3   r   r/   N)r#   r8   r   r   rd   )r   rp   rq   rŸ  r   r9   r:   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   r[   r/   r3   )r   r   )r#   r8   Úint64r   r   )r   Úbigrp   rŸ  rq   r   r9   r:   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   r0   rY   )r   rB   rY   r1   rP   r/   rÉ   r3   Trw  g      �?rž  )r   rŸ  r   Úrelative_areasrp   rq   r9   r:   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"   rA   Tr?   r   )r#   rI   r8   r   r   r   )r   r)   r4   r9   r:   Úhist_ddÚedges_dds          r   Útest_density_non_uniform_1dz+TestHistogramdd.test_density_non_uniform_1d(  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   ru  ru  _  sQ   „ ò#!òJ"ò"ò	-ò@ò
5òAò
)ò ò.Gò*ò	4ò
$ò&ó6)r   ru  )Únumpyr#   Únumpy.lib.histogramsr   r   r   Únumpy.testingr   r   r   r	   r
   r   r   r   r   r   Únumpy.testing._private.utilsr   r  r   r  ru  r   r   r   ú<module>r´     sK   ðÛ ç LÑ L÷÷ ÷ õ
 9Û ÷S0ñ S0÷ly8ñ y8÷xP)ò P)r   