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
U
­ý°d‹5ã @sHddlmZmZddlZddlZddlZddlZddlmm    Z
ddl m Z m Z mZmZmZmZmZddlmZddlmZmZddlmZmZmZmZzddlmZWne k
r¾YnXe !d¡e !d¡Z"d    d
„Z#d d „Z$Gd d„dƒZ%Gdd„dƒZ&Gdd„dƒZ'Gdd„dƒZ(ej) *ddddddddddg    ¡dd „ƒZ+dS)!é)ÚdateÚdatetimeN)ÚIndexÚPeriodÚ PeriodIndexÚSeriesÚ    TimestampÚarraysÚ
date_range)Ú deregister_matplotlib_convertersÚregister_matplotlib_converters)ÚDayÚMicroÚMilliÚSecond)Ú    converterúmatplotlib.pyplotúmatplotlib.datescCsd}tjd|g}t |¡dS)Nzúimport matplotlib.units as units; import matplotlib.dates as mdates; n_conv = len(units.registry); import pandas as pd; pd.plotting.register_matplotlib_converters(); pd.plotting.deregister_matplotlib_converters(); assert len(units.registry) == n_convú-c)ÚsysÚ
executableÚ
subprocessÚ check_output)ÚcodeÚcall©rú[d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/plotting/test_converter.pyÚtest_registry_mpl_resets.sÿ     rcCst d¡t d¡kst‚dS)Nz00:01)rZtime2numÚAssertionErrorrrrrÚtest_timtetonum_accepts_unicode=src@s<eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd S)ÚTestRegistrationcCs&d}tjd|g}t |¡dks"t‚dS)Nzwimport matplotlib.units; import pandas as pd; units = dict(matplotlib.units.registry); assert pd.Timestamp not in unitsrr)rrrÚ
check_callr)ÚselfrrrrrÚtest_dont_register_by_defaultBsÿ z.TestRegistration.test_dont_register_by_defaultcCsPt d¡}ttdƒtdddd}| ¡\}}tƒ| |j|j    ¡| 
¡dS)Nré Ú2017©Zperiods©Úindex) ÚpytestÚ importorskiprÚranger
Úsubplotsr Úplotr(ÚvaluesÚclose)r"ÚpltÚsÚ_ÚaxrrrÚtest_registering_no_warningMs 
 z,TestRegistration.test_registering_no_warningc    Csdt d¡}ttdƒtdddd}t d¡}| ¡W5QRXzt    |ƒdksRt
‚W5| ¡XdS)Nrr$r%r&r'r) r)r*rr+r
ÚtmZassert_produces_warningr-r/Úlenr)r"r0r1ÚwrrrÚtest_pandas_plots_registerWs
 z+TestRegistration.test_pandas_plots_registerc
CsZt d¡}t dd¡:t dd¡t|jks4t‚W5QRXt|jksLt‚W5QRXdS)Númatplotlib.unitsú'plotting.matplotlib.register_convertersTF)r)r*ÚcfÚoption_contextrÚregistryr)r"ÚunitsrrrÚtest_matplotlib_formatterscs
 
z+TestRegistration.test_matplotlib_formattersc    Cs–t d¡t dd¡}t d¡}ttdƒtdddd}| ¡\}}|| |j    |j
¡W5QRXt ƒ|| |j    |j
¡W5QRX|  ¡dS)Nrr:Fr$r%r&r') r)r*r;r<rr+r
r,r-r(r.r r/)r"Úctxr0r1r2r3rrrÚtest_option_no_warningos
 
 z'TestRegistration.test_option_no_warningc
Cs¦t d¡}t d¡}t|jƒ}zZ|j ¡| ¡}||jt<||jt<t    ƒ|jt|k    s^t
‚t ƒ|jt|ksvt
‚W5|j ¡| ¡D]\}}||j|<qŒXdS)Nr9r) r)r*Údictr=ÚclearÚitemsZ DateConverterrrr rr )r"r>ÚdatesÚoriginalÚkÚvZdate_converterrrrÚtest_registry_resets€s
 
 
 
 
 
 
z%TestRegistration.test_registry_resetsN)    Ú__name__Ú
__module__Ú __qualname__r#r4r8r?rArIrrrrr As  
  r c@sœeZdZejdd„ƒZdd„Zdd„Zdd„Zd    d
