zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
U
P±dìã@sŽddlZddlmZmZmZddlmZmZm    Z    m
Z
m Z m Z m Z mZmZmZddlmZddlZGdd„dƒZGdd„dƒZGd    d
„d
ƒZdS) éN)Ú    histogramÚ histogramddÚhistogram_bin_edges)
Úassert_Ú assert_equalÚassert_array_equalÚassert_almost_equalÚassert_array_almost_equalÚ assert_raisesÚassert_allcloseÚassert_array_max_ulpÚassert_raises_regexÚsuppress_warnings)Úrequires_memoryc@seZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„Z d=d>„Z!e"d?d@e#j$j%dAdB„ƒƒZ&dCS)DÚ TestHistogramcCsdS©N©©ÚselfrrúVd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/lib/tests/test_histograms.pyÚ setup_methodszTestHistogram.setup_methodcCsdSrrrrrrÚteardown_methodszTestHistogram.teardown_methodcCsTd}tj |¡}t|ƒ\}}ttj|dd|ƒtt ddd¡ƒ\}}t|dƒdS)Nédr©Zaxisé
)ÚnpÚrandomÚrandrrÚsumÚlinspacer)rÚnÚvÚaÚbrrrÚ test_simples   zTestHistogram.test_simplecCs†tddddgddgƒ\}}t|dgƒt|ddgƒtttddgddtddgdd\}}t|t dg¡ƒt|t ddg¡ƒdS)    Néééér©Úbinsçð?ç@)rrr
Ú
ValueErrorrrÚarrayr )rÚhistÚedgesÚhÚerrrÚ test_one_bin s zTestHistogram.test_one_binc    Cs$d}tj |¡}t|dd\}}t |t |¡¡}t|dƒt d¡}dddddg}t||dd\}}t|d    ƒt    t |t |¡¡dƒt||d
d\}}t|dd dd gƒt d¡}ddddtj
g}t||dd\}}t|d    d    d    d gƒtjdd dd gddtj
gdd\}}t    |ddgƒdS)NrT©Údensityr%rrr'é皙™™™™¹?Fr&r(ççà?çø?çÐ?) rrrrrÚdiffrÚarangerrÚinf)    rr r!r"r#Úarear*ÚcountsZdmyrrrÚ test_density*s, 
 
 
 
 
 
