Ë
    @ØïiF/  ã                   óx  — d dl m Z  d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d dlZd dlmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ ej2                  d
„ «       Zej2                  d„ «       Zej8                  j;                  dddg«      d„ «       Zd„ Zd„ Z d„ Z!ej8                  j;                  dd dd e"d«      dgfdd e"d«      dgfdddgfd dd e"d«      gfd ddgfdd e"d«      gfg«      d„ «       Z#ej8                  j;                  dd„ d„ d„ d„ d„ g«      d„ «       Z$d „ Z%ej8                  j;                  dg d!¢g d"¢d#œg d$¢g d"¢d#œ ejL                  g d%¢«       ejL                  g d$¢«       ejL                  g d"¢«      d&œg«      d'„ «       Z'd(„ Z(d)„ Z)d*„ Z*d+„ Z+ej8                  jY                  e
d,¬-«      d.„ «       Z-ej8                  j;                  di d/g ig«      d0„ «       Z.d<d1„Z/ej8                  j;                  d2d3d4g«      ej8                  j;                  d5g d6¢«      d7„ «       «       Z0d8„ Z1d<d9„Z2d:„ Z3d;„ Z4y)=é    )ÚdatetimeN)ÚiNaT)Úis_ci_environmentÚis_platform_windows)Únp_version_lt1p23)ÚPandasColumn)ÚColumnNullTypeÚ	DtypeKind©Úfrom_dataframe)ÚArrowCTypesc                  ó�   — t        j                  t        d«      dz  d¬«      t        j                  t        d«      dz  d¬«      dœS )NÚtestdataé   T)ÚorderedF)r   Ú	unordered)ÚpdÚCategoricalÚlist© ó    ú\/var/www/html/aiagents/fe/lib/python3.12/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   — dddddt         j                  giS )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                 ó†  — t        j                  d|| d      i«      }|j                  «       j                  d«      }|j                  d   t
        j                  k(  sJ ‚|j                  dk(  sJ ‚|j                  t        j                  dfk(  sJ ‚|j                  «       dk(  sJ ‚|j                  }|d   | d   k(  sJ ‚|d   du sJ ‚t        |d   t        «      sJ ‚t        j                   |d   j"                  t        j$                  g d	¢«      «       t        j&                  |t)        |j                  «       «      «       y )
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?   -   s,  € ä	�‰�sÐ-¨d°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  — t        j                  dd«      } g d¢}| j                  d| j                  |«      j	                  «       i«      }|j                  «       }t        |«      }t        j                  |g d¢¬«      }t        j                  d|i«      }t        j                  ||«       y )NÚpyarrowú11.0.0)	ÚMonÚTuerC   ÚWedrC   ÚThuÚFriÚSatÚSunÚweekday)rC   rD   rE   rF   rG   rH   rI   )r&   )ÚpytestÚimportorskipÚtableÚarrayÚdictionary_encoder-   r   r   r   r,   r7   r;   )ÚpaÚarrrM   Úexchange_dfÚresultrJ   Úexpecteds          r   Útest_categorical_pyarrowrU   A   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                  ó¨  — t        j                  dd«      } d g}| j                  d| j                  |d«      j	                  «       i«      }|j                  «       }t        j                  j                  j                  |«      }t        j                  dt        j                  t        j                  g«      i«      }t        j                  ||«       y )NrA   rB   rQ   Úfloat64)rK   rL   rM   rN   rO   r-   r   ÚapiÚinterchanger   r,   r   r   r   r7   r;   ©rP   rQ   rM   rR   rS   rT   s         r   Útest_empty_categorical_pyarrowr[   P   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                  ó€  — t        j                  dd«      } ddg}| j                  d| j                  |d«      i«      }|j	                  «       }t        |«      }t        j                  dddgi«      }t        j                  ||«       | j                  j                  | j                  j                  |«      |«      sJ ‚y )NrA   rB   rC   rD   rJ   Úlarge_string)rK   rL   rM   rN   r-   r   r   r,   r7   r;   ÚTableÚequalsrY   rZ   s         r   Útest_large_string_pyarrowr`   \   s£   € ä	×	Ñ	˜Y¨Ó	1€Bà�%ˆ.€CØ�H‰H�i §¡¨#¨~Ó!>Ð?Ó@€EØ×%Ñ%Ó'€KÜ˜KÓ(€FÜ�|‰|˜Y¨°¨Ð7Ó8€HÜ×Ñ˜& (Ô+ð �8‰8�?‰?˜2Ÿ>™>×8Ñ8¸Ó@À%ÔHÐHÑHr   )ÚoffsetÚlengthÚexpected_valuesçffffff
@r   çÍÌÌÌÌÌ @r#   é   c                 ó|  — t        j                  dd«      }g d¢}|j                  d|i«      j                  | |«      }|j	                  «       }t        |«      }t        j                  d|i«      }t        j                  ||«       |j                  j                  |j                  j                  |«      |«      sJ ‚y )NrA   rB   )rd   Nre   rQ   )rK   rL   rM   Úslicer-   r   r   r,   r7   r;   r^   r_   rY   )	ra   rb   rc   rP   rQ   rM   rR   rS   rT   s	            r   Útest_bitmasks_pyarrowri   k   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ÑHr   c                  ó`   — t         j                  j                  d«      j                  dd«      S )Nrf   iœÿÿÿéd   ©r   ÚrandomÚdefault_rngÚintegersr   r   r   ú<lambda>rp   ˆ   s"   € ”—	‘	×%Ñ% aÓ(×1Ñ1°$¸Ó<€ r   c                  ó`   — t         j                  j                  d«      j                  dd«      S )Nrf   r#   rk   rl   r   r   r   rp   rp   ‰   s"   € ”—	‘	×%Ñ% aÓ(×1Ñ1°!°SÓ9€ r   c                  ó\   — t         j                  j                  d«      j                  «       S )Nrf   )r   rm   rn   r   r   r   rp   rp   Š   s   € ”—	‘	×%Ñ% aÓ(×/Ñ/Ó1€ r   c                  ób   — t         j                  j                  d«      j                  ddg«      S )Nrf   TF)r   rm   rn   Úchoicer   r   r   rp   rp   ‹   s$   € ”—	‘	×%Ñ% aÓ(×/Ñ/°°u°Ó>€ r   c                  ó,  — t        t        j                  j                  d«      j	                  dd«      t        j                  j                  d«      j	                  dd«      t        j                  j                  d«      j	                  dd«      ¬«      S )Nrf   il  i4  r#   é   é   )ÚyearÚmonthÚday)r   r   rm   rn   ro   r   r   r   rp   rp   Œ   sh   € ”Ü—‘×&Ñ& qÓ)×2Ñ2°4¸Ó>Ü—)‘)×'Ñ'¨Ó*×3Ñ3°A°rÓ:Ü—	‘	×%Ñ% aÓ(×1Ñ1°!°RÓ8ô
€ r   c           
      ó
  ‡ — d\  }}t        |«      D ��ci c]9  }dt        ||dz  z
  |z  dz   «      › �t        |«      D �cg c]	  } ‰ «       ‘Œ c}“Œ; c}}Š t        j                  ‰ «      }|j	                  «       }|j                  «       |k(  sJ ‚|j                  «       |k(  sJ ‚t        |j                  «       «      t        ‰ j                  «       «      k(  sJ ‚d}t        ˆ fd„|D «       «      }t        |j                  |«      «      }	t        |j                  |«      «      }
