§
    €ÛgÄ~  ã                   ó´   — 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dS )é    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#j$        j%        d"„ ¦   «         ¦   «         Z&d#S )$ÚTestHistogramc                 ó   — d S ©N© ©Úselfs    úU/granary/edev/quantum/lib/python3.11/site-packages/numpy/lib/tests/test_histograms.pyÚsetup_methodzTestHistogram.setup_method   ó   € Øˆó    c                 ó   — d S r   r   r   s    r   Úteardown_methodzTestHistogram.teardown_method   r   r   c                 ó   — d}t           j                             |¦  «        }t          |¦  «        \  }}t	          t          j        |d¬¦  «        |¦  «         t          t          j        ddd¦  «        ¦  «        \  }}t          |d¦  «         d S )Néd   r   ©Úaxisé
   )ÚnpÚrandomÚrandr   r   ÚsumÚlinspacer   )r   ÚnÚvÚaÚbs        r   Útest_simplezTestHistogram.test_simple   s   € ØˆÝŒI�NŠN˜1ÑÔˆÝ˜1‘”‰ˆˆAå•R”V˜A AÐ&Ñ&Ô&¨Ñ*Ô*Ð*õ �2œ; q¨"¨cÑ2Ô2Ñ3Ô3‰ˆˆAÝ˜1˜bÑ!Ô!Ð!Ð!Ð!r   c                 ór  — 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¦  «        ¦  «         d S )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Ô5‰ˆˆeÝ˜4 ! Ñ'Ô'Ð'Ý˜5 1 a &Ñ)Ô)Ð)Ý•j¥)¨a°¨V¸!Ð<Ñ<Ô<Ð<Ý˜!˜Q˜ aÐ(Ñ(Ô(‰ˆˆ1Ý�Q�œ ! ™œÑ&Ô&Ð&Ý˜�2œ8 R¨ HÑ-Ô-Ñ.Ô.Ð.Ð.Ð.r   c                 ó&  — d}t           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¦  «         d S )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�NŠN˜1ÑÔˆÝ˜ DÐ)Ñ)Ô)‰ˆˆ1ÝŒv�a�"œ' !™*œ*‘nÑ%Ô%ˆÝ˜D !Ñ$Ô$Ð$õ ŒI�b‰MŒMˆØÐÐˆÝ˜˜D¨$Ð/Ñ/Ô/‰ˆˆ1Ý˜1˜bÑ!Ô!Ð!Ý•R”V˜A¥¤¨¡
