§
    `ŠtjŸ„  ã                   ó¬   — d dl Z d dlZd dlZd dlmZmZmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZ  G d„ d¦  «        Z G d„ d¦  «        Z G d„ d	¦  «        ZdS )
é    N)Ú	histogramÚhistogram_bin_edgesÚhistogramdd)	Úassert_Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚassert_array_max_ulpÚassert_equalÚassert_raisesÚassert_raises_regexc                   ó"  — 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%„ Z(d&S )'ÚTestHistogramc                 ó   — d S ©N© ©Úselfs    ú]/var/www/html/CA-Chatbot/venv/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-   r/   é   r    çš™™™™™¹?Fr,   r   r/   r@   )rA   rA   rA   ç        ç      à?ç      ø?ç      Ð?)r!   r"   r#   r   r$   Údiffr   Úaranger
   r   Úinf)	r   r&   r'   r(   r)   Úarear2   ÚcountsÚdmys	            r   Útest_densityzTestHistogram.test_density1   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    rC   r   é	   ©Úranger-   T©rP   r>   é   ©Údecimal©rP   Úweightsr>   é   ©r2   rP   rV   éÿÿÿÿ)r!   rG   r   r   r$   r   rF   )r   r(   r9   r)   Úws        r   Útest_outlierszTestHistogram.test_outliersQ   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    rC   é   zsame shape asr-   rN   TrU   )r!   rG   r   r5   r   )r   r(   rZ   r9   r)   s        r   Útest_arr_weights_mismatchz'TestHistogram.test_arr_weights_mismatchi   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    rC   Tr=   ©rV   )r!   rG   r   r   Ú
issubdtypeÚdtypeÚintegerÚfloatingÚonesÚintÚfloat)r   r(   r9   r)   s       r   Ú	test_typezTestHistogram.test_typeo   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@©rb   )g!çý°�³@gö·àS�±@g§’ ^z·@r   r1   ç      @)r!   r6   Úfloat32Úhistogram2dr   r$   )r   ÚxÚyÚcounts_histÚxedgesÚyedgess         r   Útest_f32_roundingzTestHistogram.test_f32_rounding~   sy   € åŒHÐ8Ð8Ð8ÅÄ
ÐKÑKÔKˆÝŒHÐ<Ð<Ð<ÅBÄJÐOÑOÔOˆÝ&(¤n°Q¸ÀÐ&DÑ&DÔ&DÑ#ˆ�V˜VÝ�[—_’_Ñ&Ô&¨Ñ+Ô+Ð+Ð+Ð+r   c                 óR  — t          j        g d¢t           j        ¬¦  «        }t          j        |¦  «        \  }}t	          j        t          d¬¦  «        5  t          j        g d¢¦  «        \  }}t          ||¦  «         t          ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r-   r-   r   rj   zConverting input from .*©Úmatch)TTF)r!   r6   Úuint8r   ÚpytestÚwarnsÚRuntimeWarningr
   )r   r(   Úint_histÚ	int_edgesr7   r8   s         r   Útest_bool_conversionz"TestHistogram.test_bool_conversion…   sæ   € õ ŒH�Y�Y�Y¥b¤hÐ/Ñ/Ô/ˆÝ œl¨1™oœoÑˆ�)õ
 Œ\�.Ð0JÐKÑKÔKð 	1ð 	1Ýœ,Ð':Ð':Ð':Ñ;Ô;‰KˆD�%å˜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   Á:BÂB Â#B 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=   r`   ©rV   r>   r   r    r]   ©r2   rV   )r-   r.   r.   r0   r0   )r0   r/   r.   r-   )r0   r   r   r-   )r2   rV   r>   g      $@rk   rN   r?   )	r.   r-   r-   r-   r-   r-   r-   r-   r-   )çš™™™™™É?rA   rA   g333333³?)r!   r"   r#   re   r   r	   r%   ÚconcatenateÚzerosrG   r
   r6   r   )r   r'   rZ   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-   rY   r.   y              ð?)r.   r-   r.   )r   r.   r/   r�   r-   r.   r/   rX   r   )ÚDecimalr   )r!   r6   r   r	   rT   r�   )r   ÚvaluesrV   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   )rP   r2   )r!   r6   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-   r1   ©r   r
   r!   r6   ©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 )NrB   r3   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 )NrB   r3   r   rš   rE   ç      è?rO   )r!   r%   r   r   r5   ÚnanrH   r�   s     r   Útest_finite_rangezTestHistogram.test_finite_rangeá   so   € åŒ{˜3 ¨Ð-Ñ-Ô-ˆÝ�$˜t T˜lÐ+Ñ+Ô+Ð+Ý•j¥)¨T½"¼&À$¸ÐHÑHÔHÐHÝ•j¥)¨T¸$ÅÄ¸ÐHÑHÔHÐHÐHÐHr   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 )	NrB   r3   r   rš   zmax must be larger thanrA   g{®Gáz„?rO   )r!   r%   r   r5   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è  ©r2   rP   r   rY   r-   )r!   r6   r   Úzipr   )