t        j                  |	|
«       t!        |	j"                  d   t        «      sJ ‚t!        |
j"                  d   t        «      sJ ‚y c c}w c c}}w )N)é
   rw   r=   rf   r#   )r   rf   c              3   óV   •K  — | ]   }t        ‰j                  «       «      |   –— Œ" y ­w©N)r   Úkeys)Ú.0Úidxr   s     €r   ú	<genexpr>z!test_dataframe.<locals>.<genexpr>£   s!   øè ø€ Ò<¨S”$�t—y‘y“{Ó# CÕ(Ñ<ùs   ƒ&)Ú_INTERCHANGE_PROTOCOL_BUFFERS)ÚrangeÚintr   r,   r-   Únum_columnsÚnum_rowsr   Úcolumn_namesr   Útupler   Úselect_columnsÚselect_columns_by_namer7   r;   r6   Úattrs)r   ÚNCOLSÚNROWSÚiÚ_r<   Údf2ÚindicesÚnamesrS   rT   s   `          r   Útest_dataframer”   …   s]  ø€ ð �L€Eˆ5ô �u“÷àð Œc�1�u˜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Ü�h—n‘nÐ%DÑEÄtÔLÐLÑLùò) 3Qùós   •+E?Á E:ÁE?Å:E?c            
      óB  — t        j                  t        j                  g d¢«      t        j                  g d¢«      t        j                  g d¢«      dœ«      } | j	                  «       }t        j
                  j                  d«      }| j                  D �ci c]  }||j                  dt        | «      ¬«      “Œ! }}|j                  «       D ]S  \  }}| j                  |j                  t        j                  t        | «      «      |d¬	«         }d | j                  ||f<   ŒU | j	                  «       }|j                  d
