ó
    ®œ‘höN  ã                   ó„  • S SK J r Jr  S SKrS SKrS SKJr  S SKJrJ	r	  S SK
Jr  S SKrS SKJr  S SKJr  S SKJrJr  S SKJr  S S	KJr  \R4                  S
 5       r\R4                  S 5       r\R:                  R=                  SSS/5      S 5       rS r S r!S r"\R:                  R=                  SS SS\#" S5      S/4SS\#" S5      S/4SSS/4S SS\#" S5      /4S SS/4SS\#" S5      /4/5      S 5       r$\R:                  R=                  SS S S S S /5      S 5       r%S  r&\R:                  R=                  S/ S!Q/ S"QS#./ S$Q/ S"QS#.\RN                  " / S%Q5      \RN                  " / S$Q5      \RN                  " / S"Q5      S&./5      S' 5       r(S( r)S) r*S* r+S+ r,\R:                  R[                  \S,S-9S. 5       r.\R:                  R=                  S0 S// 0/5      S0 5       r/SmS2 jr0SmS3 jr1S4 r2\R:                  R=                  S5S6S7/5      \R:                  R=                  S8/ S9Q5      S: 5       5       r3S; r4SmS< jr5S= r6S> r7S? r8S@ r9\R:                  R=                  SA/ SBQSCSD4/ SBQSESD4/ SBQSFSG4/ SBQSHSG4/ SBQSISJ4/ SBQSKSJ4/ SLQSMSN4/ SLQSOSN4/ SPQSQSR4/ SPQSSSR4/ STQ\Rt                  " \Rv                  SU9SV4/ STQSWSV4\ " SXSS5      \ " SXSS5      S/SYSZ4\ " SXSS5      \ " SXSS5      S/S[S\4\ " SXSS\Rx                  S]9\ " SXSS\Rx                  S]9S/S^S_4/5      S\=S`\>Sa\>S1S4Sb j5       r?\R:                  R=                  SA/ ScQSCSD4/ ScQSESD4/ ScQSFSG4/ ScQSHSG4/ ScQSISJ4/ ScQSKSJ4/ SdQSMSN4/ SdQSOSN4/ SeQSQSR4/ SeQSSSR4/ SfQ\Rt                  " \Rv                  SU9SV4/ SfQSWSV4\ " SXSS5      \ " SXSS5      \ " SXSSg5      /SYSZ4\ " SXSS5      \ " SXSS5      \ " SXSSg5      /S[S\4\ " SXSS\Rx                  S]9\ " SXSS\Rx                  S]9\ " SXSSg\Rx                  S]9/S^S_4/5      S\=S`\>Sa\>S1S4Sh j5       r@SmSi jrASmSj jrBSk rCSl rDg)né    )ÚdatetimeÚtimezoneN)ÚiNaT)Úis_ci_environmentÚis_platform_windows)Únp_version_lt1p23)ÚPandasColumn)ÚColumnNullTypeÚ	DtypeKind©Úfrom_dataframe)ÚArrowCTypesc                  óˆ   • [         R                  " [        S5      S-  SS9[         R                  " [        S5      S-  SS9S.$ )NÚtestdataé   T)ÚorderedF)r   Ú	unordered)ÚpdÚCategoricalÚlist© ó    ÚfC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\pandas/tests/interchange/test_impl.pyÚdata_categoricalr      s>   € ô —>’>¤$ zÓ"2°RÑ"7ÀÑFÜ—^’^¤D¨Ó$4°rÑ$9À5ÑIñð r   c                  ó0   • SSSSS[         R                  /0$ )Núseparator datazabC|DeF,Hikz234,3245.67zgSaf,qWer|Grez
