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
U
­ý°dPã@sNddlZddlZddlmZmZmZmZddlm    Z
dd„Z Gdd„dƒZ dS)éN)Ú    DataFrameÚIndexÚ
RangeIndexÚSeriescCsD|tkr tt t|ƒ¡|d}n ttj t|ƒt|ƒ¡||d}|S)N©Úindex)rÚcolumns)rÚnpÚarangeÚlenrÚrandomÚrandn)ÚklassrÚobj©rúXd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexing/test_floats.pyÚgen_obj sÿrc    @sÞeZdZdd„Zej dejej    ej
ej ej g¡dd„ƒZ ej dejej    ej
ej ej g¡dd„ƒZdd    „Zej dejejg¡d
d „ƒZej dejejg¡d d „ƒZdd„Zej dejej
ej ej g¡ej deddƒeddƒeddƒg¡dd„ƒƒZdd„Zej deddƒeddƒeddƒg¡dd„ƒZej dejejg¡dd„ƒZej deddƒeddƒeddƒg¡ej dejejg¡dd „ƒƒZej deddƒeddƒeddƒg¡d!d"„ƒZd#d$„Zd%d&„Zd'd(„Zd)S)*ÚTestFloatIndexerscCsHt|tƒr|j|}n"|r.|jdd…|f}n
|j|}t ||¡dS)zw
        comparator for results
        we need to take care if we are indexing on a
        Series or a frame
        N)Ú
isinstancerÚilocÚtmZassert_almost_equal)ÚselfÚresultÚoriginalÚindexerÚgetitemÚexpectedrrrÚchecks 
 
zTestFloatIndexers.checkÚ
index_funcc    Cs¼|dƒ}t||ƒ}tjtdd||ƒdW5QRXd|ksDt‚| ¡}d||ƒd<|tjkrvd|jdks¸t‚nB|tj    kr”d|jdks¸t‚n$d|jdks¦t‚d|jdks¸t‚dS)Néú^3.0$©Úmatchç@é
éÿÿÿÿr)
rÚpytestÚraisesÚKeyErrorÚAssertionErrorÚcopyrÚsetitemZaxesÚloc)rrÚframe_or_seriesÚ
indexer_slÚiÚsÚs2rrrÚtest_scalar_non_numeric(s
 
 
z)TestFloatIndexers.test_scalar_non_numericc    CsL|dƒ}tt t|ƒ¡|d}|dtjtdd|dW5QRXdS)Nrrér r!r#)rr    r
r r&r'r()rrr/r0rrrÚ'test_scalar_non_numeric_series_fallbackLs
z9TestFloatIndexers.test_scalar_non_numeric_series_fallbackc    Cs(tdddgdddgd}tdddgdddgd}tjtd    d
||ƒd W5QRXtjtd d
||ƒd W5QRX||ƒd}d}||ks˜t‚tjtd    d
||ƒd W5QRX|tjk    rà|d}d}||ksàt‚tjtd d
||ƒd W5QRX||ƒd}d}||ks$t‚dS) Néér3ÚaÚbÚcrçø?z^1.0$r!çð?z^1\.0$)rr&r'r(r)rr,)rr.r1Zs3rrrrrÚtest_scalar_with_mixed^s(  
  z(TestFloatIndexers.test_scalar_with_mixedc CsÌ|tjk    }|dƒ}t||ƒ}||ƒd}| ||d|¡t|tƒrPdd„}d}    n8tj}|rrtdtt|ƒƒdd}    ntdtt|ƒƒdd}    |     ¡}
d||
ƒd<||
ƒd}|||    ƒ||
ƒd}|||    ƒdS)    Nrr#r3cSs||ks t‚dS)N)r))ÚxÚyrrrÚcompare‘sz6TestFloatIndexers.test_scalar_integer.<locals>.compareéd)rÚnamegY@)
rr,rrrrÚassert_series_equalÚranger r*) rrr-r.rr/rrr?rr1rrrÚtest_scalar_integer€s$
 
 
 
 z%TestFloatIndexers.test_scalar_integercCs"|dƒ}t||ƒ}d|kst‚dS)Nrr#)rr))rrr-rrrrrÚ"test_scalar_integer_contains_float¥s
z4TestFloatIndexers.test_scalar_integer_contains_floatc
 
