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
U
­ý°dôCã@s@ddlZddlZddlZddlmZddlZddlmZddl    m
Z ddl m Z mZejdd„ƒZejdd„ƒZejd    d
„ƒZGd d „d ƒZGd d„dƒZdd„Zdd„Zej ddddgddfdddgddfdddgddfdddddgddfddddgddfgddfddddddgddfddddddgddfddddddgddfddddddgddfddddddgddfddddddgddfg ¡dd„ƒZej dddejejgdejdejgddejgejdddejdgejdddddgg¡ej dejddg¡dd„ƒƒZdd„Zd d!„Zd"d#„Zej dejdg¡d$d%„ƒZd&d'„Z dS)(éN)ÚIntIndex)Úisna)Ú SparseArrayÚ SparseDtypec Cs&t tjtjdddtjddtjdg
¡S)z<Fixture returning numpy array with valid and missing entrieséééééé)ÚnpÚarrayÚnan©rrú\d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/arrays/sparse/test_array.pyÚarr_datasrcCst|ƒS)z-Fixture returning SparseArray from 'arr_data'©r)rrrrÚarrsrc Cs tddddddddddg
ddS)    zEFixture returning SparseArray with integer entries and 'fill_value=0'rrrrr    r
r ©Ú
fill_valuerrrrrÚzarrsrc
@sZeZdZej dddejg¡dd„ƒZdd„Z    ej dd    d
d ge 
d    d
g¡d g¡d d„ƒZ dd„Z dd„Z ej ddddddgddfgddfdgddfddejdgdefg¡dd„ƒZej dejejejejejgd    ejejd ejgd    ejdd dgg¡ej dddg¡dd„ƒƒZej dd d!g¡d"d#„ƒZd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„ZdS).ÚTestSparseArrayrrNcCsftt dddddg¡dd}|jd|d}t|ƒr:|jj}tt |ddddg¡dd}t ||¡dS)Nrrrg @r)    rr r ÚshiftrÚdtypeZna_valueÚtmÚassert_sp_array_equal)ÚselfrÚsparseÚresÚexprrrÚtest_shift_fill_value$s z%TestSparseArray.test_shift_fill_valuecCsÂtdtjdgtjd}d|_|jdks*t‚tdddgdtjd}d|_|jdksTt‚d|_|jdksht‚tj|_t |j¡s€t‚td    d
d    gd
tjd}d    |_|js¦t‚tj|_t |j¡s¾t‚dS) Nçð?g@rrrr©rrgÍÌÌÌÌÌ@TF)rr rrÚAssertionErrorÚint64ÚisnanÚbool_©rrrrrÚtest_set_fill_value.s
z#TestSparseArray.test_set_fill_valueÚvalrrr)rrrc    Cs>tdddgdtjd}d}tjt|d ||_W5QRXdS)NTFr"zfill_value must be a scalar©Úmatch)rr r&ÚpytestÚraisesÚ
ValueErrorr)rr)rÚmsgrrrÚ test_set_fill_invalid_non_scalarUsz0TestSparseArray.test_set_fill_invalid_non_scalarcCs,| ¡}|j|jk    st‚|j|jks(t‚dS©N)ÚcopyZ    sp_valuesr#Úsp_index)rrZarr2rrrÚ    test_copy]szTestSparseArray.test_copycCst | ¡|¡dSr1)rZassert_almost_equalÚto_dense)rrrrrrÚtest_values_asarraybsz#TestSparseArray.test_values_asarrayzdata,shape,dtype)r
)r)rÚAÚB)r    cCst||d}|j|kst‚dS)N©r)rÚshaper#)rÚdatar:rÚoutrrrÚ
test_shapees zTestSparseArray.test_shapeÚvalscCs.t |¡}t||d}| ¡}t ||¡dS©Nr)r r rr5rÚassert_numpy_array_equal)rr>rrrrrrÚtest_dense_reprss
 
 zTestSparseArray.test_dense_reprÚfixrrcCs$| |¡}t |¡}t ||¡dSr1)ZgetfixturevaluerZround_trip_pickler)rrBÚrequestÚobjZ    unpickledrrrÚ test_pickleƒs
 