¤
™NÑ+Ô+¨QÑ/Ô/Ð/õ ˜˜D¨%Ð0Ñ0Ô0‰ˆˆ1Ý˜1˜l˜l˜lÑ+Ô+Ð+õ ŒI�b‰MŒMˆØ�1�a˜�BœFÐ#ˆÝ˜˜D¨$Ð/Ñ/Ô/‰ˆˆ1Ý˜1Ð.Ð.Ð.Ñ/Ô/Ð/õ ”lØˆLˆL˜3 ¥R¤VÐ,°dð<ñ <ô <‰ˆ�å�V˜c 1˜XÑ&Ô&Ð&Ð&Ð&r   c                 óà  — t          j        d¦  «        dz   }t          |ddg¬¦  «        \  }}t          |                     ¦   «         d¦  «         t          |ddg¬¦  «        \  }}t          |                     ¦   «         d¦  «         t          |ddgd¬¦  «        \  }}t          |t          j        |¦  «        z                       ¦   «         dd	¬
¦  «         t          j        d¦  «        dz   }t          |ddg|d¬¦  «        \  }}t          |t          j        |¦  «        z                       ¦   «         d¦  «         t          |dddg|¬¦  «        \  }}t          ||dd…         ¦  «         d S )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�b‰MŒM˜BÑˆõ ˜ 1 a &Ð)Ñ)Ô)‰ˆˆ1Ý�Q—U’U‘W”W˜aÑ Ô Ð õ ˜ 1 b 'Ð*Ñ*Ô*‰ˆˆ1Ý�Q—U’U‘W”W˜aÑ Ô Ð õ ˜ 1 a &°$Ð7Ñ7Ô7‰ˆˆ1Ý˜Q¥¤¨¡¤™^×0Ò0Ñ2Ô2°A¸rÐBÑBÔBÐBõ ŒI�b‰MŒM˜BÑˆÝ˜ 1 a &°!¸TÐBÑBÔ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 ¦  «         d S # 1 swxY w Y   d S )	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   sÌ   € ÝŒI�b‰MŒM˜BÑˆÝŒI�b‰MŒM˜BÑˆÝ ¥¨_Ñ=Ô=ð 	Gð 	GÝ˜Q q¨! f°aÀÐFÑFÔF‰DˆAˆqð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs   ÁA*Á*A.Á1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        ¦  «        ¦  «         d S )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�b‰MŒM˜BÑˆÝ˜‰|Œ|‰ˆˆ1Ý•”˜aœg¥r¤zÑ2Ô2Ñ3Ô3Ð3å˜ DÐ)Ñ)Ô)‰ˆˆ1Ý•”˜aœg¥r¤{Ñ3Ô3Ñ4Ô4Ð4å˜¥B¤G¨BµÑ$4Ô$4Ð5Ñ5Ô5‰ˆˆ1Ý•”˜aœg¥r¤zÑ2Ô2Ñ3Ô3Ð3å˜¥B¤G¨BµÑ$6Ô$6Ð7Ñ7Ô7‰ˆˆ1Ý•”˜aœg¥r¤{Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 ó  — t          j        g d¢t           j        ¬¦  «        }t          j        g d¢t           j        ¬¦  «        }t          j        ||d¬¦  «        \  }}}t	          |                     ¦   «         d¦  «         d S )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   sy   € åŒHÐ8Ð8Ð8ÅÄ
ÐKÑKÔKˆÝŒHÐ<Ð<Ð<ÅBÄJÐOÑOÔOˆÝ&(¤n°Q¸ÀÐ&DÑ&DÔ&DÑ#ˆ�V˜VÝ�[—_’_Ñ&Ô&¨Ñ+Ô+Ð+Ð+Ð+r   c                 ó¨  — t          j        g d¢t           j        ¬¦  «        }t          j        |¦  «        \  }}t	          ¦   «         5 }|                     t          d¦  «        }t          j        g d¢¦  «        \  }}t          t          |¦  «        d¦  «         t          ||¦  «         t          ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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�Y�Y�Y¥b¤hÐ/Ñ/Ô/ˆÝ œl¨1™oœoÑˆ�)õ
 Ñ Ô ð 	1 CØ—*’*�^Ð-GÑHÔHˆCÝœ,Ð':Ð':Ð':Ñ;Ô;‰KˆD�%å�˜S™œ 1Ñ%Ô%Ð%Ý˜t XÑ.Ô.Ð.Ý˜u iÑ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   ÁA2CÃCÃCc                 óÄ  — t           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¢¦  «         d S )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�NŠN˜3ÑÔˆÝŒG�C‰LŒL˜1ÑˆÝ˜‰|Œ|‰ˆˆ1Ý˜1 dÐ+Ñ+Ô+‰ˆˆBÝ˜1 aÐ(Ñ(Ô(‰ˆˆBÝ˜Q¨°4Ð8Ñ8Ô8‰ˆˆSÝ! ! a¡%¨Ñ,Ô,Ð,Ý! " cÑ*Ô*Ð*õ ŒK˜˜2˜rÑ"Ô"ˆÝŒN�BœH Q™KœK­¬°©¬Ð4Ñ5Ô5ˆÝ˜1¥2¤9¨R¡=¤=¸!Ð<Ñ<Ô<‰ˆˆBÝ! " aÑ(Ô(Ð(õ ˜<˜<˜<¨a¸¸¸ÐFÑFÔF‰ˆˆBÝ˜2˜|˜|˜|Ñ,Ô,Ð,ÝØˆLˆL˜q¨,¨,¨,ÀðFñ Fô F‰ˆˆBå! "¥b¤h¨|¨|¨|Ñ&<Ô&<¸sÑ&BÀRÑ&GÈ!Ñ&KÑLÔLÐLõ ÝŒI�a‰LŒLÐ*Ð*Ð*Ø/Ð/Ð/¸ð?ñ ?ô ?‰ˆˆ1õ 	˜AÐ1Ð1Ð1Ñ2Ô2Ð2Ð2Ð2r   c           	      ór  — 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¦  «         d S )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­   sÏ  € õ ”˜/˜/˜/Ñ*Ô*ˆÝ”(˜:˜:˜:Ñ&Ô&¨­b¬h°y°y°yÑ.AÔ.AÑ)AÑAˆõ ˜6¨	¨	¨	¸7ÐCÑCÔC‰ˆˆBÝ! "¥b¤h°°1¨vÑ&6Ô&6¸½b¼hÈÈ1ÀvÑ>NÔ>NÑ9NÑ&NÑOÔOÐOõ ˜6¨°!°Q°ÀÐIÑIÔI‰ˆˆBÝ! "¥b¤h°°1¨vÑ&6Ô&6¸½b¼hÈÈ1ÀvÑ>NÔ>NÑ9NÑ&NÑOÔOÐOð 	$Ð#Ð#Ð#Ð#Ð#Ý”˜/˜/˜/Ñ*Ô*ˆÝ”(˜G˜G A™JœJ¨¨°©
¬
°G°G¸A±J´JÐ?Ñ@Ô@ˆõ ˜6¨	¨	¨	¸7ÐCÑCÔC‰ˆˆBÝ! " w w¨q¡z¤z°7°7¸1±:´:Ð&>Ñ?Ô?Ð?õ ˜6¨°!°Q°ÀÐIÑIÔI‰ˆˆBÝ! " w w¨q¡z¤z°7°7¸1±:´:Ð&>Ñ?Ô?Ð?Ð?Ð?r   c                 óˆ   — t          j        g d¢¦  «        }t          j        |ddgd¬¦  «         t          |g d¢¦  «         d S )NrŽ   éöÿÿÿr"   r   )rR   r4   )r#   r8   r   r
   )r   r‘   s     r   Útest_no_side_effectsz"TestHistogram.test_no_side_effectsË   sL   € õ ”˜/˜/˜/Ñ*Ô*ˆÝ
