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
U
­ý°d_ã@s0dZddlmZddlZddlZddlmZddlm    Z    m
Z
ddl m Z ej d¡Zej dddg¡d    d
„ƒZej d d d dg¡dd„ƒZej d ddg¡dd„ƒZdd„Zdd„Zej diddig¡dd„ƒZdd„Zdd„Zejjdd „ƒZd!d"„Zej d#d$d%g¡d&d'„ƒZd(d)„Zd*d+„Zd,d-„Z dS).zy
Tests that work on both the Python and C engines but do not have a
specific classification into the other test modules.
é)ÚStringION)Ú DtypeWarning)Ú    DataFrameÚconcatZ pyarrow_skipÚ    index_colÚindexc Csä|}d}tdddddgddd    d
d gd d dddgdd dddgdd dddgdd dddggdddddgd}| d¡}|jt|ƒddd}t|ƒ}W5QRXt |d|dd…¡t |d|dd…¡t |d|dd…¡dS)Núiindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
ÚfooééééÚbarééé    é
Zbazé é ééZquxZfoo2Zbar2rÚAÚBÚCÚD©Úcolumnsr)rÚ    chunksizeé)rZ    set_indexÚread_csvrÚlistÚtmÚassert_frame_equal)Ú all_parsersrÚparserÚdataÚexpectedÚreaderÚchunks©r)úcd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/parser/common/test_chunksize.pyÚtest_read_chunksize_with_indexs$          ú ÷
r+rgÍÌÌÌÌÌô?r    c
CsHd}|}d}tjt|d$|jt|ƒ|d}W5QRXW5QRXdS)Nrz"'chunksize' must be an integer >=1©Úmatch©r)ÚpytestÚraisesÚ
ValueErrorrr)r#rr%r$ÚmsgÚ_r)r)r*Útest_read_chunksize_bad5s r4r
rc    Cs^d}|}dddœ}|jt|ƒf|Ž}|jt|ƒfd|i|—Ž}t t|ƒ|¡W5QRXdS)Nrrr ©rÚnrowsr©rrr!r"r)r#rr%r$Úkwargsr&r'r)r)r*Útest_read_chunksize_and_nrowsGs 
r9c
Cs°d}|}dddœ}|jt|ƒf|Ž}|jt|ƒfddi|—Žh}t |jdd|jdd…¡t |jd    d|jdd…¡tjtd
d |jd dW5QRXW5QRXdS) Nrrr r5rrr
)Úsizer Úr,r )    rrr!r"Ú    get_chunkZilocr/r0Ú StopIteration)r#r%r$r8r&r'r)r)r*Ú+test_read_chunksize_and_nrows_changing_sizeZs
r>c    Cs`|}d}|jt|ƒdd}| ¡}W5QRXtdddgdddggd    d
d gd }t ||¡dS) NzA,B,C
1,2,3
4,5,6
7,8,9
1,2,3r
r.rr r r érrrr)rrr<rr!r")r#r$r%r'Úresultr&r)r)r*Útest_get_chunk_passed_chunksizeos "rAr8c    CsTd}|}|jt|ƒf|Ž}|jt|ƒfddi|—Ž}t t|ƒ|¡W5QRXdS)Nrrr
r7)r#r8r%r$r@r'r)r)r*Útest_read_chunksize_compat~s
rBc    CsŠ|}d dgdd dgd¡g¡}tdgtjgdgddgdgƒ}|jt|ƒtdƒdd    }t|ƒ}W5QRXt     ||¡dS)
NÚ
Ú0rú,rrrr )Únamesr)
ÚjoinrÚnpÚnanrrÚrangerr!r")r#r$r%r&r'r@r)r)r*Ú test_read_chunksize_jagged_namess "(rKcCs6|}d}|jt|ƒdd}tddgƒ}t ||¡dS)Nz
 hello
world
)Úheaderz helloZworld)rrrr!r")r#r$r%r@r&r)r)r*Ú)test_chunk_begins_with_newline_whitespacešs
 rMc    Cs€|}dd„tdƒDƒ}dd |ddg|¡}t d¡| t|ƒ¡}W5QRXt|jdƒtj    kslt
‚|jj t ks|t
‚dS)    NcSsg|] }t|ƒ‘qSr)©Ústr©Ú.0Úir)r)r*Ú
<listcomp>§sz>test_chunks_have_consistent_numerical_type.<locals>.<listcomp>é¡úa
rCz1.0z2.0r) rJrGr!Zassert_produces_warningrrÚtypeÚarHÚfloat64ÚAssertionErrorÚdtypeÚfloat)r#r$Úintegersr%r@r)r)r*Ú*test_chunks_have_consistent_numerical_type¤s r]cCszd}|}d}|jdkr$|jr$t}d}dd„t|ƒDƒ}dd |dd    g|¡}t|ƒ}| |d
|¡}|jjt    ksvt
‚dS) Ni'ÚcrTcSsg|] }t|ƒ‘qSr)rNrPr)r)r*rS¾sz<test_warn_if_chunks_have_mismatched_type.<locals>.<listcomp>rUrCrWÚbzWColumns \(0\) have mixed types. Specify dtype option on import or set low_memory=False.) ZengineZ
low_memoryrrJrGrZread_csv_check_warningsrWrZÚobjectrY)r#Z warning_typer$r:r\r%ÚbufZdfr)r)r*Ú(test_warn_if_chunks_have_mismatched_type²sürbÚiteratorTFc    Csh|}tddgd}d}tdƒ}|rJ|j||d}tt|ƒƒ}W5QRXn|j||d}t ||¡dS)Nr    rrrzfoo,bar
r.)r6)rrrÚnextÚiterr!r")r#rcr$r&r6r%r'r@r)r)r*Útest_empty_with_nrows_chunksizeÍsrfc
Csv|}t ¡`}t|dƒ&}tdƒD]}| t|ƒd¡q"W5QRX|j|dd}|D]}qXW5QRXW5QRXdS)NÚwièrCér.)r!Z ensure_cleanÚopenrJÚwriterOr)r#r$ÚpathÚfrRr@r3r)r)r*Ú%test_read_csv_memory_growth_chunksizeßs
  rmcCs||}d}|jt|ƒddgdddgdd}tddgdd    gd
œƒtd gd gd
œdgd g}t|ƒD]\}}t |||¡q^dS)Nz1,2,3,4
5,6,7,8
9,10,11
rWr_r
rr)rFrZusecolsrLr r?)rWr_rr©r)rrrÚ    enumerater!r"©r#r$r%Z result_chunksZexpected_framesrRr@r)r)r*Ú0test_chunksize_with_usecols_second_block_shorterðsû    þrqcCs„|}d}|jt|ƒdd}tddgddgddgd    d
gd œƒtd gd gdgtjgd œdgdg}t|ƒD]\}}t |||¡qfdS)Nz a,b,c,d
1,2,3,4
5,6,7,8
9,10,11
r
r.rr r?r rr r)rWr_r^Údrré rn)rrrrHrIror!r"rpr)r)r*Ú#test_chunksize_second_block_shorter    s  þrt)!Ú__doc__ÚiorÚnumpyrHr/Z pandas.errorsrZpandasrrZpandas._testingZ_testingr!ÚmarkZ usefixturesZ
pytestmarkZ parametrizer+r4r9r>rArBrKrMZslowr]rbrfrmrqrtr)r)r)r*Ú<module>s6