r   Úarrr7   r8   ÚmaskÚ
left_edgesÚright_edgesrn   Ú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©	rB   rB   rB   r3   r4   rk   rk   g      @g      @é   ©ç      à¿r   r§   rY   r-   )r!   r6   r   r   )r   r©   r7   r8   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 )
NrB   r3   r   rš   r   rC   g333333ã?z
must be 1dr1   )r!   r%   r6   r   r5   r   )r   rž   r2   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-   r/   r-   Úuint64rj   r1   )r!   r6   r   r5   r   )r   r©   r2   r7   r8   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!   r6   ©Ú.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 ©rC   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   rC   )r   r5   r   rP   r!   rH   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                 óX  — t          j        ddt           j        g¦  «        }t          j        t           j        t           j        g¦  «        }t          j        ¦   «         5  t          j        dt          ¦  «         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-   ÚignoreÚautor1   ©r   r-   r§   r.   )r!   r6   r¢   ÚwarningsÚcatch_warningsÚsimplefilterrz   r   r5   r   r   r$   )r   Úone_nanÚall_nanr9   r)   s        r   Útest_some_nan_valuesz"TestHistogram.test_some_nan_values  s¯  € å”(˜A˜q¥"¤&˜>Ñ*Ô*ˆÝ”(�BœF¥B¤FÐ+Ñ,Ô,ˆõ Ô$Ñ&Ô&ð 	%ð 	%ÝÔ! (­NÑ;Ô;Ð;å�*¥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   ÁD3FÆ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.   r/   r   r    é   )r   r.   é   rÖ   ztimedelta64[D]r1   )r!   Ú
datetime64r6   rb   r   Úastyper   rf   )r   ÚbeginÚoffsetsr2   ÚdatesÚ	date_binsÚtdÚd_countÚd_edgeÚt_countÚt_edgeÚi_countÚi_edges                r   Útest_datetimezTestHistogram.test_datetime0  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 )NrW   r-   r.   r0   rj   r1   r   )r!   rb   Úitemsizer6   r   r   )r   rb   Úexponentr©   r7   r:   s         r   Údo_signed_overflow_boundsz'TestHistogram.do_signed_overflow_boundsI  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_boundsP  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 )Nr3   r4   r   r-   r§   ©r!   ÚfinfoÚepsr6   rÙ   r   r   rb   ©r   Úfloat_smallÚfloat_largerô   r©   rP   ÚcountÚx_locs           r   Údo_precision_lower_boundz&TestHistogram.do_precision_lower_boundW  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 )Nr3   rB   rY   r-   r§   r   rò   rõ   s           r   Údo_precision_upper_boundz&TestHistogram.do_precision_upper_boundf  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-   r.   r±   r²   r³   r§   rÌ   rÍ   )r   r   r
   r!   r6   )r   r7   r:   r8   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 rangeru   r1   )r!   r6   rx   Úraisesr5   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 áõr/   i�  i€>  )Úsampler2   )r-   r.   )r!   r„   rG   r   r   Útype)r   r  ÚxbinsÚybinsÚzbinsr7   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>f8rj   r.   )gÒèxÖ0€ge¨Òl	  €r§   r-   r   )r!   r   r6   r
   )r   r7   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   c                 óÔ   — d}dddddd||||||dg}t          j        |d¬¦  «        \  }}t          |¦  «        dk     sJ ‚|d         |d         k    sJ ‚|d         |d         k    sJ ‚d S )	Ng˜    ð?r   r-   r.   rÌ   r1   r    rY   )r!   r   Úlen)r   r:   ÚZrJ   r8   s        r   Útest_gh_28400zTestHistogram.test_gh_28400¨  sŽ   € ØˆØ��1�a˜˜A˜q ! Q¨¨1¨a°Ð3ˆÝœ Q¨VÐ4Ñ4Ô4‰ˆ�Ý�6‰{Œ{˜RÒÐÐÐØ�QŒx˜1˜Qœ4ÒÐÐÐØ�RŒy˜A˜bœEÒ!Ð!Ð!Ð!Ð!Ð!r   N))Ú__name__Ú