ÿ
zTestHistogram.test_densitycCsðt d¡d}t|ddgd\}}t| ¡dƒt|ddgd\}}t| ¡dƒt|ddgdd\}}t|t |¡ ¡dd    d
t d¡d}t|ddg|dd \}}t|t |¡ ¡dƒt|d ddg|d \}}t||dd…ƒdS)Nrr9ré    ©Úranger%T©rDr5é©Údecimal©rDÚweightsr5é©r*rDrJéÿÿÿÿ)rr=rrrrr<)rr"r1r#ÚwrrrÚ test_outliersJszTestHistogram.test_outliersc    CsNt d¡d}t d¡d}ttdƒt|ddg|dd\}}W5QRXdS)    Nrr9é z same shape asr%rBTrI)rr=r r-r)rr"rNr1r#rrrÚtest_arr_weights_mismatchbs z'TestHistogram.test_arr_weights_mismatchcCs®t d¡d}t|ƒ\}}tt |jtj¡ƒt|dd\}}tt |jtj¡ƒt|t dt    ¡d\}}tt |jtj¡ƒt|t dt
¡d\}}tt |jtj¡ƒdS)Nrr9Tr4©rJ) rr=rrZ
issubdtypeÚdtypeÚintegerZfloatingÚonesÚintÚfloat)rr"r1r#rrrÚ    test_typeis zTestHistogram.test_typecCsTtjdddgtjd}tjdddgtjd}tj||dd    \}}}t| ¡d
ƒdS) Ng2V›ÿEq@g“áx>fQÀg-³ÅVT5@©rSg!çý°³@gö·àS±@g§’ ^z·@rr)ç@)rr.Úfloat32Z histogram2drr)rÚxÚyZ counts_histZxedgesZyedgesrrrÚtest_f32_roundingxszTestHistogram.test_f32_roundingc    Cs|tjdddgtjd}t |¡\}}tƒH}| td¡}t dddg¡\}}tt|ƒdƒt    ||ƒt    ||ƒW5QRXdS)Nr%rrYzConverting input from .*TF)
rr.Zuint8rrÚrecordÚRuntimeWarningrÚlenr)rr"Zint_histZ    int_edgesÚsupZrecr/r0rrrÚtest_bool_conversions 
z"TestHistogram.test_bool_conversionc Cs‚tj d¡}t d¡d}t|ƒ\}}t|dd\}}t||d\}}t||dd\}    }
t|d|ƒt||    ƒt ddd¡}t t d¡t d¡f¡}t|t     d    ¡|d
\}}t||ƒtd d d d gd d dd d gd
\}}t
|d ddd gƒtd d d d gd d dd d gdd\}}t|t  d ddd g¡ddd ƒtt     d¡dd dddgd d d d d d d d d g    dd\}}t |ddddgƒdS)NréTr4rR©rJr5rrrP©r*rJr%r&r(r')r*rJr5g$@rZrBr6gš™™™™™É?r7g333333³?) rrrrUrr    rÚ concatenateÚzerosr=rr.r) rr!rNr"r#ÚnaÚnbÚwaÚwbZnwaZnwbrrrÚ test_weightss8  
 
"
 
ÿ
$ þ
zTestHistogram.test_weightscCsHt dddg¡}t dddg¡dt dddg¡}t|ddd    g|d
\}}t|t ddg¡dt dd    g¡ƒt|ddd    g|d \}}t|t ddg¡dt dd    g¡ƒdd lm}t dddg¡}t |dƒ|dƒ|d    ƒg¡}t|ddd    g|d
\}}t||dƒ|d ƒgƒt|ddd    g|d \}}t||dƒ|d ƒgƒdS)NçÍÌÌÌÌÌô?ç@çffffff@r%rMr&yð?rr'rfrL)ÚDecimalrd)rr.rr    rHrq)rÚvaluesrJrkrlrqrrrÚtest_exotic_weights­s$&& z!TestHistogram.test_exotic_weightscCs8t dddg¡}tj|ddgddt|dddgƒdS)Nrnrorpéöÿÿÿrr)rDr*)rr.rr    )rrrrrrÚtest_no_side_effectsËsz"TestHistogram.test_no_side_effectscCs>tgddgd\}}t|t dg¡ƒt|t ddg¡ƒdS)Nrr%r)©rrrr.©rr"r#rrrÚ
test_emptyÒszTestHistogram.test_emptycCs,tjdddd}t|dƒttt|dƒdS)Nr8r+r©Únumrdg333333@)rrrr
Ú    TypeError©rÚvalsrrrÚtest_error_binnum_type×s
z$TestHistogram.test_error_binnum_typecCsPtjdddd}t|ddgdttt|tjdgdttt|dtjgddS)Nr8r+rryr;çè?rC)rrrr
r-Únanr>r|rrrÚtest_finite_rangeÝszTestHistogram.test_finite_rangec    Cs<tjdddd}ttdƒtj|ddgdW5QRXdS)    Nr8r+rryzmax must be larger thanr7g{®Gáz„?rC)rrr r-rr|rrrÚtest_invalid_rangeäs z TestHistogram.test_invalid_rangec
    Csˆt dddddddg¡}tj|dd    d
