§
    ¡öÉ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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_warningsc                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"e#j$         %                    d!¬"¦  «        d#„ ¦   «         Z&d$„ Z'd%S )&ÚTestHistogramc                 ó   — d S ©N© ©Úselfs    úk/var/www/html/nodeJS/PythonScripts/venv3.11/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.   r/   r   ©Úbinsç      ð?ç       @)r   r   r   Ú
ValueErrorr   r"   Úarrayr   )r   ÚhistÚedgesÚhÚes        r   Útest_one_binzTestHistogram.test_one_bin   s¶   € å   ¨q°!¨fÑ5Ô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.   r0   é   r!   çš™™™™™¹?Fr-   r   r0   rA   )rB   rB   rB   ç        ç      à?ç      ø?ç      Ð?)r"   r#   r$   r   r%   Údiffr	   Úaranger   r   Úinf)	r   r'   r(   r)   r*   Úarear3   ÚcountsÚdmys	            r   Útest_densityzTestHistogram.test_density)   s‹  € àˆÝŒI�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!   rD   r   é	   ©Úranger.   T©rQ   r?   é   ©Údecimal©rQ   Úweightsr?   é   ©r3   rQ   rW   éÿÿÿÿ)r"   rH   r   r   r%   r	   rG   )r   r)   r:   r*   Úws        r   Útest_outlierszTestHistogram.test_outliersI   s]  € åŒI�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!   rD   é   zsame shape asr.   rO   TrV   )r"   rH   r   r6   r   )r   r)   r[   r:   r*   s        r   Útest_arr_weights_mismatchz'TestHistogram.test_arr_weights_mismatcha   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!   rD   Tr>   ©rW   )r"   rH   r   r   Ú
issubdtypeÚdtypeÚintegerÚfloatingÚonesÚintÚfloat)r   r)   r:   r*   s       r   Ú	test_typezTestHistogram.test_typeh   sû   € åŒI�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@©rc   )g!çý°�³@gö·àS�±@g§’ ^z·@r   r2   ç      @)r"   r7   Úfloat32Úhistogram2dr   r%   )r   ÚxÚyÚcounts_histÚxedgesÚyedgess         r   Útest_f32_roundingzTestHistogram.test_f32_roundingw   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   rk   zConverting input from .*)TTFr.   )
r"   r7   Úuint8r   r   ÚrecordÚRuntimeWarningr   Úlenr   )r   r)   Úint_histÚ	int_edgesÚsupÚrecr8   r9   s           r   Útest_bool_conversionz"TestHistogram.test_bool_conversion~   s  € õ ŒH�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>   ra   ©rW   r?   r   r!   r^   ©r3   rW   )r.   r/   r/   r1   r1   )r1   r0   r/   r.   )r1   r€   r   r.   )r3   rW   r?   g      $@rl   rO   r@   )	r/   r.   r.   r.   r.   r.   r.   r.   r.   )çš™™™™™É?rB   rB   g333333³?)r"   r#   r$   rf   r   r
   r&   ÚconcatenateÚzerosrH   r   r7   r	   )r   r(   r[   r)   r*   ÚnaÚnbÚwaÚwbÚnwaÚnwbs              r   Útest_weightszTestHistogram.test_weights�   sî  € ÝŒI�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.   rZ   r/   y              ð?)r/   r.   r/   )r   r/   r0   r‚   r.   r/   r0   rY   r   )ÚDecimalr€   )r"   r7   r   r
   rU   r�   )r   ÚvaluesrW   rˆ   r‰   r�   s         r   Útest_exotic_weightsz!TestHistogram.test_exotic_weights¬   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   )rQ   r3   )r"   r7   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.   r2   ©r   r   r"   r7   ©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 )NrC   r4   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 )NrC   r4   r   r›   rF   ç      è?rP   )r"   r&   r   r   r6   ÚnanrI   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 )	NrC   r4   r   r›   zmax must be larger thanrB   g{®Gáz„?rP   )r"   r&   r   r6   r   rž   s     r   Útest_invalid_rangez TestHistogram.test_invalid_rangeã   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   )r/   iè  ©r3   rQ   r   rZ   r.   )r"   r7   r   Úzipr   )
