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
U
¬ý°ds8ã @sddlZddlZddlmmZddlZddlm    Z    m
Z
m Z m Z m Z mZmZddlmZddlmZeje    dddgƒe    dddgƒfe    d    d
d gƒe    d
d d gƒfed ddedddfedddedddfeddddeddddfgdd„ddd„ƒZGdd„dƒZGdd„dƒZGdd„dƒZdd „ZGd!d"„d"ƒZe d#¡Zed$d%„ƒZed&d'„ƒZed(d)„ƒZ eej!j"d*d    d
d d ged+dd,d-gd.d/gd0d1d2„ƒƒZ#eej!j"d*d    d
d d ged+dd,d-gd.d/gd0d3d4„ƒƒZ$ed5d6„ƒZ%ej! "d7d8d9d:g¡d;d<„ƒZ&dS)=éN)ÚIndexÚIntervalÚ IntervalIndexÚ    TimedeltaÚ    TimestampÚ
date_rangeÚtimedelta_range)Ú IntervalArrayéééééççð?ç@ç@ú0 days©Úperiodsú1 dayZ20170101Z20170102ú
US/Eastern©rÚtzcCst|djƒS)Nr)ÚstrÚdtype)Úx©rúad:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/arrays/interval/test_interval.pyÚ<lambda>ór)ÚparamsÚidscCs|jS)zC
    Fixture for building an IntervalArray from various dtypes
    )Úparam)ÚrequestrrrÚleft_right_dtypessr%c @sheZdZej ddedƒedƒfedƒedƒfedddedddfg¡ej d    ee    g¡d
d „ƒƒZ
d S) ÚTestAttributesz left, right©rr rrz
2018-01-01z
2018-01-02r)rÚ constructorcCsH||f||ftjg}t |dkddg¡}|j||dj}t ||¡dS)NÚbothF©Úclosed)ÚnpÚnanÚarrayÚ from_tuplesZis_emptyÚtmZassert_numpy_array_equal)Úselfr(ÚleftÚrightr+ZtuplesÚexpectedÚresultrrrÚ test_is_empty)szTestAttributes.test_is_emptyN) Ú__name__Ú
__module__Ú __qualname__ÚpytestÚmarkÚ parametrizerrr    rr6rrrrr&(s
 
þüþ r&c    @speZdZej dddddg¡dd„ƒZej ded    d
dd ej    d
d d dgdd g¡dd„ƒZ
dd„Z dd„Z dS)Ú TestMethodsÚ
new_closedr2r3r)ÚneithercCs>tjtdƒ|d}| |¡}tjtdƒ|d}t ||¡dS)Né
r*)r    Ú from_breaksÚrangeÚ
set_closedr0Úassert_extension_array_equal)r1r+r>r.r5r4rrrÚtest_set_closed?s
zTestMethods.test_set_closedÚotherrr r*r
r r c    Csˆt tjddddgdd¡}t dddg¡}d    }tjt|d
|j     ||¡W5QRX|j
||d }|  t ¡ 
||¡}t  ||¡dS) Nr r
r r r2r*TFz+'value.closed' is 'right', expected 'left'.©Úmatch)rF)ÚpdZSeriesr    rAr,r.r:ÚraisesÚ
ValueErrorZ_whereÚwhereÚastypeÚobjectr0Zassert_series_equal)r1rFZserÚmaskrHÚresr4rrrÚtest_where_raisesGs    zTestMethods.test_where_raisesc    Cslt dddg¡}| ¡}t tjtjfdg¡}t ||¡d}tj    t
|d|jdt j dW5QRXdS)Nr r
r )rrú=can only insert Interval objects and NA into an IntervalArrayrG©Z
fill_value) r    rAÚshiftr/r,r-r0Úassert_interval_array_equalr:rJÚ    TypeErrorrIÚNaT©r1Úar5r4ÚmsgrrrÚ
test_shiftZs zTestMethods.test_shiftc    Csžt tddd¡}| d¡}|jdddgdd}t ||¡| d¡}|jd    ddgdd}t ||¡d
}tjt    |d |jd    t
  d d ¡dW5QRXdS)NÚ2000r rr