„Z    ej
  d d d dddg¡dd„ƒZ ej
  dd¡dd„ƒZ ej
  deƒeƒedƒg¡dd„ƒZdd„ZdS)ÚTestDateTimeConvertercCst ¡S©N)rZDatetimeConverter©r"rrrÚdtc›szTestDateTimeConverter.dtccCs0| ddd¡}| ddd¡}||ks,tdƒ‚dS)Nz2000-01-01 12:22z/DatetimeConverter.convert should accept unicode©Úconvertr)r"rPÚr1Úr2rrrÚtest_convert_accepts_unicodeŸsz2TestDateTimeConverter.test_convert_accepts_unicodecCs¼| dgdd¡d}t tdddƒ¡}||ks2t‚| ddd¡}||ksLt‚| tdddƒdd¡}||ksnt‚| ddd¡}||ksˆt‚| tdƒdd¡}||ks¦t‚| ddd¡}||ksÀt‚| ddd¡}||ksÚt‚| t ddg¡dd¡}|d|kst‚tdƒ     d¡ 
d    ¡}| |dd¡}||ks4t‚| |  ¡dd¡}||ksTt‚| t |t dƒ|gƒdd¡}|d|ks„t‚| t |t dƒ|gƒ  ¡dd¡}|d|ks¸t‚dS)
Nú2012-1-1réÜéú
2012-01-01ú2012-01-01 00:00:00+0000z2012-01-02 00:00:00+0000ÚUTCz
US/Eastern)rRrEÚdate2numrrrrÚnpÚarrayZ tz_localizeZ
tz_convertZ to_pydatetimerr )r"rPÚrsÚxpÚtsrrrÚtest_conversion¤s<        ý"z%TestDateTimeConverter.test_conversionc    Cs”d}| tddddd¡}tj tddd¡}tj|||d| tddddd¡}tj|||d| tdd    d    d    d
d ƒdd¡}tj|||ddS) Ng•Ö&è .>z2012-1-1 01:02:03r[)Útz©Úrtolz2012-1-1 09:02:03zAsia/Hong_KongrWrXéé)rRrrÚmdatesr\r5Úassert_almost_equalr)r"rPrer_r`rrrÚtest_conversion_floatÒs
ÿz+TestDateTimeConverter.test_conversion_floatcCsàtdddƒtdddƒg}| |dd¡}tj |¡}t ||¡| |ddd¡}tj |d¡}||kslt‚tddddƒtddddƒg}| |dd¡}tj |¡}t ||¡| |ddd¡}tj |d¡}||ksÜt‚dS)NirXrfrr$)    rrRrrhr\r5Zassert_numpy_array_equalrr)r"rPr.r_r`rrrÚ$test_conversion_outofbounds_datetimeás     z:TestDateTimeConverter.test_conversion_outofbounds_datetimeztime,format_expected)rz00:00)g‘óþÿÿõ@z23:59:59.999999)i_z01:00)i‹z01:02:03)gfffffeã@z 11:02:03.200cCst d¡|ƒ}||kst‚dSrN)rZ TimeFormatterr)r"ÚtimeÚformat_expectedÚresultrrrÚtest_time_formatterós z)TestDateTimeConverter.test_time_formatterÚfreq)ÚBÚLÚScCsDd}tjd|d}| |dd¡}tj | ¡¡}tj|||ddS)Ng•Ö&è .>é
)rGrprd)r5Z makeDateIndexrRrrhr\Z    _mpl_reprri)r"rprPreZ    dateindexr_r`rrrÚtest_dateindex_conversions
z/TestDateTimeConverter.test_dateindex_conversionÚoffseté2cCsLtdƒ}||}| |dd¡}| |dd¡}||ksHt|›d|›dƒ‚dS)NrVz is not less than Ú.)rrRr)r"rvrPZts1Zts2Zval1Zval2rrrÚtest_resolution
s z%TestDateTimeConverter.test_resolutioncsRtdƒtdƒg}||g}ˆ |dd¡}‡fdd„|Dƒ}t |¡|k ¡sNt‚dS)Nz
2017-01-01z
2017-01-02csg|]}ˆ |dd¡‘qSrN©rR©Ú.0Úx©rPrrÚ
<listcomp>sz=TestDateTimeConverter.test_convert_nested.<locals>.<listcomp>)rrRr]r^Úallr)r"rPÚinnerÚdatarnÚexpectedrr~rÚtest_convert_nesteds
z)TestDateTimeConverter.test_convert_nestedN)rJrKrLr)ÚfixturerPrUrbrjrkÚmarkÚ parametrizerorurrrryr„rrrrrMšs*
.ûþ
 
 
 
 
rMc@sHeZdZejdd„ƒZejdd„ƒZdd„Zdd„Zd    d
„Z    d d „Z
d S)ÚTestPeriodConvertercCst ¡SrN)rZPeriodConverterrOrrrÚpcszTestPeriodConverter.pccCsGdd„dƒ}|ƒ}d|_|S)Nc@s eZdZdS)z&TestPeriodConverter.axis.<locals>.AxisN)rJrKrLrrrrÚAxis$srŠÚD©rp)r"rŠÚaxisrrrr"szTestPeriodConverter.axiscCs,| dd|¡}| dd|¡}||ks(t‚dS)NrVrQ©r"r‰rrSrTrrrrU+sz0TestPeriodConverter.test_convert_accepts_unicodecCs8| dgd|¡d}tdƒj}||ks*t‚| dd|¡}||ksDt‚| tdddƒgd|¡d}||kslt‚| tdddƒd|¡}||ksŽt‚| tdƒgd|¡d}||ks²t‚| tdƒd|¡}||ksÐt‚| dd|¡}||ksêt‚| dd|¡}||kst‚| tjddgd    d
d|¡}|d|ks4t‚dS) NrVrrWrXrYrZz2012-01-01 00:00:00z2012-01-02 00:00:00zdatetime64[ns])Zdtype)rRrZordinalrrrr]r^©r"r‰rr_r`rrrrb0s4
       þúz#TestPeriodConverter.test_conversioncCs*| ddgd|¡}ddg}||ks&t‚dS)NrrXrQrrrrÚtest_integer_passthroughTsz,TestPeriodConverter.test_integer_passthroughcsDddg‰ˆ ˆˆgdˆ¡}‡‡‡fdd„tdƒDƒ}||ks@t‚dS)NrVz2012-1-2csg|]}ˆ ˆdˆ¡‘qSrNrz)r|r2©rr‚r‰rrr]sz;TestPeriodConverter.test_convert_nested.<locals>.<listcomp>rf)rRr+rrŽrr‘rr„Zsz'TestPeriodConverter.test_convert_nestedN) rJrKrLr)r…r‰rrUrbrr„rrrrrˆs
 
