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
U
­ý°d’>ã@s²ddlmZmZddlZddlZddlZddlmZddlm    m
Z ddl Z ddl mZmZmZmZmZmZddlmZddlmZmZe jZGdd„dƒZdd    „Zd
d „ZdS) é)ÚdatetimeÚ    timedeltaN)ÚPerformanceWarning)Ú CategoricalÚ    DataFrameÚSeriesÚ    TimestampÚ
date_rangeÚoption_context)Ú NumericBlockÚ ObjectBlockc@s”eZdZdd„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#S)$ÚTestDataFrameBlockInternalscCsxtdddd}|d}td|iƒ}|djjdks6t‚tj|jd<|djjdksVt‚|jdksdt‚|d|kstt‚dS)    NÚ20130101éú
US/Eastern)ÚperiodsÚtzéÚB)rrÚD)r    rZ_valuesÚfreqÚAssertionErrorÚpdZNaTZiloc)ÚselfZdtiÚtsÚdf©rú^d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/frame/test_block_internals.pyÚ,test_setitem_invalidates_datetime_index_freq&s  zHTestDataFrameBlockInternals.test_setitem_invalidates_datetime_index_freqcCsXt|jtd}t|jtd}t ||¡t|jtjd}t|jtjd}t ||¡dS)N©Údtype)rÚ_mgrÚintZ_seriesÚtmÚassert_frame_equalÚnpÚint32)rÚ float_frameZcastedÚexpectedrrrÚtest_cast_internals7s  z/TestDataFrameBlockInternals.test_cast_internalscCsŒd|d<| ¡}t|jjƒdks$t‚| ¡}||k    s8t‚t ||¡d|d<t|jjƒdks`t‚| ¡}|dkstt‚t|jjƒdksˆt‚dS)Nç@ÚErg @ÚFr)Z _consolidateÚlenr!Úblocksrr#r$Z_consolidate_inplace)rr'Z consolidatedZreconsZ return_valuerrrÚtest_consolidate@s   z,TestDataFrameBlockInternals.test_consolidatecCs4| ¡}ttdƒtdƒƒD]}t|ƒ|t|ƒ<qdS)NÚAÚZ)ÚcopyÚrangeÚordÚchr)rr'ÚframeÚletterrrrÚtest_consolidate_inplaceQsz4TestDataFrameBlockInternals.test_consolidate_inplacec    Cs¦|rBtjtddd|jd<W5QRX|jddk ¡s>t‚dSd|jd<|jddk ¡sbt‚d|d<|d}d|jd<|jddk ¡r’t‚|dk ¡s¢t‚dS)Nz    read-only©Úmatchér*r+éé)ÚpytestÚraisesÚ
ValueErrorÚvaluesÚallr)rr'Úusing_copy_on_writeÚcolrrrÚtest_modify_valuesXs
 
z.TestDataFrameBlockInternals.test_modify_valuescCs<d|d<|j ¡}d||dk<d||dk<t ||j¡dS)Nr*r+ér)rAr2r#Zassert_almost_equal)rr'r(rrrÚtest_boolean_set_unconsls
 
  z3TestDataFrameBlockInternals.test_boolean_set_unconsc    Cstddgiƒ}|d}tt dgtj¡dd}t ||¡tddgiƒ}|d}tt dgtj¡dd}t ||¡tdtdddƒdgiƒ}|d}tt tdddƒdgtj    ¡dd}t ||¡tdddgiƒ}|d}tt tj
dgtj ¡dd}t ||¡tddd    giƒ}|d}tt dd    gtj ¡dd}t ||¡tdd
d giƒ}|d}tt d
d gtj ¡dd}t ||¡tdd
d giƒ}|d}tt d
d gtj ¡dd}t ||¡tdd
dgiƒ}|d}tt d
dgtj    ¡dd}t ||¡tdddgiƒ}|d}tt dtj
gtj ¡dd}t ||¡tdd
dgiƒ}|d}tt d
tj
gtj ¡dd}t ||¡tdd dddgiƒ}|d}tt d dddgtj    ¡dd}t ||¡tdd dtdddƒdgiƒ}|d}tt d dtdddƒdgtj    ¡dd}t ||¡dS)Nr0lÿÿÿÿ)ÚnameliÕrTgð?rFyð?@rg@g@iÖ) rrr%ZasarrayÚint64r#Úassert_series_equalZuint64rZobject_ÚnanZfloat_Zcomplex_)rrÚresultr(rrrÚtest_constructor_with_convertusl  ÿ         ÿz9TestDataFrameBlockInternals.test_constructor_with_convertcCsðtdddƒtjtdddƒgtdddƒtdddƒtdddƒgg}t|ƒ}|j}tddiƒ}t ¡|d<tddd    |d
<|djd ks†t    ‚|d
jd ks˜t    ‚|j}tt d ¡gdt d¡t d¡t d¡gt
dƒddd
gd}t   ||¡dS)NéÑrr;rFiÐrzdatetime64[ns]r)ÚdaysÚsecondsrúM8[ns]zm8[ns]Úfloat64éÚobjectztimedelta64[ns]ÚABCDZfoo©Úindex) rr%rKrÚdtypesrÚnowrr rÚlistr#rJ)rÚfloat_string_frameÚdatarrLr(rrrÚtest_construction_with_mixed¸s* þ  ýÿù    z8TestDataFrameBlockInternals.test_construction_with_mixedcCsîtjdddgdd}ttdƒd}||d<tdtjddd    d
itdƒd}t |d ¡|¡tt    d ƒt
d dd   d ¡dœtdƒd}|j ddks˜t ‚|j dd ksªt ‚ttdƒd}t d¡|d<tjdddgdd|d<t ||¡dS)NrrFrztimedelta64[s]rrVr0z00:00:01Ús)rrr)rzM8[s])Údt1Údt2r_rQr`z
2013-01-01z
2013-01-02z
2013-01-03z datetime64[D])r%Úarrayrr3rZtimedelta_ranger#Zassert_numpy_array_equalZto_numpyrr    ÚastyperXrZ
datetime64r$)rÚarrrr(rrrÚ"test_construction_with_conversions×s.ÿþúÿ
z>TestDataFrameBlockInternals.test_construction_with_conversionsc    Cs¢dd„}d}tjt|d|dddgƒW5QRXtjtdd|d    ƒW5QRXtjtdd|d
ƒW5QRXd }tjt|d|d ƒW5QRXdS) NcSs2tt tdddƒddfd¡ƒ}t|dddg|d    S)
NrNrZaaéé    r0rÚC)r\Úcolumnsr )rZÚ    itertoolsÚrepeatrr)r r\rrrÚfüszGTestDataFrameBlockInternals.test_constructor_compound_dtypes.<locals>.fz@compound dtypes are not implemented in the DataFrame constructorr9)r0z datetime64[h])rÚstr)rgr&zargument must berIrRzD^Unknown datetime string format, unable to parse: aa, at position 0$rQ)r>r?ÚNotImplementedErrorÚ    TypeErrorr@)rrkÚmsgrrrÚ test_constructor_compound_dtypesøsz<TestDataFrameBlockInternals.test_constructor_compound_dtypescCsPtƒ}t |¡}t ||¡|jjt |¡}t|ƒt |¡}t ||¡dS©N)rr#Zround_trip_pickler$r!ÚndimÚrepr)rr[Ztimezone_frameZ empty_frameZ    unpickledrrrÚ test_pickles
 
 
z'TestDataFrameBlockInternals.test_picklec    CsÎtt dddddg¡t dddddg¡dddd    dgd
œƒ}|j}|j|_| d ¡}| d ¡}d |j_|j    }|j|_| d ¡}| d ¡}d|j_|j|_|j|_    t
  t  |j¡|j¡t
  t  |j    ¡|j¡dS)Nz2012-06-21 00:00z2012-06-23 07:00z2012-06-23 16:30z2012-06-25 08:00z2012-06-26 12:00z2012-06-27 08:00éMéAr)ÚstartingÚendingZmeasurerÚUTCrwrx) rrÚ to_datetimerwrArWZ tz_localizeZ
