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
98
99
100
101
102
103
104
105
106
107
108
109
U
­ý°d…Pã @s ddlZddlZddlZddlZddlmZddl    m
Z
m Z ej ddgddd„ƒZ ej dd    gdd
d „ƒZGd d „d ƒZej dejejg¡dd„ƒZdd„Zdd„Zej dejejg¡ej de
ddddgƒe
ddddgƒg¡dd„ƒƒZej de
dddgƒe dddg¡fe
dddgdde dddg¡fe
dddgdde dddg¡fe
dddgdde dddg¡fe
dddgdde dddg¡fg¡ej dejejg¡dd„ƒƒZd d!„Zd"d#„Zej d$eeje
g¡d%d&„ƒZ ej dd'd(d)d*d+d,g¡ej d-ej!d.g¡d/d0„ƒƒZ"dS)1éN)Ú SparseArrayÚ SparseDtypeÚintegerÚblock)ÚparamscCs|jS)z!kind kwarg to pass to SparseArray©Úparam©Úrequest©r úbd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/arrays/sparse/test_arithmetics.pyÚkindsr TFcCs|jS)z}
    Fixture returning True or False, determining whether to operate
    op(sparse, dense) instead of op(sparse, sparse)
    rr    r r r Úmixsrc@seZdZdd„Zedœdd„Zdd„Zdd    „Zd
d „Ze    j
  d d ddg¡e    j
  ddd dg¡dd„ƒƒZ dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Ze    j
  dd'd(ejg¡d)d*„ƒZe    j
  dd'd(ejg¡d+d,„ƒZd-d.„Zd/d0„Zd1d2„ZdS)3ÚTestSparseArrayArithmeticscCst ||¡dS©N)ÚtmÚassert_numpy_array_equal)ÚselfÚaÚbr r r Ú_assertsz"TestSparseArrayArithmetics._assert)rc        Cst|tjƒr |t |¡|ƒj}n$t|tjƒr@||t |¡ƒj}nt‚tjddd(|rh|||ƒ ¡}n|||ƒ ¡}W5QRX|     ||¡dS)NÚignore)ÚinvalidÚdivide)