«      j                   |d
   k(  sJ ‚|j                  d«      j                   |d   k(  sJ ‚|j                  d«      j                   |d   k(  sJ ‚y c c}w )N)ç      ð?g       @g      @g      @ç        )ç      ø?ç      @ç      @g      @r   )r–   r—   r–   r–   r–   ©ÚxÚyÚzrf   r   )ÚlowÚhighF)ÚsizeÚreplacerœ   r�   rž   )r   r,   r   rN   r-   rm   rn   Úcolumnsro   ÚlenÚitemsÚindexrt   ÚarangeÚlocr.   r1   )r<   r‘   Úrngr=   Ú	dict_nullÚ	num_nullsÚnull_idxs          r   Útest_missing_from_maskedr­   ­   sg  € Ü	�‰ä—‘Ò3Ó4Ü—‘Ò1Ó2Ü—‘Ò3Ó4ñ	
ó
€Bð ×
Ñ
Ó
€Cä
�)‰)×
Ñ
 Ó
"€CØCEÇ:Á:ÖN¸C��c—l‘l q¬s°2«w�lÓ7Ñ7ÐN€IÐNØ#Ÿ/™/Ó+ò %‰ˆˆYØ—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#   rf   r   )TTFr›   c                 ó°   — t        j                  | «      }|j                  «       }|j                  D ]"  }|j	                  |«      j
                  dk(  rŒ"J ‚ y )Nr   )r   r,   r-   r£   r.   r1   )r   r<   r‘   Úcol_names       r   Útest_mixed_datar³   Ç   sT   € ô 
�‰�dÓ	€BØ
×
Ñ
Ó
€Cà—J‘Jò @ˆØ×%Ñ% hÓ/×:Ñ:¸aÓ?Ð?Ð?ñ@r   c                  ó6  — t        j                  t        j                  g d¢«      t        j                  g d¢«      t        j                  g d¢«      dœ«      } | j	                  «       }| j
                  D ]"  }|j                  |«      j                  dk(  rŒ"J ‚ y )N)TNFNT)Nrf   Nr#   rf   )r®   r¯   Nr°   Nr›   rf   )r   r,   r   rN   r-   r£   r.   r1   )r<   r‘   r²   s      r   Útest_mixed_missingrµ   Û   s€   € Ü	�‰ä—‘Ò9Ó:Ü—‘Ò/Ó0Ü—‘Ò7Ó8ñ	
ó
€Bð ×
Ñ
Ó
€Cà—J‘Jò @ˆØ×%Ñ% hÓ/×:Ñ:¸aÓ?Ð?Ð?ñ@r   c                 ón  — | d   dgz   }t        j                  d|i«      }|j                  «       j                  d«      }|j	                  «       dk(  sJ ‚|j
                  dk(  sJ ‚|j                  d   t        j                  k(  sJ ‚|j                  t        j                  dfk(  sJ ‚|dd  }|j                  «       j                  d«      }|j	                  «       dk(  sJ ‚|j
                  dk(  sJ ‚|j                  d   t        j                  k(  sJ ‚|j                  t        j                  dfk(  sJ ‚y )Nr   Ú r!   é   r#   r   é   )r   r,   r-   r.   r¡   r1   r/   r
   ÚSTRINGr2   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                  óì   — t        j                  dg d¢i«      } | j                  «       j                  d«      }t	        j
                  t        d¬«      5  |j                   d d d «       y # 1 sw Y   y xY w)Nr!   )r'   r|   r–   r   znot supported yet©Úmatch)r   r,   r-   r.   rK   ÚraisesÚNotImplementedErrorr/   ©r<   r=   s     r   Útest_nonstring_objectrÅ   ü   s[   € Ü	�‰�sÒ.Ð/Ó	0€BØ
×
Ñ
Ó
×
/Ñ
/°Ó
4€CÜ	�‰Ô*Ð2EÔ	Fñ Ø�	Š	÷÷ ñ ús   ÁA*Á*A3c                  óê  — t        j                  dt        j                  d«      t         j                  gi«      } | j	                  «       j                  d«      }|j                  «       dk(  sJ ‚|j                  dk(  sJ ‚|j                  d   t        j                  k(  sJ ‚|j                  t        j                  t        fk(  sJ ‚t        j                   | t#        | j	                  «       «      «       y )Nr!   z
2022-01-01rf   r#   r   )r   r,   Ú	TimestampÚNaTr-   r.   r¡   r1   r/   r
   ÚDATETIMEr2   r	   r3   r   r7   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                  óJ  — t        j                  dt        j                  g d¢«      i«      } | j                  «       j	                  d«      }t        j                  |j                  «       d   d   «      }t        j                  g d¢d¬«      }t        j                  ||«       y )Nr!   )r'   Úbr'   r   r   )r   r#   r   Úint8©r/   )r   r,   r   r-   r.   r   Úfrom_dlpackÚget_buffersrN   r7   Úassert_numpy_array_equal)r<   r=   rS   rT   s       r   Ú test_categorical_to_numpy_dlpackrÓ     sx   € ô 