Œ�V C¨ 9°3Ð7Ñ7Ô7Ð7Ý! &¨/¨/¨/Ñ:Ô:Ð:Ð:Ð:r   c                 óÀ   — t          g ddg¬¦  «        \  }}t          |t          j        dg¦  «        ¦  «         t          |t          j        ddg¦  «        ¦  «         d S )Nr   r/   r3   ©r   r   r#   r8   ©r   r*   r+   s      r   Ú
test_emptyzTestHistogram.test_emptyÒ   sZ   € Ý˜ A q 6Ð+Ñ+Ô+‰ˆˆ1Ý˜1�bœh¨ s™mœmÑ,Ô,Ð,Ý˜1�bœh¨¨1 vÑ.Ô.Ñ/Ô/Ð/Ð/Ð/r   c                 óŒ   — t          j        ddd¬¦  «        }t          |d¦  «         t          t          t          |d¦  «         d S )NrD   r5   r   ©Únumr�   g333333@)r#   r'   r   r   Ú	TypeError©r   Úvalss     r   Útest_error_binnum_typez$TestHistogram.test_error_binnum_type×   sB   € åŒ{˜3 ¨Ð-Ñ-Ô-ˆÝ�$˜ÑÔÐÝ•i¥¨D°#Ñ6Ô6Ð6Ð6Ð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¬¦  «         d S )NrD   r5   r   r›   rG   ç      è?rQ   )r#   r'   r   r   r7   ÚnanrJ   rž   s     r   Útest_finite_rangezTestHistogram.test_finite_rangeÝ   so   € åŒ{˜3 ¨Ð-Ñ-Ô-ˆÝ�$˜t D˜kÐ*Ñ*Ô*Ð*Ý•j¥)¨T½"¼&À¸ÐGÑGÔGÐGÝ•j¥)¨T¸$½r¼v¸ÐGÑGÔGÐGÐGÐGr   c                 óÀ   — t          j        ddd¬¦  «        }t          t          d¦  «        5  t          j        |ddg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	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ä   s¦   € åŒ{˜3 ¨Ð-Ñ-Ô-ˆÝ ¥Ð-FÑGÔGð 	2ð 	2ÝŒL˜ c¨4 [Ð1Ñ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2s   ­AÁAÁAc                 ó.  — t          j        g d¢¦  «        }t          j        |dd¬¦  «        \  }}|dk    }|d d…         |         }|dd …         |         }t          |||¦  «        D ],\  }}}	t	          ||k    ¦  «         t	          ||	k     ¦  «         Œ-d S )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Ð=Ð=Ð=Ñ>Ô>ˆÝ”l 3¨T¸ÐCÑCÔC‰ˆˆeØ�aŠxˆØ˜3˜B˜3”Z Ô%ˆ
Ø˜A˜B˜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¦  «         d S )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õ   sL   € ÝŒhÐCÐCÐCÑDÔDˆÝ”l 3¨R°yÐAÑAÔ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 ¦  «         d S # 1 swxY w Y   d S )
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˜!˜S˜ C¨ :Ð.Ñ/Ô/ˆÝ ¥¨\Ñ:Ô:ð 	*ð 	*ÝŒL˜ DÐ)Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ÁA+Á+A/Á2A/c                 óì   — t          j        dg¦  «        }t          j        g d¢d¬¦  «        }t          t          ¦  «        5  t          j        ||¬¦  «        \  }}d d d ¦  «         d S # 1 swxY w Y   d S )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  sµ   € õ Œh˜�s‰mŒmˆÝŒx˜	˜	˜	¨Ð2Ñ2Ô2ˆÝ�:Ñ&Ô&ð 	7ð 	7Ýœ, s°Ð6Ñ6Ô6‰KˆD�%ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s   ÁA)Á)A-Á0A-c                 óÄ  — t          t          t          d„ t          d¦  «        D ¦   «         t          j         gz   ¦  «         t          t          t          d„ t          d¦  «        D ¦   «         t          j        gz   ¦  «         t	          j        d„ t          d¦  «        D ¦   «         dgz   ¦  «         t	          j        d„ t          d¦  «        D ¦   «         dgz   ¦  «         d S )Nc                 ó6   — g | ]}t          j        d ¦  «        ‘ŒS ©gš™™™™™Ù?©r#   r8   ©Ú.0Úis     r   ú
<listcomp>z9TestHistogram.test_object_array_of_0d.<locals>.<listcomp>  ó    € Ð9Ð9Ð9¨!�œ ™œÐ9Ð9Ð9r   r"   c                 ó6   — g | ]}t          j        d ¦  «        ‘ŒS r¾   r¿   rÀ   s     r   rÃ   z9TestHistogram.test_object_array_of_0d.<locals>.<listcomp>  rÄ   r   c                 ó6   — g | ]}t          j        d ¦  «        ‘ŒS ©rE   r¿   rÀ   s     r   rÃ   z9TestHistogram.test_object_array_of_0d.<locals>.<listcomp>  ó    € Ð7Ð7Ð7¨•b”h˜s‘m”mÐ7Ð7Ð7r   g	     à?c                 ó6   — g | ]}t          j        d ¦  «        ‘ŒS rÇ   r¿   rÀ   s     r   rÃ   z9TestHistogram.test_object_array_of_0d.<locals>.<listcomp>  rÈ   r   rE   )r   r7   r   rR   r#   rJ   r   s    r   Útest_object_array_of_0dz%TestHistogram.test_object_array_of_0d	  sÚ   € å•jÝÐ9Ð9­u°R©y¬yÐ9Ñ9Ô9½b¼f¸W¸IÑEñ	Gô 	Gð 	Gå•jÝÐ9Ð9­u°R©y¬yÐ9Ñ9Ô9½R¼V¸HÑDñ	Fô 	Fð 	Fõ 	ŒÐ7Ð7­U°2©Y¬YÐ7Ñ7Ô7Ð;KÐ:LÑLÑMÔMÐMÝ
ŒÐ7Ð7­U°2©Y¬YÐ7Ñ7Ô7¸2¸$Ñ>Ñ?Ô?Ð?Ð?Ð?r   c                 óR  — t          j        ddt           j        g¦  «        }t          j        t           j        t           j        g¦  «        }t          ¦   «         }|                     t
          ¦  «         |5  t          t          t          |d¬¦  «         t          t          t          |d¬¦  «         t          |dd¬¦  «        \  }}t          | 
                    ¦   «         d¦  «         t          |dd¬¦  «        \  }}t          | 
                    ¦   «         d¦  «         t          |ddg¬¦  «        \  }}t          | 
                    ¦   «         d¦  «         t          |ddg¬¦  «        \  }}t          | 
                    ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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¥B¤FÐ+Ñ,Ô,ˆõ  Ñ!Ô!ˆØ�
Š
•>Ñ"Ô"Ð"Øð 	%ð 	%å�*¥i°¸vÐFÑFÔFÐFÝ�*¥i°¸vÐFÑFÔFÐFõ ˜W¨6¸Ð@Ñ@Ô@‰DˆAˆqÝ˜Ÿš™œ !Ñ$Ô$Ð$Ý˜W¨6¸Ð@Ñ@Ô@‰DˆAˆqÝ˜Ÿš™œ !Ñ$Ô$Ð$õ ˜W¨A¨q¨6Ð2Ñ2Ô2‰DˆAˆqÝ˜Ÿš™œ !Ñ$Ô$Ð$Ý˜W¨A¨q¨6Ð2Ñ2Ô2‰DˆAˆqÝ˜Ÿš™œ !Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   Á6DFÆF Æ#F c                 óÌ  — t          j        dd¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }||z   }||z   }t          j        d¦  «        }t	          ||¬¦  «        \  }}t	          |                     |¦  «        |                     |¦  «        ¬¦  «        \  }	}
t	          ||¬¦  «        \  }}t          ||¦  «         t          |	|¦  «         t          ||z
                       t          ¦  «        |¦  «         t          |
                     t          ¦  «        |¦  «         t          |j        |j        ¦  «         t          |
