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
U
­ý°dþã@s’ddlZddlZddlZddlZddlmZddlZddl    m
Z ddl m Z mZddlmZejjeddZedd„ƒZd    d
„Zd d „Zeej d ddg¡ej dddg¡dd„ƒƒƒZedd„ƒZejje dddd„ƒZeej dddg¡ej dddddd d!dgfd"dddd d!d#gfd"dddd d!d#gfd"ejddd d!d#gfd"d$gdddd dd#gfd"d$gdd%gddd d%d#gfd"d$gddgddd dd#gfd"d$gdejgddd dd#gfddgdd%gddd d!d%gfddgdd%gd%dd d!dgfed$dƒdddd ddgfed&d'ƒdd%gdddd%d#gfed$d"dƒdd%gddd%dd#gfedƒddddddgfdddddgdd%gddd d%d#gfg¡d(d)„ƒƒƒZed*d+„ƒZed,d-„ƒZdS).éN)Úpa_version_under7p0)Ú StringArrayÚ StringDtype)ÚArrowStringArrayz9pyarrow>=7.0.0 is required for PyArrow backed StringArray)ÚreasoncCsHtjtjtjgtdƒd}||k}tjtjtjgdd}t ||¡dS)NÚpyarrow©Údtypezboolean[pyarrow])ÚpdÚarrayÚNArÚtmZassert_extension_array_equal)ÚaÚresultÚexpected©rúdd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/arrays/string_/test_string_arrow.pyÚtest_eq_all_nasrc    Cslt d|¡4tƒj|kst‚t ddg¡}|jj|ks<t‚W5QRXt|ƒ ¡ ddg¡}t     
||¡dS)NÚstring_storagerÚb) r
Úoption_contextrÚstorageÚAssertionErrorr r    Zconstruct_array_typeÚ_from_sequencer Ú assert_equal)rrrrrrÚ test_configsÿrc    Cs2t d¡}tjt|ddtjj_W5QRXdS)Nz#Value must be one of python|pyarrow©ÚmatchÚfoo)    ÚreÚescapeÚpytestÚraisesÚ
ValueErrorr
ÚoptionsÚmoder©ÚmsgrrrÚtest_config_bad_storage_raises+s
r(ÚchunkedTFr Únumpyrc    Cs†ddl}|dkr|nt}| dddg¡}|rH|tkr>t d¡| |¡}|tkrVd}n
t d¡}tjt    |d    t
|ƒW5QRXdS)
Nrréééz%chunked not applicable to numpy arrayzBUnsupported type '<class 'numpy.ndarray'>' for ArrowExtensionArrayzBArrowStringArray requires a PyArrow (chunked) array of string typer) rÚnpr r!ÚskipÚ chunked_arrayrr r"r#r)r r)ÚpaÚarrr'rrrÚ'test_constructor_not_string_type_raises1s
 
ÿr3c
Cs¸t dd¡tjdddgddW5QRXt dd¡tjdddgddW5QRXtjtddtjdddgd    dW5QRXtjdddgd
dtjtdd4t dd¡tjdddgtƒdW5QRXW5QRXt dd¡tjdddgtƒdW5QRXtjtddtjdddgtdƒdW5QRXtjdddgtdƒdt dd¡tjdddgddW5QRXt dd¡tjdddgddW5QRXtjdddgd    dtjtddtjdddgd
dW5QRXt dd¡tjdddgtƒdW5QRXtjtdd4t dd¡tjdddgtƒdW5QRXW5QRXtjdddgtdƒdtjtddtjdddgtdƒdW5QRXdS) NrÚpythonrÚcÚstringrrrzstring[python]ústring[pyarrow])    r
rrrr!r"rrrrrrrÚ%test_from_sequence_wrong_dtype_raisesHs<* " *r8zpyarrow is installedc    Cs~t d¡}tjt|dtddW5QRXtjt|dtgƒW5QRXtjt|dt dddg¡W5QRXdS)Nz-pyarrow>=7.0.0 is required for PyArrow backedrr)rrr)rr r!r"Ú ImportErrorrrrr&rrrÚ!test_pyarrow_not_installed_raisesys
r:Úmultiple_chunkszkey, value, expectedéÿÿÿÿZXXrrr5Údr+Úer-ZYYr,écCsˆddl}| tdƒ¡}| |¡}|r`| |dd…|dd…g¡}| |dd…|dd…g¡}t|ƒ}t|ƒ}|||<t ||¡dS)NrÚabcder-)rr Úlistr0rr r)r;ÚkeyÚvaluerr1rrrrÚ test_setitemŠs
rDc    Csddl}t| tdƒ¡ƒ}tjtddd|d<W5QRXtjtddd|d<W5QRXtjtddd|ddg<W5QRXtjtddd|ddg<W5QRXtjtddd|dddg<W5QRXtjtdddd    d
g|dd g<W5QRXdS) Nrr@rréiúÿÿÿTFÚbarZbazr+)rrr rAr!r"Ú
IndexErrorr#)r1r2rrrÚ#test_setitem_invalid_indexer_raises±srHcCsttjtdƒdd}| d¡}t |¡}t |¡}t|ƒt|ƒksDt‚t |¡}t     
||¡t |¡}t     
||¡dS)Né
r7rr,) r
ZSeriesÚrangeÚheadÚpickleÚdumpsÚlenrÚloadsr Zassert_series_equal)rZexpected_slicedZ full_pickledZsliced_pickledrZ result_slicedrrrÚtest_pickle_roundtripÊs
 
 
 
 
rP) rLrr*r.r!Z pandas.compatrZpandasr
Zpandas._testingZ_testingr Zpandas.core.arrays.string_rrZpandas.core.arrays.string_arrowrÚmarkZskipifZskip_if_no_pyarrowrrr(Z parametrizer3r8r:r ÚslicerDrHrPrrrrÚ<module>sj   þ
 
0þ
 ñþ