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
U
­ý°dq<ã@s¸ddlmZddlZddlmZddlZddlZddlZ    ddl
Z
ddl m Z m Z ddlmZmZmZmZmZmZddlmZe
jdd„ƒZdd    „Zd
d „Ze
j d d dddg¡dd„ƒZe
j ddddddg¡dd„ƒZdd„Z e
j ddddd d!g¡d"d#„ƒZ!d$d%„Z"d&d'„Z#d(d)„Z$d*d+„Z%d,d-„Z&d.d/„Z'e
jj(e d0d1d2d3„ƒZ)e
jj*e d4d1d5d6„ƒZ+e
jj(e d7d1d8d9„ƒZ,d:d;„Z-d<d=„Z.d>d?„Z/e
jj*e d@d1dAdB„ƒZ0dCdD„Z1dS)Eé)ÚStringION)Úascii_uppercase)ÚIS64ÚPYPY)ÚCategoricalIndexÚ    DataFrameÚ
MultiIndexÚSeriesÚ
date_rangeÚoption_contextcCsttj dd¡ddddgdS)z&Dataframe with duplicate column names.iÜéÚaÚb©Úcolumns)rÚnpÚrandomÚrandn©rrúXd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/formats/test_info.pyÚduplicate_columns_framesrcCs:tƒ}tƒ}|j|d| ¡}t d¡}||ks6t‚dS)N©Úbufzd        <class 'pandas.core.frame.DataFrame'>
        RangeIndex: 0 entries
        Empty DataFrame
©rrÚinfoÚgetvalueÚtextwrapÚdedentÚAssertionError©ÚdfrÚresultÚexpectedrrrÚtest_info_empty s ÿr#cCsŒd}tdtjjd|diƒ}tt tdƒ¡ tjjdd|d¡ƒ d¡|d<|     ¡t
ƒ}|j |d    ||dd
k}t
ƒ}|j |d    dS) NiÄ    Úint64éd©ÚsizeZ
abcdefghijré
ÚcategoryrÚd) rrrÚrandintr    ÚarrayÚlistZtakeÚastypeZisnarr)Únr rZdf2rrrÚ'test_info_categorical_column_smoke_test/s ÿþ r0Úfixture_func_nameZ    int_frameZ float_frameZdatetime_framecCs<| |¡}tƒ}|j|d| ¡ ¡}t|ƒdks8t‚dS)Nrr()ZgetfixturevaluerrrÚ
splitlinesÚlenr)r1ÚrequestÚframerr!rrrÚtest_info_smoke_test>s
 
 
  r6z&num_columns, max_info_columns, verbose)r(r%T)r(é T)r(r(T)r(é    F)r(éFc    Csnttj d|¡ƒ}td|ƒHtƒ}|j|d| ¡}tƒ}|j||d| ¡}||ks`t‚W5QRXdS)Néúdisplay.max_info_columnsr©rÚverbose)    rrrrr rrrr)Z num_columnsÚmax_info_columnsr=r5Z
io_defaultr!Z io_explicitr"rrrÚ#test_info_default_verbose_selectionOs   r?c
CsÆtƒ}d}d}ttj d|¡ƒ}|jd|d| ¡}d}||ksFt‚|jd|d| d¡|     ¡}t
|ƒdksvt‚t |ƒD]B\}}||krž||kr~nq~d||›d}    |  |    ¡s~t‚q~dS)    Néér:éT)r=rz- #     Column  Dtype  
---    ------  -----  rú ) rrrrrrrrÚseekÚ    readlinesr3Ú    enumerateÚ
startswith)
rr'Ústartr5ÚresÚheaderÚlinesÚiÚlineZline_nrrrrÚ-test_info_verbose_check_header_separator_bodygs  
rMz>size, header_exp, separator_exp, first_line_exp, last_line_exp)r ú$ #   Column  Non-Null Count  Dtype  ú$---  ------  --------------  -----  ú$ 0   0       3 non-null      float64z$ 3   3       3 non-null      float64)r7rNrOrPz$ 10  10      3 non-null      float64)éez% #    Column  Non-Null Count  Dtype  z%---   ------  --------------  -----  z% 0    0       3 non-null      float64z% 100  100     3 non-null      float64)r@z& #     Column  Non-Null Count  Dtype  z&---    ------  --------------  -----  z& 0     0       3 non-null      float64z& 1000  1000    3 non-null      float64)i'z' #      Column  Non-Null Count  Dtype  z'---     ------  --------------  -----  z' 0      0       3 non-null      float64z' 10000  10000   3 non-null      float64c    Csttj d|¡ƒ}tƒ"}|jdd|d| ¡ ¡}W5QRX|dd…}|^}    }
} } } |    |ksht‚|
|kstt‚| |ks€t‚| |ksŒt‚dS)zETest header column, spacer, first line and last line in verbose mode.rAT)r=Ú show_countsréþÿÿÿN)    rrrrrrrr2r)r'Z
header_expZ separator_expZfirst_line_expZ last_line_expr5rZ    all_linesÚtablerIÚ    separatorÚ
first_lineÚrestÚ    last_linerrrÚ%test_info_verbose_with_counts_spacing}s,    rYcCsdtdtddgddiƒ}tƒ}|j|d| ¡}t| ¡ ¡ƒ}t     d|›d¡}||ks`t
‚dS)    Nr r9éÚi8)Údtypera     <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 2 entries, 0 to 1
    Data columns (total 1 columns):
     #   Column  Non-Null Count  Dtype
    ---  ------  --------------  -----
     0   a       2 non-null      int64
    dtypes: int64(1)
    memory usage: z  bytes
    ) rr    rrrÚfloatÚ memory_usageÚsumrrr)r rr!Úbytesr"rrrÚtest_info_memory·s øÿ rac    Cs˜tƒ}ttj dd¡ƒ}|j|dtƒ}|j|dd| ¡}t| ¡ƒdksTt    ‚|}t