j        |¦  «         d S )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-  sB  € Ý”˜l¨CÑ0Ô0ˆÝ”(Ð8Ð8Ð8Ñ9Ô9ˆÝŒx˜˜˜Ñ&Ô&ˆØ˜‘ˆØ˜D‘Lˆ	åŒXÐ&Ñ'Ô'ˆõ
 $ E°	Ð:Ñ:Ô:‰ˆ�Ý# G§N¢N°2Ñ$6Ô$6¸T¿[º[È¹_¼_ÐMÑMÔM‰ˆ�Ý# G°$Ð7Ñ7Ô7‰ˆ�å�W˜gÑ&Ô&Ð&Ý�W˜gÑ&Ô&Ð&å�f˜u‘n×,Ò,­SÑ1Ô1°6Ñ:Ô:Ð:Ý�V—]’]¥3Ñ'Ô'¨Ñ0Ô0Ð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¦  «         d S )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 ‘”Ô/Ñ/°!Ñ3ˆÝŒh˜˜H™˜ qÑ(¨!¨X©+¸©/Ð:À%ÐHÑHÔHˆÝ˜C aÐ(Ñ(Ô(‰ˆˆaÝ�Q˜!˜X™+˜¨Ñ)¨1¨a°©k¸A©oÐ>Ñ?Ô?Ð?Ý�T˜A˜q˜6Ñ"Ô"Ð"Ð"Ð"r   c                 ó<  — |                       t          j        ¦  «         |                       t          j        ¦  «         |                       t          j        ¦  «         |                       t          j        ¦  «         |                       t          j        ¦  «         d S r   )rç   r#   ÚbyteÚshortÚintcÚint_Úlonglongr   s    r   Útest_signed_overflow_boundsz)TestHistogram.test_signed_overflow_boundsM  sv   € Ø×&Ò&¥r¤wÑ/Ô/Ð/Ø×&Ò&¥r¤xÑ0Ô0Ð0Ø×&Ò&¥r¤wÑ/Ô/Ð/Ø×&Ò&¥r¤wÑ/Ô/Ð/Ø×&Ò&¥r¤{Ñ3Ô3Ð3Ð3Ð3r   c                 óZ  — t          j        |¦  «        j        }t          j        dg|¦  «        }t          j        d|z   dg|¦  «        }|                     |¦  «        d         dk    rd S t          j        |d|¬¦  «        \  }}t          |dg¦  «         t          |j        |¦  «         d S )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˜�u˜kÑ*Ô*ˆÝ”˜# ™) SÐ)¨;Ñ7Ô7ˆð �<Š<˜Ñ$Ô$ QÔ'¨1Ò,Ð,ØˆFõ ”| C¨a°uÐ=Ñ=Ô=‰ˆˆuÝ�U˜Q˜CÑ Ô Ð õ 	�U”[ +Ñ.Ô.Ð.Ð.Ð.r   c                 óZ  — t          j        |¦  «        j        }t          j        dg|¦  «        }t          j        dd|z
  g|¦  «        }|                     |¦  «        d         dk    rd S t          j        |d|¬¦  «        \  }}t          |dg¦  «         t          |j        |¦  «         d S )Nr5   rD   r[   r/   r¨   rð   ró   s           r   Údo_precision_upper_boundz&TestHistogram.do_precision_upper_bounde  s¬   € ÝŒh�{Ñ#Ô#Ô'ˆåŒh˜�u˜kÑ*Ô*ˆÝ”˜#˜s S™yÐ)¨;Ñ7Ô7ˆð �<Š<˜Ñ$Ô$ RÔ(¨AÒ-Ð-ØˆFõ ”| C¨a°uÐ=Ñ=Ô=‰ˆˆuÝ�U˜Q˜CÑ Ô Ð õ 	�U”[ +Ñ.Ô.Ð.Ð.Ð.r   c                 ó^   — |                       ||¦  «         |                      ||¦  «         d S r   )rø   rú   )r   rô   rõ   s      r   Údo_precisionzTestHistogram.do_precisionv  s4   € Ø×%Ò% k°;Ñ?Ô?Ð?Ø×%Ò% k°;Ñ?Ô?Ð?Ð?Ð?r   c                 óþ  — |                       t          j        t          j        ¦  «         |                       t          j        t          j        ¦  «         |                       t          j        t          j        ¦  «         |                       t          j        t          j        ¦  «         |                       t          j        t          j        ¦  «         |                       t          j        t          j        ¦  «         d S r   )rü   r#   ÚhalfÚsingleÚdoubleÚ
longdoubler   s    r   Útest_precisionzTestHistogram.test_precisionz  s¤   € à×Ò�"œ'¥2¤9Ñ-Ô-Ð-Ø×Ò�"œ'¥2¤9Ñ-Ô-Ð-Ø×Ò�"œ'¥2¤=Ñ1Ô1Ð1Ø×Ò�"œ)¥R¤YÑ/Ô/Ð/Ø×Ò�"œ)¥R¤]Ñ3Ô3Ð3Ø×Ò�"œ)¥R¤]Ñ3Ô3Ð3Ð3Ð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          ||¦  «         d S )
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˜L˜L¨1¨a¨&Ñ1Ô1‰ˆˆaÝ# L L L°1°a°&Ñ9Ô9ˆÝ˜5 !Ñ$Ô$Ð$åŒhÐCÐCÐCÑDÔDˆÝ˜C b°	Ð:Ñ:Ô:‰ˆˆaÝ# C¨b¸	ÐBÑBÔBˆÝ˜5 !Ñ$Ô$Ð$å˜C f°FÐ;Ñ;Ô;‰ˆˆaÝ# C¨f¸FÐCÑCÔCˆÝ˜5 !Ñ$Ô$Ð$Ð$Ð$r   g    _ B)Ú
free_bytesc                 óè   — t          j        ddg¦  «        }d}d}t          j        d¦  «        }t          j        ||||f¬¦  «        }t	          t          |¦  «        t          d¦  «        ¦  «         d S )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‘  sm   € õ ”˜9 a˜.Ñ)Ô)ˆØˆØˆÝ”	˜%Ñ Ô ˆÝŒ~ V°5¸%ÀÐ2GÐHÑHÔHˆÝ•T˜$‘Z”Z¥ f¡¤Ñ.Ô.Ð.Ð.Ð.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      s.  € € € € € ðð ð ðð ð ð	"ð 	"ð 	"ð/ð /ð /ð'ð 'ð 'ð@!ð !ð !ð0Gð Gð Gð5ð 5ð 5ð,ð ,ð ,ð1ð 1ð 1ð"3ð 3ð 3ð:@ð @ð @ð<;ð ;ð ;ð0ð 0ð 0ð
7ð 7ð 7ðHð Hð Hð2ð 2ð 2ð	ð 	ð 	ð"ð "ð "ð
*ð *ð *ð7ð 7ð 7ð	@ð 	@ð 	@ð%ð %ð %ð2'ð 'ð 'ð2#ð #ð #ð4ð 4ð 4ð/ð /ð /ð"/ð /ð /ð"@ð @ð @ð4ð 4ð 4ð%ð %ð %ð €_ Ð%Ñ%Ô%Ø„[Ôð/ð /ñ Ôñ &Ô%ð/ð /ð /r   r   c                   óš   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zej                             dg d¢¦  «        d„ ¦   «         Zd„ ZdS )ÚTestHistogramOptimBinNumsz]
    Provide test coverage when using provided estimators for optimal number of
    bins
    c                 óÎ   — g d¢}|D ]]}t          g |¬¦  «        \  }}t          |t          j        dg¦  «        ¦  «         t          |t          j        ddg¦  «        ¦  «         Œ^d S )N©ÚfdÚscottÚriceÚsturgesÚdoaneÚsqrtrÌ   Ústoner3   r   r/   r—   )r   Úestimator_listÚ	estimatorr*   r+   s        r   r™   z$TestHistogramOptimBinNums.test_empty¢  s   € ð<ð <ð <ˆð (ð 	4ð 	4ˆIÝ˜R iÐ0Ñ0Ô0‰DˆAˆqÝ˜q¥"¤(¨A¨3¡-¤-Ñ0Ô0Ð0Ý˜q¥"¤(¨A¨q¨6Ñ"2Ô"2Ñ3Ô3Ð3Ð3ð	4ð 	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œ}|                      ¦   «         D ]¸\  }}t          j        dd|dz  dz  ¦  «        }t          j        dd|dz  dz  ¦  «        }t          j        ||f¦  «        }|                      ¦   «         D ]P\  }}t          j        ||¦  «        \  }	}
