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
U
®ý°dAã @s~ddlZddlZddlmZmZmZddlmZddl    m
m Z ddl mZmZmZmZddlmZejjeƒo|eƒp|eƒddZejddgd    d
d „ƒZejd igd igdigdigdigdigdddigdigdddigg    d    dd„ƒZe  d¡ej d¡Gdd„dƒƒƒZe  d¡Gdd„dƒƒZe  d¡dd„ƒZe  d¡dd„ƒZ e  d¡ejj!ej d¡Gd d!„d!ƒƒƒƒZ"dS)"éN)Úis_ci_environmentÚis_platform_macÚis_platform_windows)ÚNumbaUtilError)Ú    DataFrameÚSeriesÚoption_contextÚ to_datetimez`On GHA CI, Windows can fail with 'Windows fatal exception: stack overflow' and macOS can timeout)ÚreasonÚsingleÚtable)ÚparamscCs|jS)z3method keyword in rolling/expanding/ewm constructor©Úparam©Úrequest©rúUd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/window/test_numba.pyÚmethodsrÚsumÚmeanZmedianÚmaxÚminÚvarZddofÚstdcCs|jS©NrrrrrÚ$arithmetic_numba_supported_operators#srÚnumbaÚignorec@sVeZdZej dddg¡dd„ƒZej dee     d¡ƒeddddej
ej d    d
d
d
g
ddddej
ej dd
d
d
g
ej
ej
dd ddddddg
gƒj e edƒd d e dddej dddd
gƒe dddej
dddd
gƒg¡dd„ƒZej dee     d¡ƒe edƒd d g¡dd„ƒZej dddg¡dd„ƒZej ddd
ddœgdigg¡dd„ƒZdd „Zd!S)"Ú
TestEngineÚjitTFcCsˆdd„}|rddl}| |¡}|||dœ}    d}
ttdƒƒ} | jd||dj||
d    |    d
d } | jd||dj|d |
d
d } t | | ¡dS)NcWs$d}|D] }||7}qt |¡|S)Nr©Únpr)ÚxÚargsZarg_sumÚargrrrÚf:s
z0TestEngine.test_numba_vs_cython_apply.<locals>.fr©ÚnogilÚparallelÚnopython©éé
r,)ÚcenterÚsteprT)r$ÚengineÚ engine_kwargsÚrawÚcython)r0r$r2©rr rÚrangeÚrollingÚapplyÚtmÚassert_series_equal)Úselfr r(r)r*r.r/r&rr1r$ÚsÚresultÚexpectedrrrÚtest_numba_vs_cython_apply8s*
  ÿÿz%TestEngine.test_numba_vs_cython_applyÚdataéééééÚfoo)Únameér-ér,c Csd|\}}|||dœ}    |jd|d}
t|
|ƒfd|    dœ|—Ž} t|
|ƒfddi|—Ž} t | | ¡dS)Nr'rC©r/r©r0r1r0r3)r6Úgetattrr8Ú assert_equal) r:r?r(r)r*rr/rÚkwargsr1Úrollr<r=rrrÚ$test_numba_vs_cython_rolling_methodsQs 
ÿÿz/TestEngine.test_numba_vs_cython_rolling_methodsc Csl|\}}|||dœ}tt d¡ƒ}| ¡}    t|    |ƒfd|dœ|—Ž}
t|    |ƒfddi|—Ž} t |
| ¡dS)Nr'r@rrJr0r3)rr"ÚeyeÚ    expandingrKr8rL) r:r?r(r)r*rrrMr1Úexpandr<r=rrrÚ&test_numba_vs_cython_expanding_methodsus 
ÿÿz1TestEngine.test_numba_vs_cython_expanding_methodsc Csàdd„}dd„}|r0ddl}| |¡}| |¡}|||dœ}    ttdƒƒjd|d    }
|
j|d
|    d d } |
j|d d d} t | | ¡|
j|d
|    d d } |
j|d d d} t | | ¡|
j|d
|    d d } |
j|d d d} t | | ¡dS)NcSst |¡dS)NrBr!©r#rrrÚfunc_1Šsz+TestEngine.test_cache_apply.<locals>.func_1cSst |¡dS)Nr@)r"rrTrrrÚfunc_2sz+TestEngine.test_cache_apply.<locals>.func_2rr'r-r,rIrT)r0r1r2r3©r0r2r4) r:r r(r)r*r/rUrVrr1rNr<r=rrrÚtest_cache_apply‡s@
 
 ÿ ÿ ÿzTestEngine.test_cache_applyzwindow,window_kwargsr6r)ÚwindowÚ min_periodsrQc Cs¶dd„}|||dœ}tddddgiƒ}    t|    |ƒfd|i|—Žj|dd|d    d
}
tdd d d giƒ} t |
| ¡t|    |ƒfd|i|—Žj|dd|d d
}
tdd d d giƒ} t |
| ¡dS)NcSst |¡|Sr©r"r)Úvaluesr#rrrÚadd·sz,TestEngine.test_dont_cache_args.<locals>.add©r*r(r)ÚvaluerrTr)rH)r2r0r1r$çð?r+ç@)rrKr7r8Úassert_frame_equal) r:rYZ window_kwargsr(r)r*rr]r1Údfr<r=rrrÚtest_dont_cache_args«s*  ÿ ÿzTestEngine.test_dont_cache_argscsºd‰d‰d‰‡‡‡fdd„}ˆˆˆdœ}tddddgiƒ}| d¡j|dd    |d
}tdd d d giƒ}t ||¡d‰ˆˆˆdœ}| d¡j|dd    |d
}tdd d d giƒ}t ||¡dS) NFTcs ˆˆˆSrrrT©r(r*r)rrÚfuncÏsz6TestEngine.test_dont_cache_engine_kwargs.<locals>.funcr^r_rrHr)r2r0r1rar`©rr6r7r8rb)r:rfr1rcr<r=rrerÚtest_dont_cache_engine_kwargsÈs0 
ÿ  
ÿz(TestEngine.test_dont_cache_engine_kwargsN)Ú__name__Ú
__module__Ú __qualname__ÚpytestÚmarkÚ parametrizer>rr"rPÚnanÚinfÚTrr5rOrSrXrdrhrrrrr4s@
 ýÿõþ