éÿÿÿÿrT)Z
allow_fillr rRrGrWÚnsrS) r    rArrTÚtaker0rUr:rJrVr,Z timedelta64rXrrrÚtest_shift_datetimefs
 
 zTestMethods.test_shift_datetimeN) r7r8r9r:r;r<rErr    rArQr[r`rrrrr=>s
 þþ
 r=c@seZdZdd„Zdd„ZdS)Ú TestSetitemc        Csú|\}}|jdd}|jdd}t ||¡}|jjjdkrbd}tjt|dt    j
|d<W5QRX|jjjdkrœd}tjt|dt j |d<W5QRXdSt j |d<t|jgt|d    d…ƒƒ}t|jgt|d    d…ƒƒ}t ||¡}t ||¡dS)
NT©Údeep)ÚmÚMz='value' should be an interval type, got <.*NaTType'> instead.rGr)ÚiÚuz4Cannot set float NaN to integer-backed IntervalArrayr )Úcopyr    Ú from_arraysrÚsubtypeÚkindr:rJrVrIrWr,ÚNaNr-rZ    _na_valueÚlistr0rD)    r1r%r2r3r5rZZ expected_leftZexpected_rightr4rrrÚ test_set_naws$   
 zTestSetitem.test_set_nac    Cs’t tdƒ¡}| ¡}| d¡}d}tjt|d|d|d<W5QRXtjt|d|dd…|dd…<W5QRXtjt|d|dd…|dd…<W5QRXtjt|d|ddd…|dd…<W5QRXtjt|d t|ddd…ƒ|dd…<W5QRXtjt|d"|ddd…     t
¡|dd…<W5QRXtjt|d"|ddd…     d¡|dd…<W5QRXg|dd…<t   ||¡dS)    Nr r)z*'value.closed' is 'both', expected 'right'rGrr r]Úcategory) r    rArBrhrCr:rJrKrmrMrNr0rU)r1ÚarrÚorigrFrZrrrÚtest_setitem_mismatched_closed‘s(
 $&& z*TestSetitem.test_setitem_mismatched_closedN)r7r8r9rnrrrrrrravsracCs*t ddg¡}t|ƒ}d}||ks&t‚dS)Nr')r r
zI<IntervalArray>
[(0, 1], (1, 2]]
Length: 2, dtype: interval[int64, right])r    r/ÚreprÚAssertionError)rpr5r4rrrÚ    test_repr«s
ÿruc@seZdZdd„Zdd„ZdS)ÚTestReductionsc
CsÚ|\}}|jdd}|jdd}t ||¡}d}dD]P}tjt|d|j|dW5QRXtjt|d|j|dW5QRXq4d}tjt|d|jddW5QRXtjt|d|jddW5QRXdS)    NTrbz2`axis` must be fewer than the number of dimensions)éþÿÿÿr rG)Úaxisz'>=' not supported betweenZfoo)    rhr    rir:rJrKÚminÚmaxrV)r1r%r2r3rprZrxrrrÚtest_min_max_invalid_axis¸s   z(TestReductions.test_min_max_invalid_axisc Cs”|\}}|jdd}|jdd}t ||¡}|js6t‚t|ƒjsDt‚|d}|d}t t|ƒ¡}tj     
|¡|  |¡}|  dtj ¡}    ||ƒ}||    ƒ}    dD]\}
|j|
d} | |ks¶t‚t| ƒt|ƒksÊt‚|j|
d} | |ksât‚t| ƒt|ƒksšt‚qš|    jdd} t | ¡st‚|    jdd} t | ¡s0t‚|    jdd} | |ksJt‚t| ƒt|ƒks`t‚|    jdd} | |kszt‚t| ƒt|ƒkst‚dS)    NTrbrr]r
)TF)ÚskipnaF)rhr    riZis_monotonic_increasingrtrr,ZarangeÚlenÚrandomÚshuffler_Úinsertr-ryÚtyperzÚisnan) r1r%Zindex_or_series_or_arrayr2r3rpZMINÚMAXZindexerZarr_nar|rPrrrÚ test_min_maxËs>   
 
        zTestReductions.test_min_maxN)r7r8r9r{r„rrrrrv·srvÚpyarrowcCsddl}ddlm}|| ¡dƒ}|| ¡dƒ}|| ¡dƒ}|jdksLt‚||ksXt‚||ksdt‚t|ƒt|ƒksxt‚t|ƒt|ƒksŒt‚dS)Nr©ÚArrowIntervalTyper2r3)r…Ú(pandas.core.arrays.arrow.extension_typesr‡Úint64r+rtÚhash)Úpar‡Úp1Úp2Zp3rrrÚtest_arrow_extension_typeÿs   rŽc    Cs\ddl}ddlm}tjddddj}| |¡}t|j|ƒs@t‚|jj    |j    ksRt‚|jj