r   Úarrr8   r9   ÚmaskÚ
left_edgesÚright_edgesro   ÚleftÚrights
             r   Útest_bin_edge_casesz!TestHistogram.test_bin_edge_casesé   s°   € åŒhÐ=Ð=Ð=Ñ>Ô>ˆÝ”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©	rC   rC   rC   r4   r5   rl   rl   g      @g      @é   ©ç      à¿r€   r¨   rZ   r.   )r"   r7   r   r   )r   rª   r8   r9   s       r   Útest_last_bin_inclusive_rangez+TestHistogram.test_last_bin_inclusive_rangeô   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 )
NrC   r4   r   r›   r   rD   g333333ã?z
must be 1dr2   )r"   r&   r7   r   r6   r   )r   rŸ   r3   s      r   Útest_bin_array_dimsz!TestHistogram.test_bin_array_dimsù   s½   € åŒ{˜3 ¨Ð-Ñ-Ô-ˆÝŒx˜!˜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 )Nr/   )r.   r0   r.   Úuint64rk   r2   )r"   r7   r   r6   r   )r   rª   r3   r8   r9   s        r   Ú test_unsigned_monotonicity_checkz.TestHistogram.test_unsigned_monotonicity_check   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"   r7   ©Ú.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 ©rD   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   rD   )r   r6   r   rQ   r"   rI   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.   Úautor2   ©r   r.   r¨   r/   )r"   r7   r£   r   Úfilterrx   r   r6   r   r   r%   )r   Úone_nanÚall_nanr|   r:   r*   s         r   Útest_some_nan_valuesz"TestHistogram.test_some_nan_values  s°  € å”(˜A˜q¥"¤&˜>Ñ*Ô*ˆÝ”(�BœF¥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.   r/   r0   r€   r!   é   )r   r/   é   rÔ   ztimedelta64[D]r2   )r"   Ú
datetime64r7   rc   r   Úastyper   rg   )r   ÚbeginÚoffsetsr3   ÚdatesÚ	date_binsÚtdÚd_countÚd_edgeÚt_countÚt_edgeÚi_countÚi_edges                r   Útest_datetimezTestHistogram.test_datetime,  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 )NrX   r.   r/   r1   rk   r2   r   )r"   rc   Úitemsizer7   r   r   )r   rc   Úexponentrª   r8   r;   s         r   Údo_signed_overflow_boundsz'TestHistogram.do_signed_overflow_boundsE  s¢   € Ø•r”x ‘”Ô/Ñ/°!Ñ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_boundsL  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 )Nr4   r5   r   r.   r¨   ©r"   ÚfinfoÚepsr7   r×   r   r   rc   ©r   Úfloat_smallÚfloat_largerò   rª   rQ   ÚcountÚx_locs           r   Údo_precision_lower_boundz&TestHistogram.do_precision_lower_boundS  sª   € ÝŒh�{Ñ#Ô#Ô'ˆåŒh˜�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 )Nr4   rC   rZ   r.   r¨   r   rð   ró   s           r   Údo_precision_upper_boundz&TestHistogram.do_precision_upper_boundb  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_precisionr  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_precisionv  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.   r/   r²   r³   r´   r¨   rÌ   rÍ   )r   r   r   r"   r7   )r   r8   r;   r9   rª   s        r   Útest_histogram_bin_edgesz&TestHistogram.test_histogram_bin_edges  sØ   € Ý˜L˜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   c                 óÂ   — t          j        ddgdz  ¦  «        }t          j        t          d¬¦  «        5  t          |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr.   g     ð?r!   zToo many bins for data range)Úmatchr2   )r"   r7   ÚpytestÚraisesr6   r   )r   rª   s     r   Útest_small_value_rangez$TestHistogram.test_small_value_range�  s§   € ÝŒh˜˜9�~¨Ñ*Ñ+Ô+ˆÝŒ]�:Ð-KÐLÑLÔLð 	$ð 	$Ý�c Ð#Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$s   µAÁAÁAz,Bad memory reports lead to OOM in ci testing)Úreasonc                 óè   — t          j        ddg¦  «        }d}d}t          j        d¦  «        }t          j        ||||f¬¦  «        }t	          t          |¦  «        t          d¦  «        ¦  «         d S )Ni áõr0   i�  i€>  )Úsampler3   )r.   r/   )r"   r…   rH   r   r   Útype)r   r  ÚxbinsÚybinsÚzbinsr8   s         r   Útest_big_arrayszTestHistogram.test_big_arrays”  sk   € å”˜9 a˜.Ñ)Ô)ˆØˆØˆÝ”	˜%Ñ Ô ˆÝŒ~ V°5¸%ÀÐ2GÐHÑHÔHˆÝ•T˜$‘Z”Z¥ f¡¤Ñ.Ô.Ð.Ð.Ð.r   c                 ó°   — t          j        t          j        dgd¬¦  «        dd¬¦  «        \  }}t          j        ddg¦  «        }t          ||¦  «         d S )	Ng$ë°Áx€z>f8rk   r/   )gÒèxÖ0€ge¨Òl	  €r¨   r.   r   )r"   r   r7   r   )r   r8   r;   Úexpected_hists       r   Útest_gh_23110zTestHistogram.test_gh_23110�  s`   € Ý”,�rœx¨¨¸5ÐAÑAÔAØ$%Ø%7ð9ñ 9ô 9‰ˆˆaõ œ ! Q Ñ(Ô(ˆÝ˜4 Ñ/Ô/Ð/Ð/Ð/r   N)(Ú__name__Ú
__module__Ú__qualname__r   r   r+   r<   rM   r\   r_   ri   rt   r~   rŒ   r’   r•   r™   r    r¤   r¦   r°   r¶   r¸   r»   rÊ   rÑ   rã   rç   rî   rø   rú   rü   r  r  r	  r  ÚmarkÚskipr  r  r   r   r   r   r      sD  € € € € € ðð ð ðð ð ð	"ð 	"ð 	"ð/ð /ð /ð'ð 'ð 'ð@!ð !ð !ð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ð%ð %ð %ð$ð $ð $ð „[×ÒÐKÐÑLÔLð/ð /ñ MÔLð/ð0ð 0ð 0ð 0ð 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                             dg d¢¦  «        d„ ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Z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Ì   Ústoner2   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
        r1   rX   rÕ   r/   r  é   r!   é   é   rO   é   é#   é   éG   rÔ   ©é2   iô  iˆ  r”   rZ   r€   r.   r0   ú*For the {0} estimator with datasize of {1}©Úerr_msgN)Úitemsr"   r&   r„   r   r   ry   Úformat)r   Ú
basic_testÚtestlenÚexpectedResultsÚx1Úx2ro   r&  Únumbinsr)   r*   s              r   r+   z%TestHistogramOptimBinNums.test_simple´  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           
      ó˜  — 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        |¦  «                             t          ¦  «        }|                      ¦   «         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$  r/   r0   ©r.   r/   r0   r1  r2  N)	r4  r"   rH   r×   rh   r   r   ry   r5  )	r   Ú	small_datr7  r8  Ú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 Ñ(Ô(×/Ò/µÑ6Ô6ˆ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ÚIQRr=  N)r   r6   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 testr2  N)r"   rf   r4  r   r   ry   r5  )r   Únovar_datasetÚnovar_resultdictr&  r;  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.
        éè  r   Nr0   r   éüÿÿÿrÌ   r)  r  r!  )r"   rf   r   r   r&   r7   )r   Úlim_var_dataÚ