ÿ
 
# þþ
rc@sÊeZdZejjddd„dd„gddgdej dd    d
g¡d d „ƒƒZejjdd d„dd„gddgdej dd    d
g¡dd„ƒƒZej dddg¡ej dd    d
g¡dd„ƒƒZej dddg¡dd„ƒZ    dS)ÚTestEWMÚgroupercCs|SrrrTrrrÚ<lambda>æózTestEWM.<lambda>cCs
| d¡S©NÚA©ÚgroupbyrTrrrrtæruÚNonery)Úidsrrrc    CsTtddddgtdƒdœƒ}tjtdd"t||ƒjdd|ƒd    d
W5QRXdS) NÚaÚbrB©rwÚBzengine must be either©Úmatchr`©ÚcomrE©r0©rr5rlÚraisesÚ
ValueErrorrKÚewm©r:rsrrcrrrÚtest_invalid_engineåszTestEWM.test_invalid_enginecCs|SrrrTrrrrtïrucCs
| d¡SrvrxrTrrrrtïruc    CsZtddddgtdƒdœƒ}tjtdd(t||ƒjdd|ƒd    d
d id W5QRXdS) Nr|r}rBr~zcython engine does notr€r`r‚r3r*TrJr…r‰rrrÚtest_invalid_engine_kwargsîs ÿz"TestEWM.test_invalid_engine_kwargsc Cs˜tdtdƒiƒ}|dkr"dd„}nddddg|d<d    d„}|d
krFd }||ƒjd ||d }    |||dœ}
t|    |ƒd|
d} t|    |ƒdd} t | | ¡dS)NrrBrzcSs|SrrrTrrrrtruz.TestEWM.test_cython_vs_numba.<locals>.<lambda>r|r}rwcSs
| d¡SrvrxrTrrrrtrurTr`)rƒÚadjustÚ    ignore_nar'rrJr3r„)rr5rˆrKr8rb) r:rsrr(r)r*rrŒrcrˆr1r<r=rrrÚtest_cython_vs_numbaùs
 zTestEWM.test_cython_vs_numbac Csªtdddddddgiƒ}|dkr*dd„}ndd„}d    d
d    d
d
d    g|d <d }td d ddddgƒ}||ƒj|d||d}    |||dœ}
|    jd|
d} |    jdd} t | | ¡dS)NrrrHr,rzcSs|SrrrTrrrrtruz4TestEWM.test_cython_vs_numba_times.<locals>.<lambda>cSs
| d¡SrvrxrTrrrrtrur|r}rwz23 daysz
2020-01-01z
2020-01-02z
2020-01-10z
2020-02-23z
2020-01-03T)ÚhalfliferŒrÚtimesr'rrJr3r„)rr    rˆrr8rb) r:rsr(r)r*rrcrrrˆr1r<r=rrrÚtest_cython_vs_numba_timess2
úÿ
ÿ  z"TestEWM.test_cython_vs_numba_timesN)
rirjrkrlrmrnrŠr‹rŽr‘rrrrrrãs&ÿ ÿ  rrc    Csfdd„}ttdƒƒ}tddƒ| d¡j|ddd}W5QRX| d¡j|ddd}t ||¡dS)    NcSst |¡dS)Nr,r!rTrrrr&2sz!test_use_global_config.<locals>.fr-zcompute.use_numbaTr,rWr)rr5rr6r7r8r9)r&r;r<r=rrrÚtest_use_global_config0s    r’c    CsFtjtdd.ttdƒƒ d¡jdd„ddiddd    W5QRXdS)
Nz"numba does not support kwargs withr€rHcSs|SrrrTrrrrt@ruz.test_invalid_kwargs_nopython.<locals>.<lambda>r|rT)rMr0r2)rlr†rrr5r6r7rrrrÚtest_invalid_kwargs_nopython<sÿr“c@s|eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Ze    j
  d e   d¡e  d¡e  d¡g¡e    j
  dddg¡dd„ƒƒZdS)ÚTestTableMethodc    CsHdd„}tjtdd(ttdƒƒjdddj|dd    d
W5QRXdS) NcSstj|dddS©Nr©ÚaxisrHr[rTrrrr&Jsz7TestTableMethod.test_table_series_valueerror.<locals>.fz1method='table' not applicable for Series objects.r€rHr )rrTrW)rlr†r‡rr5r6r7)r:r&rrrÚtest_table_series_valueerrorIsÿÿz,TestTableMethod.test_table_series_valueerrorc    CsÒ|\}}|||dœ}    tt d¡ƒ}
|
jdd|d|d} |dkrztjt|›dd     t| |ƒf|    d
d œ|—ŽW5QRXnT|
jdd |d|d} t| |ƒf|    d
d œ|—Ž} t| |ƒf|    d
d œ|—Ž}t     | |¡dS) Nr'rCr,r r©rr—rZr/©rrú not supportedr€r©r1r0r )
rr"rPr6rlr†ÚNotImplementedErrorrKr8rb)r:r—r(r)r*rr/rrMr1rcZ
roll_tableZ roll_singler<r=rrrÚ!test_table_method_rolling_methodsTs@     
ÿÿÿ
ÿÿ
ÿÿz1TestTableMethod.test_table_method_rolling_methodsc Csv|||dœ}dd„}tt d¡ƒ}|jdd|d|dj|d    |d
d }    |jdd |d|dj|d    |d
d }
t |    |
¡dS) Nr'cSstj|dddSr•r[rTrrrr&wsz:TestTableMethod.test_table_method_rolling_apply.<locals>.frCr,r rr™Tr©r2r1r0r )rr"rPr6r7r8rb) r:r—r(r)r*r/r1r&rcr<r=rrrÚtest_table_method_rolling_applyts8 ÿþÿþz/TestTableMethod.test_table_method_rolling_applycCsdd„}tdddgdddgddd    gdd
d ggƒ}|jdd d |dj|ddd}tdddgdddgdddgdddggƒdd|…}t ||¡dS)NcSsht d|jdf¡}|dd…dd…f|dd…dfjdd|dd…df ¡|dd…dd…f<|S)NrHr,rr–)r"ÚonesÚshaper)r#ZarrrrrÚ weighted_mean„sPzNTestTableMethod.test_table_method_rolling_weighted_mean.<locals>.weighted_meanrHr,g333333ã?rCgš™™™™™Ù?rBgš™™™™™É?r@gffffffæ?r r)rrZr/Tr)r2r0r`ragÍÌÌÌÌÌü?g©kí}ªª
@g©kí}ªª@g“‹1°Žãø?rArg)r:r/r£rcr<r=rrrÚ'test_table_method_rolling_weighted_meanƒs"(ÿüÿùz7TestTableMethod.test_table_method_rolling_weighted_meanc
Csj|||dœ}dd„}tt d¡ƒ}|jd|dj|d|dd    }|jd
|dj|d|dd    }    t ||    ¡dS) Nr'cSstj|dddSr•r[rTrrrr&šsz<TestTableMethod.test_table_method_expanding_apply.<locals>.frCr ©rr—TrrŸr )rr"rPrQr7r8rb)
r:r—r(r)r*r1r&rcr<r=rrrÚ!test_table_method_expanding_apply—s  ÿÿz1TestTableMethod.test_table_method_expanding_applyc    CsÆ|\}}|||dœ}tt d¡ƒ}    |    jd|d}
|dkrttjt|›dd t|
|ƒf|dd    œ|—ŽW5QRXnN|    jd
|d} t|
|ƒf|dd    œ|—Ž} t| |ƒf|dd    œ|—Ž} t     | | ¡dS) Nr'rCr r¥ršr›r€rrœr )
rr"rPrQrlr†rrKr8rb)r:r—r(r)r*rrrMr1rcZ expand_tableZ expand_singler<r=rrrÚ#test_table_method_expanding_methods¦s4 
ÿÿ
ÿÿ
ÿÿz3TestTableMethod.test_table_method_expanding_methodsr?rC)r,rC)rCr,rrrc Cs`|||dœ}t|ƒ}t|jdd|d|ƒ|dd}    t|jdd|d|ƒ|dd}
t |    |
¡dS)Nr'rHr )rƒrr—rrœr )rrKrˆr8rb) r:r?rr—r(r)r*r1rcr<r=rrrÚtest_table_method_ewm¾s ÿÿz%TestTableMethod.test_table_method_ewmN)rirjrkr˜ržr r¤r¦r§rlrmrnr"rPr¡r¨rrrrr”Ds  $r”)#Únumpyr"rlZ pandas.compatrrrZ pandas.errorsrZpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasrrrr    Zpandas._testingZ_testingr8rmZskipifZ
pytestmarkZfixturerrZ
skip_if_noÚfilterwarningsrrrr’r“Zslowr”rrrrÚ<module>sN  þ
 
 
÷ÿ
 
-L