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
U
­ý°d¨ã    @sôdZddlZddlZddlZejjdddgddgdœd    d
d gd d dgdœddddgddddgdœgdddgddd„ƒZdd„Zdd„Zdd„Z    d d!„Z
d"d#„Z ej d$d%gd&d'd(g¡d)d*„ƒZ ej d$d%gd&d'd(g¡d+d,„ƒZ d-d.„Zd/d0„ZdS)1ze
A verbatim copy (vendored) of the spec tests.
Taken from https://github.com/data-apis/dataframe-api
éNÚ    test_dataZfooÚbarZbazZqux©ÚaÚbçø?ç@ç @çffffff"@ç%@皙™™™™'@éééé)ÚAÚBZstr_dataZ
float_dataZint_data)ÚidscCsŠt| ¡ƒ}||ƒ}| ¡}t||dƒ}|D]T}| |¡j}|dksLt‚t|tƒsZt‚| |¡     ¡|kspt‚| |¡j
dks0t‚q0dS)Nr) ÚlistÚkeysÚ __dataframe__ÚlenÚget_column_by_nameÚ
null_countÚAssertionErrorÚ
isinstanceÚintÚsizeÚoffset)rÚ df_from_dictÚcolumnsÚdfÚdfXZ column_sizeÚcolumnr©r$úed:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/interchange/test_spec_conformance.pyÚtest_only_one_dtype s
  r&c    CsÚ|dddgdddgdddgd    d
d gd d d gdddgdœƒ}| ¡}dddddddœ}| ¡D]`\}}| |¡}|jdks|t‚t|jtƒsŒt‚| ¡dksœt‚|jdksªt‚|j    d|ks\t‚q\| d¡j    ddksÖt‚dS)Nr rrrérrr    é    é
é TFrÚÚc)rrr,ÚdÚeÚfrééé@)
rÚitemsrrrrrrrÚdtype)rr!r"r r#ÚkindÚcolXr$r$r%Útest_mixed_dtypes"s&úÿ
 
r7cCsH|ddtjdgiƒ}| ¡}| d¡}|jdks4t‚t|jtƒsDt‚dS)Nrgð?g@r )ÚmathÚnanrrrrrr©rr!r"r6r$r$r%Ú test_na_float?s
 
r;c    CsH|ddddgiƒ}| ¡}| d¡}tjtdd |jW5QRXdS)Nrr rrz.*categorical.*)Úmatch)rrÚpytestZraisesÚ    TypeErrorÚdescribe_categoricalr:r$r$r%Útest_noncategoricalGs
 
r@c Cs^|ddddddddddg    id    d
}| ¡ d¡}|j}t|d tƒsHt‚t|d tƒsZt‚dS) NÚweekdayÚMonÚTueÚWedÚThuÚFriÚSatÚSunT)Zis_categoricalZ
is_orderedZ is_dictionary)rrr?rÚboolr)rr!r6Z categoricalr$r$r%Útest_categoricalOsþrJcCs |dddgdddgdddgd    œƒ}| ¡}| ¡d
ks:t‚| ¡d
ksJt‚| ¡dksZt‚t| ¡ƒd d d gkstt‚t| d¡ ¡ƒt| d¡ ¡ƒksœt‚dS)NTFr rrr
r r )ÚxÚyÚzrrKrLrM)rr)rKrM)    rZ num_columnsrÚnum_rowsÚ
num_chunksrZ column_namesZselect_columnsZselect_columns_by_name)rr!r"r$r$r%Útest_dataframe[sÿ ÿrPrÚn_chunks)r)r)é r)rRr'cCsX|dtt|ƒƒiƒ}| ¡}t| |¡ƒ}t|ƒ|ks:t‚tdd„|Dƒƒ|ksTt‚dS)NrKcss|]}| ¡VqdS©N)rN©Ú.0Úchunkr$r$r%Ú    <genexpr>psz%test_df_get_chunks.<locals>.<genexpr>)rÚrangerÚ
get_chunksrrÚsum©rrQrr!r"Úchunksr$r$r%Útest_df_get_chunksjs
r]cCs^|dtt|ƒƒiƒ}| ¡}t| d¡ |¡ƒ}t|ƒ|ks@t‚tdd„|Dƒƒ|ksZt‚dS)NrKrcss|]}| ¡VqdSrS)rrTr$r$r%rWysz)test_column_get_chunks.<locals>.<genexpr>)rrXrÚ
get_columnrYrrrZr[r$r$r%Útest_column_get_chunksss
r_cCs€|ddgddgdœƒ}| ¡}| ¡D]$}| ¡dks:t‚| ¡dks&t‚q&| d¡jddksdt‚| d¡jddks|t‚dS)Nrr rr    rr)rZ get_columnsrrrOr^r4r:r$r$r%Útest_get_columns|s r`cCsædddg}|d|iƒ}| ¡}| d¡}| ¡}|d\}}|jdksJt‚|jdksXt‚| ¡\}}    |ddkstt‚|dkrâ|d}
tjtj    tj
tj dœ|
} t |ƒD]:\} } |   |j| |
d¡j}|| ks¦td| ›d    ƒ‚q¦dS)
Nrr éÿÿÿÿrÚdata)ééé r2rczBuffer at index z     mismatch)rr^Z get_buffersÚbufsizerÚptrZ__dlpack_device__ÚctypesÚc_int8Úc_int16Úc_int32Úc_int64Ú    enumerateÚ from_addressÚvalue)rZarrr!r"r6ZbufXZdataBufZ    dataDtypeZdeviceÚ_ZbitwidthÚctypeÚidxÚtruthÚvalr$r$r%Ú test_bufferˆs,
 
  üûru)Ú__doc__rhr8r=ÚmarkZ parametrizer&r7r;r@rJrPr]r_r`rur$r$r$r%Ú<module>s.ýù