edges_autoÚedges_fdÚedges_sturgess        r   Útest_limited_variancez/TestHistogramOptimBinNums.test_limited_varianceø  sº   € õ
 ”w˜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!   r0  i’ÿÿÿéœÿÿÿr€   é   r^   rA   )r  r  r"  r$  N)r"   r&   Úhstackr4  r   r   ry   )r   ÚxcenterÚoutlier_datasetÚoutlier_resultdictr&  r;  r)   r*   s           r   Útest_outlierz&TestHistogramOptimBinNums.test_outlier
  s£   € õ ”+˜c 2 rÑ*Ô*ˆÝœ)¥R¤[°°t¸QÑ%?Ô%?ÀÐ$IÑJÔ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   r/   )ÚlocÚscaleÚsizer$  r  )r"   r#   ÚRandomStateÚnormalry   r   )Úseedra  Úrngro   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Á   ra  rf  rd  s     €€r   rÃ   zLTestHistogramOptimBinNums.test_scott_vs_stone.<locals>.<listcomp>.<listcomp>'  s%   ø€ ÐoÐoÐo¨4ˆ{ˆ{˜4 Ñ&Ô&ÐoÐoÐor   r!   r   r1   )ÚstartÚstoprœ   )r"   Ú	geomspaceÚroundr×   rg   )rÁ   rd  rf  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   rD   )g333333Ã?g
