Ë
    AúYjc  ã                   ó–  — d Z ddlZddlZddl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
é    Nc                  ó   — dd„} | S )Nc                 óV   — t        j                  | «      }|r|j                  d«      S |S )NÚcategory)ÚpdÚ	DataFrameÚastype)ÚdctÚis_categoricalÚdfs      úy/var/www/ramen.bs-engineer-server.com/venv/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                  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_warningÚ__dataframe__ÚlenÚget_column_by_nameÚ
null_countÚ
isinstanceÚintÚsizeÚoffset)r   r   Úcolumnsr   ÚdfXÚcolumn_sizeÚcolumnr2   s           r   Útest_only_one_dtyper;      sç   € ô �9—>‘>Ó#Ó$€GÙ	�iÓ	 €BÜ	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!ô �i ¨¡
Ñ+Ó,€KØò :ˆØ×+Ñ+¨FÓ3×>Ñ>ˆ
Ø˜QŠÐˆÜ˜*¤cÔ*Ð*Ð*Ø×%Ñ% fÓ-×2Ñ2Ó4¸ÒCÐCÐCØ×%Ñ% fÓ-×4Ñ4¸Ó9Ð9Ð9ñ:÷	!ð !ús   ¸C"Ã"C+c           	      ó(  —  | g d¢g d¢g d¢g d¢g d¢g d¢dœ«      }t        j                  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   rC   ÚdÚeÚfr(   r)   r   r   é   é   r   rC   r   é@   )r-   r.   r/   Úitemsr1   r2   r3   r4   r5   r6   Údtype)r   r   r8   r7   r:   ÚkindÚcolXs          r   Útest_mixed_dtypesrN   0   s  € Ù	âÚÚ ÚÚ$Úñ	
ó	
€Bô 
×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!ð
 ˜A A¨A°B¸RÑ@€GàŸ™›ò %‰ˆ�Ø×%Ñ% fÓ-ˆØ�‰ !Ò#Ð#Ð#Ü˜$Ÿ/™/¬3Ô/Ð/Ð/Ø�y‰y‹{˜aÒÐÐØ�{‰{˜aÒÐÐà�z‰z˜!‰} Ó$Ð$Ð$ð%ð ×!Ñ! #Ó&×,Ñ,¨QÑ/°2Ò5Ð5Ñ5÷!!ð !ús   ²DÄDc                 ó,  —  | ddt         j                  dgi«      }t        j                  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/   r1   r2   r3   r4   ©r   r   r8   rM   s       r   Útest_na_floatrS   N   sƒ   € Ù	�s˜S¤$§(¡(¨CÐ0Ð1Ó	2€BÜ	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!à×!Ñ! #Ó&€DØ�?‰?˜aÒÐÐÜ�d—o‘o¤sÔ+Ð+Ñ+÷	!ð !ús   ²B
Â
Bc                 ó,  —  | dg d¢i«      }t        j                  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/   r1   ÚpytestÚraisesÚ	TypeErrorÚdescribe_categoricalrR   s       r   Útest_noncategoricalrY   W   s„   € Ù	�sšIÐ&Ó	'€BÜ	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!à×!Ñ! #Ó&€DÜ	�‰”yÐ(9Ô	:ñ "Ø×!Ò!÷"ð "÷!ð !ú÷"ð "ús   £A>Á(B
Á>BÂ
Bc                 ó   —  | dg d¢id¬«      }t        j                  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/   r1   rX   r3   Úbool)r   r   rM   Úcategoricals       r   Útest_categoricalrg   `   s�   € Ù	Ø	ÒSÐTØô
€Bô
 
×	#Ñ	#¨-Ô	8ñ @Ø×ÑÓ!×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                  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   )ri   rk   )
r-   r.   r/   Únum_columnsÚnum_rowsÚ
num_chunksr+   Úcolumn_namesÚselect_columnsÚselect_columns_by_name)r   r   r8   s      r   Útest_dataframerr   m   sï   € Ù	Ú!ª	Ò8IÑJó
€Bô 
×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!ð �?‰?Ó Ò!Ð!Ð!Ø�<‰<‹>˜QÒÐÐØ�>‰>Ó˜qÒ Ð Ð Ü�× Ñ Ó"Ó#¢Ò6Ð6Ð6Ü�×"Ñ" 6Ó*×7Ñ7Ó9Ó:¼dØ×"Ñ" :Ó.×;Ñ;Ó=ó?ò ð ñ ÷!ð !ús   ©C5Ã5C>r5   Ún_chunks))r@   r   )é   r   )rt   r>   c                 ó4  —  |dt        t        | «      «      i«      }t        j                  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)Nri   r(   r)   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­w©N)rm   ©Ú.0Úchunks     r   ú	<genexpr>z%test_df_get_chunks.<locals>.<genexpr>„   s   è ø€ Ò4 Eˆu�~‰~×Ñ4ùó   ‚)r+   Úranger-   r.   r/   Ú
get_chunksr0   Úsum©r5   rs   r   r   r8   Úchunkss         r   Útest_df_get_chunksr‚   }   s‰   € á	�sœD¤ t£Ó-Ð.Ó	/€BÜ	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!ä�#—.‘. Ó*Ó+€FÜˆv‹;˜(Ò"Ð"Ð"ÜÑ4¨VÔ4Ó4¸Ò<Ð<Ñ<÷	!ð !ús   ³BÂBc                 óR  —  |dt        t        | «      «      i«      }t        j                  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)Nri   r(   r)   r   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrw   )r5   rx   s     r   r{   z)test_column_get_chunks.<locals>.<genexpr>Ž   s   è ø€ Ò0 ˆu�z‰z�|Ñ0ùr|   )	r+   r}   r-   r.   r/   Ú
get_columnr~   r0   r   r€   s         r   Útest_column_get_chunksr†   ‡   s”   € á	�sœD¤ t£Ó-Ð.Ó	/€BÜ	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!ä�#—.‘. Ó#×.Ñ.¨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                  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/   Úget_columnsr5   rn   r…   rK   rR   s       r   Útest_get_columnsr‰   ‘   sÏ   € Ù	˜Q ˜F¨#¨s¨Ñ4Ó	5€BÜ	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!à—‘Ó!ò &ˆØ�y‰y‹{˜aÒÐÐØ�‰Ó  AÓ%Ð%Ð%ð&ð
 �>‰>˜!Ó×"Ñ" 1Ñ%¨Ò*Ð*Ð*Ø�>‰>˜!Ó×"Ñ" 1Ñ%¨Ò*Ð*Ñ*÷!ð !ús   ¦CÃCc                 ó¤  — g d¢} | d|i«      }t        j                  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   )é   é   é    rI   r�   zBuffer at index z	 mismatch)r-   r.   r/   r…   Úget_buffersÚbufsizeÚptrÚ__dlpack_device__ÚctypesÚc_int8Úc_int16Úc_int32Úc_int64Ú	enumerateÚfrom_addressÚvalue)r   Úarrr   r8   rM   ÚbufXÚdataBufÚ	dataDtypeÚdeviceÚ_ÚbitwidthÚctypeÚidxÚtruthÚvals                  r   Útest_bufferr§   ž   sZ  € Ú
€CÙ	�s˜C�jÓ	!€BÜ	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!à�>‰>˜!Ó€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”   rP   rU   Úpandasr   Úpandas._testingÚ_testingr-   Úfixturer   ÚmarkÚparametrizer;   rN   rS   rY   rg   rr   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   