Ë
    u™ãj-  ã                   ó¢  — d Z ddlZddlZddlZddlmZ ddlZddlm	Z
 ej                  d„ «       Zej                  j                  dddgdd	gd
œg d¢g d¢d
œg d¢g d¢dœgg d¢¬«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  j                  ddgg d¢«      d„ «       Zej                  j                  ddgg d¢«      d„ «       Zd„ Zd„ Zy)ze
A verbatim copy (vendored) of the spec tests.
Taken from https://github.com/data-apis/dataframe-api
é    N)ÚPandas4Warningc                  ó   — dd„} | S )Nc                 óV   — t        j                  | «      }|r|j                  d«      S |S )NÚcategory)ÚpdÚ	DataFrameÚastype)ÚdctÚis_categoricalÚdfs      úy/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/interchange/test_spec_conformance.pyÚmakerzdf_from_dict.<locals>.maker   s&   € Ü�\‰\˜#ÓˆÙ(6ˆr�y‰y˜Ó$Ð>¸BÐ>ó    )F© )r   s    r   Údf_from_dictr      s   € ó?ð €Lr   Ú	test_dataÚfooÚbarÚbazÚqux©ÚaÚb©g      ø?ç      @ç      @©gffffff"@g      %@gš™™™™™'@)é   é   é   é   )ÚAÚB)Ústr_dataÚ
float_dataÚint_data)Úidsc                 óæ  — t        | j                  «       «      } || «      }t        j                  t        d¬«      5  |j                  «       }d d d «       t        | |d      «      }|D ]z  }j                  |«      j                  }|dk(  sJ ‚t        |t        «      sJ ‚|j                  |«      j                  «       |k(  sJ ‚|j                  |«      j                  dk(  rŒzJ ‚ y # 1 sw Y   ŒšxY w)NÚInterchange©Úmatchr   )ÚlistÚkeysÚtmÚassert_produces_warningr   Ú__dataframe__ÚlenÚget_column_by_nameÚ
null_countÚ
isinstanceÚintÚsizeÚoffset)r   r   Úcolumnsr   ÚdfXÚcolumn_sizeÚcolumnr3   s           r   Útest_only_one_dtyper<      sé   € ô �9—>‘>Ó#Ó$€GÙ	�iÓ	 €BÜ	×	#Ñ	#¤N¸-Ô	Hñ !Ø×ÑÓ ˆ÷!ô �i ¨¡
Ñ+Ó,€KØò :ˆØ×+Ñ+¨FÓ3×>Ñ>ˆ
Ø˜QŠÐˆÜ˜*¤cÔ*Ð*Ð*Ø×%Ñ% fÓ-×2Ñ2Ó4¸ÒCÐCÐCØ×%Ñ% fÓ-×4Ñ4¸Ó9Ð9Ð9ñ:÷	!ð !ús   ½C'Ã'C0c           	      ó2  —  | g d¢g d¢g d¢g d¢g d¢g d¢dœ«      }t        j                  t        d¬	«      5  |j                  «       }d d d «       d
d
dd
dddœ}|j	                  «       D ]}  \  }}j                  |«      }|j                  d
k(  sJ ‚t        |j                  t        «      sJ ‚|j                  «       dk(  sJ ‚|j                  d
k(  sJ ‚|j                  d
   |k(  rŒ}J ‚ j                  d«      j                  d   dk(  sJ ‚y # 1 sw Y   ŒÆxY w)N©r   r   r    )r    r!   é   r   )é	   é
   é   )TFT)r   Ú Úc)r   r   rD   ÚdÚeÚfr)   r*   r   r   é   é   r    rD   r   é@   )r.   r/   r   r0   Úitemsr2   r3   r4   r5   r6   r7   Údtype)r   r   r9   r8   r;   ÚkindÚcolXs          r   Útest_mixed_dtypesrO   2   s  € Ù	âÚÚ ÚÚ$Úñ	
ó	
€Bô 
×	#Ñ	#¤N¸-Ô	Hñ !Ø×ÑÓ ˆ÷!ð
 ˜A A¨A°B¸RÑ@€GàŸ™›ò %‰ˆ�Ø×%Ñ% fÓ-ˆØ�‰ !Ò#Ð#Ð#Ü˜$Ÿ/™/¬3Ô/Ð/Ð/Ø�y‰y‹{˜aÒÐÐØ�{‰{˜aÒÐÐà�z‰z˜!‰} Ó$Ð$Ð$ð%ð ×!Ñ! #Ó&×,Ñ,¨QÑ/°2Ò5Ð5Ñ5÷!!ð !ús   ·DÄDc                 ó6  —  | ddt         j                  dgi«      }t        j                  t        d¬«      5  |j                  «       }d d d «       j                  d«      }|j                  dk(  sJ ‚t        |j                  t        «      sJ ‚y # 1 sw Y   ŒHxY w)Nr   g      ð?g       @r)   r*   r   )