�‰�sœBŸN™Nª?Ó;Ð<Ó	=€BØ
×
Ñ
Ó
×
/Ñ
/°Ó
4€CÜ�^‰^˜CŸO™OÓ-¨fÑ5°aÑ8Ó9€FÜ�x‰xš	¨Ô0€HÜ×Ñ ¨Õ1r   r'   c                 ó¸   — t        j                  dd«       ddlm} t	        j
                  | «      } ||«      }t        |«      }t        j                  ||«       y )NrA   rB   r   r   )rK   rL   Úpyarrow.interchanger   r   r,   r7   r;   )r   Úpa_from_dataframerT   Úarrow_dfrS   s        r   Útest_empty_pyarrowrØ     sI   € ô ×Ñ˜	 8Ô,ÝGä�|‰|˜DÓ!€HÙ  Ó*€HÜ˜HÓ%€FÜ×Ñ˜& (Õ+r   c                  óB  — t        j                  dd«      } | j                  g d¢g d¢g«      }dg}| j                  |g|¬«      }t        j                  t
        d¬«      5  t        j                  j                  j                  |d	¬
«       d d d «       y # 1 sw Y   y xY w)NrA   rB   )rf   rf   é   )rÚ   r¹   rk   Ún_legs)r“   zHTo join chunks a copy is required which is forbidden by allow_copy=FalserÀ   F)Ú
allow_copy)
rK   rL   Úchunked_arrayrM   rÂ   ÚRuntimeErrorr   rX   rY   r   )rP   rÛ   r“   rM   s       r   Útest_multi_chunk_pyarrowrß   %  s�   € Ü	×	Ñ	˜Y¨Ó	1€BØ×Ñšyª+Ð6Ó7€FØˆJ€EØ�H‰H�f�X UˆHÓ+€EÜ	�‰Üð(ô
ñ Cô
 	�‰×Ñ×)Ñ)¨%¸EÐ)ÔB÷C÷ Cñ Cús   Á ,BÂBÚtzÚUTCz
US/PacificÚunit)r*   ÚmsÚusÚnsc                 óø   — t        j                  ddd¬«      j                  | «      j                  |«      }t        j                  d|i«      }t        j                  |t        |j                  «       «      «       y )Nz
2018-01-01r¹   ÚD)ÚperiodsÚfreqÚts_tz)	r   Ú
date_rangeÚtz_localizeÚas_unitr,   r7   r;   r   r-   )rà   râ   Útz_datar<   s       r   Útest_datetimetzdtyperï   2  sc   € ô
 	�‰�l¨A°CÔ8×DÑDÀRÓH×PÑPÐQUÓVð ô 
�‰�w Ð(Ó	)€BÜ×Ñ˜"œn¨R×-=Ñ-=Ó-?Ó@ÕAr   c           	      ó  — t        j                  dd«      }dd lm} t	        «       rFt        «       r<t         j                  j                  |j                  d¬«      }| j                  |«       |j                  t        ddd«      d t        ddd«      g«      }|j                  |d	«      }|j                  d
|i«      }|j                  «       }t        |«      }t!        j"                  g d¢d
gd¬«      }t%        j&                  ||«       y )NrA   rB   r   z_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.)rÂ   rË   iä  r#   rf   zAsia/KathmandurQ   )z2020-01-01 00:00:00+05:45rÈ   z2020-01-02 00:00:00+05:45zdatetime64[us, Asia/Kathmandu])r£   r/   )rK   rL   Úpyarrow.computeÚcomputer   r   ÚmarkÚxfailÚArrowInvalidÚapplymarkerrN   r   Úassume_timezonerM   r-   r   r   r,   r7   r;   )	ÚrequestrP   Úpcró   rQ   rM   rR   rS   rT   s	            r   Ú)test_interchange_from_non_pandas_tz_awarerú   =  sç   € ä	×	Ñ	˜Y¨Ó	1€BÝ äÔÔ!2Ô!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ô
 ×Ñ˜( FÕ+r   c                 óÒ  ‡‡‡— t        j                  dddgi«      j                  «       }|j                  «       Š‰j                  d«      Š‰j	                  «       Š‰d   }|d   }t
        j                  dt        j                  |d   f}|d   |f‰d<   ˆfd	„‰_        ˆfd