×£p=
·?g{®Gáz´?g¸…ëQ¸ž?r/   rT   N)rQ   Úabsr"   Úmeanr	   )r   ÚllÚavgrf  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.
        rX   rS   r-  )r  r  r   r!  rÌ   r$  r(  é    rÔ   éP   é!   éE   é   r/  r”   rZ   r€   r/   r.   r!   r0   rV  iÎÿÿÿ)iìÿÿÿrÔ   rP   zFor the {0} estimatorz with datasize of {0}r2  N)r4  r"   r&   rX  r   r5  r   ry   )r   r6  r7  r8  r9  r:  Úx3ro   r&  r;  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   r3   )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   é   rk   r2   )r"   r7   Úint8r   r×   Úint32r   )r   r3   r)   r8   r9   Úhist32Úedges32s          r   Útest_signed_integer_dataz2TestHistogramOptimBinNums.test_signed_integer_dataM  s‚   € õ ŒH�\�\�\­¬Ð1Ñ1Ô1ˆÝ”l 1¨4Ð0Ñ0Ô0‰ˆˆeÝœ, q§x¢xµ´Ñ'9Ô'9ÀÐEÑEÔE‰ˆ�Ý˜4 Ñ(Ô(Ð(Ý˜5 'Ñ*Ô*Ð*Ð*Ð*r   c           
      óH  — t          ¦   «         5 }|dk    r|                     t          ¦  «         t          t	          j        t	          j        t	          j        d¦  «        d¦  «        |¦  «        t	          j        d¦  «        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zE
        Test that bin width for integer data is at least 1.
        r$  rO   rN  N)r   rÎ   rx   r   r"   r   ÚtilerH   )r   r3   r|   s      r   Útest_integerz&TestHistogramOptimBinNums.test_integerW  sÍ   € õ Ñ Ô ð 	 CØ�wŠˆØ—
’
�>Ñ*Ô*Ð*ÝÝÔ&¥r¤w­r¬y¸©|¬|¸TÑ'BÔ'BÀDÑIÔIÝ”	˜!‘”ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �A;BÂBÂBc           	      óX  — t          t          j        t          j        t          j        d¦  «        d¦  «        d¦  «        t          j        d¦  «        dz  ¦  «         t          t          j        t          j        t          j        d¦  «        d¦  «        ddg¦  «        ddg¦  «         dS )	zX
        Test that the bin-width>=1 requirement *only* applies to auto binning.
        rO   rN  r(  r+  r/   rB   rƒ   N)r   r"   r   r„  rH   r   s    r   Útest_integer_non_autoz/TestHistogramOptimBinNums.test_integer_non_autod  s—   € õ 	ÝÔ"¥2¤7­2¬9°Q©<¬<¸Ñ#>Ô#>ÀÑCÔCÝŒI�b‰MŒM˜AÑñ	ô 	ð 	õ 	ÝÔ"¥2¤7­2¬9°Q©<¬<¸Ñ#>Ô#>ÀÀRÀÑIÔIØ�ˆHñ	ô 	ð 	ð 	ð 	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Ì   r=  ra   N)r   r�   r   )r   r%  r&  s      r   Útest_simple_weightedz.TestHistogramOptimBinNums.test_simple_weightedo  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+   rA  rH  rL  rT  r\  rq  rz  r  r  Úparametrizer‚  r…  r‡  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ð+ð „[×Ò˜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µ   rD   rE   )rµ   rE   r�   )rµ   r�   rD   )rD   rD   rE   )rD   rE   r�   )rD   r�   r�   )r/   r0   r0   rZ   r.   r   r0   rP   )r   r.   r   )r   r   r.   )r.   r   r   )r|  r   r/   )r   r.   r/   r0   T©r3   r?   g      (@)r/   r0   r1   r1   rR   )r   r.   r   r   )r   r   r.   r   )r.   r   r   r   g      @c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   )r"   Úsqueeze)rÁ   rp   s     r   rÃ   z/TestHistogramdd.test_simple.<locals>.<listcomp>’  s    € Ð;Ð;Ð;˜q�RŒZ˜‰]Œ]Ð;Ð;Ð;r   r   )r1   r0   r/   r|  r/   r¨   )r€   r€   r€   r4   r€   )r"   r7   r   r   r   Úallr
   Úsplitr…   ÚlistrQ   rH   )r   ro   ÚHr9   ÚanswerÚedÚzÚZs           r   r+   zTestHistogramdd.test_simple{  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€   r1   rA   )rA   r1   r€   )r€   rA   r1   )r1   rA   r€   )rA   r€   r1   )r1   r€   rA   r!   r0   ©r"   r#   r$   r   r   Úshape©r   r3   Úrr*   r•  r9   s         r   Útest_shape_3dzTestHistogramdd.test_shape_3d   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Õ   r1   r€   rA   )r1   r€   rÕ   rA   )r€   rA   r1   rÕ   )rÕ   rA   r€   r1   )r€   rÕ   rA   r1   )r1   rA   rÕ   r€   )rA   r€   rÕ   r1   )rÕ   r€   r1   rA   )rÕ   r1   rA   r€   )rA   r1   rÕ   r€   )rA   rÕ   r€   r1   )r1   rA   r€   rÕ   )r1   rÕ   r€   rA   )r€   r1   rA   rÕ   )r€   rÕ   r1   rA   )rA   rÕ   r1   r€   )rA   r€   r1   rÕ   )r1   rÕ   rA   r€   )r1   r€   rA   rÕ   )rÕ   rA   r1   r€   )r€   r1   rÕ   rA   )r€   rA   rÕ   r1   )rA   r1   r€   rÕ   )rÕ   r€   rA   r1   r!   r1   r›  r�  s         r   Útest_shape_4dzTestHistogramdd.test_shape_4d©  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   r/   Tr>   ra   r�   )r"   r#   r$   r   rf   r   rg   )r   r(   r8   r9   Ún_histÚw_hists         r   rŒ   zTestHistogramdd.test_weights·  sà   € ÝŒI�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!   r/   r/   r2   r   )rµ   rC   rD   )r"   r…   rg   r   r   r7   )r   ro   r8   r9   s       r   Útest_identical_samplesz&TestHistogramdd.test_identical_samplesÂ  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.   r2   rC   r/   )r/   r/   r/   )r   r   r"   r7   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 )