__module__Ú__qualname__r   r   r*   r;   rL   r[   r^   rh   rs   r}   r‹   r‘   r”   r˜   rŸ   r£   r¥   r¯   rµ   r·   rº   rÉ   rÓ   rå   ré   rð   rú   rü   rþ   r  r  r	  rx   ÚmarkÚskipr  r  r  r   r   r   r   r      sS  € € € € € ðð ð ðð ð ð	"ð 	"ð 	"ð/ð /ð /ð'ð 'ð 'ð@!ð !ð !ð0Gð Gð Gð5ð 5ð 5ð,ð ,ð ,ð1ð 1ð 1ð3ð 3ð 3ð:@ð @ð @ð<;ð ;ð ;ð0ð 0ð 0ð
7ð 7ð 7ðIð Ið Ið2ð 2ð 2ð	ð 	ð 	ð"ð "ð "ð
*ð *ð *ð7ð 7ð 7ð	@ð 	@ð 	@ð%ð %ð %ð0'ð 'ð 'ð2#ð #ð #ð4ð 4ð 4ð/ð /ð /ð/ð /ð /ð @ð @ð @ð4ð 4ð 4ð%ð %ð %ð$ð $ð $ð „[×ÒÐKÐÑLÔLð/ð /ñ MÔLð/ð0ð 0ð 0ð"ð "ð "ð "ð "r   r   c                   óì   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zej                             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Ì   Ústoner1   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 ]B\  }}t          j        ||¦  «        \  }	}
t          t          |	¦  «        |d|› d|› �¬¦  «         ŒCŒ«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
        r0   rW   r×   r.   r!  é   r    é   é   rN   é   é#   é   éG   rÖ   ©é2   iô  iˆ  r“   rY   r   r-   r/   úFor the ú estimator with datasize of ©Úerr_msgN)Úitemsr!   r%   rƒ   r   r   r  )r   Ú
basic_testÚtestlenÚexpectedResultsÚx1Úx2rn   r*  Únumbinsr(   r)   s              r   r*   z%TestHistogramOptimBinNums.test_simple¿  sc  € ð $%°¸AÈ1Ø&'°¸AÈðKð Kà#$°¸BÈ2Ø&(°"¸bÈ1ðNð Nà#%°¸BÈ2Ø&(°"¸bÈ2ðOð Oð	Pð Pˆ
ð )3×(8Ò(8Ñ(:Ô(:ð 		<ð 		<Ñ$ˆG�_õ ”˜S " g°¡l°QÑ&6Ñ7Ô7ˆBÝ”˜Q  G¨q¡L°1Ñ$4Ñ5Ô5ˆBÝ”  B˜xÑ(Ô(ˆAØ&5×&;Ò&;Ñ&=Ô&=ð <ð <Ñ"�	˜7Ý”| A yÑ1Ô1‘��1Ý�S ™VœV Wð 7;Àð 7;ð 7;Ø18ð7;ð 7;ð <ñ <ô <ð <ð <ð<ð		<ð 		<r   c           
      ó|  — ddddddddœddddddddœddddddddœdœ}|                      ¦   «         D ]ˆ\  }}t          j        |¦  «                             t          ¦  «        }|                      ¦   «         D ]B\  }}t          j        ||¦  «        \  }}t          t          |¦  «        |d|› d|› �¬¦  «         ŒCŒ‰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.   r/   ©r-   r.   r/   r5  r6  r7  N)r9  r!   rG   rÙ   rg   r   r   r  )	r   Ú	small_datr;  r<  Útestdatr*  Úexpbinsr(   r)   s	            r   Ú
