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
U
­ý°dÎZã@slddlZddlZddlmmZddlZddlm    Z    m
Z
m Z m Z m Z mZmZddlmZGdd„dƒZdS)éN)ÚCategoricalIndexÚ    DataFrameÚIndexÚNaTÚSeriesÚ
date_rangeÚoffsetsc@sžeZdZej dejddgfejddej    dgfg¡dd„ƒZ
dd    „Z ej d
e e  d ¡gƒed d dde ed ƒedd ddg¡ej ddddg¡dd„ƒƒZdd„Zdd„Zej dddg¡d d!„ƒZej d"ddd#d$g¡d%d&„ƒZd'd(„Zej d)d*d+d,d-g¡d.d/„ƒZd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Zd:d;„Zd<d=„Zd>d?„Zd@dA„ZdBdC„Z dDdE„Z!dFdG„Z"dHdI„Z#dJdK„Z$dLdM„Z%e&j'dNdO„ƒZ(dPdQ„Z)dRdS„Z*dTdU„Z+dVdW„Z,dXdY„Z-ej dZej.d[ejj/d\d]d^d_g¡ejjd`edaddedaddbdce0j1dadddde0j2dedddde0j3dd#ddej.e0j4ddgdfdgejj/d\d]d^ej.e0j4ddgdhdgejj/d\d]d^gdidj„dkdldm„ƒƒZ5dndo„Z6dpdq„Z7drS)sÚTestDataFrameShiftzinput_data, output_data)r)Úshape)éçð?cCs\|jdd||ƒ d¡}|tk    r@||tt|ƒƒtdƒdd}n ||dd}t ||¡dS)NF)ÚwriteéÚfloat64)ÚindexÚcolumnsÚdtype©r)ZsetflagsÚshiftrÚrangeÚlenÚtmÚ assert_equal)ÚselfZ
input_dataZ output_dataÚframe_or_seriesÚresultÚexpected©rú\d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/frame/methods/test_shift.pyÚtest_shift_non_writable_arrays 
ü z0TestDataFrameShift.test_shift_non_writable_arraycCsz|tj d¡tddddd}|jddd}|jjddd}t |j|¡|jdd    d}|jt     d
¡}t |j|¡dS) Néú1/1/2000ÚH©ÚperiodsÚfreq©rrZ5T©r%Z4Hé)
ÚnpÚrandomÚrandnrrrrÚassert_index_equalrZHour)rrÚtsrZ    exp_indexrrrÚtest_shift_mismatched_freq*s
ÿz-TestDataFrameShift.test_shift_mismatched_freqÚobjr z1/1/2011ér"r#Z2017©r$r&Ú
shift_sizerrr cCs&|tk    r| ¡}| |¡|k    s"t‚dS©N)rÚto_framerÚAssertionError)rr/r2rrrrÚtest_shift_always_copy8s z)TestDataFrameShift.test_shift_always_copyc    Cs¾ttdƒƒ}tjtdd|jdgdW5QRX| ¡}tjtdd|jdt d¡dW5QRX|     t
¡}|jdid}|diks’t ‚| ¡}|jdid}|j diksºt ‚dS)Nézfill_value must be a scalar©Úmatchr©Ú
fill_valuer)rr) rrÚpytestÚraisesÚ
ValueErrorrr4r)ÚarangeÚastypeÚobjectr5Úiloc)rÚserÚdfZobj_serrZobj_dfrrrÚ!test_shift_object_non_scalar_fillGs 
z4TestDataFrameShift.test_shift_object_non_scalar_fillcCs<t ||¡ t¡}| d¡}| t¡ d¡}t ||¡dS)Nr)rÚget_objr@ÚintrÚfloatr)rÚdatetime_framerr-ÚshiftedrrrrÚtest_shift_intYs
z!TestDataFrameShift.test_shift_intrÚint32Úint64c    Csbtddd}tjd|d}|||d}|d}|j|d}|tjdddd    g|d}t ||¡dS)
Nz
2000-01-01r r1rr&rrr r7)rr)r?rÚnanrr)    rrrrZarrÚs1ÚprrrrrÚtest_shift_32bit_take_s   z(TestDataFrameShift.test_shift_32bit_taker$r7r(cCsP|t|ƒtd|ddd}| dd¡}|t|ƒtd|ddd}t ||¡dS)Nz2016-1-1 00:00:00r"r#r&rZ2Hz2016-1-1 02:00:00)rrrrr)rr$rr/rrrrrÚtest_shift_preserve_freqstrks þ  þz.TestDataFrameShift.test_shift_preserve_freqstrcCsâtddddd}||ƒ}| d¡}t ||¡t |¡dks@t‚| d¡}tg| t¡j     
¡dd    …}||ƒ}t ||¡t |¡dksŽt‚| d
¡}| t¡j     
¡d d…ttg}||ƒ}t ||¡t |¡dksÞt‚dS) Nú
2016-11-06r"é
ú
US/Eastern©r%r$Útzrúdatetime64[ns, US/Eastern]ré    éþÿÿÿr ) rrrrÚ    get_dtyper5rr@rAÚvaluesÚtolist)rrÚdatesr/ÚresZexp_valsÚexprrrÚtest_shift_dst{s
 
 
  z!TestDataFrameShift.test_shift_dstÚexrTiöÿÿÿéiìÿÿÿcCsVtddddd}||ƒ}| |¡}|tgddd}t ||¡t |¡dksRt‚dS)NrSr"rTrUrVrXr)rrrrrr[r5)rrrbr^r/r_r`rrrÚtest_shift_dst_beyonds 
 z(TestDataFrameShift.test_shift_dst_beyondcCs&t ||¡}| d¡}t ||¡dS©Nr)rrFrr)rrIrr/Ú    unshiftedrrrÚtest_shift_by_zerošs 
