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
Ë
oñúh8ã ó —dZddlZddlZddlZddlmZmZddlm    Z    ddl
m Z m Z m Z ddlZddlmZddlmZddlmZmZddlmZmZmZmZmZmZmZm Z dd    l!m"Z"e«xre     xse Z#ejHjKd
«ejHjKd «ejHjKd «gZ&d „Z'd„Z(d„Z)ejTeeeeeeee eeeg ¬«d„«Z+ejTd„«Z,ejTd„«Z-ejTd„«Z.ejTd„«Z/ejTd„«Z0ejTd„«Z1ejTd„«Z2Gd„de"jf«Z4Gd„de"jj«Z6y)aj
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.
 
The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).
 
Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.
 
éN)ÚIS64Úis_platform_windows)Únp_version_gt2)Úis_float_dtypeÚis_signed_integer_dtypeÚis_unsigned_integer_dtype)Ú BooleanDtype)Ú Float32DtypeÚ Float64Dtype)Ú    Int8DtypeÚ
Int16DtypeÚ
Int32DtypeÚ
Int64DtypeÚ
UInt8DtypeÚ UInt16DtypeÚ UInt32DtypeÚ UInt64Dtype)Úbasez9ignore:invalid value encountered in divide:RuntimeWarningz)ignore:Mean of empty slice:RuntimeWarningz4ignore:overflow encountered in reduce:RuntimeWarningcóª—ttdd««tjgzttdd««ztjgzddgzS)Néé    é
ébécéd)ÚlistÚrangeÚpdÚNA©óúUH:\Change_password\venv_build\Lib\site-packages\pandas/tests/extension/test_masked.pyÚ    make_datar#@sB€Ü ”a˜“ Ó ¤§¡˜wÑ &¬¬e°B¸«mÓ)<Ñ <ÄÇÁ¸wÑ FÈ"ÈcÈÑ RÐRr!có֗ttjddd««tjgzttjddd««ztjgzddgzS)N皙™™™™¹?gÍÌÌÌÌÌì?rgš™™™™™#@gÍÌÌÌÌÌ#@g$@)rÚnpÚarangerrr r!r"Úmake_float_datar(Dsb€ä ŒRY‰Ys˜C Ó %Ó&Ü 5‰5ˆ'ñ    ä
Œry‰y˜˜C Ó%Ó
&ñ    'ô 5‰5ˆ'ñ    ð ˆ+ñ        ðr!cór—ddgdztjgzddgdzztjgzddgzS)NTFéé,)r&Únanr r!r"Úmake_bool_datar-Ns?€Ø %ˆ=˜1Ñ ¤§¡˜xÑ '¨4°¨-¸"Ñ*<Ñ <ÄÇÁ¸xÑ GÈ4ÐQVÈ-Ñ WÐWr!)Úparamscó"—|j«S©N)Úparam)Úrequests r"Údtyper3Rs€ð  =‰=‹?Ðr!có¬—|jdk(r t«}n$|jdk(r t«}n
t«}t    j
||¬«S)NÚfÚb©r3)Úkindr(r-r#rÚarray)r3Údatas  r"r:r:esB€à ‡zzSÒÜÓ ‰Ø    ‰sÒ    ÜÓ‰ä‹{ˆÜ 8‰8D Ô &Ð&r!cóΗ|jdk(r*tjtjd«|¬«Stjtjd«dz|¬«S)Nr6rr7é)r8rr9r&Úonesr7s r"Ú data_for_twosr>psE€à ‡zzSÒ܏x‰xœŸ™ › ¨EÔ2Ð2Ü 8‰8”B—G‘G˜C“L 1Ñ$¨EÔ 2Ð2r!có(—|jdk(r'tjtjdg|¬«S|jdk(r'tjtj
dg|¬«Stjtjdg|¬«S)Nr5r%r7r6Tr©r8rr9rr&r,r7s r"Ú data_missingrAwse€à ‡zzSÒ܏x‰xœŸ™ ˜ ¨EÔ2Ð2Ø    ‰sÒ    Üx‰xœŸ™ ˜¨eÔ4Ð4Ü 8‰8”R—U‘U˜AJ eÔ ,Ð,r!cóԗ|jdk(rtjgd¢|¬«S|jdk(rtjgd¢|¬«Stjgd¢|¬«S)Nr5)r%皙™™™™É?çr7r6)TTF)rr<r)r8rr9r7s r"Údata_for_sortingrE€sN€à ‡zzSÒ܏x‰xš¨uÔ5Ð5Ø    ‰sÒ    Üx‰xÒ+°5Ô9Ð9Ü 8‰8’I UÔ +Ð+r!có.—|jdk(r(tjdtjdg|¬«S|jdk(r(tjdtj
dg|¬«Stjdtjd    g|¬«S)
Nr5r%rDr7r6TFrrr@r7s r"Údata_missing_for_sortingrG‰sm€à ‡zzSÒ܏x‰x˜œbŸe™e SÐ)°Ô7Ð7Ø    ‰sÒ    Üx‰x˜œrŸv™v uÐ-°UÔ;Ð;Ü 8‰8QœŸ™˜qM¨Ô /Ð/r!có—d„S)NcóN—|tjuxr|tjuSr0)rr)ÚxÚys  r"ú<lambda>zna_cmp.<locals>.<lambda>•s€˜œRŸU™U˜
Ò1 q¬B¯E©E z€r!r r r!r"Úna_cmprM’s
€ñ 2Ð1r!c
óė|jdk(rd}d}d}n|jdk(rd}d}|}nd}d    }d
}tj}tj||||||||g|¬ «S) Nr5r%rDrCr6TFrrr<r7)r8rrr9)r3r6ÚaÚcÚnas     r"Údata_for_groupingrR˜sr€à ‡zzSÒØ ˆØ ˆØ ‰Ø    ‰sÒ    Ø ˆØ ˆØ ‰à ˆØ ˆØ ˆä     ‰€BÜ 8‰8Q˜˜2˜r 1 a¨¨AÐ.°eÔ <Ð<r!có8‡—eZdZejj dddg«d„«Zd„Zd„Zde    fd„Z
ˆfd    „Z ˆfd
„Z d e jde    d efd „Zd e jde    defd„Zde    defd„Zd e jde    d efd„Zd e jde    defd„ZˆxZS)ÚTestMaskedArraysÚ    na_actionNÚignorecóê—|jd„|¬«}|jt«k(r"|jdtj
¬«}n|j«}t j||«y)Ncó—|Sr0r )rJs r"rLz+TestMaskedArrays.test_map.<locals>.<lambda>®s€¨A€r!©rUÚfloat64)r3Úna_value)Úmapr3r
Úto_numpyr&r,ÚtmÚassert_numpy_array_equal)ÚselfrArUÚresultÚexpecteds     r"Útest_mapzTestMaskedArrays.test_map¬s^€à×!Ñ!¡+¸Ð!ÓCˆØ × Ñ ¤£Ò /à#×,Ñ,°9ÄrÇvÁvÐ,ÓN‰Hà#×,Ñ,Ó.ˆHÜ
×#Ñ# F¨HÕ5r!có@‡—|dŠ|jˆfd„d¬«}|jjdk(r-tjdt
j dgt¬«}n&tj‰tj‰g«}tj||«y)Nr<có•—‰Sr0r )rJÚzeros €r"rLz<TestMaskedArrays.test_map_na_action_ignore.<locals>.<lambda>¸sø€¸€r!rVrYr6Fr7) r\r3r8r&r9rrÚobjectr,r^r_)r`rGrarbrfs    @r"Útest_map_na_action_ignorez*TestMaskedArrays.test_map_na_action_ignore¶szø€Ø'¨Ñ*ˆØ)×-Ñ-«nÈÐ-ÓQˆØ #× )Ñ )× .Ñ .°#Ò 5Ü—x‘x ¬¯©¨uР5¼VÔD‰Hä—x‘x ¤r§v¡v¨tР4Ó5ˆHÜ
×#Ñ# F¨HÕ5r!cóü—    tj|«}|jdk(r3|j    d«j d«dvrt S|dvrtSyy#t$rtj|«}YŒcwxYw)Nr6Ú_Úr)ÚpowÚtruedivÚfloordiv)Ú__sub__Ú__rsub__)r^Ú    get_dtypeÚAttributeErrorr8ÚstripÚlstripÚNotImplementedErrorÚ    TypeError)r`Úop_nameÚobjÚotherr3s     r"Ú_get_expected_exceptionz(TestMaskedArrays._get_expected_exception¿sz€ð    (Ü—L‘L Ó%ˆEð
:‰:˜Ò ؏}‰}˜SÓ!×(Ñ(¨Ó-Ð1OÑOä*Ð*ØÐ3Ñ3ä Ð ØØøôò    (ä—L‘L Ó'ŠEð    (ús‚AÁA;Á:A;rwcó—tj|«}|}|dvr|jd«S|jdvr‚|dvrkt    j
«5t    j ddt¬«|jtj«}ddd«jd«}|S|j|«}|S|jd    k(rœ|d
vr|jd «}nL|d vrH|j|«}|j|jt«||«}|jd«}|d k(r3t||«|«}    tj||    j«<|S|j|«}|S#1swYŒíxYw)N)ÚeqÚneÚleÚgeÚltÚgtÚbooleanÚiu)Ú __rtruediv__Ú __truediv__Ú__div__rVzDowncasting object dtype arrays)ÚcategoryÚFloat64r6)Ú __floordiv__Ú __rfloordiv__Ú__pow__Ú__rpow__Ú__mod__Ú__rmod__ÚInt8)r…r„rŒ)r^rqÚastyper8ÚwarningsÚcatch_warningsÚfilterwarningsÚ FutureWarningÚfillnar&r,Úget_op_from_nameÚ_combineÚfloatÚgetattrÚisna)
r`rwrxryÚpointwise_resultÚsdtyperbÚfilledÚopras
          r"Ú_cast_pointwise_resultz'TestMaskedArrays._cast_pointwise_resultÐsw€Ü—‘˜cÓ"ˆØ#ˆà Ð:Ñ :Ø—?‘? 9Ó-Ð -à ;‰;˜$Ñ ØÐDÑDÜ×,Ñ,Ó.ñ5Ü×+Ñ+Ø Ø9Ü!.õð
&Ÿ_™_¬R¯V©VÓ4F÷ 5ð"Ÿ=™=¨Ó3ð<ˆð7$Ÿ?™?¨6Ó2ð6ˆð5[‰[˜CÒ Øðñð$Ÿ?™?¨6Ó2‘àÐ;Ñ;ð×*Ñ*¨7Ó3ØŸ=™=¨¯©´EÓ):¸EÀ2ÓFØ#Ÿ?™?¨9Ó5à˜*Ò$à.œ  gÓ.¨uÓ5Ü*,¯&©&˜Ÿ™›Ñ'ðˆð —‘ vÓ.ˆH؈÷K5ð5ús Á<E;Å;Fc󺕗|jjdk(r1tjj    d¬«}|j |«t ‰|||«y)Nr6z‡Inconsistency between floordiv and divmod; we raise for floordiv but not for divmod. This matches what we do for non-masked bool dtype.©Úreason)r3r8ÚpytestÚmarkÚxfailÚ applymarkerÚsuperÚtest_divmod_series_array)r`r:r>r2r¤Ú    __class__s     €r"r¨z)TestMaskedArrays.test_divmod_series_arraysPø€Ø :‰:?‰?˜cÒ !Ü—;‘;×$Ñ$ð)ð%óˆDð
× Ñ  Ô %Ü ‰Ñ(¨¨}Õ=r!có’•—|d«\}}|jjdk(rd|_n t|_t‰||«y)Nr<r6r‚)r3r8Ú_combine_le_expected_dtypergr§Útest_combine_le)r`Ú data_repeatedÚ
orig_data1Ú
orig_data2r©s    €r"r¬z TestMaskedArrays.test_combine_le
sEø€á!.¨qÓ!1ш
JØ × Ñ ×  Ñ   CÒ 'Ø.7ˆDÕ +ô/5ˆDÔ +Ü ‰Ñ  Õ.r!ÚserÚreturncój—|dvr/|jjdk7rtjd¬«y)N©ÚanyÚallr6z-Tested in tests/reductions/test_reductions.pyr¡T)r3r8r£Úskip©r`r°rws   r"Ú_supports_reductionz$TestMaskedArrays._supports_reductions)€Ø nÑ $¨¯©¯©¸3Ò)>Ü K‰KÐNÕ OØr!Úskipnacó—d}|jjdk(r|jj}n|jjdk(r|dvrd}|j«j    |«}|dk(r#t ||««}t ||««}nZt ||«|¬«}t ||«|¬«}|s2|j «j«r|dvrtj}tj||«y)    NÚint64r5r6©ÚminÚmaxÚboolÚcount©r¹r³) r3r8Ú numpy_dtypeÚdropnarr™ršr´rrr^Úassert_almost_equal)r`r°rwr¹Ú    cmp_dtypeÚaltrarbs        r"Ú check_reducezTestMaskedArrays.check_reducesá€ðˆ    Ø 9‰9>‰>˜SÒ  ðŸ    ™    ×-Ñ-‰IØ Y‰Y^‰^˜sÒ "ؘ.Ñ(Ø"    ð
j‰j‹l×!Ñ! )Ó,ˆØ gÒ Ø*”W˜S 'Ó*Ó,ˆFØ,”w˜s GÓ,Ó.‰Hà*”W˜S 'Ó*°&Ô9ˆFØ,”w˜s GÓ,°FÔ;ˆHÙ˜cŸh™h›jŸn™nÔ.°7À.Ñ3PÜŸ5™5Ü
×јv xÕ0r!có†—t|j«r|jj}|S|dvrd}|S|dvr|jj}|S|jdvr|jj}|St|j«r t    «rt
r|rt sd}|Sd}|St|j«r t    «rt
r|rt sd}|Sd}|S|jjd    k(r=|dvrd}|S|d
vrd }|S|d vrt    «rt
r|rt sdnd}|Std «‚td «‚)N)ÚmeanÚmedianÚvarÚstdÚskewrˆ)r¾r½)ÚInt64ÚUInt64ÚInt32rÎÚUInt32rÏr6r¼r‚)ÚsumÚprodznot supposed to reach this)
rr3Únamerrrrrr8rv)r`Úarrrwr¹rÅs     r"Ú_get_expected_reduction_dtypez.TestMaskedArrays._get_expected_reduction_dtype4s€Ü ˜#Ÿ)™)Ô $ØŸ    ™    Ÿ™ˆIðLÐðKÐ@Ñ @Ø!ˆIðHÐðG˜Ñ &ØŸ    ™    Ÿ™ˆIðDÐðCY‰YÐ-Ñ -ØŸ    ™    Ÿ™ˆIð@Ðô?% S§Y¡YÔ /ô(Ô)µ>ÉÝðð ð:Ðð3ð     ð:Ðô/' s§y¡yÔ 1ô(Ô)µ>ÉÝðð ð,Ðð%ð     ð,Ðð!Y‰Y^‰^˜sÒ "ØÐBÑBØ%    ðÐð˜NÑ*Ø%    ðÐð˜OÑ+ô,Ô-µ~ÉVÝñð!ð    ðÐô Ð <Ó=Ð=äÐ8Ó9Ð 9r!có—y)NTr r·s   r"Ú_supports_accumulationz'TestMaskedArrays._supports_accumulation^s€Ør!c
ó—d}tr|jjdk(sd}|jjj    d«rd|›}n‚|jjj    d«rd|›}nW|jjj    d«r |j}n%|jj
d    k(r |d
vrd }nd|›}d k(r"|d k(r|rt jd|›d|›«|dk(rtt||«|¬«}tjtjt|jd«|«|¬«|¬««}tj||«y|dvr~t||«|¬«}tjtjt|jd«|«|¬«|j¬««}tj||«y|d k(rzt|dd|«|¬«}tjtjt|ddjd«|«|¬«|¬««}tj||«yt|›d«‚)Né@éé ÚUÚUIntÚIÚIntÚFr6)ÚcumminÚcummaxr‚ÚFloat32Úcumprodz4Float32 precision lead to large differences with op z  and skipna=ÚcumsumrÁrZr7)rãrâé z not supported)Úis_windows_or_32bitr3ÚitemsizerÔÚ
startswithr8r£r¶r™rÚSeriesr9rr^Úassert_series_equalru)r`r°rwr¹ÚlengthÚexpected_dtyperarbs        r"Úcheck_accumulatez!TestMaskedArrays.check_accumulateas8€ðˆÝ ð—9‘9×%Ñ%¨Ò*Øà 9‰9>‰>× $Ñ $ SÔ )Ø# F 8˜_‰NØ Y‰Y^‰^× &Ñ & sÔ +Ø" 6 (˜^‰NØ Y‰Y^‰^× &Ñ & sÔ +ð!ŸY™Y‰NØ Y‰Y^‰^˜sÒ "ØÐ.Ñ.Ø!*‘à#& v h à ˜YÒ &¨7°iÒ+?ÁFä K‰KØFÀwÀiðPØ$˜Xð'ô ð
hÒ Ø*”W˜S 'Ó*°&Ô9ˆFÜ—y‘yÜ—‘Ø;”G˜CŸJ™J yÓ1°7Ó;À6ÔJØ(ôóˆHô × "Ñ " 6¨8Õ 4Ø Ð,Ñ ,Ø*”W˜S 'Ó*°&Ô9ˆFÜ—y‘yÜ—‘Ø;”G˜CŸJ™J yÓ1°7Ó;À6ÔJØŸ)™)ôóˆHô × "Ñ " 6¨8Õ 4Ø ˜    Ò !Ø/”W˜S  "˜X wÓ/°vÔ>ˆFÜ—y‘yÜ—‘Ø@”G˜C  ˜HŸO™O¨IÓ6¸Ó@ÈÔOØ(ôóˆHô × "Ñ " 6¨8Õ 4ô&¨¨    °Ð&@ÓAÐ Ar!)Ú__name__Ú
__module__Ú __qualname__r£r¤Ú parametrizercrhrzÚstrrŸr¨r¬rrër¿r¸rÇrÖrØrïÚ __classcell__)r©s@r"rTrT«sÜø„Ø ‡[[×ј[¨4°Ð*:Ó;ñ6ó<ð6ò6òð".¨có.ô`>ô/ð r§y¡yð¸3ðÀ4óð
1 §    ¡    ð1°Cð1Àó1ð6(¸#ð(Àtó(ðT¨"¯)©)ð¸cðÀdóð<B B§I¡Ið<B¸ð<BÀT÷<Br!rTcó —eZdZy)Ú Test2DCompatN)rðrñròr r!r"r÷r÷ s„Ør!r÷)7Ú__doc__r‘Únumpyr&r£Ú pandas.compatrrÚpandas.compat.numpyrÚpandas.core.dtypes.commonrrrÚpandasrÚpandas._testingÚ_testingr^Úpandas.core.arrays.booleanr    Úpandas.core.arrays.floatingr
r Úpandas.core.arrays.integerr r rrrrrrÚpandas.tests.extensionrrèr¤r“Ú
pytestmarkr#r(r-Úfixturer3r:r>rArErGrMrRÚExtensionTestsrTÚDim2CompatTestsr÷r r!r"ú<module>rsÒðñóãÛ ÷õ/÷ñó ÝÝ3÷÷    ÷    ó    õ(á*Ó,ÒC°^Ð1CÒPÈDÈÐð ‡KK×ÑØCóð ‡KK×ÑÐJÓKà
‡KK×ÑÐUÓVð €
òSòòXð€‡àØØØØØØØØØØð ôñóðð‡ñ'óð'ð‡ñ3óð3𠇁ñ-óð-ð‡ñ,óð,ð‡ñ0óð0ð‡ñ2óð2ð
‡ñ=óð=ô$rBt×*Ñ*ôrBôj    4×'Ñ'õ    r!