test_smallz$TestHistogramOptimBinNums.test_smallÙ  s#  € ð  !¨1°aÀAØ"#¨Q¸ð<ð <à ¨1°aÀAØ"#¨Q¸ð<ð <à ¨1°aÀAØ"#¨Q¸ð<ð <ð	=ð =ˆ	ð )2¯ªÑ(9Ô(9ð 	<ð 	<Ñ$ˆG�_Ý”i Ñ(Ô(×/Ò/µÑ6Ô6ˆGØ&5×&;Ò&;Ñ&=Ô&=ð <ð <Ñ"�	˜7Ý”| G¨YÑ7Ô7‘��1Ý�S ™VœV Wð 7;Àð 7;ð 7;Ø18ð7;ð 7;ð <ñ <ô <ð <ð <ð<ð	<ð 	<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ÚIQRrA  N)r   r5   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 ]?\  }}t          j        ||¦  «        \  }}t	          t          |¦  «        ||› d�¬¦  «         Œ@d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 estimator, No Variance testr7  N)r!   re   r9  r   r   r  )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Ñ":Ô":ð 	Mð 	MÑˆI�wÝ”< ¨yÑ9Ô9‰DˆAˆqÝ�˜Q™œ Ø$-Ð!KÐ!KÐ!KðMñ Mô Mð Mð Mð	Mð 	Mr   c                 ó¼  — t          j        d¦  «        }d|dd…<   d|dd…<   t          |d¦  «        }t          |d         d¦  «         t          |d         d	¦  «         t	          |¦  «        dk     sJ ‚t          |d
¦  «        }t          |t          j        ddg¦  «        ¦  «         t          |d¦  «        }t          |t          j        ddd¦  «        ¦  «         dS )zY
        Check when IQR is 0, but variance exists, we return a reasonable value.
        éè  r   Nr/   r   éüÿÿÿrÌ   rY   g      Y@r"  r%  r-  )r!   re   r   r   r  r6   r%   )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 ”] AÑ&Ô&Ð&Ý�Z ”^ TÑ*Ô*Ð*Ý�:‰Œ Ò$Ð$Ð$Ð$å& |°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    r4  i’ÿÿÿéœÿÿÿr   é   r]   r@   )r"  r#  r&  r(  N)r!   r%   Úhstackr9  r   r   r  )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„ Št          j        ddd¬¦  «                             ¦   «                              t          ¦  «        Šˆˆfd„t          d¦  «        D ¦   «         }t          t          j        |d¬¦  «        d	z
  ¦  «        }t          |g d