z%TestDataFrameShift.test_shift_by_zerocCsÌ|d}| d¡}t |j|j¡| d¡}t |d|¡| d¡}t |j|j¡| d¡}t |d|¡| d¡ d¡}t | ¡j|jdd…¡| d¡ d¡}t | ¡j|jdd…¡dS)NÚAr éûÿÿÿ)rrr,rÚassert_series_equalÚassert_numpy_array_equalÚdropnar\)rrIrCrJZ shifted_serrfZ unshifted_serrrrÚ
test_shift s 
 
 
 
 ÿzTestDataFrameShift.test_shiftc
CsÜt ||¡}t ¡}|jd|d}t|ƒt|ƒks6t‚|jd|d}t ||¡|jddd}t ||¡|jd|d}t ||¡|jd}||d}    |t    krÀtj
|  |¡|  |    ¡ddnt  |j ||j |    ¡dS)Nr r'riÚBrF)Z check_names)rrFrÚBDayrrr5rrrrjÚxsZassert_almost_equalÚat)
rrIrr/ÚoffsetrJrfÚshifted2ÚdZ    shifted_drrrÚtest_shift_by_offset¸s    
 z'TestDataFrameShift.test_shift_by_offsetc
    Cs@t ¡}t ||¡}| d¡}| d¡}t |j|j¡t |j|j¡|tkr‚t |jdd…df     ¡j
|jdd…dfj
¡nt |     ¡j
|j
dd…¡| dd¡}| dt   ¡¡}t  ||¡t  || dd¡¡d}tjt|d|jddW5QRX|jddd}t  ||¡|jdt   ¡d}    t  |    |¡dS)    Nréÿÿÿÿrrnzdoes not match PeriodIndex freqr8ÚDr')rÚmakePeriodFramerFrr,rrrkrBrlr\rrorr<r=r>)
rrÚpsrJrfrsÚshifted3ÚmsgZshifted4Zshifted5rrrÚtest_shift_with_periodindexÏs. 
 