tz_convertrHrxr#Zassert_index_equalZ DatetimeIndex)rrZ ser_startingZ
ser_endingrrrÚtest_consolidate_datetime64 sDûÿ    ûÿ     íÿ
 
 
 
z7TestDataFrameBlockInternals.test_consolidate_datetime64cCs|jr
t‚|jst‚dSrq)Z_is_mixed_typer)rr'r[rrrÚtest_is_mixed_typeMs
z.TestDataFrameBlockInternals.test_is_mixed_typec
CsÎtddƒºttj d¡ddd}t|ƒ|d d¡|d<|rdt ¡tj|dd    <W5QRXntj|dd    <t|ƒ|     ¡}|d     ¡}|rªt
  |dd    ¡rÀt ‚nt
  |dd    ¡sÀt ‚W5QRXdS)
NZchained_assignment)rSrS)ÚaÚbÚcÚd)ÚerkÚgÚh)rWrhrrTr‚r) r
rr%Úrandomrsrbr#Zraises_chained_assignment_errorÚNaNÚsumrÚisnar)rrCÚYrLÚexprrrÚ test_stale_cached_series_bug_473Qs$ 
ý
 z<TestDataFrameBlockInternals.test_stale_cached_series_bug_473c
    Csîtddgd}tj|d<i}t t¡dt|jƒD]R\}}tddƒD]>}||krbd||<tj||<|rv||j    ||f<qD||||<qDq2W5QRXd}t