t          t          |	¦  «        |d                     ||¦  «        ¬¦  «         ŒQŒ¹dS )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«  se  € ð $%°¸AÈ1Ø&'°¸AÈðKð Kà#$°¸BÈ2Ø&(°"¸bÈ1ðNð Nà#%°¸BÈ2Ø&(°"¸bÈ2ðOð Oð	Pð Pˆ
ð )3×(8Ò(8Ñ(:Ô(:ð 		Pð 		PÑ$ˆG�_õ ”˜S " g°¡l°QÑ&6Ñ7Ô7ˆBÝ”˜Q  G¨q¡L°1Ñ$4Ñ5Ô5ˆBÝ”  B˜xÑ(Ô(ˆAØ&5×&;Ò&;Ñ&=Ô&=ð Pð PÑ"�	˜7Ý”| A yÑ1Ô1‘��1Ý�S ™VœV Wð 74ß4:²F¸9ÀgÑ4NÔ4NðPñ Pô Pð Pð PðPð		Pð 		Pr   c           
      óh  — 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 ]~\  }}t          j        |¦  «        }|                      ¦   «         D ]P\  }}t          j        ||¦  «        \  }}t	          t          |¦  «        |d                     ||¦  «        ¬¦  «         ŒQŒdS )	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_datr0  r1  Ú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Ô(9ð 	Pð 	PÑ$ˆG�_Ý”i Ñ(Ô(ˆGØ&5×&;Ò&;Ñ&=Ô&=ð Pð PÑ"�	˜7Ý”| G¨YÑ7Ô7‘��1Ý�S ™VœV Wð 74ß4:²F¸9ÀgÑ4NÔ4NðPñ Pô Pð Pð PðPð	Pð 	Pr   c                 óT   — g d¢}|D ] }t          t          t          g d¢|¦  «         Œ!dS )zS
        Check a Value Error is thrown when an unknown string is passed in
        )ÚmadÚfreemanÚ
histogramsÚIQRr6  N)r   r7   r   )r   Ú
check_listr  s      r   Útest_incorrect_methodsz0TestHistogramOptimBinNums.test_incorrect_methodsÙ  sG   € ð =Ð<Ð<ˆ
Ø#ð 	Gð 	GˆIÝ�*¥i°°°¸IÑFÔFÐFÐFð	Gð 	Gr   c           	      ó  — t          j        d¦  «        }dddddddddœ}|                     ¦   «         D ]O\  }}t          j        ||¦  «        \  }}t	          t          |¦  «        |d                     |¦  «        ¬¦  «         ŒPdS )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  r4  r*   r+   s          r   Útest_novariancez)TestHistogramOptimBinNums.test_novarianceá  s«   € õ
 œ ™œˆØ"#¨a¸ÀqØ%&°¸1ÀqðJð JÐð #3×"8Ò"8Ñ":Ô":ð 	?ð 	?ÑˆI�wÝ”< ¨yÑ9Ô9‰DˆAˆqÝ�˜Q™œ ð 3,ß,2ªF°9Ñ,=Ô,=ð?ñ ?ô ?ð ?ð ?ð	?ð 	?r   c                 ó‚  — 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¦  «        ¦  «         dS )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˜t‘}”}ˆØˆ�R�a�RÑØˆ�R�S�SÑå(¨°vÑ>Ô>ˆ