ÿ   z.TestDataFrameShift.test_shift_with_periodindexcCsfttj dd¡ƒ}tjttj|jdgd|jdd…dd…fgddd}|j    ddd    }t
  ||¡dS)
NrTr r©rrrvTr©Z ignore_indexÚaxis©r© rr)r*ÚrandÚpdÚconcatrNrrBrrÚassert_frame_equal©rrDrrrrrÚtest_shift_other_axisïs(ýz(TestDataFrameShift.test_shift_other_axiscCsfttj dd¡ƒ}tjttj|jdgd|jdd…dd…fgddd}|j    dd    d
}t
  ||¡dS) NrTr rr}rvTrr~rr€rr†rrrÚtest_shift_named_axisûs(ýz(TestDataFrameShift.test_shift_named_axiscCsR|j}t ¡}|jd|dd}t|ƒt|ƒks2t‚|jd|dd}t ||¡dS)Nr r)r%rri)ÚTrrorrr5rr)rrIr/rrrJrfrrrÚtest_shift_other_axis_with_freqs z2TestDataFrameShift.test_shift_other_axis_with_freqcCsZtddgddgdœƒ}| d¡}ttjtjtjgddggtdddgd}t ||¡dS)    NTF)ÚhighÚlowrrr‹rŒ©r)rrr)ÚarrayrNrArr…)rrDÚrsÚxprrrÚtest_shift_bools
þz"TestDataFrameShift.test_shift_boolcCsD|ddddgdd}| d¡ d¡}t |jdd…| ¡¡d    d
„}||ƒ}| d¡}t |j|j¡t ||ƒj    dd…dk¡sˆt
‚t |j    dd…||ƒj    dd…k¡s²t
‚| d ¡}t |j|j¡t ||ƒj    d d…dk¡sìt
‚t |j    d d…||ƒj    dd …k¡st
‚t |j ||ƒj ¡t |j ||ƒj ¡dS) NÚaÚbÚcrtÚcategoryrrrvcSs |jjdSre)Ú_mgrÚarrays)ZndframerrrÚget_cat_values szBTestDataFrameShift.test_shift_categorical1.<locals>.get_cat_valuesrZr ) rrrrBrlr,rr)ÚallÚcodesr5Ú
categories)rrr/Úrtr˜ÚcatZsp1Zsn2rrrÚtest_shift_categorical1s
 *
 ,z*TestDataFrameShift.test_shift_categorical1cCsftdddgdd}tdddgdd}t||d    œƒ}| d
¡}t| d
¡| d
¡d    œƒ}t ||¡dS) Nr’r“r”r•rrhrnÚC)ZoneZtwor)rrrrr…)rrOÚs2rDrrrrrÚtest_shift_categorical4s 
z)TestDataFrameShift.test_shift_categoricalc    Cs‚|ddddgdd}|jddd}|tjddddgddddgd    d
ƒ}t ||¡d }tjt|d |jdd dW5QRXdS)Nr’r“r”rtr•rrr:F)r›Zorderedz9Cannot setitem on a Categorical with a new category \(f\)r8Úf)rrƒZ Categoricalrrr<r=Ú    TypeError)rrr-r_rr{rrrÚ!test_shift_categorical_fill_value=s
 
ÿÿ z4TestDataFrameShift.test_shift_categorical_fill_valuecCs2tdddd}|ddddd    g|d
}|d ddddg|d
}|jd d d }t ||¡|d d dddg|d
}|jdd d }t ||¡|d ddgƒ}|jddd }t |¡t |¡ks¸t‚|d ddddg|d
}|dd dddg|d
}|jd dd }t ||¡|ddd ddg|d
}|jddd }t ||¡dS)Nr!r r"r#r g@g@g@g@r&grr:r r7rr()rrrrr[r5)rrZdtir-r`rr_r/rrrÚtest_shift_fill_valueLs$   z(TestDataFrameShift.test_shift_fill_valuecCs&tdgiƒ}| d¡}t ||¡dS)NÚfoorv)rrrr…)rrDrrrrÚtest_shift_emptyhs 
z#TestDataFrameShift.test_shift_emptycCsðttdƒƒdgddddddgg}tj dd¡}g}|D]`}t| ¡|d}tdƒD].}|jdd…|f |d¡|jdd…|f<qTtdƒ|_    | 
|¡q8|d  ¡  ¡}t  |ttddƒdd    ¡t  |d|d¡t  |d|d¡dS)
Nr rr rcrrérMr)Úlistrr)r*r+rÚcopyrBrrÚappendZisnaÚsumrrjrr…)rZ column_listsÚdatarJrrDÚsZnullsrrrÚtest_shift_duplicate_columnsos" ,
 z/TestDataFrameShift.test_shift_duplicate_columnscCs@ttjjdddƒ}ttjjdddƒ}tj||gdd}|sRt|jjƒdksRt    ‚|j