ÚmathÚnanr.   r/   r   r0   r2   r3   r4   r5   ©r   r   r9   rN   s       r   Útest_na_floatrT   P   s…   € Ù	�s˜S¤$§(¡(¨CÐ0Ð1Ó	2€BÜ	×	#Ñ	#¤N¸-Ô	Hñ !Ø×ÑÓ ˆ÷!à×!Ñ! #Ó&€DØ�?‰?˜aÒÐÐÜ�d—o‘o¤sÔ+Ð+Ñ+÷	!ð !ús   ·BÂBc                 ó6  —  | dg d¢i«      }t        j                  t        d¬«      5  |j                  «       }d d d «       j	                  d«      }t        j                  t        d¬«      5  |j                   d d d «       y # 1 sw Y   ŒKxY w# 1 sw Y   y xY w)Nr   r>   r)   r*   z.*categorical.*)	r.   r/   r   r0   r2   ÚpytestÚraisesÚ	TypeErrorÚdescribe_categoricalrS   s       r   Útest_noncategoricalrZ   Y   s†   € Ù	�sšIÐ&Ó	'€BÜ	×	#Ñ	#¤N¸-Ô	Hñ !Ø×ÑÓ ˆ÷!à×!Ñ! #Ó&€DÜ	�‰”yÐ(9Ô	:ñ "Ø×!Ò!÷"ð "÷!ð !ú÷"ð "ús   ¨BÁ-BÂBÂBc                 ó*  —  | dg d¢id¬«      }t        j                  t        d¬«      5  |j                  «       j	                  d«      }d d d «       j
                  }t        |d   t        «      sJ ‚t        |d   t        «      sJ ‚y # 1 sw Y   Œ@xY w)	NÚweekday)	ÚMonÚTuer]   ÚWedr]   ÚThuÚFriÚSatÚSunT)r   r)   r*   Ú
is_orderedÚis_dictionary)r.   r/   r   r0   r2   rY   r4   Úbool)r   r   rN   Úcategoricals       r   Útest_categoricalrh   b   s‘   € Ù	Ø	ÒSÐTØô
€Bô
 
×	#Ñ	#¤N¸-Ô	Hñ @Ø×ÑÓ!×4Ñ4°YÓ?ˆ÷@à×+Ñ+€KÜ�k ,Ñ/´Ô6Ð6Ð6Ü�k /Ñ2´DÔ9Ð9Ñ9÷	@ð @ús   ª B	Â	Bc                 ó  —  | g d¢g d¢g d¢dœ«      }t        j                  t        d¬«      5  |j                  «       }d d d «       j	                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚t        |j                  «       «      g d¢k(  sJ ‚t        |j                  d	«      j                  «       «      t        |j                  d
«      j                  «       «      k(  sJ ‚y # 1 sw Y   Œ¼xY w)N)TTF)r   r   r   r   )ÚxÚyÚzr)   r*   r    r   )r   r   )rj   rl   )r.   r/   r   r0   Únum_columnsÚnum_rowsÚ
num_chunksr,   Úcolumn_namesÚselect_columnsÚselect_columns_by_name)r   r   r9   s      r   Útest_dataframers   o   sñ   € Ù	Ú!ª	Ò8IÑJó
€Bô 
×	#Ñ	#¤N¸-Ô	Hñ !Ø×ÑÓ ˆ÷!ð �?‰?Ó Ò!Ð!Ð!Ø�<‰<‹>˜QÒÐÐØ�>‰>Ó˜qÒ Ð Ð Ü�× Ñ Ó"Ó#¢Ò6Ð6Ð6Ü�×"Ñ" 6Ó*×7Ñ7Ó9Ó:¼dØ×"Ñ" :Ó.×;Ñ;Ó=ó?ò ð ñ ÷!ð !ús   ®C:Ã:Dr6   Ún_chunks))rA   r    )é   r    )ru   r?   c                 ó>  —  |dt        t        | «      «      i«      }t        j                  t        d¬«      5  |j                  «       }d d d «       t        j                  |«      «      }t        |«      |k(  sJ ‚t        d„ |D «       «      | k(  sJ ‚y # 1 sw Y   ŒKxY w)Nrj   r)   r*   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­w©N)rn   ©Ú.0Úchunks     r   ú	<genexpr>z%test_df_get_chunks.<locals>.<genexpr>†   s   è ø€ Ò4 Eˆu�~‰~×Ñ4ùó   ‚)	r,   Úranger.   r/   r   r0   Ú
get_chunksr1   Úsum©r6   rt   r   r   r9   Úchunkss         r   Útest_df_get_chunksrƒ      s‹   € á	�sœD¤ t£Ó-Ð.Ó	/€BÜ	×	#Ñ	#¤N¸-Ô	Hñ !Ø×ÑÓ ˆ÷!ä�#—.‘. Ó*Ó+€FÜˆv‹;˜(Ò"Ð"Ð"ÜÑ4¨VÔ4Ó4¸Ò<Ð<Ñ<÷	!ð !ús   ¸BÂBc                 ó\  —  |dt        t        | «      «      i«      }t        j                  t        d¬«      5  |j                  «       }d d d «       t        j                  d«      j                  |«      «      }t        |«      |k(  sJ ‚t        d„ |D «       «      | k(  sJ ‚y # 1 sw Y   ŒZxY w)Nrj   r)   r*   r   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrx   )r6   ry   s     r   r|   z)test_column_get_chunks.<locals>.<genexpr>�   s   è ø€ Ò0 ˆu�z‰z�|Ñ0ùr}   )
r,   r~   r.   r/   r   r0   Ú
get_columnr   r1   r€   r�   s         r   Útest_column_get_chunksr‡   ‰   s–   € á	�sœD¤ t£Ó-Ð.Ó	/€BÜ	×	#Ñ	#¤N¸-Ô	Hñ !Ø×ÑÓ ˆ÷!ä�#—.‘. Ó#×.Ñ.¨xÓ8Ó9€FÜˆv‹;˜(Ò"Ð"Ð"ÜÑ0¨Ô0Ó0°DÒ8Ð8Ñ8÷	!ð !ús   ¸B"Â"B+c                 ó¬  —  | ddgddgdœ«      }t        j                  t        d¬«      5  |j                  «       }d d d «       j	                  «       D ],  }|j                  «       dk(  sJ ‚|j                  «       dk(  rŒ,J ‚ |j                  d«      j                  d   dk(  sJ ‚|j                  d«      j                  d   dk(  sJ ‚y # 1 sw Y   Œ�xY w)	Nr   r   r   r   r   r)   r*   r   )	r.   r/   r   r0   Úget_columnsr6   ro   r†   rL   rS   s       r   Útest_get_columnsrŠ   “   sÑ   € Ù	˜Q ˜F¨#¨s¨Ñ4Ó	5€BÜ	×	#Ñ	#¤N¸-Ô	Hñ !Ø×ÑÓ ˆ÷!à—‘Ó!ò &ˆØ�y‰y‹{˜aÒÐÐØ�‰Ó  AÓ%Ð%Ð%ð&ð
 �>‰>˜!Ó×"Ñ" 1Ñ%¨Ò*Ð*Ð*Ø�>‰>˜!Ó×"Ñ" 1Ñ%¨Ò*Ð*Ñ*÷!ð !ús   «C