Ý�Z¥¤¨Q°°RÑ!8Ô!8Ñ9Ô9Ð9å& |°TÑ:Ô:ˆÝ�X�rœx¨¨C¨Ñ1Ô1Ñ2Ô2Ð2å+¨L¸)ÑDÔDˆÝ�]¥B¤K°°3¸Ñ$;Ô$;Ñ<Ô<Ð<Ð<Ð<r   c                 ó2  — t          j        ddd¦  «        }t          j        t          j        ddd¦  «        |f¦  «        }dddd	d
œ}|                     ¦   «         D ]:\  }}t          j        ||¦  «        \  }}t          t          |¦  «        |¦  «         Œ;dS )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  r4  r*   r+   s           r   Útest_outlierz&TestHistogramOptimBinNums.test_outlier  s£   € õ ”+˜c 2 rÑ*Ô*ˆÝœ)¥R¤[°°t¸QÑ%?Ô%?ÀÐ$IÑJÔJˆà$&°¸RÈ!ÐLÐLÐà"4×":Ò":Ñ"<Ô"<ð 	*ð 	*ÑˆI�wÝ”< °Ñ;Ô;‰DˆAˆqÝ�˜Q™œ Ñ)Ô)Ð)Ð)ð	*ð 	*r   c                 ó¸   ‡— d„ Šˆfd„t          d¦  «        D ¦   «         }t          t          j        |d¬¦  «        dz
  ¦  «        }t	          |g d¢d¬	¦  «         d
S )zQVerify that Scott's rule and Stone's rule converges for normally distributed datac                 ó   — t           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   )ÚseedrY  Úrngrp   r*   r+   s         r   Únbins_ratiozBTestHistogramOptimBinNums.test_scott_vs_stone.<locals>.nbins_ratio  sx   € Ý”)×'Ò'¨Ñ-Ô-ˆCØ—
’
˜q¨°�
Ñ5Ô5ˆAÝ•r”| A wÑ/Ô/°Ô2Ñ3Ô3µS½¼ÀaÈÑ9QÔ9QÐRSÔ9TÑ5UÔ5UˆqˆAØ˜˜A™‘;Ðr   c                 ó®   •‡— g | ]PŠˆˆfd „t          j        ddd¬¦  «                             ¦   «                              t          ¦  «        D ¦   «         ‘ŒQS )c                 ó(   •— g | ]} ‰‰|¦  «        ‘ŒS r   r   )rÁ   rY  r^  r\  s     €€r   rÃ   zLTestHistogramOptimBinNums.test_scott_vs_stone.<locals>.<listcomp>.<listcomp>  s%   ø€ ÐoÐoÐo¨4ˆ{ˆ{˜4 Ñ&Ô&ÐoÐoÐor   r"   r   r2   )ÚstartÚstoprœ   )r#   Ú	geomspaceÚroundr×   rh   )rÁ   r\  r^  s    @€r   rÃ   zATestHistogramOptimBinNums.test_scott_vs_stone.<locals>.<listcomp>  so   øø€ ð %ð %ð %Øð pÐoÐoÐoÐoµ2´<ÀbÈsÐXYÐ3ZÑ3ZÔ3Z×3`Ò3`Ñ3bÔ3b×3iÒ3iÕjmÑ3nÔ3nÐoÑoÔoð %ð %ð %r   r"   r   r    rE   )g333333Ã?g
×£p=
·?g{®Gáz´?g¸…ëQ¸ž?r0   rU   N)rR   Úabsr#   Úmeanr	   )r   ÚllÚavgr^  s      @r   Útest_scott_vs_stonez-TestHistogramOptimBinNums.test_scott_vs_stone  s…   ø€ ð	ð 	ð 	ð%ð %ð %ð %Ý ™)œ)ð%ñ %ô %ˆõ •"”'˜" 1Ð%Ñ%Ô%¨Ñ+Ñ,Ô,ˆÝ˜CÐ!9Ð!9Ð!9À1ÐEÑEÔEÐEÐEÐEr   c           	      ó:  — dddddddœdddddddœd	d	d
dd	ddœdœ}|                      ¦   «         D ]ê\  }}t          j        dd|dz  dz  ¦  «        }t          j        dd|dz  dz  ¦  «        }t          j        dd|¦  «        }t          j        |||f¦  «        }|                      ¦   «         D ]k\  }}	t          j        ||d¬¦  «        \  }
}d                     |¦  «        }|d                     |¦  «        z  }t          t          |
¦  «        |	|¬¦  «         ŒlŒëdS )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   rN  iÎÿÿÿ)iìÿÿÿrÔ   rQ   zFor the {0} estimatorz with datasize of {0}r+  N)r-  r#   r'   rP  r   r.  r   rz   )r   r/  r0  r1  r2  r3  Úx3rp   r  r4  r*   r+   Úmsgs                r   Útest_simple_rangez+TestHistogramOptimBinNums.test_simple_range%  su  € ð $%°¸BØ(*°BÀðDð Dà#%°¸BØ(*°BÀðEð Eà#%°¸BØ(*°BÀðEð Eðð ˆ
ð )3×(8Ò(8Ñ(:Ô(:ð 	;ð 	;Ñ$ˆG�_õ ”˜S " g°¡l°QÑ&6Ñ7Ô7ˆBÝ”˜Q  G¨q¡L°1Ñ$4Ñ5Ô5ˆBÝ”˜T 3¨Ñ0Ô0ˆBÝ”	˜2˜r 2˜,Ñ'Ô'ˆAØ&5×&;Ò&;Ñ&=Ô&=ð ;ð ;Ñ"�	˜7Ý”| A y¸)ÐDÑDÔD‘��1Ø-×4Ò4°YÑ?Ô?�ØÐ.×5Ò5°gÑ>Ô>Ñ>�Ý�S ™VœV W°cÐ:Ñ:Ô:Ð:Ð:ð	;ð	;ð 	;r   r4   )rÌ   r  r  r  r  r  r  c                 ó(  — t          j        g d¢t           j        ¬¦  «        }t          j        ||¬¦  «        \  }}t          j        |                     t           j        ¦  «        |¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )N)éþÿÿÿr   é   rl   r3   )r#   r8   Úint8r   r×   Úint32r   )r   r4   r*   r9   r:   Úhist32Úedges32s          r   Útest_signed_integer_dataz2TestHistogramOptimBinNums.test_signed_integer_dataD  s‚   € õ ŒH�\�\�\­¬Ð1Ñ1Ô1ˆÝ”l 1¨4Ð0Ñ0Ô0‰ˆˆeÝœ, q§x¢xµ´Ñ'9Ô'9ÀÐEÑEÔE‰ˆ�Ý˜4 Ñ(Ô(Ð(Ý˜5 'Ñ*Ô*Ð*Ð*Ð*r   c           	      ó\   — g d¢}|D ]$}t          t          t          g d¢|g d¢¬¦  «         Œ%dS )z=
        Check that weighted data raises a TypeError
        )r  r  r  r  rÌ   r6  rb   N)r   r�   r   )r   r  r  s      r   Útest_simple_weightedz.TestHistogramOptimBinNums.test_simple_weightedN  sX   € ð DÐCÐCˆØ'ð 	8ð 	8ˆIÝ�)¥Y°	°	°	Ø#¨Y¨Y¨Yð8ñ 8ô 8ð 8ð 8ð	8ð 	8r   N)r  r  r  Ú__doc__r™   r,   r:  rA  rE  rL  rT  ri  rr  r  r  Úparametrizerz  r|  r   r   r   r  r  œ  s  € € € € € ðð ð
