zmc
2023-10-12 ed135d79df12a2466b52dae1a82326941211dcc9
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
U
­ý°dvLã@sÀddlZddlZddlZddlmmZddlm    m
Z ddl m Z ddlmZddlmZmZmZdZdddgdddgd    d
d gd    ddgd    d
dgd dd ggZddgd d gd gd gd gdggZdgdgddgddgddgddggZdgdgddgddgdgdggZddgd dgddgd d    ggggZdgdggggggZgggggggZeeeeeegZddddddgZGdd„dƒZGdd„dƒZ Gdd„dƒZ!Gdd„dƒZ"Gd d!„d!ƒZ#Gd"d#„d#ƒZ$dS)$éN)ÚSeries)Ú
BlockIndexÚIntIndexÚmake_sparse_indexééééééé    éééé
é ééÚ
plain_caseÚ delete_blocksÚ split_blocksÚ
skip_blockÚ no_intersectÚ    one_emptyc@s6eZdZej ddgdgdgdgdgdggddgddgddgddgdddgd    ddggd
gdgd gdgd
gd    ggddgddgdgd gdgd ggddgd dgdgd    gdgdggddgddgddgd dgdgdggdgdgdddgd ddgdgdggddgd d gddgddgddddgd dd dggg¡dd„ƒZdd„ZdS)ÚTestSparseIndexUnionú"xloc, xlen, yloc, ylen, eloc, elenrr
rr rr rrrr    éré rr c Cs¤tt||ƒ}tt||ƒ}| |¡}    t|    tƒs0t‚t |    jtj    |tj
d¡t |    j tj    |tj
d¡|  ¡}
|  ¡} |
 | ¡} t| t ƒsŒt‚t | j|      ¡j¡dS)N©Zdtype)rÚ TEST_LENGTHÚ