¢d¬¦  «         d S )Nc                 ó   — 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Únormalr  r   )Úseedre  Úrngrn   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   r    r   r0   )ÚstartÚstopr›   c                 ó0   •‡— g | ]Šˆˆfd „‰D ¦   «         ‘ŒS )c                 ó(   •— g | ]} ‰‰|¦  «        ‘ŒS r   r   )rÀ   re  rj  rh  s     €€r   rÂ   zLTestHistogramOptimBinNums.test_scott_vs_stone.<locals>.<listcomp>.<listcomp>5  s%   ø€ Ð>Ð>Ð>¨4ˆ{ˆ{˜4 Ñ&Ô&Ð>Ð>Ð>r   r   )rÀ   rh  Ú
geom_spacerj  s    @€€r   rÂ   zATestHistogramOptimBinNums.test_scott_vs_stone.<locals>.<listcomp>5  s2   øø€ ÐUÐUÐUÀ4Ð>Ð>Ð>Ð>Ð>°:Ð>Ñ>Ô>ÐUÐUÐUr   r   r   rC   )g333333Ã?g
×£p=
·?g{®Gáz´?g¸…ëQ¸ž?r.   rS   )	r!   Ú	geomspaceÚroundrÙ   rf   rP   ÚabsÚmeanr   )r   ÚllÚavgro  rj  s      @@r   Útest_scott_vs_stonez-TestHistogramOptimBinNums.test_scott_vs_stone*  s­   øø€ ð	ð 	ð 	õ ”\¨°¸!Ð<Ñ<Ô<×BÒBÑDÔD×KÒKÍCÑPÔPˆ
ØUÐUÐUÐUÐUÍ5ÐQSÉ9Ì9ÐUÑUÔUˆõ •"”'˜" 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 ]L\  }}	t          j        ||d¬¦  «        \  }
}d|› d�}|d|› �z  }t          t          |
¦  «        |	|¬¦  «         ŒMŒÌ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.
        rW   rR   r1  )r"  r#  r$  r%  rÌ   r(  r,  é    rÖ   éP   é!   éE   é   r3  r“   rY   r   r.   r-   r    r/   rZ  iÎÿÿÿ)iìÿÿÿrÖ   rO   r5  z
 estimatorz with datasize of r7  N)r9  r!   r%   r\  r   r   r  )r   r:  r;  r<  r=  r>  Úx3rn   r*  r?  r(   r)   Úmsgs                r   Útest_simple_rangez+TestHistogramOptimBinNums.test_simple_range<  sl  € ð $%°¸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¸	ÐBÑBÔB‘��1Ø6 Ð6Ð6Ð6�ØÐ5¨GÐ5Ð5Ñ5�Ý�S ™VœV W°cÐ:Ñ:Ô:Ð:Ð:ð	;ð	;ð 	;r   r2   )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   é   rj   r1   )r!   r6   Úint8r   rÙ   Úint32r
   )r   r2   r(   r7   r8   Úhist32Úedges32s          r   Útest_signed_integer_dataz2TestHistogramOptimBinNums.test_signed_integer_data[  s‚   € õ ŒH�\�\�\­¬Ð1Ñ1Ô1ˆÝ”l 1¨4Ð0Ñ0Ô0‰ˆˆeÝœ, q§x¢xµ´Ñ'9Ô'9ÀÐEÑEÔE‰ˆ�Ý˜4 Ñ(Ô(Ð(Ý˜5 'Ñ*Ô*Ð*Ð*Ð*r   c           
      óR  — t          j        ¦   «         5  |dk    rt          j        d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(  rË   rN   rR  N)	rÎ   rÏ   rÐ   rz   r   r!   r   ÚtilerG   )r   r2   s     r   Útest_integerz&TestHistogramOptimBinNums.test_integere  sÔ   € õ Ô$Ñ&Ô&ð 	ð 	Ø�wŠˆÝÔ% hµÑ?Ô?Ð?ÝÝÔ&¥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.
        rN   rR  r,  r/  r.   rA   r‚   N)r   r!   r   r‰  rG   r   s    r   Útest_integer_non_autoz/TestHistogramOptimBinNums.test_integer_non_autor  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Ì   rA  r`   N)r   rœ   r   )r   r)  r*  s      r   Útest_simple_weightedz.TestHistogramOptimBinNums.test_simple_weighted}  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*   rE  rL  rP  rX  r`  rv  r  rx   r  Úparametrizer‡  rŠ  rŒ  rŽ  r   r   r   r  r  °  s\  € € € € € ðð ð
4ð 4ð 4ð<ð <ð <ð4<ð <ð <ð(Gð Gð GðMð Mð Mð=ð =ð =ð&*ð *ð *ð(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´   rC   rD   )r´   rD   rŽ   )r´   rŽ   rC   )rC   rC   rD   )rC   rD   rŽ   )rC   rŽ   rŽ   )r.   r/   r/   rY   r-   r   r/   rO   )r   r-   r   )r   r   r-   )r-   r   r   )r�  r   r.   )r   r-   r.   r/   T©r2   r>   g      (@)r.   r/   r0   r0   rQ   )r   r-   r   r   )r   r   r-   r   )r-   r   r   r   g      @c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   )r!   Úsqueeze)rÀ   ro   s     r   rÂ   z/TestHistogramdd.test_simple.<locals>.<listcomp>   s    € Ð;Ð;Ð;˜q�RŒZ˜‰]Œ]Ð;Ð;Ð;r   r   )r0   r/   r.   r�  r.   r§   )r   r   r   r3   r   )r!   r6   r   r
   r   Úallr	   Úsplitr„   ÚlistrP   rG   )r   rn   ÚHr8   ÚanswerÚedÚzr  s           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   r0   r@   )r@   r0   r   )r   r@   r0   )r0   r@   r   )r@   r   r0   )r0   r   r@   r    r/   ©r!   r"   r#   r   r   Úshape©r   r2   Úrr)   rš  r8   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×   r0   r   r@   )r0   r   r×   r@   )r   r@   r0   r×   )r×   r@   r   r0   )r   r×   r@   r0   )r0   r@   r×   r   )r@   r   r×   r0   )r×   r   r0   r@   )r×   r0   r@   r   )r@   r0   r×   r   )r@   r×   r   r0   )r0   r@   r   r×   )r0   r×   r   r@   )r   r0   r@   r×   )r   r×   r0   r@   )r@   r×   r0   r   )r@   r   r0   r×   )r0   r×   r@   r   )r0   r   r@   r×   )r×   r@   r0   r   )r   r0   r×   r@   )r   r@   r×   r0   )r@   r0   r   r×   )r×   r   r@   r0   r    r0   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=   r`   r€   )r!   r"   r#   r   re   r
   rf   )r   r'   r7   r8   Ú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.   r1   r   )r´   rB   rC   )r!   r„   rf   r   r
   r6   )r   rn   r7   r8   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-   r1   rB   r.   )r.   r.   r.   )r   r   r!   r6   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 )