asd3,4sad|)ÚnpÚnanr   r   r   Ústring_datar   #   s)   € ð 	ØØØØÜ�F‰Fð
ðð r   Údata)r   T)r   Fc                 ó¢  • [         R                  " SXS      05      nUR                  5       R                  S5      nUR                  S   [
        R                  :X  d   eUR                  S:X  d   eUR                  [        R                  S4:X  d   eUR                  5       S:X  d   eUR                  nUS   U S   :X  d   eUS   SL d   e[        US   [        5      (       d   e[        R                   " US   R"                  [         R$                  " / S	Q5      5        [        R&                  " U[)        UR                  5       5      5        g )
NÚAr   éÿÿÿÿé   Ú
is_orderedÚis_dictionaryTÚ
categories)ÚaÚdÚeÚsÚt)r   Ú	DataFrameÚ__dataframe__Úget_column_by_nameÚdtyper   ÚCATEGORICALÚ
null_countÚdescribe_nullr
   ÚUSE_SENTINELÚ
num_chunksÚdescribe_categoricalÚ
isinstancer	   ÚtmÚassert_series_equalÚ_colÚSeriesÚassert_frame_equalr   )r    r   ÚdfÚcolÚdesc_cats        r   Útest_categorical_dtyper@   0   s-  € ä	�Š�sÐ-°1©gÑ6Ð8Ó	9€Bà
×
Ñ
Ó
×
/Ñ
/°Ó
4€CØ�9‰9�Q‰<œ9×0Ñ0Ó0Ð0Ð0Ø�>‰>˜QÓÐÐØ×Ñ¤×!<Ñ!<¸bÐ AÓAÐAÐAØ�>‰>Ó˜qÓ Ð Ð Ø×'Ñ'€HØ�LÑ! T¨!¡WÓ,Ð,Ð,Ø�OÑ$¨Ò,Ð,Ð,Ü�h˜|Ñ,¬l×;Ñ;Ð;Ð;Ü×ÒØ�Ñ×#Ñ#¤R§Y¢YÒ/HÓ%Iôô ×Ò˜"œn¨R×-=Ñ-=Ó-?Ó@ÕAr   c                  óZ  • [         R                  " SS5      n / SQnU R                  SU R                  U5      R	                  5       05      nUR                  5       n[        U5      n[        R                  " U/ SQS9n[        R                  " SU05      n[        R                  " XF5        g )NÚpyarrowú11.0.0)	ÚMonÚTuerD   ÚWedrD   ÚThuÚFriÚSatÚSunÚweekday)rD   rE   rF   rG   rH   rI   rJ   )r'   )ÚpytestÚimportorskipÚtableÚarrayÚdictionary_encoder.   r   r   r   r-   r8   r<   )ÚpaÚarrrN   Úexchange_dfÚresultrK   Úexpecteds          r   Útest_categorical_pyarrowrV   D   sŒ   € ä	×	Ò	˜Y¨Ó	1€Bâ
I€CØ�H‰H�i §¡¨#£×!@Ñ!@Ó!BÐCÓD€EØ×%Ñ%Ó'€KÜ˜KÓ(€FÜ�nŠnØÒIñ€Gô �|Š|˜Y¨Ð0Ó1€HÜ×Ò˜&Õ+r   c                  ó®  • [         R                  " SS5      n S /nU R                  SU R                  US5      R	                  5       05      nUR                  5       n[        R                  R                  R                  U5      n[        R                  " S[        R                  " [        R                  /5      05      n[        R                  " XE5        g )NrB   rC   rR   Úfloat64)rL   rM   rN   rO   rP   r.   r   ÚapiÚinterchanger   r-   r   r   r   r8   r<   ©rQ   rR   rN   rS   rT   rU   s         r   Útest_empty_categorical_pyarrowr\   S   sš   € ä	×	Ò	˜Y¨Ó	1€Bàˆ&€CØ�H‰H�e˜RŸX™X c¨9Ó5×GÑGÓIÐJÓK€EØ×%Ñ%Ó'€KÜ�V‰V×Ñ×.Ñ.¨{Ó;€FÜ�|Š|˜U¤B§N¢N´B·F±F°8Ó$<Ð=Ó>€HÜ×Ò˜&Õ+r   c                  óŽ  • [         R                  " SS5      n SS/nU R                  SU R                  US5      05      nUR	                  5       n[        U5      n[        R                  " SSS/05      n[        R                  " XE5        U R                  R                  U R                  R                  U5      U5      (       d   eg )NrB   rC   rD   rE   rK   Úlarge_string)rL   rM   rN   rO   r.   r   r   r-   r8   r<   ÚTableÚequalsrZ   r[   s         r   Útest_large_string_pyarrowra   _   s¤   € ä	×	Ò	˜Y¨Ó	1€Bà�%ˆ.€CØ�H‰H�i §¡¨#¨~Ó!>Ð?Ó@€EØ×%Ñ%Ó'€KÜ˜KÓ(€FÜ�|Š|˜Y¨°¨Ð7Ó8€HÜ×Ò˜&Ô+ð �8‰8�?‰?˜2Ÿ>™>×8Ñ8¸Ó@À%×HÑHÐHÑHr   )ÚoffsetÚlengthÚexpected_valuesçffffff
@r   çÍÌÌÌÌÌ @r$   é   c                 óˆ  • [         R                  " SS5      n/ SQnUR                  SU05      R                  X5      nUR	                  5       n[        U5      n[        R                  " SU05      n[        R                  " Xx5        UR                  R                  UR                  R                  U5      U5      (       d   eg )NrB   rC   )re   Nrf   rR   )rL   rM   rN   Úslicer.   r   r   r-   r8   r<   r_   r`   rZ   )	rb   rc   rd   rQ   rR   rN   rS   rT   rU   s	            r   Útest_bitmasks_pyarrowrj   n   s�   € ô 
×	Ò	˜Y¨Ó	1€Bâ
€CØ�H‰H�e˜S�\Ó"×(Ñ(¨Ó8€EØ×%Ñ%Ó'€KÜ˜KÓ(€FÜ�|Š|˜U OÐ4Ó5€HÜ×Ò˜&Ô+ð �8‰8�?‰?˜2Ÿ>™>×8Ñ8¸Ó@À%×HÑHÐHÑHr   c                  ó`   • [         R                  R                  S5      R                  SS5      $ )Nrg   iœÿÿÿéd   ©r   ÚrandomÚdefault_rngÚintegersr   r   r   Ú<lambda>rq   ‹   s    € ”—	‘	×%Ñ% aÓ(×1Ñ1°$¸Ô<r   c                  ó`   • [         R                  R                  S5      R                  SS5      $ )Nrg   r$   rl   rm   r   r   r   rq   rq   Œ   s    € ”—	‘	×%Ñ% aÓ(×1Ñ1°!°SÔ9r   c                  ó\   • [         R                  R                  S5      R                  5       $ )Nrg   )r   rn   ro   r   r   r   rq   rq   �   s   € ”—	‘	×%Ñ% aÓ(×/Ñ/Ô1r   c                  ób   • [         R                  R                  S5      R                  SS/5      $ )Nrg   TF)r   rn   ro   Úchoicer   r   r   rq   rq   Ž   s"   € ”—	‘	×%Ñ% aÓ(×/Ñ/°°u°Ô>r   c                  ó&  • [        [        R                  R                  S5      R	                  SS5      [        R                  R                  S5      R	                  SS5      [        R                  R                  S5      R	                  SS5      S9$ )Nrg   il  i4  r$   é   é   )ÚyearÚmonthÚday)r   r   rn   ro   rp   r   r   r   rq   rq   �   sf   € ”Ü—‘×&Ñ& qÓ)×2Ñ2°4¸Ó>Ü—)‘)×'Ñ'¨Ó*×3Ñ3°A°rÓ:Ü—	‘	×%Ñ% aÓ(×1Ñ1°!°RÓ8ò
r   c           
      ó0  ^ • Su  p[        U5       VVs0 s H<  nS[        X1S-  -
  U-  S-   5       3[        U5       Vs/ s H
  nT " 5       PM     sn_M>     snnm [        R                  " T 5      nUR	                  5       nUR                  5       U:X  d   eUR                  5       U:X  d   e[        UR                  5       5      [        T R                  5       5      :X  d   eSn[        U 4S jU 5       5      n[        UR                  U5      5      n	[        UR                  U5      5      n
[        R                  " Xš5        [!        U	R"                  S   [        5      (       d   e[!        U
R"                  S   [        5      (       d   eg s  snf s  snnf )N)é
   rx   r>   rg   r$   )r   rg   c              3   ó\   >#   • U  H!  n[        TR                  5       5      U   v •  M#     g 7f©N)r   Úkeys)Ú.0Úidxr    s     €r   Ú	<genexpr>Ú!test_dataframe.<locals>.<genexpr>¦   s!   øé € Ð<²G¨S”$�t—y‘y“{Ó# CÖ(²Gùs   ƒ),Ú_INTERCHANGE_PROTOCOL_BUFFERS)ÚrangeÚintr   r-   r.   Únum_columnsÚnum_rowsr   Úcolumn_namesr€   Útupler   Úselect_columnsÚselect_columns_by_namer8   r<   r7   Úattrs)r    ÚNCOLSÚNROWSÚiÚ_r=   Údf2ÚindicesÚnamesrT   rU   s   `          r   Útest_dataframer–   ˆ   sf  ø€ ð �L€Eô �u”ôâˆAð Œc�1˜q‘y‘= EÑ)¨AÑ-Ó.Ð/Ð0Ä5ÈÄ<Ó2PÂ<¸a±4¶6Á<Ñ2PÒPÙò€Dô 
�Š�dÓ	€Bà
×
Ñ
Ó
€Cà�?‰?Ó Ó%Ð%Ð%Ø�<‰<‹>˜UÓ"Ð"Ð"ä�× Ñ Ó"Ó#¤t¨D¯I©I«KÓ'8Ó8Ð8Ð8à€GÜÔ<±GÓ<Ó<€Eä˜C×.Ñ.¨wÓ7Ó8€FÜ˜c×8Ñ8¸Ó?Ó@€HÜ×Ò˜&Ô+ä�f—l‘lÐ#BÑCÄT×JÑJÐJÐJÜ�h—n‘nÐ%DÑEÄt×LÑLÐLÑLùò) 3Qùós   ”+F¿FÁFÆFc            
      ó*  • [         R                  " [        R                  " / SQ5      [        R                  " / SQ5      [        R                  " / SQ5      S.5      n [        R                  R                  S5      nU R                   Vs0 s H  o"UR                  S[        U 5      S9_M     nnUR                  5        HP  u  p$U R                  UR                  [        R                  " [        U 5      5      USS	9   nS U R                  XR4'   MR     U R                  5       nUR                  S
5      R                   US
   :X  d   eUR                  S5      R                   US   :X  d   eUR                  S5      R                   US   :X  d   eg s  snf )N)ç      ð?ç       @g      @g      @ç        )ç      ø?ç      @ç      @g      @r   )r˜   rš   r˜   r˜   r˜   ©ÚxÚyÚzrg   r   )ÚlowÚhighF)ÚsizeÚreplacerŸ   r    r¡   )r   r-   r   rO   rn   ro   Úcolumnsrp   ÚlenÚitemsÚindexru   ÚarangeÚlocr.   r/   r2   )r=   Úrngr>   Ú	dict_nullÚ	num_nullsÚnull_idxr“   s          r   Útest_missing_from_maskedr°   °   sO  € Ü	�Šä—’Ò3Ó4Ü—’Ò1Ó2Ü—’Ò3Ó4ñ	
ó
€Bô �)‰)×
Ñ
 Ó
"€CØCEÇ:Â:ÓNÂ:¸C�c—l‘l q¬s°2«w�lÐ7Ò7Á:€IÐNØ#Ÿ/™/Ö+‰ˆØ—8‘8Ø�J‰J”r—y’y¤ R£Ó)°	À5ˆJÐIñ
ˆð !%ˆ�‰ˆxˆ}Óñ	 ,ð ×
Ñ
Ó
€Cà×!Ñ! #Ó&×1Ñ1°Y¸s±^ÓCÐCÐCØ×!Ñ! #Ó&×1Ñ1°Y¸s±^ÓCÐCÐCØ×!Ñ! #Ó&×1Ñ1°Y¸s±^ÓCÐCÑCùò Os   Â
#F)r›   rœ   r�   )çffffff"@ç      %@çš™™™™™'@)rŸ   r    )r$   rg   r   )TTFrž   c                 ó¸   • [         R                  " U 5      nUR                  5       nUR                   H$  nUR	                  U5      R
                  S:X  a  M$   e   g )Nr   )r   r-   r.   r¦   r/   r2   )r    r=   r“   Úcol_names       r   Útest_mixed_datar¶   È   sM   € ô 
�Š�dÓ	€BØ
×
Ñ
Ó
€Cà—J”JˆØ×%Ñ% hÓ/×:Ñ:¸aÕ?Ð?Ð?ò r   c                  óD  • [         R                  " [        R                  " / SQ5      [        R                  " / SQ5      [        R                  " / SQ5      S.5      n U R	                  5       nU R
                   H$  nUR                  U5      R                  S:X  a  M$   e   g )N)TNFNT)Nrg   Nr$   rg   )r±   r²   Nr³   Nrž   rg   )r   r-   r   rO   r.   r¦   r/   r2   )r=   r“   rµ   s      r   Útest_mixed_missingr¸   Ü   sy   € Ü	�Šä—’Ò9Ó:Ü—’Ò/Ó0Ü—’Ò7Ó8ñ	
ó
€Bð ×
Ñ
Ó
€Cà—J”JˆØ×%Ñ% hÓ/×:Ñ:¸aÕ?Ð?Ð?ò r   c                 ó€  • U S   S/-   n[         R                  " SU05      nUR                  5       R                  S5      nUR	                  5       S:X  d   eUR
                  S:X  d   eUR                  S   [        R                  :X  d   eUR                  [        R                  S4:X  d   eUSS  nUR                  5       R                  S5      nUR	                  5       S:X  d   eUR
                  S:X  d   eUR                  S   [        R                  :X  d   eUR                  [        R                  S4:X  d   eg )Nr   Ú r"   é   r$   r   é   )r   r-   r.   r/   r¤   r2   r0   r   ÚSTRINGr3   r
   ÚUSE_BYTEMASK)r   Útest_str_datar=   r>   Ú	df_sliceds        r   Útest_stringrÁ   ë   s"  € ØÐ 0Ñ1°R°DÑ8€MÜ	�Š�s˜MÐ*Ó	+€BØ
×
Ñ
Ó
×
/Ñ
/°Ó
4€Cà�8‰8‹:˜‹?Ðˆ?Ø�>‰>˜QÓÐÐØ�9‰9�Q‰<œ9×+Ñ+Ó+Ð+Ð+Ø×Ñ¤×!<Ñ!<¸aÐ @Ó@Ð@Ð@à�1�2�€IØ
×
!Ñ
!Ó
#×
6Ñ
6°sÓ
;€CØ�8‰8‹:˜‹?Ðˆ?Ø�>‰>˜QÓÐÐØ�9‰9�Q‰<œ9×+Ñ+Ó+Ð+Ð+Ø×Ñ¤×!<Ñ!<¸aÐ @Ó@Ð@Ñ@r   c                  óô   • [         R                  " S/ SQ05      n U R                  5       R                  S5      n[        R
                  " [        SS9   UR                    S S S 5        g ! , (       d  f       g = f)Nr"   )r(   r}   r˜   r   znot supported yet©Úmatch)r   r-   r.   r/   rL   ÚraisesÚNotImplementedErrorr0   ©r=   r>   s     r   Útest_nonstring_objectrÈ   ý   sS   € Ü	�Š�sÒ.Ð/Ó	0€BØ
×
Ñ
Ó
×
/Ñ
/°Ó
4€CÜ	�ŠÔ*Ð2EÓ	FØ�	Š	÷ 
G×	FÖ	Fús   ÁA)Á)
A7c                  óø  • [         R                  " S[         R                  " S5      [         R                  /05      n U R	                  5       R                  S5      nUR                  5       S:X  d   eUR                  S:X  d   eUR                  S   [        R                  :X  d   eUR                  [        R                  [        4:X  d   e[        R                   " U [#        U R	                  5       5      5        g )Nr"   z
2022-01-01rg   r$   r   )r   r-   Ú	TimestampÚNaTr.   r/   r¤   r2   r0   r   ÚDATETIMEr3   r
   r4   r   r8   r<   r   rÇ   s     r   Útest_datetimerÍ     s½   € Ü	�Š�sœRŸ\š\¨,Ó7¼¿¹Ð@ÐAÓ	B€BØ
×
Ñ
Ó
×
/Ñ
/°Ó
4€Cà�8‰8‹:˜‹?Ðˆ?Ø�>‰>˜QÓÐÐØ�9‰9�Q‰<œ9×-Ñ-Ó-Ð-Ð-Ø×Ñ¤×!<Ñ!<¼dÐ CÓCÐCÐCä×Ò˜"œn¨R×-=Ñ-=Ó-?Ó@ÕAr   zNumpy > 1.23 required)Úreasonc                  óL  • [         R                  " S[         R                  " / SQ5      05      n U R                  5       R	                  S5      n[
        R                  " UR                  5       S   S   5      n[
        R                  " / SQSS9n[        R                  " X#5        g )Nr"   )r(   Úbr(   r    r   )r   r$   r   Úint8©r0   )r   r-   r   r.   r/   r   Úfrom_dlpackÚget_buffersrO   r8   Úassert_numpy_array_equal)r=   r>   rT   rU   s       r   Ú test_categorical_to_numpy_dlpackrÖ     sv   € ô 
�Š�sœBŸNšNª?Ó;Ð<Ó	=€BØ
×
Ñ
Ó
×
/Ñ
/°Ó
4€CÜ�^Š^˜CŸO™OÓ-¨fÑ5°aÑ8Ó9€FÜ�xŠxš	¨Ñ0€HÜ×Ò Õ1r   r(   c                 óº   • [         R                  " SS5        SSKJn  [        R
                  " U 5      nU" U5      n[        U5      n[        R                  " XBSS9  g )NrB   rC   r   r   F)Úcheck_column_type)rL   rM   Úpyarrow.interchanger   r   r-   r8   r<   )r    Úpa_from_dataframerU   Úarrow_dfrT   s        r   Útest_empty_pyarrowrÜ     sI   € ô ×Ò˜	 8Ô,ÝGä�|Š|˜DÓ!€HÙ  Ó*€HÜ˜HÓ%€FÜ×Ò˜&¸eÓDr   Úreturnc                  ó>  • [         R                  " SS5      n U R                  / SQ/ SQ/5      nS/nU R                  U/US9n[         R                  " [
        SS9   [        R                  R                  R                  US	S
9  S S S 5        g ! , (       d  f       g = f)NrB   rC   )rg   rg   é   )rß   r¼   rl   Ún_legs)r•   z@Cannot do zero copy conversion into multi-column DataFrame blockrÃ   F©Ú
allow_copy)
rL   rM   Úchunked_arrayrN   rÅ   ÚRuntimeErrorr   rY   rZ   r   )rQ   rà   r•   rN   s       r   Útest_multi_chunk_pyarrowrå   &  s…   € Ü	×	Ò	˜Y¨Ó	1€BØ×Ñšyª+Ð6Ó7€FØˆJ€EØ�H‰H�f�X UˆHÐ+€EÜ	�ŠÜØPó
ô 	�‰×Ñ×)Ñ)¨%¸EÐ)ÑB÷	
÷ 
ö 
ús   Á)BÂ
Bc                  óZ  • [         R                  " SS5        [        R                  " / SQSS9n [        R                  " X /SS9R                  S5      nUR                  5       n[         R                  " [        S	S
9   [        R                  R                  R                  UR                  SS95        S S S 5        [        R                  R                  R                  UR                  SS95      n[        R                  " S/ SQ0SS9n[        R                  " X45        [        R                  " X5        [!        US   R"                  R$                  R&                  5      S:X  d   e[!        US   R"                  R$                  R&                  5      S:X  d   eg ! , (       d  f       Nî= f)NrB   rC   ©r$   rg   NúInt64[pyarrow]rÒ   T)Úignore_indexr(   z:Found multi-chunk pyarrow array, but `allow_copy` is FalserÃ   Frá   )r˜   r™   Nr˜   r™   NrX   rg   )rL   rM   r   r;   ÚconcatÚto_frameÚcopyrÅ   rä   rY   rZ   r   r.   r-   r8   r<   r§   rO   Ú	_pa_arrayÚchunks)Úserr=   Údf_origrT   rU   s        r   Útest_multi_chunk_columnrñ   2  sE  € Ü
×Ò˜	 8Ô,Ü
�)Š)’LÐ(8Ñ
9€CÜ	�Š�C�:¨DÑ	1×	:Ñ	:¸3Ó	?€BØ�g‰g‹i€GÜ	�ŠÜÐXó
ô 	�‰×Ñ×)Ñ)¨"×*:Ñ*:ÀeÐ*:Ð*LÔM÷
ô �V‰V×Ñ×.Ñ.¨r×/?Ñ/?È4Ð/?Ð/PÓQ€Fô �|Š|˜SÒ"BÐCÈ9ÑU€HÜ×Ò˜&Ô+ô ×Ò˜"Ô&Üˆr�#‰w�}‰}×&Ñ&×-Ñ-Ó.°!Ó3Ð3Ð3Üˆw�s‰|×!Ñ!×+Ñ+×2Ñ2Ó3°qÓ8Ð8Ñ8÷
õ 
ús   Á=7FÆ
F*c                  ón  • [         R                  " SS5        SSSSSSS.n [        R                  " [	        S	0 U D6/SSS9R                  5       nUR                  5       n[        R                  R                  R                  U5      S   R                  5       n[        R                  " S	0 U D6nX4:X  d   eg )
NrB   rC   iÐ  r$   )ry   rz   r{   ÚhourÚminuteÚsecondútimestamp[ns][pyarrow]Úcol0)r0   Únamer   )rL   rM   r   r;   r   rë   r.   rY   rZ   r   ÚitemrÊ   )Útimestamp_argsr=   ÚdfirT   rU   s        r   Útest_timestamp_ns_pyarrowrü   G  s°   € ä
×Ò˜	 8Ô,àØØØØØñ€Nô 
�ŠÜ	Ñ	#�NÑ	#Ð$Ø&Øñ
÷ �hƒjð	 ð ×
Ñ
Ó
€CÜ�V‰V×Ñ×.Ñ.¨sÓ3°FÑ;×@Ñ@ÓB€Fä�|Š|Ñ-˜nÑ-€HØÓÐÑr   ÚtzÚUTCz
US/PacificÚunit)r+   ÚmsÚusÚnsc                 óø   • [         R                  " SSSS9R                  U 5      R                  U5      n[         R                  " SU05      n[
        R                  " U[        UR                  5       5      5        g )Nz
2018-01-01r¼   ÚD)ÚperiodsÚfreqÚts_tz)	r   Ú
date_rangeÚtz_localizeÚas_unitr-   r8   r<   r   r.   )rý   rÿ   Útz_datar=   s       r   Útest_datetimetzdtyper  _  sc   € ô
 	�Š�l¨A°CÑ8×DÑDÀRÓH×PÑPÐQUÓVð ô 
�Š�w Ð(Ó	)€BÜ×Ò˜"œn¨R×-=Ñ-=Ó-?Ó@ÕAr   c           	      ó  • [         R                  " SS5      nSS KJn  [	        5       (       aH  [        5       (       a9  [         R                  R                  UR                  SS9nU R                  U5        UR                  [        SSS5      S [        SSS5      /5      nUR                  US	5      nUR                  S
U05      nUR                  5       n[        U5      n[         R"                  " / SQS
/SS9n[$        R&                  " X‡5        g )NrB   rC   r   z_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.)rÅ   rÎ   éä  r$   rg   úAsia/KathmandurR   )z2020-01-01 00:00:00+05:45rË   z2020-01-02 00:00:00+05:45zdatetime64[us, Asia/Kathmandu])r¦   r0   )rL   rM   Úpyarrow.computeÚcomputer   r   ÚmarkÚxfailÚArrowInvalidÚapplymarkerrO   r   Úassume_timezonerN   r.   r   r   r-   r8   r<   )	ÚrequestrQ   Úpcr  rR   rN   rS   rT   rU   s	            r   Ú)test_interchange_from_non_pandas_tz_awarer  j  së   € ä	×	Ò	˜Y¨Ó	1€BÝ ä×ÑÔ!2×!4Ñ!4Ü�{‰{× Ñ Ø—?‘?ð;ð !ð 
ˆð 	×Ñ˜DÔ!à
�(‰(”H˜T 1 aÓ(¨$´¸¸qÀ!Ó0DÐEÓ
F€CØ
×
Ñ
˜SÐ"2Ó
3€CØ�H‰H�e˜S�\Ó"€EØ×%Ñ%Ó'€KÜ˜KÓ(€Fä�|Š|ÚIØ�Ø.ñ€Hô
 ×Ò˜(Õ+r   c                 óÚ  ^^^• [         R                  " SSS/05      R                  5       nUR                  5       mTR                  S5      mTR	                  5       mTS   nUS   n[
        R                  S[        R                  US   4nUS   U4TS'   U4S	 jTl        U4S
 jTl        U R                  USU4S j5        [         R                  R                  R                  U5        g )Nr(   ÚfooÚbarr    r$   é   é   r   c                  ó   >• T $ r   r   )Úbufferss   €r   rq   Ú?test_interchange_from_corrected_buffer_dtypes.<locals>.<lambda>–  s   ø€ ¡r   c                 ó   >• T$ r   r   )r’   Úcolumns    €r   rq   r!  —  s   ø€ ©vr   r.   c                 ó   >• T$ r   r   )râ   rZ   s    €r   rq   r!  ˜  s   ø€ Ár   )r   r-   r.   r/   rÔ   r   ÚUINTr   ÚUINT8ÚsetattrrY   rZ   r   )Úmonkeypatchr=   Úbuffers_dataÚbuffer_dtyper   r#  rZ   s       @@@r   Ú-test_interchange_from_corrected_buffer_dtypesr+  ‡  sÑ   ú€ ä	�Š�s˜U E˜NÐ+Ó	,×	:Ñ	:Ó	<€BØ×"Ñ"Ó$€KØ×+Ñ+¨CÓ0€FØ× Ñ Ó"€GØ˜6‘?€LØ ‘?€Lä�‰Ø	Ü×ÑØ�Q‰ð	€Lð $ A‘¨Ð5€GˆF�OÜ(€FÔÜ%5€KÔ"Ø×Ñ˜˜OÔ-KÔLÜ‡F�F×Ñ×%Ñ% bÕ)r   c                  óØ   • [         R                  " S/ 0[        S9n U R                  5       n[         R                  R
                  R                  U5      n[        R                  " X5        g )Nr(   rÒ   )	r   r-   Ústrr.   rY   rZ   r   r8   r<   )r=   r“   rT   s      r   Útest_empty_string_columnr.  œ  sL   € ä	�Š�s˜B�i¤sÑ	+€BØ
×
Ñ
Ó
€CÜ�V‰V×Ñ×.Ñ.¨sÓ3€FÜ×Ò˜"Õ%r   c                  ó*  • [         R                  " S5        [        R                  " SS/0SS9n [        R                  R
                  R                  U R                  5       5      n[        R                  " SS/0SS9n[        R                  " X5        g )NrB   r(   rŸ   úlarge_string[pyarrow]rÒ   r-  )
rL   rM   r   r-   rY   rZ   r   r.   r8   r<   )r=   rT   rU   s      r   Útest_large_stringr1  ¤  sn   € ä
×Ò˜	Ô"Ü	�Š�s˜S˜E�lÐ*AÑ	B€BÜ�V‰V×Ñ×.Ñ.¨r×/?Ñ/?Ó/AÓB€FÜ�|Š|˜S 3 %˜L°Ñ6€HÜ×Ò˜&Õ+r   c                  óœ   • [         R                  " / SQSS9R                  5       n U R                  5       R	                  5       nUS/:X  d   eg )N©r$   rg   r  r   )rø   Ú0)r   r;   rë   r.   rŠ   )r=   r•   s     r   Útest_non_str_namesr5  ­  s@   € ä	�Š’9 1Ñ	%×	.Ñ	.Ó	0€BØ×ÑÓ×+Ñ+Ó-€EØ�S�E‹>Ð‰>r   c                  ó  • [         R                  " / SQ/ SQS.5      n U R                  5       n[        R                  " [
        SS9   [         R                  R                  R                  USS9  S S S 5        g ! , (       d  f       g = f)Nr3  ©rß   r¼   r»   )r4  r   a&  Expected a Series, got a DataFrame. This likely happened because you called __dataframe__ on a DataFrame which, after converting column names to string, resulted in duplicated names: Index\(\['0', '0'\], dtype='(str|object)'\). Please rename these columns before using the interchange protocol.rÃ   Frá   )	r   r-   r.   rL   rÅ   Ú	TypeErrorrY   rZ   r   )r=   rû   s     r   Útest_non_str_names_w_duplicatesr9  ´  sf   € ä	�ŠšIª)Ñ4Ó	5€BØ
×
Ñ
Ó
€CÜ	�ŠÜð$ó	
ô 	�‰×Ñ×)Ñ)¨#¸%Ð)Ñ@÷	
÷ 	
ö 	
ús   Á)A9Á9
B)r    r0   Úexpected_dtyperç   ÚInt64Úint64rè   ÚInt8rÑ   zInt8[pyarrow]ÚUInt64Úuint64zUInt64[pyarrow])r˜   ç      @NÚFloat32Úfloat32zFloat32[pyarrow])TFNÚbooleanÚboolzboolean[pyarrow])úmuch adoÚaboutN)Úna_valuer^   zstring[pyarrow]r  rö   ztimestamp[ns]ztimestamp[us][pyarrow]ztimestamp[us])Útzinfoz&timestamp[us, Asia/Kathmandu][pyarrow]ú timestamp[us, tz=Asia/Kathmandu]r0   r:  c                 ó   • [         R                  " SS5      nSS KJn  US:X  a  UR	                  SS5      n[
        R                  " SU 0US9nUR                  UR                  5       5      S   nUR                  U:X  d   eUS   R                  5       U S   :X  d   eUS	   R                  5       U S	   :X  d   eUS
   R                  5       b   eg ©NrB   rC   r   rI  r  r  r(   rÒ   r$   rg   ©rL   rM   rÙ   rZ   Ú	timestampr   r-   r   r.   ÚtypeÚas_py©r    r0   r:  rQ   Úpair=   rT   s          r   Ú(test_pandas_nullable_with_missing_valuesrR  Å  sÉ   € ôb 
×	Ò	˜Y¨Ó	1€BÝ%àÐ;Ó;ØŸ™ dÐ,<Ó=ˆä	�Š�s˜D�k¨Ñ	/€BØ×Ñ × 0Ñ 0Ó 2Ó3°CÑ8€FØ�;‰;˜.Ó(Ð(Ð(Ø�!‰9�?‰?Ó  Q¡Ó'Ð'Ð'Ø�!‰9�?‰?Ó  Q¡Ó'Ð'Ð'Ø�!‰9�?‰?ÓÑ$Ð$Ñ$r   r3  )r˜   r@  g      @)TFF)rE  rF  Únothingr  c                 ó¬  • [         R                  " SS5      nSS KJn  US:X  a  UR	                  SS5      n[
        R                  " SU 0US9nUR                  UR                  5       5      S   nUR                  U:X  d   eUS   R                  5       U S   :X  d   eUS	   R                  5       U S	   :X  d   eUS
   R                  5       U S
   :X  d   eg rK  rL  rP  s          r   Ú+test_pandas_nullable_without_missing_valuesrU    sÏ   € ôh 
×	Ò	˜Y¨Ó	1€BÝ%àÐ;Ó;ØŸ™ dÐ,<Ó=ˆä	�Š�s˜D�k¨Ñ	/€BØ×Ñ × 0Ñ 0Ó 2Ó3°CÑ8€FØ�;‰;˜.Ó(Ð(Ð(Ø�!‰9�?‰?Ó  Q¡Ó'Ð'Ð'Ø�!‰9�?‰?Ó  Q¡Ó'Ð'Ð'Ø�!‰9�?‰?Ó  Q¡Ó'Ð'Ñ'r   c                  óÌ   • [         R                  " SS5        [        R                  " SS/0SS9n U R	                  5       R                  S5      R                  5       S   nUb   eg )NrB   rC   r(   rŸ   r0  rÒ   Úvalidity)rL   rM   r   r-   r.   r/   rÔ   )r=   rT   s     r   Útest_string_validity_bufferrX  F  sZ   € ä
×Ò˜	 8Ô,Ü	�Š�s˜S˜E�lÐ*AÑ	B€BØ×ÑÓ×2Ñ2°3Ó7×CÑCÓEÀjÑQ€FØ‰>Ð‰>r   c                  ó*  • [         R                  " SS5        [        R                  " SSS /0SS9n U R	                  5       R                  S5      R                  5       S   nUc   eUS   n[        R                  S[        R                  S	4nX#:X  d   eg )
NrB   rC   r(   rŸ   r0  rÒ   rW  r$   Ú=)
rL   rM   r   r-   r.   r/   rÔ   r   ÚBOOLr   )r=   rW  rT   rU   s       r   Ú&test_string_validity_buffer_no_missingr\  N  sŒ   € ä
×Ò˜	 8Ô,Ü	�Š�s˜S $˜KÐ(Ð0GÑ	H€BØ×ÑÓ!×4Ñ4°SÓ9×EÑEÓGÈ
ÑS€HØÑÐÐØ�a‰[€FÜ—‘ ¤;×#3Ñ#3°SÐ9€HØÓÐÑr   c                  óü   • [         R                  " S/ 0SS9n U R                  5       n[         R                  R                  R                  USS9n[         R                  " S/ 0SS9n[        R                  " X#5        g )Nr(   rÑ   rÒ   Frá   )r   r-   r.   rY   rZ   r   r8   r<   )r=   rû   rT   rU   s       r   Útest_empty_dataframer^  Y  se   € ä	�Š�s˜B�i vÑ	.€BØ
×
Ñ
Ó
€CÜ�V‰V×Ñ×.Ñ.¨s¸uÐ.ÐE€FÜ�|Š|˜S "˜I¨VÑ4€HÜ×Ò˜&Õ+r   c                  óÖ   • [         R                  " SS5      n SSS// SQ/0nU R                  U5      n[        U5      n[        R
                  " U5      n[        R                  " X45        g )NrB   z14.0.0r(   r$   rg   r7  )rL   rM   rN   r   r   r-   r8   r<   )rQ   r    ÚtblrT   rU   s        r   Útest_from_dataframe_list_dtypera  b  sZ   € Ü	×	Ò	˜Y¨Ó	1€BØ�1�a�&š)Ð$Ð%€DØ
�(‰(�4‹.€CÜ˜CÓ €FÜ�|Š|˜DÓ!€HÜ×Ò˜&Õ+r   )rÝ   N)Er   r   Únumpyr   rL   Úpandas._libs.tslibsr   Úpandas.compatr   r   Úpandas.compat.numpyr   Úpandasr   Úpandas._testingÚ_testingr8   Úpandas.core.interchange.columnr	   Ú*pandas.core.interchange.dataframe_protocolr
   r   Ú&pandas.core.interchange.from_dataframer   Úpandas.core.interchange.utilsr   Úfixturer   r   r  Úparametrizer@   rV   r\   ra   Úfloatrj   r–   r°   rO   r¶   r¸   rÁ   rÈ   rÍ   ÚskipifrÖ   rÜ   rå   rñ   rü   r  r  r+  r.  r1  r5  r9  ÚStringDtyper   Úutcr   r-  rR  rU  rX  r\  r^  ra  r   r   r   Ú<module>rs     sà  ð÷ó
 Û å $÷õ 2ã Ý Ý 7÷õ BÝ 5ð ‡�ñó ðð ‡�ñ	ó ð	ð ‡�×Ñ˜Ð"3Ð5IÐ!JÓKñBó LðBò&,ò	,òIð ‡�×ÑØ+à	
ˆD�3™˜e› cÐ*Ð+Ø	
ˆD‘5˜“< Ð%Ð&Ø	
ˆD�3�%ÐØ	
ˆA�‘U˜5“\Ð"Ð#Ø	
ˆA�ˆuˆØ	
ˆA‘�e“ˆ~Ððó
ñIó
ðIð ‡�×ÑØ
á<Ù9Ù1Ù>ñ	
ð
óñMóðMò4Dð0 ‡�×ÑØ
âÒ$5Ñ6ÚÒ/Ñ0à—’Ò-Ó.Ø—’š)Ó$Ø—’Ò+Ó,ñ	
ðóñ@óð@ò@òAò$ò	Bð ‡�×ÑÐ%Ð.EÐÐFñ2ó Gð2ð ‡�×Ñ˜ " s¨B i Ó1ñEó 2ðEô	Cô9ò*ð0 ‡�×Ñ˜  |Ð4Ó5Ø‡�×Ñ˜Ò!8Ó9ñBó :ó 6ðBò,ô:*ò*&ò,òòAð" ‡�×ÑØ'â	�w Ð(Ú	Ð'¨Ð1Ú	�v˜vÐ&Ú	�¨Ð/âØØð	
ò ØØð	
ò
 
˜I yÐ1Ú	Ð.°	Ð:Ú	˜i¨Ð0Ú	Ð0°&Ð9Ú	$ b§n¢n¸b¿f¹fÑ&EÀ~ÐVÚ	$Ð&7¸ÐHá�d˜A˜qÓ!¡8¨D°!°QÓ#7¸Ð>Ø$Øð	
ñ �d˜A˜qÓ!¡8¨D°!°QÓ#7¸Ð>Ø$Øð	
ñ ˜˜q !¨H¯L©LÑ9Ù˜˜q !¨H¯L©LÑ9Øðð
 5Ø.ð	
ð?(ó+ðX%Ø
ð%Øð%Ø,/ð%à	ó%óY+ðX%ð& ‡�×ÑØ'â	�G˜WÐ%Ú	Ð$ gÐ.Ú	�F˜FÐ#Ú	�O VÐ,âØØð	
ò ØØð	
ò
 
˜9 iÐ0Ú	Ð-¨yÐ9Ú	˜y¨&Ð1Ú	Ð1°6Ð:â,Ø�NŠN B§F¡FÑ+Øð	
ò
 
*Ð+<¸nÐMá�d˜A˜qÓ!¡8¨D°!°QÓ#7¹À$ÈÈ1Ó9MÐNØ$Øð	
ñ �d˜A˜qÓ!¡8¨D°!°QÓ#7¹À$ÈÈ1Ó9MÐNØ$Øð	
ñ ˜˜q !¨H¯L©LÑ9Ù˜˜q !¨H¯L©LÑ9Ù˜˜q !¨H¯L©LÑ9ðð
 5Ø.ð	
ðG,ó/ð`(Ø
ð(Øð(Ø,/ð(à	ó(óa/ð`(ô$ôò,ó,r   