make_unionÚ
isinstanceÚAssertionErrorÚtmÚassert_numpy_array_equalÚblocsÚnpÚarrayÚint32ÚblengthsÚ to_int_indexrÚindices) ÚselfÚxlocÚxlenÚylocÚylenÚelocÚelenÚxindexÚyindexZbresultZixindexZiyindexZiresult©r5ú`d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/arrays/sparse/test_libsparse.pyÚtest_index_make_union[s,  
 
z*TestSparseIndexUnion.test_index_make_unionc    Csütdtjdddgtjdƒ}tdtjddgtjdƒ}| |¡}tdt ddddgtj¡ƒ}| |¡sjt‚tdtjgtjdƒ}tdtjddgtjdƒ}| |¡}tdt ddgtj¡ƒ}| |¡sÊt‚tdtjgtjdƒ}tdtjgtjdƒ}| |¡}tdt gtj¡ƒ}| |¡s$t‚tdtjdddddgtjdƒ}tdtjdddddgtjdƒ}| |¡}tdt dddddgtj¡ƒ}| |¡sœt‚tdtjddgtjdƒ}tdtjddgtjdƒ}d}tjt    |d    | |¡W5QRXdS)
Nr
rr    rrr rú-Indices must reference same underlying length©Úmatch)
rr&r'r(r Úequalsr"ÚpytestÚraisesÚ
ValueError)r,ÚaÚbÚresÚexpÚmsgr5r5r6Útest_int_index_make_union”s2
 
 
  
z.TestSparseIndexUnion.test_int_index_make_unionN)Ú__name__Ú
__module__Ú __qualname__r<ÚmarkÚ parametrizer7rDr5r5r5r6rZs*"".øþ
,rc @s¤eZdZejejjdee    ddd„ƒƒZ
dd„Z ej de de jd    d
ge jd ƒe de jd d
d ge jd ƒe d e jge jd ƒe de jge jd ƒg¡dd„ƒZdS)ÚTestSparseIndexIntersectr©Úidsc     CsÈtt||ƒ}tt||ƒ}tt||ƒ}    ttd||ƒ}
| |¡} |  |    ¡sLt‚| ¡ | ¡¡} |  |     ¡¡spt‚d} tjt| d| |
¡W5QRXtjt| d| ¡ |
 ¡¡W5QRXdS)Nrr8r9)    rrÚ    intersectr;r"r*r<r=Ú    Exception) r,r-r.r/r0r1r2r3r4ÚexpectedZ longer_indexÚresultrCr5r5r6Útest_intersect¶s   
z'TestSparseIndexIntersect.test_intersectcCs”tdtjgtjdƒ}tdtjddgtjdƒ}| |¡ |¡sDt‚| |¡ |¡sXt‚| ¡}| ¡}| |¡ |¡s|t‚| |¡ |¡st‚dS)Nrrr r    )rr&r'r(rMr;r"Úto_block_index)r,r3r4r5r5r6Útest_intersect_emptyÉsz-TestSparseIndexIntersect.test_intersect_emptyÚcaser
rr rrrcCs4| |¡ |¡st‚| ¡}| |¡ |¡s0t‚dS©N)rMr;r"rR)r,rTr5r5r6Útest_intersect_identicalÔs
z1TestSparseIndexIntersect.test_intersect_identicalN)rErFrGÚtdZskip_if_windowsr<rHrIÚCASESÚIDSrQrSrr&r'r(rVr5r5r5r6rJµs  üþ    rJc@s¢eZdZdd„Zdd„Zej dddg¡dd    „ƒZej dddg¡d
d „ƒZ    ej d d dgdd gddgddgddgddgddgddgddgddgg
¡dd„ƒZ
dS)ÚTestSparseIndexCommoncCs tdtjddgtjddd}t|tƒs,t‚|jdks:t‚t     |j
tjddgtjd¡tdtjgtjddd}t|tƒs€t‚|jdksŽt‚t     |j
tjgtjd¡tdtjddddgtjddd}t|tƒsØt‚|jdksæt‚t     |j
tjddddgtjd¡dS©    Nrr r    rÚinteger©Úkindrr© rr&r'r(r!rr"Únpointsr#r$r+©r,Úidxr5r5r6Útest_int_internaläs ÿz'TestSparseIndexCommon.test_int_internalcCsÖtdtjddgtjddd}t|tƒs,t‚|jdks:t‚t     |j
tjdgtjd¡t     |j tjdgtjd¡tdtjgtjddd}t|tƒsšt‚|jdks¨t‚t     |j
tjgtjd¡t     |j tjgtjd¡tdtjddddgtjddd}t|tƒst‚|jdkst‚t     |j
tjdgtjd¡t     |j tjdgtjd¡tdtjdddgtjddd}t|tƒs†t‚|jdks–t‚t     |j
tjddgtjd¡t     |j tjddgtjd¡dS©    Nrr r    rÚblockr]rr© rr&r'r(r!rr"r`r#r$r%r)rar5r5r6Útest_block_internalös(" z)TestSparseIndexCommon.test_block_internalr^r\recCsútdtjddgtjd|d}| d¡dks0t‚| d¡dksBt‚| d¡dksTt‚| d¡dksft‚| d¡dksxt‚| d¡dksŠt‚tdtjgtjd|d}tdd    ƒD]}| |¡dks®t‚q®tdtjddddgtjd|d}| d¡dksút‚| d¡dkst‚| d¡dks"t‚| d¡dks6t‚| d¡dksJt‚| d¡dks^t‚tdtjdddgtjd|d}| d¡dks’t‚| d¡dks¦t‚| d¡dksºt‚| d¡dksÎt‚| d¡dksât‚| d¡dksöt‚dS©
Nrr r    rr]éÿÿÿÿrrr
)rr&r'r(Úlookupr"Úrange)r,r^rbÚir5r5r6Ú test_lookups0" z!TestSparseIndexCommon.test_lookupcCsDtdtjddgtjd|d}| tjdddgtjd¡}tjdddgtjd}t ||¡| tjddddgtjd¡}tjddddgtjd}t ||¡tdtjgtjd|d}| tjddddgtjd¡}tjddddgtjd}t ||¡tdtjddddgtjd|d}| tjdddgtjd¡}tjdddgtjd}t ||¡| tjddddgtjd¡}tjddddgtjd}t ||¡tdtjdddgtjd|d}| tjddddgtjd¡}tjddddgtjd}t ||¡| tjdddd    gtjd¡}tjddddgtjd}t ||¡dSrh)rr&r'r(Z lookup_arrayr#r$)r,r^rbrArBr5r5r6Útest_lookup_array.s2   "    z'TestSparseIndexCommon.test_lookup_arrayz idx, expectedrrir
rr rr ré rr    récCsDtdddgddgƒ}| |¡|ks&t‚| ¡}| |¡|ks@t‚dS)Nrr
rr    r)rrjr"r*)r,rbrOZbindexZiindexr5r5r6Útest_lookup_basicsQsz(TestSparseIndexCommon.test_lookup_basicsN) rErFrGrcrgr<rHrIrmrnrqr5r5r5r6rZãs*
 