\}}|d k}|dd …|}|d d…|}t|||ƒD]"\}}}    t||kƒt||    kƒq`dS)NiQi”iãi&iïiiÜih )r&iè©r*rDrrMr%)rr.rÚzipr)
rÚarrr/r0ÚmaskZ
left_edgesZ right_edgesr\ÚleftÚrightrrrÚtest_bin_edge_casesês z!TestHistogram.test_bin_edge_casesc CsBt dddddddddg    ¡}tj|ddd    \}}t|d
d ƒdS) Nr8r+r,rZç@ç@é©çà¿rdrƒrMr%)rr.rr)rr…r/r0rrrÚtest_last_bin_inclusive_rangeõsz+TestHistogram.test_last_bin_inclusive_rangec    CsNtjdddd}t ddgddgg¡}ttdƒtj||d    W5QRXdS)
Nr8r+rryrr9g333333ã?z
must be 1dr))rrr.r r-r)rr}r*rrrÚtest_bin_array_dimsús z!TestHistogram.test_bin_array_dimsc    CsJt dg¡}tjdddgdd}ttƒtj||d\}}W5QRXdS)Nr&r%r'Zuint64rYr))rr.r
r-r)rr…r*r/r0rrrÚ test_unsigned_monotonicity_checks 
z.TestHistogram.test_unsigned_monotonicity_checkcCs†tttdd„tdƒDƒtj gƒtttdd„tdƒDƒtjgƒt dd„tdƒDƒdg¡t dd„tdƒDƒdg¡dS)    NcSsg|]}t d¡‘qS©gš™™™™™Ù?©rr.©Ú.0ÚirrrÚ
<listcomp> sz9TestHistogram.test_object_array_of_0d.<locals>.<listcomp>rcSsg|]}t d¡‘qSr’r“r”rrrr—scSsg|]}t d¡‘qS©r9r“r”rrrr—sg    à?cSsg|]}t d¡‘qSr˜r“r”rrrr—sr9)r
r-rrDrr>rrrrÚtest_object_array_of_0d    sÿÿz%TestHistogram.test_object_array_of_0dc    Csìt ddtjg¡}t tjtjg¡}tƒ}| t¡|ªttt|ddttt|ddt|ddd\}}t    | 
¡dƒt|ddd\}}t    | 
¡dƒt|ddgd\}}t    | 
¡dƒt|ddgd\}}t    | 
¡dƒW5QRXdS)Nrr%Úautor)©rr%rƒr&) rr.r€rÚfilterr`r
r-rrr)rZone_nanZall_nanrbr1r#rrrÚtest_some_nan_valuess
z"TestHistogram.test_some_nan_valuesc Csæt dd¡}t ddddddddd    g    ¡}t ddd
d    g¡}||}||}t d ¡}t||d \}}t| |¡| |¡d \}    }
t||d \} } t|| ƒt|    | ƒt|| t¡| ƒt|
 t¡| ƒt|j|jƒt|
j|ƒdS) Nz
2000-01-01ÚDrr%r&r'rdrééztimedelta64[D]r))rZ
datetime64r.rSrÚastyperrV) rÚbeginÚoffsetsr*ÚdatesZ    date_binsÚtdZd_countZd_edgeZt_countZt_edgeZi_countZi_edgerrrÚ test_datetime-s 
 
 
zTestHistogram.test_datetimecCs|dt |¡jd}tjd| dd|dg|d}t|dd\}}t|d| ddd|dgƒt|ddgƒdS)NrKr%r&r(rYr)r)rrSÚitemsizer.rr)rrSÚexponentr…r/r2rrrÚdo_signed_overflow_boundsFs
$"z'TestHistogram.do_signed_overflow_boundscCs@| tj¡| tj¡| tj¡| tj¡| tj¡dSr)r©rÚbyteÚshortZintcÚint_ZlonglongrrrrÚtest_signed_overflow_boundsMs
    z)TestHistogram.test_signed_overflow_boundscCstt |¡j}t dg|¡}t d|dg|¡}| |¡ddkrDdStj|d|d\}}t|dgƒt|j|ƒdS)Nr+r,rr%rƒ©rZfinfoÚepsr.r¡rrrS©rÚ float_smallÚ float_larger¯r…rDÚcountZx_locrrrÚdo_precision_lower_boundTs  z&TestHistogram.do_precision_lower_boundcCstt |¡j}t dg|¡}t dd|g|¡}| |¡ddkrDdStj|d|d\}}t|dgƒt|j|ƒdS)Nr+r8rMr%rƒr®r°rrrÚdo_precision_upper_boundes  z&TestHistogram.do_precision_upper_boundcCs| ||¡| ||¡dSr)r´rµ)rr±r²rrrÚ do_precisionvs zTestHistogram.do_precisioncCsd| tjtj¡| tjtj¡| tjtj¡| tjtj¡| tjtj¡| tjtj¡dSr)r¶rZhalfZsingleÚdoubleZ
longdoublerrrrÚtest_precisionzs zTestHistogram.test_precisionc Cs®tddddgddgƒ\}}tddddgddgƒ}t||ƒt dddddddd    d
g    ¡}t|d d d \}}t|d d d }t||ƒt|ddd \}}t|ddd }t||ƒdS)Nr%r&r'r(r8r+r,rZrŠr‹rŒrrƒršr›)rrrrr.)rr/r2r0r…rrrÚtest_histogram_bin_edgesƒs
 
z&TestHistogram.test_histogram_bin_edgesg _ B)Z
free_bytescCsJt ddg¡}d}d}t d¡}tj||||fd}tt|ƒtdƒƒdS)Niáõr'ii€>)Úsampler*)r%r&)rrhr=rrÚtype)rrºZxbinsZybinsZzbinsr/rrrÚtest_big_arrays‘s 
zTestHistogram.test_big_arraysN)'Ú__name__Ú
__module__Ú __qualname__rrr$r3rArOrQrXr^rcrmrsrurxr~rr‚r‰rrr‘r™rr¦r©r­r´rµr¶r¸r¹rÚpytestÚmarkZslowr¼rrrrr sD 
       rc
@s„eZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dd„Z
dd„Z dd„Z e j ddddddddg¡dd„ƒZdd„Zd S)!ÚTestHistogramOptimBinNumsz]
    Provide test coverage when using provided estimators for optimal number of
    bins
    cCsXddddddddg}|D]:}tg|d    \}}t|t d
g¡ƒt|t d
d g¡ƒqdS) NÚfdÚscottÚriceÚsturgesÚdoaneÚsqrtršÚstoner)rr%rv)rÚestimator_listÚ    estimatorr"r#rrrrx¢sÿz$TestHistogramOptimBinNums.test_emptyc CsÎdddddddddœdddddd    dd
dœd d d d d dd ddœdœ}| ¡D]~\}}t dd|dd¡}t dd|dd¡}t ||f¡}| ¡D]2\}}t ||¡\}    }
tt|    ƒ|d ||¡dq”qJdS)z²
        Straightforward testing with a mixture of linspace data (for
        consistency). All test values have been precomputed and the values
        shouldn't change
        r(rKr r&©rÃrÄrÅrÆrÇrÈršrÉéré érBéé#ééGrŸ©é2iôiˆrtrMrdr%r'ú*For the {0} estimator with datasize of {1}©Úerr_msgN)ÚitemsrrrgrrraÚformat) rÚ
basic_testÚtestlenÚexpectedResultsÚx1Úx2r\rËÚnumbinsr"r#rrrr$«s:ÿÿÿüÿz%TestHistogramOptimBinNums.test_simplec    
Cs˜ddddddddœddddddddœddddddddœdœ}| ¡D]N\}}t |¡}| ¡D]2\}}t ||¡\}}tt|ƒ|d ||¡dq^qDdS)    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'rÖr×N)rÙrr=rrrarÚ)    rZ    small_datrÜrÝZtestdatrËZexpbinsr"r#rrrÚ
test_smallÅs0ÿÿÿü
ÿz$TestHistogramOptimBinNums.test_smallcCs.ddddg}|D]}tttdddg|ƒqdS)    zS
        Check a Value Error is thrown when an unknown string is passed in
        ZmadZfreemanZ
histogramsZIQRr%r&r'N)r
r-r)rZ
check_listrËrrrÚtest_incorrect_methodsÙs z0TestHistogramOptimBinNums.test_incorrect_methodsc    Cs^t d¡}dddddddddœ}| ¡D]0\}}t ||¡\}}tt|ƒ|d |¡dq(dS)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
        rr%rÌz{0} estimator, No Variance testr×N)rrUrÙrrrarÚ)rZ novar_datasetZnovar_resultdictrËràr"r#rrrÚtest_novarianceás
ÿÿz)TestHistogramOptimBinNums.test_novariancecCs€t d¡}d|dd…<d|dd…<t|dƒ}t|t ddd¡ƒt|d    ƒ}t|t ddg¡ƒt|d
ƒ}t|t ddd¡ƒdS) zu
        Check when IQR is 0, but variance exists, we return the sturges value
        and not the fd value.
        ièrNr'réüÿÿÿršrÎrÃrÆ)rrUrrrr.)rZ lim_var_dataZ
edges_autoZedges_fdZ edges_sturgesrrrÚtest_limited_varianceïs
 
 
 
z/TestHistogramOptimBinNums.test_limited_variancecCsht ddd¡}t t ddd¡|f¡}dddd    d
œ}| ¡D]&\}}t ||¡\}}tt|ƒ|ƒq<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.
        rtrrÕi’ÿÿÿéœÿÿÿrdérPr6)rÃrÄrÇrÉN)rrÚhstackrÙrrra)rZxcenterZoutlier_datasetZoutlier_resultdictrËràr"r#rrrÚ test_outliers z&TestHistogramOptimBinNums.test_outliercsNdd„‰‡fdd„tdƒDƒ}ttj|dddƒ}t|d    d
d d gd ddS)zQVerify that Scott's rule and Stone's rule converges for normally distributed datacSsRtj |¡}|jdd|d}tt |d¡dƒtt |d¡dƒ}}|||S)Nrr&)ÚlocZscaleÚsizerÉrÄ)rrZ RandomStateÚnormalrar)ÚseedrëÚrngr\r"r#rrrÚ nbins_ratios *zBTestHistogramOptimBinNums.test_scott_vs_stone.<locals>.nbins_ratiocs6g|].‰‡‡fdd„tjdddd ¡ t¡Dƒ‘qS)csg|]}ˆˆ|ƒ‘qSrr)r•rë)rïrírrr—szLTestHistogramOptimBinNums.test_scott_vs_stone.<locals>.<listcomp>.<listcomp>rrr()ÚstartÚstoprz)rZ    geomspaceÚroundr¡rV)r•©rï)rírr—sÿzATestHistogramOptimBinNums.test_scott_vs_stone.<locals>.<listcomp>rrrr9g333333Ã?g
×£p=
·?g{®Gáz´?g¸…ëQ¸ž?r&rGN)rDÚabsrZmeanr)rZllÚavgrrórÚtest_scott_vs_stones 
ÿz-TestHistogramOptimBinNums.test_scott_vs_stonec     Csædddddddœdddddddœd    d    d
d d    ddœd œ}| ¡D]¢\}}t d d|dd¡}t dd|dd¡}t dd|¡}t |||f¡}| ¡D]F\}}    tj||dd\}
} d |¡} | d |¡7} tt|
ƒ|    | dq˜q>dS)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.
        rKrFrÒ)rÃrÄrÅrÆršrÉrÍé rŸéPé!éEérÔrtrMrdr&r%rr'ræiÎÿÿÿ)iìÿÿÿrŸrCzFor the {0} estimatorz with datasize of {0}r×N)rÙrrrèrrÚrra) rrÛrÜrÝrÞrßZx3r\rËràr"r#ÚmsgrrrÚtest_simple_range%s4
ÿÿÿû    
z+TestHistogramOptimBinNums.test_simple_ranger*ršrÃrÇrÄrÉrÅrÆcCsZtjdddgtjd}tj||d\}}tj| tj¡|d\}}t||ƒt||ƒdS)NéþÿÿÿrérYr))rr.Zint8rr¡Úint32r)rr*r"r/r0Zhist32Zedges32rrrÚtest_signed_integer_dataDs
 
z2TestHistogramOptimBinNums.test_signed_integer_datac    Cs:dddddg}|D]"}tttdddg|dddgd    qd
S) z=
        Check that weighted data raises a TypeError
        rÃrÄrÅrÆršr%r&r'rRN)r
r{r)rrÊrËrrrÚtest_simple_weightedNs ÿz.TestHistogramOptimBinNums.test_simple_weightedN)r½r¾r¿Ú__doc__rxr$rárârãrårérörýrÀrÁZ parametrizerrrrrrrœs"    ÿ
rÂc@s„eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„ZdS) ÚTestHistogramddc
Cstt dddgdddgdddgdddgdddgdddgg¡}t|dddgdd    gdd    ggd
\}}t dddgdddgdddggdddgdddgdddggg¡}t||ƒd dd gddd d    gddd d    gg}t||d d\}}tt ||dk¡ƒt|dddgdd    gddggd d\}}t ddddgddddgddddggddddgddddgddddggg¡}t||ddƒdd„tj|d    ddDƒ}t|dd d gdd    gdd ggd\}}t ddgddgddggddgddgddggddgddgddggddgddgddggg¡}t||ƒt d¡}d|t    t
dƒƒt    t
dƒƒt    t
dƒƒf<tt  d¡t  d¡t  d¡gdƒ\}}t||ƒdS)NrŽr9r:ro)r&r'r'rMr%rr'rCrþr&T©r*r5g(@)r&r'r(r(rEg@cSsg|]}t |¡‘qSr)rZsqueeze)r•r]rrrr—qsz/TestHistogramdd.test_simple.<locals>.<listcomp>r)r(r'r&rƒ)rdrdrdr+rd) rr.rrrÚallr    ÚsplitrhÚlistrDr=)rr\ÚHr0ZanswerZedÚzÚZrrrr$ZsNÿÿ
ÿ
 þ
$ ÿÿ
ý
 
&&zTestHistogramdd.test_simplecCs<d}tj dd¡}|D] }t||ƒ\}}t|j|kƒqdS)N))rdr(r6)r6r(rd)rdr6r()r(r6rd)r6rdr()r(rdr6rr'©rrrrrÚshape©rr*Úrr#r    r0rrrÚ test_shape_3ds
zTestHistogramdd.test_shape_3dcCs<d}tj dd¡}|D] }t||ƒ\}}t|j|kƒqdS)N))r r(rdr6)r(rdr r6)rdr6r(r )r r6rdr()rdr r6r()r(r6r rd)r6rdr r()r rdr(r6)r r(r6rd)r6r(r rd)r6r rdr()r(r6rdr )r(r rdr6)rdr(r6r )rdr r(r6)r6r r(rd)r6rdr(r )r(r r6rd)r(rdr6r )r r6r(rd)rdr(r r6)rdr6r r()r6r(rdr )r rdr6r(rr(r rrrrÚ test_shape_4dˆs
zTestHistogramdd.test_shape_4dcCsžtj dd¡}t|ƒ\}}t|dd\}}t|t d¡d\}}t||ƒt|t d¡ddd\}}t||ƒt|t dt¡dd\}}t|d|ƒdS)Nrr&Tr4rRre)rrrrrUrrV)rr!r/r0Zn_histZw_histrrrrm–s 
 
zTestHistogramdd.test_weightscCs:t dt¡}t|dd\}}t|dt dddg¡ƒdS)N)rr&r&r)rrŽr8r9)rrhrVrrr.)rr\r/r0rrrÚtest_identical_samples¡s z&TestHistogramdd.test_identical_samplescCs`tgggddgddgfd\}}t|t dgg¡ƒtjggggdd\}}t|t d¡ƒdS)Nrr%r)r8r&)r&r&r&)rr rr.rhrwrrrrx¦s zTestHistogramdd.test_emptyc CsŽt d¡ dd¡}tttj|ddddgdtttj|ddddgdtttj|dddddd    d
ggdttj|dddddd    dggdƒdS) NrKr&r(rMrdr)r%g®Gáz®ï?r'éýÿÿÿ)rr=Úreshaper
r-rr)rr\rrrÚtest_bins_errors¬sÿz TestHistogramdd.test_bins_errorsc    CsÎtjdd¸t d¡ dd¡}t ddgddgddgg¡}tj|dtj ddggd    \}}t||ƒtj|dt d
dtjg¡gd    \}}t||ƒtj|dtj dtjggd    \}}t||ƒW5QRXdS) NÚignore)Úinvalidr6r'r&r%rrr)rM)rZerrstater=rr.rr>r )rr\Úexpectedr1r2rrrÚtest_inf_edges¶s 
$
"zTestHistogramdd.test_inf_edgescCs dg}dddgg}t||d\}}t|ddkƒt|ddkƒdg}dddgg}t||d\}}t|ddkƒt|ddkƒdg}dddgg}t||d\}}t|ddkƒt|ddkƒd    g}dddgg}t||d\}}t|ddkƒt|ddkƒdS)
NgÐG»ÿÿÿï?r8r9r+r)rr%g8ßð?gq¬‹Ûhð?)rr)rr\r*r/Ú_rrrÚtest_rightmost_binedgeÂs(    z&TestHistogramdd.test_rightmost_binedgecCsvtj d¡}t|ddgddgddggdttt|ddgddgdtjggdttt|ddgtjdgddggddS)N)rr'r8r+r;rr9rC)rrrr
r-r>r€r|rrrrÙs ÿÿz!TestHistogramdd.test_finite_rangecCslt dddg¡}t dddg¡}t dddg¡}d}t||f||fd\}}t dgdgg¡}t||ƒdS)z: Test that adjacent entries in an edge array can be equal rr%r&r)r,r+N©rr.rr)rr\r]Úx_edgesÚy_edgesr/r0Z hist_expectedrrrÚtest_equal_edgesásþz TestHistogramdd.test_equal_edgescCsrt dddg¡}|d}t ddddg¡}|d}t||f||fd\}}t|dj|jƒt|dj|jƒdS)    z< Test that if an edge array is input, its type is preserved rrrŸrdrFr)r%N)rr.rrrS)rr\r]rrr/r0rrrÚtest_edge_dtypeïszTestHistogramdd.test_edge_dtypecCs`d}t dgtj¡}t ddgtj¡}||}||}t||f||fd\}}t|ddƒdS)NlrrMr%r))rr)rr.Úint64rr)rÚbigr\rr]rr/r0rrrÚtest_large_integersúsz#TestHistogramdd.test_large_integerscCsÔt dddg¡}t dddg¡}t ddgddgg¡}t dgdgddgddgd¡}t dgdgddgddgd¡}t||f||fd    \}}t||ƒt||f||fd
d \}}t|d ƒdS) Nrr&rKr6r'rBr%r r)Trg?r)rrrZrelative_areasr\r]r/r0rrrÚtest_density_non_uniform_2ds    þ**
z+TestHistogramdd.test_density_non_uniform_2dcCsbt d¡}t dddddg¡}t||dd\}}t|f|fdd\}}t||ƒt||dƒdS)Nrrr%r'r6Tr4)rr=r.rrr)rr!r*r/r0Zhist_ddZedges_ddrrrÚtest_density_non_uniform_1d!s 
 
z+TestHistogramdd.test_density_non_uniform_1dN)r½r¾r¿r$rrrmrrxrrrrrr r#r$r%rrrrrXs%     
   r)ÚnumpyrZnumpy.lib.histogramsrrrZ numpy.testingrrrrr    r
r r r rZnumpy.testing._private.utilsrrÀrrÂrrrrrÚ<module>s0 =