4ð 4ð 4ðPð Pð Pð4Pð Pð Pð(Gð Gð Gð?ð ?ð ?ð=ð =ð =ð$*ð *ð *ð(Fð Fð Fð ;ð ;ð ;ð> „[×Ò˜Vð &Bð &Bð &Bñ Cô Cð+ð +ñCô Cð+ð8ð 8ð 8ð 8ð 8r   r  c                   óh   — 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S )Ú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¦  «         d„ t          j        |dd	¬¦  «        D ¦   «         }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          ||¦  «         d S )%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   )rt  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      @c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   )r#   Úsqueeze)rÁ   rq   s     r   rÃ   z/TestHistogramdd.test_simple.<locals>.<listcomp>q  s    € Ð;Ð;Ð;˜q�RŒZ˜‰]Œ]Ð;Ð;Ð;r   r    )r2   r1   r0   rt  r0   r¨   )r�   r�   r�   r5   r�   )r#   r8   r   r   r   Úallr
   Úsplitr…   ÚlistrR   rI   )r   rp   ÚHr:   ÚanswerÚedÚzÚZs           r   r,   zTestHistogramdd.test_simpleZ  s  € ÝŒH�n�n�n o o o°~°~°~Ø$�n�n o o o°°°ðHñ Iô Iˆå˜q )Ø')¨1 g°°1¨v¸¸1°vÐ%>ð@ñ @ô @‰ˆˆ5å”˜I˜I˜I y y y°)°)°)Ð<Ø%˜I˜I y y y°)°)°)Ð<ð>ñ ?ô ?ˆå˜1˜fÑ%Ô%Ð%ð ˆjˆj˜,˜,˜,¨¨¨Ð5ˆÝ˜q r°4Ð8Ñ8Ô8‰ˆˆ5Ý•”�q˜F S™LÒ(Ñ)Ô)Ñ*Ô*Ð*õ ˜q )Ø')¨1 g°°1¨v¸¸1°vÐ%>Ø'+ð-ñ -ô -‰ˆˆ5õ ”˜L˜L˜L¨,¨,¨,¸¸¸ÐEØ(˜L˜L¨,¨,¨,¸¸¸ÐEðGñ Hô Hˆå! ! V¨b¡[°!Ñ4Ô4Ð4ð <Ð;¥B¤H¨Q°¸Ð$:Ñ$:Ô$:Ð;Ñ;Ô;ˆÝØ�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ô 6ˆõ 	˜1˜fÑ%Ô%Ð%åŒH�YÑÔˆØ<>ˆ�$�u�Q‰xŒx‰.Œ.�$�u Q™xœx™.œ.­$­u°Q©x¬x©.¬.Ð