zTestSparseArray.test_picklec    Cs2tdddgƒ}t d¡|D]}qW5QRXdS)Nrrr)rrZassert_produces_warning)rZsp_arrÚ_rrrÚtest_generator_warnings‰s z'TestSparseArray.test_generator_warningscCsxttjdgdd}t ddg¡}| |d¡}tddgdd}t ||¡t |¡}|     |d¡}t 
|t |¡¡dS)Nr!rrTFr) rr rr Z_whererrÚpdÚSeriesÚwhereZassert_series_equal)rrÚmaskrrZserrrrÚtest_where_retain_fill_values 
z,TestSparseArray.test_where_retain_fill_valuecCs tdtjtjdtjgƒ}| d¡}tdddddgdtjd}t ||¡tdtjtjdtjgdd}| d¡}tdddddgdtjd}t ||¡tdtjdddgƒ}| d¡}tdddddgdtjd}t ||¡tdtjdddgdd}| d¡}tdddddgdtjd}t ||¡ttjtjtjtjgƒ}| d¡}tddddgdtjd}t ||¡ttjtjtjtjgdd}| d¡}tddddgdtjd}t ||¡tddddgƒ}| d¡}tddddgdd}t ||¡tddddgƒ}|jttj    ƒkst
‚|j dks t
‚| d¡}t ||¡tddddgdd}|jttj    ƒks`t
‚|j dkspt
‚| d¡}tddddgdd}t ||¡tddddgtjd}|jttj    tjdksÌt
‚t  |j ¡sÞt
‚| d¡}tddddgdd}t ||¡dS)Nrréÿÿÿÿr"rrç) rr rÚfillnaÚfloat64rrrrr$r#rr%©rÚsrrrrrÚ test_fillnasZ
 
 
 
 
 
 
 
 
 
zTestSparseArray.test_fillnacCsœtdtjtjdtjgƒ}| d¡}tjdddddgtjd}t | ¡|¡tdtjtjdtjgdd}| d¡}tdddddgdtjd}t     ||¡dS)Nrrr9rrr")
rr rrOr rPrr@r5rrQrrrÚtest_fillna_overlapÙs
 
z#TestSparseArray.test_fillna_overlapc CsŽttdƒtdƒddddddddddg ƒ}tjdddgtjd}| ¡\}t ||¡tddddddddddddg ƒ}| ¡\}t ||¡dS)    Nrrrrrr
é    r9)rÚfloatr r Úint32Znonzerorr@)rÚsaÚexpectedÚresultrrrÚ test_nonzeroæs(
  
zTestSparseArray.test_nonzero)Ú__name__Ú
__module__Ú __qualname__r,ÚmarkÚ parametrizer rr r(r r0r4r6Úobjectr=rArErGrLrSrTr[rrrrr#s@
    '"
 
üþ    
ýþ 
< rc @sèeZdZej dejdddddgede    e dd    d
d d g¡ƒfejddej
ddgede    e dd    ej
d dg¡ƒfg¡ej dddg¡dd„ƒƒZ dd„Z dd„Z ej ddej
g¡dd„ƒZdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&S)'ÚTestSparseArrayAnalyticsz data,expectedrrrr    r
r9r!g@g@g$@g.@g@g(@ÚnumpyTFc    Cs|r
tjndd„}|t|ƒƒ}t ||¡|t|tjdƒ}t ||¡|t|ddƒ}t ||¡|rÌd}tjt|dtjt|ƒtj    dW5QRXd}tjt|dtjt|ƒ|d    W5QRXn@d
}t
  d |›d ¡}tjt|dt|ƒj|d W5QRXdS)NcSs| ¡Sr1)Úcumsum)rRrrrÚ<lambda>óz6TestSparseArrayAnalytics.test_cumsum.<locals>.<lambda>rrz&the 'dtype' parameter is not supportedr*r9z$the 'out' parameter is not supported)r<rzaxis(=z) out of bounds)Úaxis) r rdrrrrr,r-r.r$ÚreÚescape)rr;rYrcrdr<r/rgrrrÚ test_cumsumós$    z$TestSparseArrayAnalytics.test_cumsumcCs¸tdtjdtjdgƒ}tdtjdtjdgƒ}t t|ƒ|¡t t |¡|¡tddddgdd}tdddg|jdd}t t|ƒ|¡t t |¡|¡tddddgdd}tddddgdd}t t|ƒ|¡t t |¡|¡tdtjdtjdgƒ}tt dtjdtjdg¡ƒ}t t |¡|¡tddddgdd}tt ddddg¡t d¡d}t t |¡|¡tddddgdd}tt ddddg¡t d¡d}t t |¡|¡dS)NrréþÿÿÿrMr)Ú sparse_indexrr)rr rrrÚabsr3Úsin)rrrZrrrrÚ
test_ufuncs*  z#TestSparseArrayAnalytics.test_ufunccCs¼tdtjdtjdgƒ}tdtjdtjdgƒ}t t |d¡|¡tddddgdd}tddddgdd}t t |d¡|¡tddddgdd}tddddgdd}t t |d¡|¡dS)NrrrkrrMrr)rr rrrÚadd)rrrZrrrÚtest_ufunc_args8sz(TestSparseArrayAnalytics.test_ufunc_argsrrNcCsht|gdddg|d}t |¡\}}t t |¡¡\}}t |t||d¡t |t||d¡dS)Né
gš™™™™™ñ?gš™™™™™@r)rr ÚmodfÚasarrayrr)rrrZr1Zr2Úe1Úe2rrrÚ    test_modfFs
z"TestSparseArrayAnalytics.test_modfcCs,tdddddgdd}|j}|dks(t‚dS)NrrrÚinteger©Úkindé©rÚnbytesr#©rrrZrrrÚtest_nbytes_integerOsz,TestSparseArrayAnalytics.test_nbytes_integercCs,tdddddgdd}|j}|dks(t‚dS)NrrrÚblockryr{r|r~rrrÚtest_nbytes_blockUsz*TestSparseArrayAnalytics.test_nbytes_blockcCs$tt ddddg¡ƒ}t |¡dS)NZ2012Z2013)rrHÚ to_datetimer rt)rrRrrrÚtest_asarray_datetime64\sz0TestSparseArrayAnalytics.test_asarray_datetime64cCstddgƒ}|jdkst‚dS)Nrrgà?)rZdensityr#r'rrrÚ test_density`s z%TestSparseArrayAnalytics.test_densitycCstddgƒ}|jdkst‚dS)Nrr)rZnpointsr#r'rrrÚ test_npointsds z%TestSparseArrayAnalytics.test_npointsN)r\r]r^r,r_r`r r rVrrrjrorqrwrrrƒr„r…rrrrrbòs*þþûþ  
rbcCsNtdtjdgdd}tj|_| ¡}t |¡}t dddg¡}t ||¡dS)Nr!rNrFT)    rr rrrrtr rr@©rrZrYrrrÚ*test_setting_fill_value_fillna_still_worksis 
r‡cCsTtdtjgdd}tj|_tjt tjg¡tddgƒtttjƒd}t     
||¡dS)NrNrrrr)Z sparse_arrayrlr) rr rrZ _simple_newr rrrVrr)rrYrrrÚtest_setting_fill_value_updatesws 
 