Ú
isinstanceÚnpÚndarrayÚpdZSeriesÚvaluesÚNotImplementedErrorÚerrstateÚto_denser)    rrrÚa_denseÚb_denserÚopÚexpectedÚresultr r r Ú_check_numeric_ops"s  z-TestSparseArrayArithmetics._check_numeric_opscCsDt|tƒst‚t|jtƒst‚|jjtjks0t‚t|jt    ƒs@t‚dSr)
rrÚAssertionErrorÚdtyperÚsubtyperÚbool_Ú
fill_valueÚbool)rÚresr r r Ú_check_bool_result4sz-TestSparseArrayArithmetics._check_bool_resultc    CsætjddÎ| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡| ||k¡| ||k ¡||k¡W5QRXdS)Nr)r)rr r/rr!©rrrr"r#r r r Ú_check_comparison_ops:s2z0TestSparseArrayArithmetics._check_comparison_opscCsœ| ||@¡| ||@ ¡||@¡| ||B¡| ||B ¡||B¡| ||@¡| ||@ ¡||@¡| ||B¡| ||B ¡||B¡dSr)r/rr!r0r r r Ú_check_logical_opsesz-TestSparseArrayArithmetics._check_logical_opsÚscalarréér,Néc
CsN|}t tjdddtjddddtjg
¡}t|||d}    | |    |||||¡dS)Nr4r6r©r r,©rÚarrayÚnanrr')
rr rÚall_arithmetic_functionsr,r3r
r$rrr r r Útest_float_scalarss$z,TestSparseArrayArithmetics.test_float_scalarc Csàt tjdddtjddddtjg
¡}t||d}| |d|d¡| |d|d¡| |d|d¡t||dd}| |d|d¡| |d|d¡| |d|d¡t||dd}| |d|d¡| |d|d¡| |d|d¡dS)Nr4r6r©r r5r7©rr9r:rr1)rr rrr r r Útest_float_scalar_comparison}s$ z7TestSparseArrayArithmetics.test_float_scalar_comparisonc     Cst|}t ddddddddddg
¡}t ddddddddddg
¡}t||dd}t||dd}| ||||||¡dS)    Nççð?ç@ç@ç@ç@rr7)rr9rr'©    rr rr;r$rÚrvaluesrrr r r Ú"test_float_same_index_without_nanss z=TestSparseArrayArithmetics.test_float_same_index_without_nansc
Cs||}t tjdddtjddddtjg
¡}t tjdddtjddddtjg
¡}t||d}t||d}    | ||    ||||¡dS)Nr4r6rr5ér=r8)
rr rr;r
r$rrGrrr r r Útest_float_same_index_with_nansšs $$  z:TestSparseArrayArithmetics.test_float_same_index_with_nansc CsÜt tjdddtjddddtjg
¡}t tjdddtjddddtjg
¡}t||d}t||d}| ||||¡t ddd    d
dddd    ddg
¡}t dd    d d dddd d    dg
¡}t||dd }t||dd }| ||||¡dS)Nr4r6rr5rIr=r@rArBrCrDrEr7r>©rr rrGrrr r r Ú test_float_same_index_comparison¦s$$  z;TestSparseArrayArithmetics.test_float_same_index_comparisonc     Cs&|}t tjdddtjddddtjg
¡}t dtjddtjddddtjg
¡}t||d}t||d}| ||||||¡| ||d||d||¡t||dd}t||d}| ||||||¡t||dd}t||dd}| ||||||¡t||dd}t||dd}| ||||||¡dS©Nr4r6rr5ér=r7r8rFr r r Útest_float_array¶s $$   z+TestSparseArrayArithmetics.test_float_arrayc Cs&|}t tjdddtjddddtjg
¡}t dtjddtjddddtjg
¡}t|dd}t|dd}| ||||||¡| ||d||d||¡t|ddd    }t|dd}| ||||||¡t|ddd    }t|ddd    }| ||||||¡t|ddd    }t|ddd    }| ||||||¡dS)
Nr4r6rr5rNrr=rr7r8)rrr;r$rrGrrr r r Útest_float_array_different_kindÍs $$   z:TestSparseArrayArithmetics.test_float_array_different_kindc Cst tjdddtjddddtjg
¡}t dtjddtjddddtjg
¡}t||d}t||d}| ||||¡| ||d||d¡t||dd}t||d}| ||||¡t||dd}t||dd}| ||||¡t||dd}t||dd}| ||||¡dSrMr>rKr r r Útest_float_array_comparisonäs$$   z6TestSparseArrayArithmetics.test_float_array_comparisonc
CsÚ|}tj}tjddddddddddg
|d}tjddddddddddg
|d}t|||d}|jt|ƒksnt‚t|||d}    |    jt|ƒksŽt‚| ||    ||||¡| ||    d||d||¡t|d||d}|jt|ƒksàt‚t|||d}    |    jt|ƒkst‚| ||    ||||¡t|d||d}|jt|ƒks:t‚t|d||d}    |    jt|ƒks^t‚| ||    ||||¡t|d||d}|jt|dd    ksšt‚t|d||d}    |    jt|dd    ksÂt‚| ||    ||||¡dS)
Nrr4r6©r)r5rN©r)r )r,r)r ©r,)rÚint64r9rr)rr(r')
rr rr;r$r)rrGrrr r r Útest_int_arrayùs2""z)TestSparseArrayArithmetics.test_int_arrayc Csd}tjddddddddddg
|d}tjddddddddddg
|d}t|||d}t|||d}| ||||¡| ||d||d¡t|||dd    }t|||d}| ||||¡t|||dd    }t|||dd    }| ||||¡t|||dd    }t|||dd    }| ||||¡dS)
NrUrr4r6rRr5rNrS)r)r r,)rr9rr1)rr r)rrGrrr r r Útest_int_array_comparisons ""z4TestSparseArrayArithmetics.test_int_array_comparisonTFcCshtjddddgtjd}tjddddgtjd}t||tj|d}t||tj|d}| ||||¡dS©NTFrR)r r)r,©rr9r+rr2©rr r,rrGrrr r r Útest_bool_same_index5s
z/TestSparseArrayArithmetics.test_bool_same_indexcCsptjddddddgtjd}tjddddddgtjd}t||tj|d}t||tj|d}| ||||¡dSrXrYrZr r r Útest_bool_array_logical@s
z2TestSparseArrayArithmetics.test_bool_array_logicalc Csx|}d}t tjdddtjddddtjg
¡}tjddddddddddg
|d}t||d}    t||d}
|
jt|ƒksxt‚| |    |
||||¡| |    |
d||d||¡t||dd    }    t||d}
|
jt|ƒksÔt‚| |    |
||||¡t||dd    }    t||dd    }
|
jt|ƒkst‚| |    |
||||¡t||dd    }    t||dd    }
|
jt|dd
ks`t‚| |    |
||||¡dS© NrUr4r6rr5rNrRr=r7rT)rr9r:rr)rr(r') rr rr;r
r$ÚrdtyperrGrrr r r Útest_mixed_array_float_intKs*$"   z5TestSparseArrayArithmetics.test_mixed_array_float_intc Cs`d}t tjdddtjddddtjg
¡}tjddddddddddg
|d}t||d}t||d}|jt|ƒkstt‚| ||||¡| ||d||d¡t||dd    }t||d}|jt|ƒksÈt‚| ||||¡t||dd    }t||dd    }|jt|ƒkst‚| ||||¡t||dd    }t||dd    }|jt|dd
ksLt‚| ||||¡dSr])rr9r:rr)rr(r1)rr r^rrGrrr r r Útest_mixed_array_comparisongs($"   z6TestSparseArrayArithmetics.test_mixed_array_comparisoncCsltddddgƒ}tddddgƒ}||A}tjjj dtjdddgdd¡}tdddg|d    }t     ||¡dS)
NTFrIrr4r6Úint32rR)Z sparse_index)
rrÚcoreZarraysÚsparseZIntIndexrr9rÚassert_sp_array_equal)rÚsÚtr&Zsp_indexr%r r r Útest_xor„s "z#TestSparseArrayArithmetics.test_xor)Ú__name__Ú
__module__Ú __qualname__rr-r'r/r1r2ÚpytestÚmarkÚ parametrizer<r?rHrJrLrOrPrQrVrWrr:r[r\r_r`rgr r r r rs0+   $
 
 
 