8Ñ9Ý¥¤	¨!¡¤­b¬i¸©l¬l½B¼IÀa¹L¼LÐIÈ1ÑMÔM‰ˆˆ5Ý˜1˜aÑ Ô Ð Ð Ð r   c                 óª   — d}t           j                             dd¦  «        }|D ]-}t          ||¦  «        \  }}t	          |j        |k    ¦  «         Œ.d S )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  sa   € ðˆåŒI�NŠN˜2˜qÑ!Ô!ˆØð 	"ð 	"ˆAÝ" 1 aÑ(Ô(‰HˆAˆuÝ�A”G˜q’LÑ!Ô!Ð!Ð!ð	"ð 	"r   c                 óª   — d}t           j                             dd¦  «        }|D ]-}t          ||¦  «        \  }}t	          |j        |k    ¦  «         Œ.d S )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ˆ  sd   € ðHˆõ ŒI�NŠN˜2˜qÑ!Ô!ˆØð 	"ð 	"ˆAÝ" 1 aÑ(Ô(‰HˆAˆuÝ�A”G˜q’LÑ!Ô!Ð!Ð!ð	"ð 	"r   c                 óö  — t           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  ¦  «         d S )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�NŠN˜3 Ñ"Ô"ˆÝ! !‘n”n‰ˆˆeÝ# A¨tÐ4Ñ4Ô4‰ˆ�Ý# A­r¬w°s©|¬|Ð<Ñ<Ô<‰ˆ�Ý˜6 4Ñ(Ô(Ð(Ý# A­r¬w°s©|¬|¸aÑ/?ÈÐNÑNÔN‰ˆ�Ý˜6 6Ñ*Ô*Ð*Ý# A­r¬w°s½CÑ/@Ô/@À1Ñ/DÐEÑEÔE‰ˆ�Ý˜6 1 t¡8Ñ,Ô,Ð,Ð,Ð,r   c                 ó¶   — t          j        dt          ¦  «        }t          |d¬¦  «        \  }}t	          |d         t          j        g d¢¦  «        ¦  «         d S )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¡  sQ   € ÝŒH�W�cÑ"Ô"ˆÝ! !¨!Ð,Ñ,Ô,‰ˆˆeÝ˜5 œ8¥R¤X¨o¨o¨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¦  «        ¦  «         d S )Nr   r/   r3   rD   r0   )r0   r0   r0   )r   r   r#   r8   r…   r˜   s      r   r™   zTestHistogramdd.test_empty¦  s…   € Ý˜B ˜8¨A¨q¨6°A°q°6Ð*:Ð;Ñ;Ô;‰ˆˆ1Ý˜Q¥¤¨2¨$¨Ñ 0Ô 0Ñ1Ô1Ð1ÝŒ~˜r 2 r˜l°Ð3Ñ3Ô3‰ˆˆ1Ý˜Q¥¤¨Ñ 3Ô 3Ñ4Ô4Ð4Ð4Ð4r   c           
      óˆ  — t          j        d¦  «                             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¬¦  «        ¦  «         d S )
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�a‰LŒL× Ò   AÑ&Ô&ˆÝ•j¥"¤.°!¸-¸-¸-ÐHÑHÔHÐHÝ•j¥"¤.°!¸/¸/¸/ÐJÑJÔJÐJÝÝ�œ¨°°A°q¸-¸-¸-Ð0Hð	Jñ 	Jô 	Jð 	Jå•”˜q¨¨1¨a°°°Ð'>Ð?Ñ?Ô?Ñ@Ô@Ð@Ð@Ð@r   c           
      óx  — t          j        d¬¦  «        5  t          j        d¦  «                             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 ¦  «         d S # 1 swxY w Y   d S )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¶  si  € åŒ[ Ð*Ñ*Ô*ð 	)ð 	)Ý”	˜!‘”×$Ò$ Q¨Ñ*Ô*ˆAÝ”x ! Q ¨!¨Q¨°!°Q°Ð 8Ñ9Ô9ˆHÝ”> !¨1µ´¨w¸¸2Ð.>Ð*?Ð@Ñ@Ô@‰DˆAˆqÝ˜A˜xÑ(Ô(Ð(Ý”> !¨1­b¬h¸¸A½r¼v°Ñ.GÔ.GÐ*HÐIÑIÔI‰DˆAˆqÝ˜A˜xÑ(Ô(Ð(Ý”> !¨1µ´¨w¸½2¼6Ð.BÐ*CÐDÑDÔD‰DˆAˆqÝ˜A˜xÑ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   –DD/Ä/D3Ä6D3c                 óv  — 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    ¦  «         d S )
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           	      ó8  — t           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¬¦  «         d S )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×Ò Ñ)Ô)ˆÝ�D # s ¨d°D¨\¸DÀ#¸;Ð GÐHÑHÔHÐHÝ•j¥+¨tØ! 3˜Z¨$°¨¸½b¼f°~ÐFð	Hñ 	Hô 	Hð 	Hå•j¥+¨tØ! 3˜Z­"¬&°$¨¸$À¸ÐEð	Gñ 	Gô 	Gð 	Gð 	Gð 	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          ||¦  «         dS )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á  s—   € åŒH�Y�Y�YÑÔˆÝŒH�Y�Y�YÑÔˆÝ”(˜9˜9˜9Ñ%Ô%ˆØˆÝ! 1 a &°¸Ð/AÐBÑBÔ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        ¦  «         dS )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ï  s�   € åŒH�[�[�[Ñ!Ô!ˆØ�‰FˆÝ”(˜>˜>˜>Ñ*Ô*ˆØ˜B‘,ˆÝ! 1 a &°¸Ð/AÐBÑBÔB‰ˆˆeå�U˜1”X”^ W¤]Ñ3Ô3Ð3Ý�U˜1”X”^ W¤]Ñ3Ô3Ð3Ð3Ð3r   c                 óü   — d}t          j        dgt           j        ¦  «        }t          j        ddgt           j        ¦  «        }||z   }||z   }t          ||f||f¬¦  «        \  }}t	          |d         d¦  «         d S )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ú  s~   € ØˆåŒH�a�S�"œ(Ñ#Ô#ˆÝ”(˜B ˜8¥R¤XÑ.Ô.ˆØ�!‰GˆØ˜‘-ˆå! 1 a &°¸Ð/AÐBÑBÔ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
¦  «         d S )N)r   r0   rY   )r   rB   rY   r1   rP   r/   rÕ   r3   Tr‚  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˜9Ñ%Ô%ˆÝ”(˜9˜9˜9Ñ%Ô%ˆÝœØ�ˆFØ�ˆFð#ñ ô ˆõ
 ŒH�a�S˜A˜3˜q™5‘[ A 3 q¡5Ñ(¨A¨3¨q©5Ñ0Ñ1Ô1ˆÝŒH�a�S˜A˜3˜q™5‘[ A 3 q¡5Ñ(¨A¨3¨q©5Ñ0Ñ1Ô1ˆõ " 1 a &°¸Ð/AÐBÑBÔB‰ˆˆeÝ�T˜>Ñ*Ô*Ð*õ " 1 a &°¸Ð/AÈ4ÐPÑPÔP‰ˆˆeÝ�T˜9Ñ%Ô%Ð%Ð%Ð%r   c                 óþ   — t          j        d¦  «        }t          j        g d¢¦  «        }t          ||d¬¦  «        \  }}t	          |f|fd¬¦  «        \  }}t          ||¦  «         t          ||d         ¦  «         d S )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�b‰MŒMˆÝŒxÐ(Ð(Ð(Ñ)Ô)ˆÝ  4°Ð6Ñ6Ô6‰ˆˆeÝ'¨¨¨t¨g¸tÐDÑDÔ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€  X  sÿ   € € € € € ð#!ð #!ð #!ðJ"ð "ð "ð"ð "ð "ð	-ð 	-ð 	-ð@ð @ð @ð
5ð 5ð 5ðAð Að Að
)ð 
)ð 
)ð ð  ð  ð.Gð Gð Gð*ð *ð *ð	4ð 	4ð 	4ð
$ð 
$ð 
$ð&ð &ð &ð6)ð )ð )ð )ð )r   r€  )Únumpyr#   Únumpy.lib.histogramsr   r   r   Únumpy.testingr   r   r   r	   r
   r   r   r   r   r   Únumpy.testing._private.utilsr   r  r   r  r€  r   r   r   ú<module>rÀ     sb  ðØ Ð Ð Ð à LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Lðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
 9Ð 8Ð 8Ð 8Ð 8Ð 8Ø €€€ðL/ð L/ð L/ð L/ð L/ñ L/ô L/ð L/ð^y8ð y8ð y8ð y8ð y8ñ y8ô y8ð y8ðxP)ð P)ð P)ð P)ð P)ñ P)ô P)ð P)ð P)ð P)r   