Ã
Cc                 ó®  — g d¢} | d|i«      }t        j                  t        d¬«      5  |j                  «       }d d d «       j	                  d«      }|j                  «       }|d   \  }}|j                  dkD  sJ ‚|j                  dk7  sJ ‚|j                  «       \  }}	|d   dk(  sJ ‚|dk(  r™|d   }
t        j                  t        j                  t        j                  t        j                  dœ|
   }t        |«      D ]C  \  }}|j                  |j                  ||
d	z  z  z   «      j                   }||k(  rŒ:J d
|› d�«       ‚ y y # 1 sw Y   �ŒxY w)N)r   r   éÿÿÿÿr   r)   r*   r   Údatar   )é   é   é    rJ   rŽ   zBuffer at index z	 mismatch)r.   r/   r   r0   r†   Úget_buffersÚbufsizeÚptrÚ__dlpack_device__ÚctypesÚc_int8Úc_int16Úc_int32Úc_int64Ú	enumerateÚfrom_addressÚvalue)r   Úarrr   r9   rN   ÚbufXÚdataBufÚ	dataDtypeÚdeviceÚ_ÚbitwidthÚctypeÚidxÚtruthÚvals                  r   Útest_bufferr¨       s\  € Ú
€CÙ	�s˜C�jÓ	!€BÜ	×	#Ñ	#¤N¸-Ô	Hñ !Ø×ÑÓ ˆ÷!à�>‰>˜!Ó€DØ×ÑÓ€Dà˜f™Ñ€GˆYà�?‰?˜QÒÐÐØ�;‰;˜!ÒÐÐØ×)Ñ)Ó+�I€FˆAð �Q‰<˜1ÒÐÐà�‚{Ø˜Q‘<ˆä�}‰}Ü—‘Ü—‘Ü—‘ñ	
ð
 ñˆô $ C›.ò 	C‰JˆC�Ø×$Ñ$ W§[¡[°3¸(Àa¹-Ñ3HÑ%HÓI×OÑOˆCØ˜%“<ÐBÐ#3°C°5¸	Ð!BÓB�<ñ	Cð ÷!ñ !ús   ªE
Å
E)Ú__doc__r•   rQ   rV   Úpandas.errorsr   Úpandasr   Úpandas._testingÚ_testingr.   Úfixturer   ÚmarkÚparametrizer<   rO   rT   rZ   rh   rs   rƒ   r‡   rŠ   r¨   r   r   r   ú<module>r±      s  ðñó
 Û ã å (ã Ý ð ‡�ñó ðð ‡�×ÑØà�eˆn E¨5 >Ñ2ÚÒ$5Ñ6Ú¢Ñ.ðò
 	/ð ó ñ:óð:ò6ò<,ò"ò
:òð  ‡�×Ñ˜& *Ð-Ò/JÓKñ=ó Lð=ð ‡�×Ñ˜& *Ð-Ò/JÓKñ9ó Lð9ò
+óCr   