Csètt d¡ƒ}t||ƒ}|d}tjtjfD]t}|tjk    }||ƒ|}| ||d|¡| ¡}||ƒ|}| ||d|¡t    j
t dd||ƒdW5QRXq,d|ks®t ‚|j d}    | ¡}|    |j d<|j d}| ||dd¡dS)Nç@r3z^3\.5$r!ç @r#F)rr    r
rrr,r+rr*r&r'r(r)r)
rr-rr0rZidxrrrr1rrrrÚtest_scalar_float¯s$
 
 
 
 
z#TestFloatIndexers.test_scalar_floatÚidxr#ér3ç@c    Cs |dƒ}t||ƒ}|tjkr0dt|ƒj›d}ndt|ƒj›d}tjt|d||ƒ|W5QRX|tjkrvd}tjt|dd||ƒ|<W5QRXdS)    Nrz!cannot do positional indexing on ú/ with these indexers \[(3|4)\.0\] of type floatúcannot do slice indexing on z8 with these indexers \[(3|4)(\.0)?\] of type (float|int)r!zBslice indices must be integers or None or have an __index__ methodr)rrrÚtypeÚ__name__r&r'Ú    TypeError)rrrIr-Z indexer_slirr0ÚmsgrrrÚtest_slice_non_numericÒs
 
ÿÿ
z(TestFloatIndexers.test_slice_non_numericc
CsættjdtjdƒdftdƒdfttjdtjddƒdffD] \}}ttdƒ|d}tddƒtd    d
ƒtdd
ƒfD]8}|j|}|r’td d ƒ}n
td    dƒ}|     |||d¡qttd d ƒtddƒfD]8}|j|}|ràtd d ƒ}n
td d ƒ}|     |||d¡qÂdt
|ƒj ›d}t j t|d|tddƒW5QRXtddƒtd    dƒftddƒtddƒftddƒtd    dƒffD]n\}}|j|}|r”td d ƒ}    n|}    |     |||    d¡dt
|ƒj ›d}t j t|d||W5QRXqpq>dS)Nr©ÚdtypeFr$Trr#rJr3rKriúÿÿÿégÀg@rMz, with these indexers \[-6\.0\] of type floatr!ç@r6rGz/ with these indexers \[(2|3)\.5\] of type float)rr    r
Úint64rrrCÚslicer,rrNrOr&r'rP)
rrZoobr0rIrrrQZres1ÚresrrrÚtest_slice_integerüsD
ý 
 
 
 
ÿý 
 ÿz$TestFloatIndexers.test_slice_integerr6ç@c    Csšttddƒtddƒd}|dd…}|jdd…}t ||¡t}d|j›d}tjt    |d||W5QRXtjt    |d|j|W5QRXdS)    z]make sure that we are raising on positional indexing
        w.r.t. an integer index
        r6rUrrJz)cannot do (slice|positional) indexing on z/ with these indexers \[(2|4)\.0\] of type floatr!N)
rrCrrrBrrOr&r'rP)rrIr0rrrrQrrrÚ test_integer_positional_indexingCs   ÿz2TestFloatIndexers.test_integer_positional_indexingc    
Cs¤|dƒ}ttj dd¡|d}tddƒtddƒtddƒfD]\}|j|}tddƒ}| |||d¡d    t|ƒj›d
}t    j
t |d ||W5QRXq:td d ƒtddƒfD]$}|j|}| ||td d ƒd¡q¬d    t|ƒj›d}t    j
t |d |tddƒW5QRXtddƒtddƒftddƒtddƒftddƒtddƒffD]X\}}|j|}| |||d¡d    t|ƒj›d}t    j
t |d ||W5QRXqFdS)Nrr6rçr5rr;FrMz/ with these indexers \[(0|1)\.0\] of type floatr!iöÿÿÿr$g$Àç$@Tz- with these indexers \[-10\.0\] of type floatgà?r:z+ with these indexers \[0\.5\] of type float) rr    r r rXr,rrNrOr&r'rP)    rrrr0rIrrrQrYrrrÚ test_slice_integer_frame_getitemYs6 
 