|  ¡ksft‚|j   d¡ |jdddd    gd
d ¡sŽt‚|j   d ¡ |jddd    dgd
d ¡s¶t‚| d d„tddƒDƒ¡}|j  |¡sàt‚|j||jd }| |¡sþt‚tjtdd|j|dd W5QRXtjtdd|j||| ¡dƒd W5QRXdS)Nrr†r r)Úfreqr2r
r r r‰©rr3cSsg|]}||ddœ‘qS)r ©r2r3r)Ú.0rfrrrÚ
<listcomp>sz$test_arrow_array.<locals>.<listcomp>z&Not supported to convert IntervalArrayrGÚfloat64)r…rˆr‡rIZinterval_ranger.Ú
isinstancerrtr+rjr‰ÚstorageÚfieldÚequalsrBr:rJrVr”)r‹r‡Z    intervalsr5r4rrrÚtest_arrow_arrays" 
((r™cCsddl}ddlm}t ddddg¡}d|d<| |¡}t|j|ƒsHt‚|jj    |j    ksZt‚|jj
|  ¡ksnt‚|jdddgdd    }|jdddgdd    }|j   d
¡ |¡s¬t‚|j   d ¡ |¡sÂt‚ddd œddd œddd œg}|jj|t d dd g¡d}|j  |¡s t‚dS)Nrr†rrrrr r”rr2r3r‘FT)rO)r…rˆr‡r    rAr.r•rrtr+rjr”r–r—r˜Z StructArrayZ from_pandasr,)r‹r‡rpr5r2r3Úvalsr4rrrÚtest_arrow_array_missing.s$ 
ýr›ÚbreaksZ2017ÚD)rrÚfloatzdatetime64[ns])r"c    Csöddl}ddlm}t |¡}d|d<t d|i¡}| |¡}t|     d¡j
|ƒsTt ‚|  ¡}t|dj tjƒsrt ‚t ||¡| ||g¡}|  ¡}tj||gdd}t ||¡|j|jg| d¡j
dg|jd}|  ¡}t ||dd…¡dS)    Nrr†r rYT)Z ignore_indexr)Úschema)r…rˆr‡r    rArIÚ    DataFrameÚtabler•r—rrtÚ    to_pandasrÚ IntervalDtyper0Úassert_frame_equalZ concat_tablesÚconcatÚ chunked_arrayÚcolumnrŸ)    rœr‹r‡rpÚdfr¡r5Ztable2r4rrrÚtest_arrow_table_roundtripLs( 
 
  ÿr©cCsxddl}t |¡}d|d<t d|i¡}| |¡}| ¡}|jjdksJt    ‚| 
¡}t |dj tj ƒsht    ‚t ||¡dS)Nrr rY)r…r    rArIr r¡Zreplace_schema_metadatarŸÚmetadatartr¢r•rr£r0r¤)rœr‹rpr¨r¡r5rrrÚ+test_arrow_table_roundtrip_without_metadatans
 
r«cCsŒddl}| dddœdddœg¡}tjt d¡dd}| |¡}tjtjdddgdddd}t     
||¡| |  |g¡¡}t     
||¡dS)    Nrr r‘r
r‰r?r*)r) r…r.rIr£r,rZ__from_arrow__r    rAr0rDr¦)r‹rprr5r4rrrÚ%test_from_arrow_from_raw_struct_array…s
ÿ r¬ÚtimezoneÚUTCz
US/PacificÚGMTcCsjtdd|d}d|›d|›d}tjddgdd    g||d
}tj|dd …|d d…|d }t ||¡dS)NZ2022r rzinterval[datetime64[ns, z], ú]z
2022-01-01z
2022-01-02z
2022-01-03)r+rr]r r*)rrrir0Zassert_index_equal)r­Zinclusive_endpoints_fixtureÚdatesrr5r4rrrÚtest_interval_index_subtype™sü
 
ÿr²)'Únumpyr,r:Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasrIrrrrrrrZpandas._testingZ_testingr0Zpandas.core.arraysr    Zfixturer%r&r=rarurvZ
skip_if_noZ pyarrow_skiprŽr™r›r;r<r©r«r¬r²rrrrÚ<module>s`$        þû
õ
85 E
 
 
 
ý ý