NrW   r.   r0   )rY   r.   r0   r   r1   )r-   g®Gáz®ï?r-   r-   r-   )r-   r.   r/   éýÿÿÿr,   )r!   rG   Úreshaper   r5   r   r   )r   rn   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 )NrË   )Úinvalidr@   r/   r.   r-   r   r    r1   rY   )r!   ÚerrstaterG   r®  r6   r   rH   r   )r   rn   Úexpectedr9   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»ÿÿÿï?)rB   rC   r3   r1   r   rB   r-   r3   g8ß   ð?gq¬‹Ûh ð?)r   r   )r   rn   r2   r7   Ú_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   r/   rB   r3   rE   r¡   rC   rO   )r!   r"   r   r   r5   rH   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-   r1   r4   r3   N©r!   r6   r   r   )r   rn   ro   Úx_edgesÚy_edgesr7   r8   Ú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   rR   rÖ   r1   r   r-   N)r!   r6   r   r   rb   )r   rn   ro   r»  r¼  r7   r8   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   rY   r-   r1   )r   r   )r!   r6   Úint64r   r   )r   Úbigrn   r»  ro   r¼  r7   r8   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.   rW   )r   r@   rW   r/   rN   r-   r×   r1   Tr”  g      �?rº  )r   r»  r¼  Úrelative_areasrn   ro   r7   r8   s           r   Útest_density_non_uniform_2dz+TestHistogramdd.test_density_non_uniform_2d5  s  € õ ”(˜9˜9˜9Ñ%Ô%ˆÝ”(˜9˜9˜9Ñ%Ô%ˆÝœØ�ˆFØ�ˆFð#ñ ô ˆõ
 ŒH�a�S˜A˜3 ™7‘] a S¨1¡WÑ,°¨s°Q©wÑ6Ñ7Ô7ˆÝŒH�a�S˜A˜3 ™7‘] a S¨1¡WÑ,°¨s°Q©wÑ6Ñ7Ô7ˆõ " 1 a &°¸Ð/AÐBÑBÔB‰ˆˆeÝ�T˜>Ñ*Ô*Ð*õ " 1 a &°¸Ð/AÈ4ÐPÑPÔP‰ˆˆeÝ�T˜;Ñ'Ô'Ð'Ð'Ð'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!   rG   r6   r   r   r   )r   r'   r2   r7   r8   Úhist_ddÚedges_dds          r   Útest_density_non_uniform_1dz+TestHistogramdd.test_density_non_uniform_1dP  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’  ‡  sÿ   € € € € € ð#!ð #!ð #!ðJ"ð "ð "ð"ð "ð "ð	-ð 	-ð 	-ð@ð @ð @ð
5ð 5ð 5ðAð Að Að
)ð 
)ð 
)ð ð  ð  ð.Gð Gð Gð*ð *ð *ð	4ð 	4ð 	4ð
$ð 
$ð 
$ð(ð (ð (ð6)ð )ð )ð )ð )r   r’  )rÎ   rx   Únumpyr!   r   r   r   Únumpy.testingr   r   r   r	   r
   r   r   r   r   r   r  r’  r   r   r   ú<module>rÎ     sM  ðØ €€€à €€€à Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ðZ"ð Z"ð Z"ð Z"ð Z"ñ Z"ô Z"ð Z"ðxT8ð T8ð T8ð T8ð T8ñ T8ô T8ð T8ðnP)ð P)ð P)ð P)ð P)ñ P)ô P)ð P)ð P)ð P)r   