NrX   r/   r1   )rZ   r/   r1   r€   r2   )r.   g®Gáz®ï?r.   r.   r.   )r.   r/   r0   éýÿÿÿr-   )r"   rH   Úreshaper   r6   r   r   )r   ro   s     r   Útest_bins_errorsz TestHistogramdd.test_bins_errorsÍ  s¾   € õ ŒI�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)ÚinvalidrA   r0   r/   r.   r   r!   r2   rZ   )r"   ÚerrstaterH   rª  r7   r   rI   r   )r   ro   Úexpectedr:   r;   s        r   Útest_inf_edgeszTestHistogramdd.test_inf_edges×  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»ÿÿÿï?)rC   rD   r4   r2   r   rC   r.   r4   g8ß   ð?gq¬‹Ûh ð?)r   r   )r   ro   r3   r8   Ú_s        r   Útest_rightmost_binedgez&TestHistogramdd.test_rightmost_binedgeã  s\  € àˆNˆØ��ÐˆÝ˜a dÐ+Ñ+Ô+‰ˆˆaÝ��Q”˜3’ÑÔÐÝ��Q”˜2’ÑÔÐØˆEˆØ��ÐˆÝ˜a dÐ+Ñ+Ô+‰ˆˆaÝ��Q”˜3’ÑÔÐÝ��Q”˜2’ÑÔÐØˆNˆØ��ÐˆÝ˜a dÐ+Ñ+Ô+‰ˆˆaÝ��Q”˜3’ÑÔÐÝ��Q”˜3’ÑÔÐØˆHˆØ��ÐˆÝ˜a dÐ+Ñ+Ô+‰ˆˆaÝ��Q”˜3’ÑÔÐÝ��Q”˜3’ÑÔÐÐÐr   c           	      ó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   r0   rC   r4   rF   r¢   rD   rP   )r"   r#   r   r   r6   rI   r£   rž   s     r   r¤   z!TestHistogramdd.test_finite_rangeú  s»   € ÝŒy×Ò Ñ)Ô)ˆÝ�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.   r/   )r   r/   r/   r.   r2   r5   r4   N©r"   r7   r   r   )r   ro   rp   Úx_edgesÚy_edgesr8   r9   Úhist_expecteds           r   Útest_equal_edgesz TestHistogramdd.test_equal_edges  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€   rS   rÔ   r2   r   r.   N)r"   r7   r   r   rc   )r   ro   rp   r¸  r¹  r8   r9   s          r   Útest_edge_dtypezTestHistogramdd.test_edge_dtype  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   rZ   r.   r2   )r   r   )r"   r7   Úint64r   r   )r   Úbigro   r¸  rp   r¹  r8   r9   s           r   Útest_large_integersz#TestHistogramdd.test_large_integers  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   r/   rX   )r   rA   rX   r0   rO   r.   rÕ   r2   Tr�  g      �?r·  )r   r¸  r¹  Úrelative_areasro   rp   r8   r9   s           r   Útest_density_non_uniform_2dz+TestHistogramdd.test_density_non_uniform_2d'  s  € õ ”(˜9˜9˜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!   r@   Tr>   r   )r"   rH   r7   r   r   r   )r   r(   r3   r8   r9   Úhist_ddÚedges_dds          r   Útest_density_non_uniform_1dz+TestHistogramdd.test_density_non_uniform_1dB  s„   € åŒI�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�  y  sÿ   € € € € € ð#!ð #!ð #!ðJ"ð "ð "ð"ð "ð "ð	-ð 	-ð 	-ð@ð @ð @ð
5ð 5ð 5ðAð Að Að
)ð 
)ð 
)ð ð  ð  ð.Gð Gð Gð*ð *ð *ð	4ð 	4ð 	4ð
$ð 
$ð 
$ð&ð &ð &ð6)ð )ð )ð )ð )r   r�  )Únumpyr"   r   r   r   Únumpy.testingr   r   r   r	   r
   r   r   r   r   r   r  r   r  r�  r   r   r   ú<module>rË     sP  ðØ Ð Ð Ð à =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
 €€€ðV0ð V0ð V0ð V0ð V0ñ V0ô V0ð V0ðrQ8ð Q8ð Q8ð Q8ð Q8ñ Q8ô Q8ð Q8ðhP)ð P)ð P)ð P)ð P)ñ P)ô P)ð P)ð P)ð P)r   