|j    t   ||¡|gfƒ}t
|j    t   ||¡|gfƒ}    ||    krädksênt ‚dS)NrrrVédéÈ)rr%rKr#Zassert_produces_warningrÚ    enumeraterWr3Úlocr-rr‡r)
rrCrZwasColÚiÚdtrDZmyidÚfirstÚsecondrrrÚ$test_strange_column_corruption_issuehs 
 
z@TestDataFrameBlockInternals.test_strange_column_corruption_issuecCsTtdddgƒj}td|iƒ}tddddgiƒ}t ||¡t|jjdtƒsPt    ‚dS)NrrFrr0r)
rrarr#r$Ú
isinstancer!r.r r)rrcrLr(rrrÚ test_constructor_no_pandas_arrays
  z<TestDataFrameBlockInternals.test_constructor_no_pandas_arrayc
CsÂtddddgddddgd    œƒ}tj tjddddgtd
¡|d<tddddgddddgtj tjddddgtd
¡d œƒ}t|djj    d ƒt
ks–t ‚t|djj    d ƒt
ks²t ‚t   ||¡dS) NrrFrrSr}r~rr€)r}r~r)r}r~rr)rrZarraysZ PandasArrayr%rarTÚtyper!r.r rr#r$)rrZdf2rrrÚ!test_add_column_with_pandas_arrayˆs"
 
ýÿz=TestDataFrameBlockInternals.test_add_column_with_pandas_arrayN)Ú__name__Ú
__module__Ú __qualname__rr)r/r8rErGrMr]rdrprtr{r|rŠr“r•r—rrrrr %s"        C!-    r cCsdtdtdddgddiƒ}|djdddt|jjdjtƒsDt‚|s`|     ¡ 
¡ 
¡dks`t‚dS)    Nr}rrFÚcategoryrT)Zinplacer) rrZfillnar”r!r.rArrZisnullr†)rCrrrrÚ+test_update_inplace_sets_valid_block_values˜s
rœcCsˆtƒ}tdgtd|d<tdgtd|d<|ddk||ddkd|jd<tdgdgdœtd}t ||¡|jddks„t‚dS)    Nr}rÚcol1rÚcol2r0)rr)rrž)rrrTÚatr#r$r)rr(rrrÚ$test_nonconsolidated_item_cache_take§s 
 r )rrriÚnumpyr%r>Z pandas.errorsrZpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasrrrrrr    r
Zpandas._testingZ_testingr#Zpandas.core.internalsr r Zskip_array_manager_invalid_testZ
pytestmarkr rœr rrrrÚ<module>s    u