ddd}|j ddd    ddgdd}|  d
d „¡}tj |jdd…dd…f<|j|_t ||¡tj||gdd}|sÜt|jjƒdksÜt    ‚|j
d dd}|j dd dddgdd}|  dd „¡}tj |jdd…d d…f<|j|_t ||¡dS)Néè©r r7©Úsize©r r rr€r rvrcSs0|jt|jdƒdd dddœ¡j|jddS)Nrr€rH)rr©Zset_axisrr
r@r©rDrrrÚ<lambda>“s
ÿþzETestDataFrameShift.test_shift_axis1_multiple_blocks.<locals>.<lambda>rZr7r(cSs0|jt|jdƒdd dddœ¡j|jddS)Nrr€rH)r7r(rµr¶rrrr·§s
ÿþ)rr)r*Úrandintrƒr„rr–Úblocksr5rÚtakeÚpiperNrBrrr…)rZusing_array_managerÚdf1Údf2Údf3rrrrrÚ test_shift_axis1_multiple_blocks…s0ÿ ÿz3TestDataFrameShift.test_shift_axis1_multiple_blockscCszttjjdddƒ}ttjjdddƒ}tj|jdd…dd…f|jdd…dd…fgdd}|jd    dt d
¡d }t    |j
j ƒd    ksˆt ‚|j d d d
dgdd}t d
¡|jdd…dd    …f<|j|_t ||¡tj|jdd…dd…f|jdd…dd…fgdd}|jd dt d
¡d }t    |j
j ƒd    ks0t ‚|j d    dd d gdd}t d
¡|jdd…d d…f<|j|_t ||¡dS)Nr°r±r²r´r(rr7r€r r©rr;rvrZ)rr)r*r¸rƒr„rBrÚint_rr–r¹r5rºrrr…)rr¼r½r¾rrrrrÚ.test_shift_axis1_multiple_blocks_with_int_fill°s 6 6zATestDataFrameShift.test_shift_axis1_multiple_blocks_with_int_fillcCstt ¡}t ||¡}|jddd}|jddd}t ||¡|jdd}t ||¡|jt ¡d}t ||¡dS)NrÚinferr'rvrn)rrxrFrrrro)rrryrJrfrsrzrrrÚ'test_period_index_frame_shift_with_freqÊs    z:TestDataFrameShift.test_period_index_frame_shift_with_freqc    CsÎt ||¡}|jddd}|jddd}t ||¡|j|jjd}t ||¡t|jtt     
|j¡ƒ|j d}t ||¡}|jddd}|jddd}|j  d¡|_t ||¡|jddd}t ||¡dS)NrrÃr'rvr) rrFrrrr%rr\rr)ZasarrayrZ
_with_freq)    rrIrÚdtobjrJrfrsZ inferred_tsrrrrÚ#test_datetime_frame_shift_with_freqØs$   ý  z6TestDataFrameShift.test_datetime_frame_shift_with_freqc    CsBt ¡}t ||¡}d}tjt|d|jddW5QRXdS)Nz.Given freq M does not match PeriodIndex freq Br8ÚMr')rrxrFr<r=r>r)rrryr{rrrÚ-test_period_index_frame_shift_with_freq_errorïs
 z@TestDataFrameShift.test_period_index_frame_shift_with_freq_errorc    CsJt ||¡}|jdddg}d}tjt|d|jddW5QRXdS)Nrr éz6Freq was not set in the index hence cannot be inferredr8rÃr')rrFrBr<r=r>r)rrIrrÅZno_freqr{rrrÚ)test_datetime_frame_shift_with_freq_errorös
 z<TestDataFrameShift.test_datetime_frame_shift_with_freq_errorc    Cstt d¡t d¡gƒ}tjtdd|jdddW5QRX| ¡}tjtdd|jdddW5QRXt||dœƒ}|     ¡|jdddd    }tddg|d