rr$cCs@tddgdd}||ddgƒ}||tddgƒƒ}t ||¡dS)Nrr4rT)rrrd)r$Úarrr&r%r r r Útest_with_listsrocCs@tddgdd}t ddgddgg¡}| |¡}|tks<t‚dS)Nrr4rTr6r5rI)rrZ    DataFrameÚ__add__ÚNotImplementedr()rnZdfr&r r r Útest_with_dataframe•s
rrcCs6tddgdd}|t d¡}|d}t ||¡dS)Nrr4rTr6©rrr9rrd)rnr&r%r r r Útest_with_zerodim_ndarraysrtÚufuncrnéÿÿÿÿr4cCs8||ƒ}||jƒ}t|t |¡ƒ|d}t ||¡dS)NrT)r,rrÚasarrayrrd)rurnr&r,r%r r r Ú test_ufuncs¦s
rxza, br6rTcCsD|||ƒ}|t |¡t |¡ƒ}t|tƒs.t‚t t |¡|¡dSr)rrwrrr(rr)rurrr&r%r r r Útest_binary_ufuncs±s
rycCsLtddddgƒ}t ddddg¡}||7}t ddddg¡}t ||¡dS)Nrr6r4r5)rrr9rr©Zsparrayrr%r r r Útest_ndarray_inplaceÄs
r{cCsNtddddgƒ}t ddddg¡}||7}tddddgdd}t ||¡dS)Nrr6r4r5rTrsrzr r r Útest_sparray_inplaceÌs
r|Úconsc    Cs@tddgƒ}|dddgƒ}tjtdd||@W5QRXdS)NTzoperands have mismatched length)Úmatch)rrkZraisesÚ
ValueError)r}ÚleftÚrightr r r Útest_mismatched_length_cmp_opÔs r‚ÚaddÚsubÚmulÚtruedivÚfloordivÚpowr,r5c     Csztt|ƒ}tj d¡}tj d¡}||ddd…<||ddd…<t||d}t||d}tjdd |||ƒ}t|| ¡| ¡ƒ|jd}t    |tƒsšt
‚t   | ¡| ¡¡||| ¡ƒ}t    |tƒsÊt
‚t   ||¡|| ¡|ƒ}    t    |    tƒsòt
‚t   ||    ¡||dƒ}
t    |
tƒst
‚z|| ¡dƒ}||jdƒ} Wntk
rLYn Xt   |
j| ¡t   |
 ¡|¡W5QRXdS)Nér6r5rTr)ÚallrI)ÚgetattrÚoperatorrÚrandomZrandnrr r!r,rr(rZassert_almost_equalrdr) r$r,Zdata1Zdata2ÚfirstÚsecondr.ÚexpZres2Zres3Zres4Zexp_fvr r r Útest_binary_operatorsÜs<
 
ÿ  
r‘)#rŒÚnumpyrrkZpandasrZpandas._testingZ_testingrZpandas.core.arrays.sparserrZfixturer rrrlrmÚeqrƒrorrrtÚabsrrxr9Zgreaterryr{r|Úlistr‚r:r‘r r r r Ú<module>sP 
 
r
    ÿ     ûþ