"öþrZc@sReZdZdd„Zej dddddg¡dd    „ƒZd
d „Zd d „Z    dd„Z
dd„Z dS)ÚTestBlockIndexcCsÖtdtjddgtjddd}t|tƒs,t‚|jdks:t‚t     |j
tjdgtjd¡t     |j tjdgtjd¡tdtjgtjddd}t|tƒsšt‚|jdks¨t‚t     |j
tjgtjd¡t     |j tjgtjd¡tdtjddddgtjddd}t|tƒst‚|jdkst‚t     |j
tjdgtjd¡t     |j tjdgtjd¡tdtjdddgtjddd}t|tƒs†t‚|jdks–t‚t     |j
tjddgtjd¡t     |j tjddgtjd¡dSrdrfrar5r5r6rgis(" z"TestBlockIndex.test_block_internalrlr
rédéecCsbt|tjd|dtjddd}tjd|dtjd}t |j|¡t |jtjt    |ƒtjd¡dS)Nrr rrer])
rr&Úaranger(r#r$r%r)ZonesÚlen)r,rlrbrBr5r5r6Útest_make_block_boundary‚sz'TestBlockIndex.test_make_block_boundarycCsDtdddgddgƒ}| |¡s"t‚| tdddgddgƒ¡r@t‚dS)Nrrrr r
r)rr;r"©r,Úindexr5r5r6Ú test_equalsŠszTestBlockIndex.test_equalsc    Cs„g}g}td||ƒtd||ƒd}tjt|dtddgdgƒW5QRXd}tjt|dtdddgdd    gƒW5QRXdS)
NrrzBlock 0 extends beyond endr9rr
zBlock 0 overlapsr r    )rr<r=r>)r,ÚlocsÚlengthsrCr5r5r6Útest_check_integritys  z#TestBlockIndex.test_check_integrityc
CsZddg}ddg}ddddddd    d
d d g
}td ||ƒ}| ¡}t |jtj|tjd¡dS)Nrrrrrr r    rorrr rrr)rr*r#r$r+r&r'r()r,r{r|Zexp_indsreZdenser5r5r6Útest_to_int_index¢s  z TestBlockIndex.test_to_int_indexcCs(tdddgddgƒ}| ¡|ks$t‚dS)Nrrr
r)rrRr"rxr5r5r6Útest_to_block_index¬sz"TestBlockIndex.test_to_block_indexN) rErFrGrgr<rHrIrwrzr}r~rr5r5r5r6rrhs
 
rrc@sFeZdZdd„Zdd„Zdd„Zejjde    e
dd    d
„ƒZ d d „Z d S)Ú TestIntIndexc    CsLd}tjt|dtddddgdW5QRXd}tjt|dtddd    dgdW5QRXd}tjt|dtddd    dgdW5QRXd
}tjt|dtddddgdW5QRXtjt|dtdddd gdW5QRXd }tjt|dtddddgdW5QRXtjt|dtddddgdW5QRXdS) NzToo many indicesr9rr r    )Úlengthr+zNo index can be less than zeror
éþÿÿÿz(All indices must be less than the lengthrz#Indices must be strictly increasing)r<r=r>r)r,rCr5r5r6r}²s&z!TestIntIndex.test_check_integritycCs tdtjddgtjddd}t|tƒs,t‚|jdks:t‚t     |j
tjddgtjd¡tdtjgtjddd}t|tƒs€t‚|jdksŽt‚t     |j
tjgtjd¡tdtjddddgtjddd}t|tƒsØt‚|jdksæt‚t     |j
tjddddgtjd¡dSr[r_rar5r5r6rc×s ÿzTestIntIndex.test_int_internalcCsBtddddddgƒ}| |¡s"t‚| tdddddgƒ¡r>t‚dS)Nrrrr r    r)rr;r"rxr5r5r6rzészTestIntIndex.test_equalsrrKc Cs^tt||ƒ}tt||ƒ}| ¡ ¡}    | ¡ ¡}
t|    tƒs>t‚|     |¡sLt‚|
 |¡sZt‚dSrU)rrr*rRr!r"r;) r,r-r.r/r0r1r2r3r4ZxbindexZybindexr5r5r6rîs    z TestIntIndex.test_to_block_indexcCs(tddddddgƒ}| ¡|ks$t‚dS)Nrr r    rr
r)rr*r"rxr5r5r6r~úszTestIntIndex.test_to_int_indexN) rErFrGr}rcrzr<rHrIrXrYrr~r5r5r5r6r€±s %
r€c@s>eZdZej ddddddg¡ejjdeedd    d
„ƒƒZd S) ÚTestSparseOperatorsÚopnameÚaddÚsubÚmulÚtruedivÚfloordivrrKcCsHttd|›dƒ}tt|ƒ}    tt||ƒ}
tt||ƒ} |
 ¡} |  ¡} t |
j¡dd}t | j¡dd}d}d}|||
||| |ƒ\}}}||| ||| |ƒ\}}}| ¡     |¡s¶t
‚t   ||¡||ksÎt
‚t || jƒ}| t t¡¡ |¡}t || jƒ}| t t¡¡ |¡}|    ||ƒ}| |j¡}t   ||j¡t   ||j¡dS)NZsparse_Z_float64g$@rgY@rr )ÚgetattrÚsplibÚoperatorrrr*r&rur`r;r"r#r$rr+ZreindexZfillnaÚvalues)r,r„r-r.r/r0r1r2Z    sparse_opZ    python_opr3r4ZxdindexZydindexÚxÚyZxfillZyfillZresult_block_valsZrb_indexZbfillZresult_int_valsZri_indexZifillZxseriesZyseriesZ series_resultr5r5r6Útest_opsJ
  ÿ
ÿ
 
 zTestSparseOperators.test_opN)    rErFrGr<rHrIrXrYrr5r5r5r6rƒÿsrƒ)%rŒÚnumpyr&r<Zpandas._libs.sparseZ_libsÚsparser‹Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrWZpandasrZpandas._testingZ_testingr#Zpandas.core.arrays.sparserrrrrrrrrrZ
both_emptyrXrYrrJrZrrr€rƒr5r5r5r6Ú<module>s  ú    ú    ú    ú
ú
ú
ú    ú
[.IN