dœƒ}t
  ||¡td
|iƒ}||d <t |j jƒd ksàt‚|jdddd    }t
  ||¡dS) Nú
2020-01-01z
2020-01-02zvalue should be ar8rrr:©rhrnrÀrhrnr )rrƒÚ    Timestampr<r=r£rr4rÚ_consolidate_inplacerr…rr–r—r5)rrCrDr½rrr¾rrrÚ)test_shift_dt64values_int_fill_deprecatedÿs   z<TestDataFrameShift.test_shift_dt64values_int_fill_deprecatedÚas_catTz1_can_hold_element incorrectly always returns True)Úreason)ZmarksFÚvalsrËz
US/Pacific)r$rWrwz    2020 DaysZInt64rZFloat32cCs
t|jƒSr3)Ústrr)Úxrrrr·:ózTestDataFrameShift.<lambda>)Úidsc    CsÞt|ƒ}|r| d¡}td|iƒ}|jdddd}tdddgiƒ}t ||¡t||dœƒ}| ¡|jdddd}t|dddgdœƒ}t ||¡td|iƒ}||d<t|jj    ƒd    ks¾t
‚|jdddd}t ||¡dS)
Nr•rhrvrr¦rÀrÌrnr ) rr@rrrr…rÎrr–r—r5)    rrÒrÐrCrDrrr½r¾rrrÚ(test_shift_dt64values_axis1_invalid_fills"%
    z;TestDataFrameShift.test_shift_dt64values_axis1_invalid_fillcCsÎtdddgƒ}tddgddgdd    gd
œ|dd …|d }|jdd }ttjtjgddgddgd
œ|dd …|d }t ||¡|jddd }ttjtjgtjtjgddgd
œ|dd …|d }t ||¡dS)Nr’r“r”rr7r r(r r¨)r’r“r”rvr}r€)rrrr)rNrr…)rÚcirDrrrrrÚ$test_shift_axis1_categorical_columnsVs(
ÿ 
ÿ 
ýz7TestDataFrameShift.test_shift_axis1_categorical_columnscCsXttj dd¡ƒ}|jdddd}|tj}t ||¡|jdddd}t ||¡dS)Nr r7r¨rrÀiúÿÿÿ)rr)r*r‚rrNrr…)rrDrJrrsrrrÚtest_shift_axis1_many_periodsls 
 z0TestDataFrameShift.test_shift_axis1_many_periodsN)8Ú__name__Ú
__module__Ú __qualname__r<ÚmarkZ parametrizer)ÚemptyZonesrNrr.rr?rrr6rErKrQrRrardrgrmrur|r‡rˆrŠr‘ržr¡r¤r¥r§r¯r¿ÚtdZ&skip_array_manager_not_yet_implementedrÂrÄrÆrÈrÊrÏÚparamZxfailrƒZ period_rangeZtimedelta_rangeZinterval_rangerŽr×rÙrÚrrrrr    s¤$þ
 ýþ 
 
 
       
        +
    ÿþùþ 
 ÿþÿþôë r    )Únumpyr)r<Zpandas.util._test_decoratorsÚutilZ_test_decoratorsràZpandasrƒrrrrrrrZpandas._testingZ_testingrr    rrrrÚ<module>s $