ddƒ,tƒ}|j|d| ¡}||ksŠt    ‚W5QRXdS)Nr:rQr©rÚmax_colsr%r;) rrrrrrrr3r2rr )Úior r!r"rrrÚtest_info_wideÍs   recCsZtƒ}tddggddgd}|j|d| ¡ d¡}d|dksFt‚d    |d
ksVt‚dS) Nr9g@r rrTz% 0   a       1 non-null      int64  
r:z% 1   a       1 non-null      float64
é)rrrrr2r)rdr5rJrrrÚ0test_info_duplicate_columns_shows_correct_dtypesßs  rgc
    Cs¼dddddddg}i}d}t|ƒD]"\}}tjjd    |d
 |¡||<q"t|ƒ}tƒ}|j|d | ¡}d }||ksxt    ‚t|ƒD]6\}}d |d›d|d›d|d›d|›}    |    |ks€t    ‚q€dS)Nr$Úfloat64údatetime64[ns]útimedelta64[ns]Ú
complex128ÚobjectÚboolr(rZr&rzY #   Column  Non-Null Count  Dtype          
---  ------  --------------  -----          rBr*z   z       z non-null     )
rErrr+r.rrrrr)
ÚdtypesÚdatar/rKr\r rrHrIÚnamerrrÚtest_info_shows_column_dtypesés,ù     ÿ "rqc
Cstttj dd¡ƒ}dD]T\}}tddƒ<tƒ}|j||d| ¡}t|     ¡ 
d¡ƒ|ks`t ‚W5QRXqdD]T\}}tddƒ<tƒ}|j||d| ¡}t|     ¡ 
d¡ƒ|ksºt ‚W5QRXqpd    D]¤\}}tddƒ>tƒ}|j||d
| ¡}t|     ¡ 
d¡ƒ|kst ‚W5QRXtddƒ>tƒ}|j||d
| ¡}t|     ¡ 
d¡ƒ|ksdt ‚W5QRXqÊdS) Nr(r:))r:N©r:F©é Tr>r r<Ú
))rtNrrrs))rtr:)r:r rb) rrrrr rrrr3ÚstripÚsplitr)r Zlen_r=rrHrcrrrÚtest_info_max_colss0  &  &  & rxc Csêdddddddg}i}d}t|ƒD]"\}}tjjd    |d
 |¡||<q"t|ƒ}tƒ}|j|d d | ¡     ¡}d |dks~t
‚|j|dd | ¡     ¡}d |dks¨t
‚|j|d d | ¡     ¡}t   d|d¡sÖt
‚|j dd…dd…fj|d d | ¡     ¡}t   d|d¡rt
‚ddddg}i}d}t|ƒD]$\}}tjjd    |d
 |¡||<q4t|ƒ}||_tddgidgd}|j|d d | ¡     ¡}t   d|d¡s¬t
‚|j|dd | ¡     ¡}t   d|d¡sÜt
‚| ¡ ¡}    t|ƒ|d|jj}
|    |
kst
‚t |jj¡d} | t | ¡¡ks8t
‚| ¡ ¡|jd d ¡ksZt
‚tddgdgdjd dtddgdgdjjtdt dgtdƒg¡dgd}|jj|jd d|jjj|jd d ¡} | dksæt
‚dS) Nr$rhrirjrkrlrmr(rZr&T)rr^zmemory usage: éÿÿÿÿFzmemory usage: [^+]+\+r:r%r r9Úfoo©ÚindexÚdeepzmemory usage: [^+]+$é©r}ÚA©r|réè©ror|rr)rErrr+r.rrrrr2rÚreÚmatchZilocrr^r_r3r|Únbytesr'ÚvaluesrÚ from_productÚrange) rnror/rKr\r rrHÚdf_with_object_indexZdf_sizeZexp_sizeZsize_dfÚmemrrrÚtest_info_memory_usage'stù             "ÿ 
rŒz'on PyPy deep=True doesn't change result)ÚreasoncCsltddgidgd}|jddd ¡|jdd ¡ks:t‚tddgiƒ}|jdd ¡| ¡ ¡ksht‚dS©Nr r9rzr{T)r|r}r©rr^r_r©rŠZ    df_objectrrrÚ$test_info_memory_usage_deep_not_pypy|sÿÿr‘z(on PyPy deep=True does not change resultcCsltddgidgd}|jddd ¡|jdd ¡ks:t‚tddgiƒ}|jdd ¡| ¡ ¡ksht‚dSrŽrrrrrÚ test_info_memory_usage_deep_pypyˆsÿÿr’z PyPy getsizeof() fails by designcCsRtdt dgtdƒg¡dgd}|jdd ¡}|t |¡}t|ƒdksNt    ‚dS)    Nr9r r‚r€rƒTrr%)
rrrˆr‰r^r_ÚsysÚ    getsizeofÚabsr)r r‹ZdiffrrrÚtest_usage_via_getsizeof”sÿr–cCstƒ}tdtdƒdddgd}|j|dd| ¡ks:t‚tƒ}tdtdƒtdƒd}|j|dd| ¡ksrt‚tƒ}tdtdƒt tdƒtdƒg¡d}|j|dd| ¡ks¸t‚tƒ}tdtdƒt tdƒd    d
gg¡d}|j|dd| ¡ksþt‚dS) Nr9ÚabrZrA)rr|rú+ÚABCrzÚbar)    rrr-rrrrrˆr‰)rr rrrÚ test_info_memory_usage_qualified s0  ÿ ÿ r›cCs dd„}d}ttƒ}tjttƒtd|dgddgd}td    tj     ||¡i|d
}| 
d¡}|j j |j j kspt ‚||ƒ||ƒks„t ‚||ƒ||ƒd ksœt ‚dS) NcSs|jdd ¡S)NTr)r^r_)Úfrrrr^¾sz>test_info_memory_usage_bug_on_multiindex.<locals>.memory_usager%Z20160101)ZperiodsÚidÚdate)ÚnamesÚvaluer{iÐ)r3Ú    uppercaserrˆr-r
rrrrZunstackr‡r†r)r^ÚNÚMr|r Z    unstackedrrrÚ(test_info_memory_usage_bug_on_multiindexºsþ
r¤cCs6tddgƒ}tt d¡||d}tƒ}|j|ddS)Nr r)rZrZrr)rrrÚzerosrr)Úidxr rrrrÚtest_info_categoricalÑs r§zGH 36579: fail on 32-bit systemcCsTtddgddgdœddgd}tƒ}|jd|d    | ¡}t d
¡}||ksPt‚dS) Nr9rZrA)r9rZr€ÚBr{T)rRraf        <class 'pandas.core.frame.DataFrame'>
        Index: 2 entries, A to B
        Data columns (total 2 columns):
         #   Column  Non-Null Count  Dtype
        ---  ------  --------------  -----
         0   1       2 non-null      int64
         1   2       2 non-null      int64
        dtypes: int64(2)
        memory usage: 48.0+ bytes
        rrrrrÚtest_info_int_columnsÚsÿ r©c    CsRtddgd}t d¡| ¡}W5QRXttr6dnddgd}t ||¡dS)Nr rr{ér~ZIndex)rÚtmZassert_produces_warningr^r    rZassert_series_equal)r r!r"rrrÚ"test_memory_usage_empty_no_warningñs
 r¬)2rdrr„Ústringrr¡r“rÚnumpyrZpytestZ pandas.compatrrZpandasrrrr    r
r Zpandas._testingZ_testingr«Zfixturerr#r0ÚmarkZ parametrizer6r?rMrYrarergrqrxrŒZskipifr‘Zxfailr’r–r›r¤r§r©r¬rrrrÚ<module>sz    
üþ    
ûþ
 
ãþ(
 
"U