$rˆc@sHeZdZdZej dddddg¡dd„ƒZej d    d
d g¡d d „ƒZdS)ÚTestTimeDeltaConverterzTest timedelta converterzx, decimal, format_expected)çrz00:00:00)lxqAsrXz
01:06:12.3)l6¶2º"rfz8 days 06:07:13.43)lKVôuéz 09:00:23.4320cCs&tj}|j|d|d}||ks"t‚dS)N)ÚposZ
n_decimals)rÚTimeSeries_TimedeltaFormatterZformat_timedelta_ticksr)r"r}ÚdecimalrmÚtdcrnrrrÚtest_format_timedelta_ticksds
z2TestTimeDeltaConverter.test_format_timedelta_ticksÚ view_interval)rXrf)rfrXcs8G‡fdd„dƒ}t ¡}| |d|ƒ¡|ddƒdS)NcseZdZ‡fdd„ZdS)zNTestTimeDeltaConverter.test_call_w_different_view_intervals.<locals>.mock_axiscsˆSrNrrO©ršrrÚget_view_intervalvsz`TestTimeDeltaConverter.test_call_w_different_view_intervals.<locals>.mock_axis.get_view_intervalN)rJrKrLrœrr›rrÚ    mock_axisusrrr“r)rr–Úsetattr)r"ršZ monkeypatchrr˜rr›rÚ$test_call_w_different_view_intervalsrsz;TestTimeDeltaConverter.test_call_w_different_view_intervalsN)    rJrKrLÚ__doc__r)r†r‡r™rŸrrrrr’asüþ    
r’Ú    year_spang€&@ééPé–ii iÜiÄ    i¬ cCsd}||d}||d}|dkr(dS|d}t |¡\}}t ||d¡}ttjt dd„|Dƒ¡ddƒ}t d    d„|Dƒ¡}    t d
d„|Dƒ¡}
||    } ||
} | j|d k} | j|d k}| j    dk}| j    dk}t 
| ¡sät ‚t 
|¡sòt ‚t 
|¡st ‚t 
|¡st ‚dS) Niüÿÿr”rXé-ÚQcSsg|] }|d‘qS)rrr{rrrr‹sz)test_quarterly_finder.<locals>.<listcomp>rŒcSsg|] }|d‘qS)rXrr{rrrrscSsg|] }|d‘qS)rfrr{rrrrŽsr) rZ_get_default_annual_spacingZ_quarterly_finderrr    Z PeriodArrayr]r^ÚyearZquarterr€r)r¡ZvminZvmaxÚspanZnyearsZ
min_anndefZ
maj_anndefrnZquartersZmajorsZminorsZmajor_quartersZminor_quartersZcheck_major_yearsZcheck_minor_yearsZcheck_major_quartersZcheck_minor_quartersrrrÚtest_quarterly_finder~s.  ÿ
 
r©),rrrrÚnumpyr]r)Zpandas._config.configÚ_configÚconfigr;Zpandasrrrrrr    r
Zpandas._testingZ_testingr5Zpandas.plottingr r Zpandas.tseries.offsetsr rrrZpandas.plotting._matplotlibrÚ ImportErrorr*rErrr rMrˆr’r†r‡r©rrrrÚ<module>s0$     
 
YD