„‰_        | j                  |dˆfd„«       t         j                  j                  j                  |«       y )Nr'   ÚfooÚbarr   r#   é   é   r   c                  ó   •— ‰ S r~   r   )Úbufferss   €r   rp   z?test_interchange_from_corrected_buffer_dtypes.<locals>.<lambda>i  s   ø€  € r   c                 ó   •— ‰S r~   r   )r�   Úcolumns    €r   rp   z?test_interchange_from_corrected_buffer_dtypes.<locals>.<lambda>j  s   ø€ ¨v€ r   r-   c                 ó   •— ‰S r~   r   )rÜ   rY   s    €r   rp   z?test_interchange_from_corrected_buffer_dtypes.<locals>.<lambda>k  s   ø€ À€ r   )r   r,   r-   r.   rÑ   r
   ÚUINTr   ÚUINT8ÚsetattrrX   rY   r   )Úmonkeypatchr<   Úbuffers_dataÚbuffer_dtyper  r  rY   s       @@@r   Ú-test_interchange_from_corrected_buffer_dtypesr  Z  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                  óÜ   — t        j                  dg it        ¬«      } | j                  «       }t         j                  j
                  j                  |«      }t        j                  | |«       y )Nr'   rÏ   )	r   r,   Ústrr-   rX   rY   r   r7   r;   )r<   r‘   rS   s      r   Útest_empty_string_columnr  o  sN   € ä	�‰�s˜B�i¤sÔ	+€BØ
×
Ñ
Ó
€CÜ�V‰V×Ñ×.Ñ.¨sÓ3€FÜ×Ñ˜"˜fÕ%r   c                  ó0  — t        j                  d«       t        j                  ddgid¬«      } t        j                  j
                  j                  | j                  «       «      }t        j                  ddgid¬«      }t        j                  ||«       y )NrA   r'   rœ   zlarge_string[pyarrow]rÏ   Úobject)
rK   rL   r   r,   rX   rY   r   r-   r7   r;   )r<   rS   rT   s      r   Útest_large_stringr  w  sp   € ä
×Ñ˜	Ô"Ü	�‰�s˜S˜E�lÐ*AÔ	B€BÜ�V‰V×Ñ×.Ñ.¨r×/?Ñ/?Ó/AÓB€FÜ�|‰|˜S 3 %˜L°Ô9€HÜ×Ñ˜& (Õ+r   )ÚreturnN)5r   Únumpyr   rK   Úpandas._libs.tslibsr   Úpandas.compatr   r   Úpandas.compat.numpyr   Úpandasr   Úpandas._testingÚ_testingr7   Úpandas.core.interchange.columnr   Ú*pandas.core.interchange.dataframe_protocolr	   r
   Ú&pandas.core.interchange.from_dataframer   Úpandas.core.interchange.utilsr   Úfixturer   r   ró   Úparametrizer?   rU   r[   r`   Úfloatri   r”   r­   rN   r³   rµ   r¾   rÅ   rÊ   ÚskipifrÓ   rØ   rß   rï   rú   r  r  r  r   r   r   ú<module>r"     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ð4 ‡�×ÑØ
âÒ$5Ñ6ÚÒ/Ñ0à�—‘Ò-Ó.Ø�—‘š)Ó$Ø�—‘Ò+Ó,ñ	
ðóñ@óð@ò@òAò$ò	Bð ‡�×ÑÐ%Ð.EÐÓFñ2ó Gð2ð ‡�×Ñ˜ " s¨B i Ó1ñ,ó 2ð,ó
Cð ‡�×Ñ˜  |Ð4Ó5Ø‡�×Ñ˜Ò!8Ó9ñBó :ó 6ðBò,ó:*ò*&ó,r   