ýrˆzarr,fill_value,locrrrrMr
cCs t||d ¡}||kst‚dSr?)rZ_first_fill_value_locr#)rrÚlocrZrrrÚtest_first_fill_value_loc„srŠrcCsFt||d ¡}t |¡ ¡}t|tƒs,t‚t |¡}t     ||¡dSr?)
rÚuniquerHrIÚ
isinstancer#r rtrr@)rrÚaÚbrrrÚtest_unique_na_fillšs
 
rcCs.tddgƒ}| ¡}tdgƒ}t ||¡dS)Nr)rr‹rrr†rrrÚtest_unique_all_sparse­s 
rcCsœtdddgƒ}tdddgdd}| ddddœ¡}t ||¡| t ddddœ¡¡}t ||¡| t ddddœ¡¡}tdddgdd}t ||¡dS)    Nrrrrré é r)rrr)rÚmaprrrHrI©rrYrZrrrÚtest_mapµs  r•cCs@tdddgƒ}tdddgdd}| dddœ¡}t ||¡dS)Nrrrrrr‘r)rr)rr“rrr”rrrÚtest_map_missingÇsr–cCsvttjdg|d}tdg|d}t | ¡|¡t ddg|dœ¡}tjdg|dœt dg¡d}t     | ¡|¡dS)Nrrr!r)rrŽ)Úindex)
rr rrrZdropnarHÚ    DataFrameZIndexZ assert_equal)rrrÚdfZ expected_dfrrrÚ test_dropnaÏs ršcCsJt t d¡¡ dd„¡}| ¡}t dd„tdƒDƒ¡}t ||¡dS)N)r
r
cSs t|ddS)Nrrr)ÚxrrrreÝrfz1test_drop_duplicates_fill_value.<locals>.<lambda>cSsi|]}|tdgdd“qS)rNrrr)Ú.0ÚirrrÚ
<dictcomp>ßsz3test_drop_duplicates_fill_value.<locals>.<dictcomp>r
)    rHr˜r ÚzerosÚapplyZdrop_duplicatesÚrangerZassert_frame_equal)r™rZrYrrrÚtest_drop_duplicates_fill_valueÛsr¢)!rhrcr r,Zpandas._libs.sparserZpandasrHrZpandas._testingZ_testingrZpandas.core.arrays.sparserrZfixturerrrrrbr‡rˆr_r`rŠrrrr•r–ršr¢rrrrÚ<module>sh   
 
 
Pw ôþ
 
ûþ