ÿ
ÿý 
ÿz2TestFloatIndexers.test_slice_integer_frame_getitemc    Csª|dƒ}ttj dd¡|d}| ¡}d|j|<|j|j ¡}|dk ¡sPt    ‚dt
|ƒj ›d}t j t|dd||<W5QRXt j t|d||W5QRXdS)Nrr6rrrMrLr!)rr    r r r*r,ÚvaluesÚravelÚallr)rNrOr&r'rP)rrIrrr0ZscrrQrrrÚ2test_float_slice_getitem_with_integer_index_raisess
ÿzDTestFloatIndexers.test_float_slice_getitem_with_integer_index_raisesc    CsŽtt d¡ƒd}t||ƒ}|jdd…}||ƒ|}t|t|ƒƒsHt‚t     ||¡| 
¡}d||ƒ|<||ƒ|j   ¡}|dk  ¡sŠt‚dS)NrFgš™™™™™¹?r3rJr)rr    r
rrrrNr)rZ assert_equalr*r`rarb)    rrIr-r.rr0rrr1rrrÚtest_slice_float©s
   z"TestFloatIndexers.test_slice_floatcCsZtdddddgƒ}ttdƒ|d}|ddks2t‚|jddksDt‚|jddksVt‚dS)Nr:r6r3g@rr)rrrCr)r,r)rrr0rrrÚtest_floating_index_doc_example¼s
z1TestFloatIndexers.test_floating_index_doc_examplec
    Cs¬tt d¡t d¡dtjd}||ƒdd…}tddgd}t ||¡||ƒd}|d    ksbt‚||ƒd}|d    kszt‚tjt    d
d ||ƒd W5QRXtd    d gt
ddgtj dd}ddgt  ddg¡fD]}t ||ƒ||¡qÔtd    d gt
dd gddd}dd gt  dd g¡fD]}t ||ƒ||¡q ||ƒd    d…}||ƒdd…}||ƒdd…}||ƒdd…}    t ||¡t ||¡t ||    ¡tdd    gddgd}||ƒd    d…}t ||¡||ƒdddg}|j d d    d g}t ||¡tjt    dd ||ƒdddgW5QRXtjt    dd ||ƒd dd    gW5QRX||ƒddg}t |tdd    gddgd¡||ƒdg}t |tdgdgd¡dS)NrrV)rrTr;r#r5rrFr6z^4$r!rJrr]rSÚfloat64r[gÍÌÌÌÌÌ@r$z not in indexgš™™™™™ù?)rr    r
rWrrBr)r&r'r(rrfÚarrayr)
rr.r0rrZ    fancy_idxZresult1Zresult2Zresult3Zresult4rrrÚtest_floating_miscÃsJ           z$TestFloatIndexers.test_floating_miscc–Csf|}ddddddddddddddd    dd
dd dddd dd dddddddddddddddddddddddddddddddddddddddd dd!dd"dd#dddd$dd%dd&dd'dddd(dd)d*d+dd,d-ddd.dd/dd0dd1dd2dddddddddddddddddddddddd3d4d5dd6ddddd7dd8d9dddd:d;dd<dd=dd>œ•}t||d?}| ¡}|jj|ksZt‚t|ƒdS)@Ng"¢@g€S@g8¥@r]gw@gÐp@g «@g8@g@g@Y@g€ÕÂ@g "ï@gà{@g úà@gȆ@g\ª@g¼•@gv@g.î@gº@g‰@g¥@gü«@gð†@g˜ƒ@g€Q@g0¤@g@t@gè‚@g*¯@r^gE@g@Œ@gV@gì¿@gÀ°ï@g°u@g ßá@g°w@gr§@gx™@g@gÀv@gÀtð@g"@g¾@gȏ@g¦@g&§@g°Š@gŠð@g6@g€p@g h@g¸’@gФ@g8ˆ@g`d@g+Ä@g0“@g¢¥@)•ér5r6r3rJrrUééé    r$é é é ééééééééééééééééééé é!é"é#é$é%é&é'é(é)é*é+é,é-é.é/é0é1é2é3é4é5é6é7é8é9é:é;é<é=é>é?é@éAéBéCéDéEéFéGéHéIéJéKéLéMéNéOéPéQéRéSéTéUéVéWéXéYéZé[é\é]é^é_é`éaébécr@éeéfégéhéiéjékéléménéoépéqérésétéuévéwéxéyézé{é|é}é~éé€éii i    i ii
i iiiiiiéúéûéüéýéþéÿrS)rZ value_countsrrTr)Ústr)rZfloat_numpy_dtyperTZserr0rrrrÚtest_floatindex_slicing_bugs:€ë z-TestFloatIndexers.test_floatindex_slicing_bugN)rOÚ
__module__Ú __qualname__rr&ÚmarkZ parametrizerZmakeStringIndexZmakeCategoricalIndexZ makeDateIndexZmakeTimedeltaIndexZmakePeriodIndexr2r4r<Z makeIntIndexZmakeRangeIndexrDrErHrXrRrZr\r_rcrdrerhrêrrrrrsdûþ
 
ûþ
 
"
$
    #üþ    $  G$
 
5$ $
Ar) Únumpyr    r&ZpandasrrrrZpandas._testingZ_testingrrrrrrrÚ<module>s