a
    é´«j.Ì ã                   @  s(  d Z ddlmZ ddlmZmZmZmZ ddlmZ ddl	m
Z
mZ ddlZddlZddlZddlZddlZddlmZ ddlmZ dd	lmZmZmZmZmZmZmZmZmZ dd
l m!Z!m"Z" ddl#Z$ddl%m&Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3 e 4d¡Z5ddl6m7Z7 ddl8m9Z9 dd„ Z:ej;e'j<e=d�dd„ ƒZ>ej;dd„ ƒZ?ej;dd„ ƒZ@ej;ddgd�dd„ ƒZAej;dd„ ƒZBej;dd „ ƒZCej;d!d"„ ƒZDej;d#d$„ ƒZEG d%d&„ d&e3jFƒZGG d'd(„ d(ƒZHejI Jd)e'jK¡d*d+„ ƒZLd,d-„ ZMd.d/„ ZNd0d1„ ZOd2d3„ ZPd4d5„ ZQejI Jd6g d7¢¡ejI Jd8d9d9d9gg¡d:d;„ ƒƒZRejIjJd<g d=¢d>dggg d?¢dgggd@dAgdB�dCdD„ ƒZSdEdF„ ZTejI JdGe5 U¡ eVge5 UdH¡eVge5 W¡ eVge5 X¡ e=ge5 Ye5 Z¡ ¡e[ge5 \e5 Z¡ ¡e[ge5 ]e5 ^¡ e5 Z¡ ¡e[ge5 _dIe5 `¡ fdJe5 ^¡ fg¡eage5 be5 Z¡ e5 Z¡ ¡e"gg	¡dKdL„ ƒZcdMdN„ ZddOdP„ ZedQdR„ ZfdSdT„ ZgdUdV„ ZhdWdX„ ZidYdZ„ Zjd[d\„ Zkd]d^„ Zld_d`„ Zmdadb„ Zndcdd„ ZoejI Jdeej)ejpfdfg¡dgdh„ ƒZqdidj„ Zrdkdl„ Zsdmdn„ Ztdodp„ Zudqdr„ Zvdsdt„ Zwdudv„ Zxdwdx„ Zydydz„ ZzejI Jd{d|d}g¡d~d„ ƒZ{d€d�„ Z|ejI Jd‚dƒd„gd…d†gd‡dˆgg¡d‰dŠ„ ƒZ}d‹dŒ„ Z~ejI Jd�dŽd�dd�d�dggd‘d�dd�d�dggdŽd�d�d�d�d�ggd’d�dd�d�dggd“d�dd�d�dggg¡d”d•„ ƒZd–d—„ Z€ejI Jd˜d™dŽdg dš¢gd™d›d�g dœ¢gd�d›d�g dž¢gd�dŸdg dš¢gd™d dg d¡¢gd�d¢dg d¡¢gd™d£dg d¤¢gd�d£dg d¤¢gg¡d¥d¦„ ƒZ�ejI Jd§d¨¡d©dª„ ƒZ‚ejI Jd«d{e ƒd›¡gd¬e=gd­d�gd®d¯gg¡d°d±„ ƒZ„ejI Jd²d³d´dµd�d¶dggd³d´d¯d�d·dggd¸d´dµd�d¹dggg¡dºd»„ ƒZ…d¼d½„ Z†d¾d¿„ Z‡dÀdÁ„ ZˆejI JdÂdŽd�dd�dggd‘d�dd�dggdŸd�dd�dggdŽd�d�d�d�ggd’d�dd�dggd“d�dd�dggg¡dÃdÄ„ ƒZ‰ejI JdÂd|d�dg dÅ¢gdÆd�dg dÇ¢gdŸd�dg dÇ¢gdŽd�dg dÇ¢gd}d�dg dÅ¢gd“d�dg dÇ¢gdÈd�dg dÅ¢gdÉd�dg dÊ¢gdËd�dg dÇ¢gdÌd�dg dÇ¢gdÍd�dg dÅ¢gdÎd�dg dÅ¢gg¡dÏdÐ„ ƒZŠejI JdÑdŽddddge5 ‹¡ gdŸd¯dÒd¯dge5 Z¡ gg¡dÓdÔ„ ƒZŒdÕdÖ„ Z�d×dØ„ ZŽdÙdÚ„ Z�dÛdÜ„ Z�ejIj‘edÝdÞ�ejI Jdßg dà¢¡ejI Jdág dâ¢¡ejI Jdãg dä¢¡dådæ„ ƒƒƒƒZ’dçdè„ Z“ejI Jdéd¯g dê¢gdµg dë¢gdìg dí¢gdîg dï¢gd>g dð¢gg¡dñdò„ ƒZ”ejIj•dóe–dô�dõdö„ ƒZ—d÷dø„ Z˜ejI JdùddìddŽdggddìd¯dŽdggd¯dÒd¯dŸdggdddµdúdgfg¡dûdü„ ƒZ™ejI Jdýd¯dìd´dþdggddìd´dÿdggddìd�d dggg¡�d�d„ ƒZšejI J�dg �d¢g �d¢g �d¢g �d¢g �d¢g �d	¢g �d
¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g¡�d�d„ ƒZ›ejI J�d�d�dg�d�dg�d�dg�d�d g�d!�d"g�d#�d gg¡�d$�d%„ ƒZœ�d&�d'„ Z�ejI J�d(g �d)¢g �d*¢g �d+¢g �d,¢g �d-¢g �d.¢g¡�d/�d0„ ƒZžejI J�d1�d2d|g¡�d3�d4„ ƒZŸejI J�d1�d5d|g¡�d6�d7„ ƒZ ejI J�d8�d9�d:g¡ejI J�d;�d<�d=g�d>�d?gg¡�d@�dA„ ƒƒZ¡ejI Jd®ddìg¡�dB�dC„ ƒZ¢ejI J�dD�dE�dFg¡ejI J�dGddgd¯d>gg¡�dH�dI„ ƒƒZ£ejI J�dJ�dK�dLg¡�dM�dN„ ƒZ¤ejI J�dGddgd¯d>gg¡�dO�dP„ ƒZ¥�dQ�dR„ Z¦�dS�dT„ Z§�dU�dV„ Z¨�dW�dX„ Z©ejI J�dD�dY�dZg¡�d[�d\„ ƒZª�d]�d^„ Z«�d_�d`„ Z¬�da�db„ Z­ejI J�dcd�d�g¡�dd�de„ ƒZ®�df�dg„ Z¯ejI J�dhg �di¢¡�dj�dk„ ƒZ°�dl�dm„ Z±ejI J�dn�do�dpg�dqdìg�drdg�dsdg�dtdg�dudìg�dvdìg�dwdÒg�dxd>g�dyd�g�dz�d{g�d|d¯g�d}�d~g�dd¯g�d€�d�g�d‚e�dpd¯dìƒg�dƒedÒd>�d��d{ƒgg¡�d„�d…„ ƒZ²�d†�d‡„ Z³�dˆ�d‰„ Z´�dŠ�d‹„ ZµejI J�dD�dŒ�d�g¡�dŽ�d�„ ƒZ¶�d��d‘„ Z·ejI J�dh�d’�d“g¡�d”�d•„ ƒZ¸ejI J�d–g �d—¢¡�d˜�d™„ ƒZ¹�dš�d›„ ZºejI J�d�dœ�d�g�dž�dŸgg¡�d �d¡„ ƒZ»�d¢�d£„ Z¼ejI J�dDg �d¤¢¡�d¥�d¦„ ƒZ½ejI J�dDg �d¤¢¡�d§�d¨„ ƒZ¾ejI J�d©g �dª¢¡ejI J�dDg �d¤¢¡�d«�d¬„ ƒƒZ¿�d­�d®„ ZÀejI J�d¯�d°�d±g¡�d²�d³„ ƒZÁ�d´�dµ„ ZÂ�d¶�d·„ ZÃejI J�dh�d’�d“g¡�d¸�d¹„ ƒZÄejI J�dº�d»e�dpdÒ�d¼dÒ�d½�g�d¾e$ Å�d¿¡gg¡�dÀ�dÁ„ ƒZÆ�dÂ�dÃ„ ZÇ�dÄ�dÅ„ ZÈejI J�dh�d’�d“g¡�dÆ�dÇ„ ƒZÉejI Jd�dÈ�dÉg¡�dÊ�dË„ ƒZÊejI J�dn�dÌd¯g�dÍdìg�dÎdÒg�dÏd>gg¡�dÐ�dÑ„ ƒZË�dÒ�dÓ„ ZÌ�dÔ�dÕ„ ZÍ�dÖ�d×„ ZÎejI J�dØd�d�g¡�dÙ�dÚ„ ƒZÏ�dÛ�dÜ„ ZÐ�dÝ�dÞ„ ZÑejI Jd�dß�dàg¡�dá�dâ„ ƒZÒG �dã�dä„ �däe7ƒZÓ�då�dæ„ ZÔ�dç�dè„ ZÕejI J�dé�dê�dëge5 W¡ fd³d›ge5 X¡ fg¡�dì�dí„ ƒZÖ�dî�dï„ Z×ejI Jd)e'jKe'jØ ¡�dð�dñ„ ƒZÙejI Jd)e'jÚ¡�dò�dó„ ƒZÛejI Jd)e'jÜ¡�dô�dõ„ ƒZÝejI Jd)e'jÜe'jÚ ¡�dö�d÷„ ƒZÞ�dø�dù„ Zß�dú�dû„ Zà�dü�dý„ ZáejI Jd)e'jÜe'jÚ ¡�dþ�dÿ„ ƒZâejI Jd)e'jÜe'jÚ ¡�d �d„ ƒZãejI Jd)e'jÜe'jÚ ¡�d�d„ ƒZäejI Jd)e'jÜe'jÚ ¡�d�d„ ƒZåejI Jd)e'jÜe'jÚ ¡�d�d„ ƒZæejI Jd)e'jÜe'jÚ ¡�d�d	„ ƒZç�d
�d„ ZèejIjJd)e'jÜe'jÚ eédB�ejI Jddeêg¡�d�d„ ƒƒZë�d�d„ Zì�d�d„ Zí�d�d„ Zî�d�d„ ZïejI Jd)e'jÚ¡�d�d„ ƒZð�d�d„ Zñ�d�d„ Zò�d�d„ Zó�d�d„ Zô�d �d!„ ZõejI Jd�d"�d#g¡�d$�d%„ ƒZöejI Jd)e'j÷¡�d&�d'„ ƒZøejI Jd)e'j÷¡�d(�d)„ ƒZùejI Jde'jú¡�d*�d+„ ƒZûejI Jdg �d,¢¡�d-�d.„ ƒZüejI Jd)e'jK¡�d/�d0„ ƒZýejI Jd�d"�d#g¡�d1�d2„ ƒZþejI Jd�d"�d#g¡�d3�d4„ ƒZÿ�d5�d6„ �Z ejIj‘e�d7dÞ��d8�d9„ ƒ�Z�d:�d;„ �Z�d<�d=„ �Z�d>�d?„ �Z�d@�dA„ �ZdS (B  ag  
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.
The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).
Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.
é    )Úannotations)ÚdateÚdatetimeÚtimeÚ	timedelta)ÚDecimal)ÚBytesIOÚStringION)Úlib)Ú	timezones)	ÚPY311ÚPY312Úis_ci_environmentÚis_platform_windowsÚpa_version_under11p0Úpa_version_under13p0Úpa_version_under14p0Úpa_version_under20p0Úpa_version_under21p0)Ú
ArrowDtypeÚCategoricalDtypeType)Ú
no_default)Úis_bool_dtypeÚis_float_dtypeÚis_integer_dtypeÚis_numeric_dtypeÚis_signed_integer_dtypeÚis_string_dtypeÚis_unsigned_integer_dtype)ÚbaseÚpyarrow)ÚArrowExtensionArray)ÚArrowPeriodTypec                 C  s,   t ƒ r(tƒ r(tjjtjdd�}|  |¡ d S )Nz_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.©ÚraisesÚreason)r   r   ÚpytestÚmarkÚxfailÚpaÚArrowInvalidÚapplymarker)Úrequestr'   © r-   ú`/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/extension/test_arrow.pyÚ_require_timezone_databaseH   s    ýr/   )ÚparamsÚidsc                 C  s   t | jd�S )N)Úpyarrow_dtype)r   Úparam)r,   r-   r-   r.   ÚdtypeT   s    r4   c              	   C  s|  | j }tj |¡rBddgd d g ddgd  d g ddg }�n,tj |¡r~ddgd d g ddgd  d g d	d
g }�nðtj |¡rºddgd d g ddgd  d g ddg }�n´tj |¡röddgd d g ddgd  d g ddg }�nxtj |¡�rLtdƒtdƒgd d g tdƒtdƒgd  d g tdƒtdƒg }�n"tj 	|¡�rºt
dddƒt
dddƒgd d g t
dddƒt
dddƒgd  d g t
dddƒt
dddƒg }�n´tj |¡�r<tdddddddƒtdddddddƒgd d g tddddƒtddddƒgd  d g tdddƒtdddƒg }�n2tj |¡�r’tdƒtddƒgd d g tdƒtdƒgd  d g tdƒtdƒg }nÜtj |¡�ròtddƒtddƒgd d g tddƒtddƒgd  d g tddƒtddƒg }n|tj |¡�r.dd gd d g dd!gd  d g d"d#g }n@tj |¡�rjd$d%gd d g d&d'gd  d g d(d)g }nt‚tj|| d*�S )+NTFé   é,   ç      ð?ç        g       Àg      ð¿ç      à?g     àX@é   r   éþÿÿÿéÿÿÿÿéc   é   Ú1ú0.0z-2.0z-1.0z0.5z33.123éæ  éÏ  é   é   éä  iöÿÿÿé
   é   ÚaÚbÚ2ú!ú>ó   aó   bó   1ó   2ó   !ó   >©r4   )r2   r)   ÚtypesÚ
is_booleanÚis_floatingÚis_signed_integerÚis_unsigned_integerÚ
is_decimalr   Úis_dater   Úis_timestampr   Úis_durationr   Úis_timer   Ú	is_stringÚ	is_binaryÚNotImplementedErrorÚpdÚarray)r4   Úpa_dtypeÚdatar-   r-   r.   rd   Y   sŒ    0000ÿþýüÿÿþýüÿ*ÿþýüÿÿþýüÿÿþýüÿ..rd   c                 C  s   t | ƒjd| d g| jd�S )zLength-2 array with [NA, Valid]Nr   rS   ©ÚtypeÚ_from_sequencer4   )rd   r-   r-   r.   Údata_missing•   s    rh   )r0   c                 C  s    | j dkr|S | j dkr|S dS )z�Parametrized fixture returning 'data' or 'data_missing' integer arrays.

    Used to test dtype conversion with and without missing values.
    rd   rh   N)r3   )r,   rd   rh   r-   r-   r.   Úall_data›   s    

ri   c              	   C  s¾  | j }tj |¡r"d}d}d}�n~tj |¡r>d}d}d}�nbtj |¡rZd}d}d}�nFtj |¡rvd}d}d	}�n*tj |¡r¨td
ddƒ}tdddƒ}tdddƒ}nøtj 	|¡rät
d
ddddddƒ}t
dddƒ}t
ddddƒ}n¼tj |¡�rtdƒ}tdƒ}tddƒ}n’tj |¡�r<tddƒ}tddƒ}tddƒ}ndtj |¡�rXd}d}d}nHtj |¡�rtd}d}d}n,tj |¡�rœtdƒ}tdƒ}tdƒ}nt‚tj||dd||||g| d�S )z˜
    Data for factorization, grouping, and unique tests.

    Expected to be like [B, B, NA, NA, A, A, B, C]

    Where A < B < C and NA is missing
    FTgš™™™™™ñ¿r8   gš™™™™™ñ?r<   r   r:   rF   rB   rC   rD   iÚ  rA   rE   r5   rH   rI   ÚcrM   rN   ó   cz-1.1r@   z1.1NrS   )r2   r)   rT   rU   rV   rW   rX   rZ   r   r[   r   r\   r   r]   r   r^   r_   rY   r   r`   ra   rb   )r4   rc   ÚAÚBÚCr-   r-   r.   Údata_for_grouping§   s^    	


ro   c                 C  s&   t | ƒj| d | d | d g| jd�S )zn
    Length-3 array with a known sort order.

    This should be three items [B, C, A] with
    A < B < C
    r   é   r5   rS   re   ©ro   r-   r-   r.   Údata_for_sortingâ   s    þrr   c                 C  s&   t | ƒj| d | d | d g| jd�S )z{
    Length-3 array with a known sort order.

    This should be three items [B, NA, A] with
    A < B and NA missing.
    r   r>   r5   rS   re   rq   r-   r-   r.   Údata_missing_for_sortingð   s    þrs   c                 C  sR   | j j}tj |¡s8tj |¡s8tj |¡s8tj |¡rNtj	dgd | j d�S | S )z3Length-100 array in which all the elements are two.r>   éd   rS   )
r4   r2   r)   rT   Ú
is_integerrV   rY   r\   ra   rb   ©rd   rc   r-   r-   r.   Údata_for_twosþ   s    
ÿ
þ
ý
ürw   c                      s¼  e Zd Zdd„ Zej dddg¡dd„ ƒZ‡ fdd	„Z‡ fd
d„Z	dd„ Z
dd„ Zdd„ Zdd„ Zddddœdd„Zej dddg¡‡ fdd„ƒZddddœdd „Zdddd!œd"d#„Zej dddg¡‡ fd$d%„ƒZej dddg¡‡ fd&d'„ƒZddd(œd)d*„Zej dddg¡‡ fd+d,„ƒZej d-g d.¢¡d/d0„ ƒZ‡ fd1d2„Z‡ fd3d4„Zd5d6„ Z‡ fd7d8„Z‡ fd9d:„Zejjd;dd<�‡ fd=d>„ƒZd?d@„ ZejjdAdd<�‡ fdBdC„ƒZejjdAdd<�‡ fdDdE„ƒZ ej dFdGe!g¡ej dHdIdJg¡dKdL„ ƒƒZ"‡ fdMdN„Z#ej dOdPdQg¡‡ fdRdS„ƒZ$dTdU„ Z%dVZ&dWdX„ Z'ddYœdZd[„Z(d\d]„ Z)dd^d_œd`da„Z*dbdc„ Z+‡ fddde„Z,‡ fdfdg„Z-dhdi„ Z.‡ fdjdk„Z/dldm„ Z0ej dng do¢¡dpdq„ ƒZ1‡  Z2S )rÚTestArrowArrayc                 C  s"   t  |¡}|  ||||d ¡ d S )Nr   )ra   ÚSeriesZ_compare_other)Úselfrd   Úcomparison_opÚserr-   r-   r.   Útest_compare_scalar  s    
z"TestArrowArray.test_compare_scalarÚ	na_actionNÚignorec                 C  s~   |j jdv r8|jdd„ |d�}|jtd�}t ||¡ nB|jdd„ |d�}|j dkrf|jdtjd	�}n| ¡ }t ||¡ d S )
NZmMc                 S  s   | S ©Nr-   ©Úxr-   r-   r.   Ú<lambda>  ó    z)TestArrowArray.test_map.<locals>.<lambda>©r~   rS   c                 S  s   | S r€   r-   r�   r-   r-   r.   rƒ     r„   úfloat32[pyarrow]Úfloat64©r4   Úna_value)	r4   ÚkindÚmapÚto_numpyÚobjectÚtmÚassert_numpy_array_equalÚnpÚnan)rz   rh   r~   ÚresultÚexpectedr-   r-   r.   Útest_map  s    
zTestArrowArray.test_mapc                   s|   |j j}tj |¡r2| tjjd|› d�d�¡ n:|sltj 	|¡rL|j
d u sXtj |¡rl| tjjdd�¡ tƒ  |¡ d S )NzFor z .astype(str) decodes.©r%   z8pd.Timestamp/pd.Timedelta repr different from numpy repr)r4   r2   r)   rT   r_   r+   r&   r'   r(   r[   Útzr\   ÚsuperÚtest_astype_str)rz   rd   r,   Zusing_infer_stringrc   ©Ú	__class__r-   r.   r˜   "  s(    
ÿÿ
ÿÿ
þÿÿzTestArrowArray.test_astype_strc                   s`   |j j}tj |¡s tj |¡rPtj |¡r2d}n
d|› �}| tjj	|d�¡ t
ƒ  |¡ d S )Nz1ArrowDtype(pa.string()) != StringDtype('pyarrow')ú$pyarrow.type_for_alias cannot infer r•   )r4   r2   r)   rT   r^   rY   r+   r&   r'   r(   r—   Útest_from_dtype)rz   rd   r,   rc   r%   r™   r-   r.   rœ   5  s    
ÿÿzTestArrowArray.test_from_dtypec                 C  sp   t |ƒj|j|jd�}t ||¡ t|jtjƒs4J ‚t |ƒj|j 	¡ |jd�}t ||¡ t|jtjƒslJ ‚d S ©NrS   )
rf   rg   Ú	_pa_arrayr4   rŽ   Úassert_extension_array_equalÚ
isinstancer)   ZChunkedArrayÚcombine_chunks©rz   rd   r’   r-   r-   r.   Útest_from_sequence_pa_arrayD  s    ÿz*TestArrowArray.test_from_sequence_pa_arrayc                 C  sF   t jtdd��$ tjdgt ¡ d� W d   ƒ n1 s80    Y  d S )NzConverting strings to©Úmatchz12-1rS   )r&   r$   r`   r!   Ú_from_sequence_of_stringsr)   Zmonth_day_nano_interval)rz   r,   r-   r-   r.   Ú*test_from_sequence_pa_array_notimplementedQ  s    
ÿz9TestArrowArray.test_from_sequence_pa_array_notimplementedc                 C  sî   |j j}tj |¡r8| d¡r8ts8| tj	j
dd�¡ nZtrttj |¡sTtj |¡rt| tj	j
tjd|› �d�¡ ntj |¡r’|jd ur’t|ƒ |j t ¡ ¡}t|ƒj||j d�}t ||¡ | ¡ }t|ƒj||j d�}t ||¡ d S )Nz
time64[ns]z&Nanosecond time parsing not supported.r•   z pyarrow doesn't support parsing r#   rS   )r4   r2   r)   rT   Z	is_time64Úequalsr   r+   r&   r'   r(   r   r\   rY   ÚArrowNotImplementedErrorr[   r–   r/   rž   ÚcastÚstringrf   r¦   rŽ   rŸ   r¡   )rz   rd   r,   rc   Úpa_arrayr’   r-   r-   r.   Ú&test_from_sequence_of_strings_pa_arrayW  s4    ÿÿ
ÿ
ÿþÿz5TestArrowArray.test_from_sequence_of_strings_pa_arrayc                 C  s€   t ||ƒ|d�}|jj}tj |¡rL|jdkr4d}nd}| |¡}| |¡}| d¡}t | d¡|ƒ|d�}tj	||dd� d S )N©Úskipnaé    úint32[pyarrow]úint64[pyarrow]ÚFloat64F)Zcheck_dtype)
Úgetattrr4   r2   r)   rT   Úis_temporalZ	bit_widthÚastyperŽ   Úassert_series_equal)rz   r|   Úop_namer¯   r’   Úpa_typeZint_typer“   r-   r-   r.   Úcheck_accumulates  s    



zTestArrowArray.check_accumulatez	pd.SeriesÚstrÚbool)r|   r¸   Úreturnc                 C  s–   |j j}tj |¡s tj |¡r.|dv r’dS ndtj |¡rH|dkr’dS nJtj |¡rb|dv r’dS n0tj |¡r’|dkr†tj 	|¡s†dS |dkr’dS dS )N)ÚcumsumÚcumprodÚcummaxÚcumminFr¿   )r¿   rÀ   rÁ   r¾   T)
r4   r2   r)   rT   r_   rY   r^   rU   rµ   r\   )rz   r|   r¸   r¹   r-   r-   r.   Ú_supports_accumulation„  s     z%TestArrowArray._supports_accumulationr¯   TFc           
        sð   |j j}|}tj |¡r$|dv r$d S t |¡}|  ||¡sJtƒ  	|||¡S t
rž|dkrž|jj}|jr~d|jv r~t |› d�¡ tjj|› d�d�}	| |	¡ n@|dkrÞtj |¡s¾tj |¡rÞ| tjj|› d|› �td�¡ |  |||¡ d S )N)r¾   rÁ   rÀ   r¾   znot slowz  not implemented for pyarrow < 9r•   z not implemented for ©r%   r$   )r4   r2   r)   rT   r^   ra   ry   rÂ   r—   Útest_accumulate_seriesr   ÚconfigÚoptionZmarkexprr&   Úskipr'   r(   r+   rU   rY   Ú	TypeErrorrº   )
rz   rd   Zall_numeric_accumulationsr¯   r,   r¹   r¸   r|   Úoptr'   r™   r-   r.   rÄ   ™  s>    
ÿÿÿ
ÿ
ÿþÿz%TestArrowArray.test_accumulate_seriesc                 C  s¸   |dkst r|dkrdS |j}|j}tj |¡rT|dv rTtj |¡rN|dv rNq�dS n<tj |¡rl|dv rldS tj |¡s„tj |¡r�|dv r�dS tj |¡r´tj |¡s´|dv r´dS d	S )
NÚkurtÚskewF)ÚsumÚvarrË   rÊ   Úprod)rÌ   )rÌ   rË   )ÚmeanÚmedianrÎ   ÚstdÚsemrÍ   rË   rÊ   )ÚanyÚallT)	r   r4   r2   r)   rT   rµ   r\   r_   r^   )rz   r|   r¸   r4   rc   r-   r-   r.   Ú_supports_reductionÄ  s2    
ÿ
ÿþ
ÿ
þýz"TestArrowArray._supports_reduction)r|   r¸   r¯   c                 C  s‚   |j j}tj |¡s tj |¡r,| d¡}n|}|dkrRt||ƒƒ }t||ƒƒ }n t||ƒ|d�}t||ƒ|d�}t 	||¡ d S )Nr³   Úcountr®   )
r4   r2   r)   rT   ru   rV   r¶   r´   rŽ   Zassert_almost_equal)rz   r|   r¸   r¯   rc   Úaltr’   r“   r-   r-   r.   Úcheck_reduceô  s    zTestArrowArray.check_reducec                   sª   |j }|j}tjjt|› dtj› d|› �d�}tj 	|¡rN|dv rN| 
|¡ nHts–|dkr–tj 	|¡s‚|r–tj |¡s‚tj |¡r–| 
tjjdd�¡ tƒ  |||¡ d S )Nú is not implemented in pyarrow=ú for r#   >   rÐ   rÑ   rÒ   rÍ   rË   z,https://github.com/apache/arrow/issues/45733r•   )r4   r2   r&   r'   r(   rÈ   r)   Ú__version__rT   rU   r+   r   ru   rV   r—   Útest_reduce_series_numeric)rz   rd   Úall_numeric_reductionsr¯   r,   r4   rc   Ú
xfail_markr™   r-   r.   rÜ   	  s<    ÿÿýÿþ
üú
ø
øÿÿz)TestArrowArray.test_reduce_series_numericc                   s\   |j j}tjjt|› dtj› d|› �d�}tj 	|¡sBtj 
|¡rL| |¡ tƒ  |||¡S )NrÙ   rÚ   r#   )r4   r2   r&   r'   r(   rÈ   r)   rÛ   rT   r^   r_   r+   r—   Útest_reduce_series_boolean)rz   rd   Úall_boolean_reductionsr¯   r‰   r,   rc   rÞ   r™   r-   r.   rß   0  s    ÿÿý
z)TestArrowArray.test_reduce_series_boolean)r¸   r¯   c                 C  sš   |j j}|dv r|j}n~|jjdkrX|dkrBtsBtt dd¡ƒ}q–|dvrR|j}q–d}n>|dv rfd}n0|dkr‚tj 	|¡r‚|j}nd	d
ddœ|jj
 }|S )N)ÚmaxÚminzdecimal128(7, 3)[pyarrow]rÌ   é&   é   )rÐ   rÍ   rÑ   rË   úfloat64[pyarrow])rÐ   rÍ   rÑ   rÏ   rË   r²   úuint64[pyarrow])ÚiÚuÚf)rž   rf   r4   Únamer   r   r)   Z
decimal128rT   r^   rŠ   )rz   Úarrr¸   r¯   r¹   Z	cmp_dtyper-   r-   r.   Ú_get_expected_reduction_dtypeC  s(    ýüz,TestArrowArray._get_expected_reduction_dtypec                   s@   |}|dkr0t r0|jjr0tjjdd�}| |¡ tƒ  |||¡S )NrË   zskew not implementedr•   )	r   r4   Ú_is_numericr&   r'   r(   r+   r—   Útest_reduce_frame)rz   rd   rÝ   r¯   r,   r¸   r'   r™   r-   r.   rî   [  s    
z TestArrowArray.test_reduce_frameÚtyp)Úint64Zuint64r‡   c                 C  s,   t jddg|› d�d� ¡ }|dks(J ‚d S )Nr:   r>   ú	[pyarrow]rS   ç      ø?)ra   ry   rÐ   )rz   rï   r’   r-   r-   r.   Útest_median_not_approximated  s    z*TestArrowArray.test_median_not_approximatec                   sŒ   |j }tj |¡r.| tjjtd|› �d�¡ tj 	|¡r|d}tj
t|d�� | |j¡ W d   ƒ n1 sn0    Y  d S tƒ  |¡ d S )Nr›   r#   z6string\[pyarrow\] should be constructed by StringDtyper¤   )r2   r)   rT   rY   r+   r&   r'   r(   r`   r^   r$   rÈ   Úconstruct_from_stringrê   r—   Ú#test_construct_from_string_own_name)rz   r4   r,   rc   Úmsgr™   r-   r.   rõ   j  s    þÿ*z2TestArrowArray.test_construct_from_string_own_namec                   s`   |j }tj |¡r(t|ƒ |j¡r\J ‚n4tj |¡rP| t	j
jtd|› �d�¡ tƒ  |¡ d S )Nr›   r#   )r2   r)   rT   r^   rf   Zis_dtyperê   rY   r+   r&   r'   r(   r`   r—   Útest_is_dtype_from_name©rz   r4   r,   rc   r™   r-   r.   r÷   ~  s    þÿz&TestArrowArray.test_is_dtype_from_namec                 C  sD   d}t jt|d�� t|ƒ d¡ W d   ƒ n1 s60    Y  d S )Nz*'another_type' must end with '\[pyarrow\]'r¤   Zanother_type)r&   r$   rÈ   rf   rô   )rz   r4   rö   r-   r-   r.   Ú.test_construct_from_string_another_type_raises�  s    z=TestArrowArray.test_construct_from_string_another_type_raisesc                   sv   |j }tj |¡sLtj |¡sLtj |¡r4|jd usLtj |¡sLtj |¡rf| 	t
jj|› d�d�¡ tƒ  |¡ d S )NzB does not have associated numpy dtype findable by find_common_typer•   )r2   r)   rT   rZ   r]   r[   r–   r_   rY   r+   r&   r'   r(   r—   Útest_get_common_dtyperø   r™   r-   r.   rú   ’  s&    
ÿ
þ
ýý
ü
ûþÿz$TestArrowArray.test_get_common_dtypec                   s0   |j }tj |¡r t|ƒs,J ‚ntƒ  |¡ d S r€   )r2   r)   rT   r^   r   r—   Útest_is_not_string_type)rz   r4   rc   r™   r-   r.   rû   ¥  s    z&TestArrowArray.test_is_not_string_typez6GH 45419: pyarrow.ChunkedArray does not support views.)r%   Úrunc                   s   t ƒ  |¡ d S r€   )r—   Ú	test_view©rz   rd   r™   r-   r.   rý   ¬  s    zTestArrowArray.test_viewc                 C  s`   ||  ¡   }|d }| |¡}||us,J ‚t ||¡ |jdd�}||usPJ ‚t ||¡ d S )Nr   Zbackfill)Úmethod)ÚisnaÚfillnarŽ   rŸ   )rz   rd   Zvalidr’   r-   r-   r.   Útest_fillna_no_op_returns_copy²  s    
z-TestArrowArray.test_fillna_no_op_returns_copyz5GH 45419: pyarrow.ChunkedArray does not support viewsc                   s   t ƒ  |¡ d S r€   )r—   Útest_transposerþ   r™   r-   r.   r  ¾  s    zTestArrowArray.test_transposec                   s   t ƒ  |¡ d S r€   )r—   Útest_setitem_preserves_viewsrþ   r™   r-   r.   r  Ä  s    z+TestArrowArray.test_setitem_preserves_viewsÚdtype_backendr    Úenginerj   Úpythonc           
      C  sþ   |j j}tj |¡r4| tjjt	d|› d�d�¡ nNtj 
|¡rb|jdv rb| tjjtdd�¡ n tj |¡r‚| tjjdd�¡ t dtj|t|j ƒd	�i¡}|jd
tjd�}tj |¡rÆt|ƒ}nt|ƒ}tj|dt|j ƒi||d�}|}	t ||	¡ d S )NzParameterized types z not supported.r#   )ÚusÚnsz1https://github.com/pandas-dev/pandas/issues/49767z)CSV parsers don't correctly handle binaryr•   Z
with_dtyperS   F)ÚindexZna_rep)r4   r  r  )r4   r2   r)   rT   rY   r+   r&   r'   r(   r`   r[   ÚunitÚ
ValueErrorr_   ra   Ú	DataFramery   r»   Zto_csvr�   r‘   r   r	   Zread_csvrŽ   Úassert_frame_equal)
rz   r  rd   r  r,   rc   ÚdfZ
csv_outputr’   r“   r-   r-   r.   Útest_EA_typesÊ  s@    
þÿþÿÿ
üzTestArrowArray.test_EA_typesc                   s¨   |j j}tj |¡sJtj |¡sJtj |¡sJ| tj	j
tjd|› �d�¡ tr˜tj |¡r˜tjtddd�� tƒ  |¡ W d   ƒ q¤1 sŒ0    Y  ntƒ  |¡ d S )Nz$pyarrow.compute.invert does support r#   zBitwise inversionF)r¥   Zcheck_stacklevel)r4   r2   r)   rT   rU   ru   r^   r+   r&   r'   r(   r©   r   rŽ   Úassert_produces_warningÚDeprecationWarningr—   Útest_invert©rz   rd   r,   rc   r™   r-   r.   r  ï  s&    
ÿ
þ
ýþÿÿ,zTestArrowArray.test_invertÚperiodsr:   r;   c              	     sT   |j j}tj |¡rB|dkrB| tjjtj	d|› d|› d�d�¡ t
ƒ  ||¡ d S )Nr:   z
diff with z and periods=z will overflowr#   )r4   r2   r)   rT   rX   r+   r&   r'   r(   r*   r—   Ú	test_diff)rz   rd   r  r,   rc   r™   r-   r.   r    s    ýÿzTestArrowArray.test_diffc                 C  s.   |d d… }|  ¡ }|jtt ¡ ƒks*J ‚d S )NrF   )Zvalue_countsr4   r   r)   rð   r¢   r-   r-   r.   Ú'test_value_counts_returns_pyarrow_int64  s    z6TestArrowArray.test_value_counts_returns_pyarrow_int64zbool[pyarrow]c                 C  s8   |  d¡}|dkrdd„ }|S |dkr.dd„ S t |¡S )NÚ_Úrtruedivc                 S  s   t  || ¡S r€   )r�   Údivide©r‚   Úyr-   r-   r.   r    s    z1TestArrowArray.get_op_from_name.<locals>.rtruedivZ	rfloordivc                 S  s   t  || ¡S r€   )r�   Zfloor_divider  r-   r-   r.   rƒ   $  r„   z1TestArrowArray.get_op_from_name.<locals>.<lambda>)ÚstriprŽ   Úget_op_from_name)rz   r¸   Zshort_opnamer  r-   r-   r.   r    s    
zTestArrowArray.get_op_from_name)r¸   c                 C  s”  |}|dv r|  d¡S d}t|tjƒrRd}|jd d …df }|jd d …df j}n
|}|j}|j}	|sÈt|tjƒrÈtj	 
|	¡sÆtj	 |	¡r’|dvsÆtj	 |	¡sÆtj	 |	¡sÆtj	 |	¡sÆtj	 |	¡sÆ|S nR|dkrÞtj	 |	¡�stj	 |	¡�stj	 |	¡�stj	 |	¡�stj	 |	¡�s|S t |j¡}
tj	 |
j¡�r˜tj	 |	¡�r^tj	 |	¡�rXd}nd	}n&|	j}t|ƒttfv �r„|d
v �r„d}|
 d|› d�¡}
nÄtj	 |
j¡�rRtj	 |	¡�rRt||ƒ|ƒ}t |¡}t|tƒ�sÞJ ‚|dk�rt|tƒ�rtt ¡ ƒ}nF|dk�r4t|tjƒ�r4|j|k�r4tt ¡ ƒ}ntj	 |j¡�sHJ ‚|  |¡S |
 |	¡}
t|jƒ|
ƒ}|�r†tj||j|jd�}n
t |¡}|S )N)ÚeqÚneÚltÚleÚgtÚgeúboolean[pyarrow]FTr   )Ú__truediv__Ú__rtruediv__Ú__floordiv__ÚmsÚs)r*  r)  r  z	duration[ú]Ú__pow__)r
  Úcolumns) r¶   r    ra   r  Úilocr4   r2   ry   r)   rT   rV   ru   r\   r[   rZ   rY   rb   Z_valuesrf   Z	is_date64r  r   r   rª   r´   rŽ   Ú	get_dtyper   r   r‡   r
  r-  )rz   r¸   ÚobjÚotherZpointwise_resultr“   Z	was_frameZexpected_dataZoriginal_dtypeZorig_pa_typeZpa_expectedr  r×   Z	alt_dtypeZpd_expectedr-   r-   r.   Ú_cast_pointwise_result(  s–    

ÿ
ýü
ú
ù
ø	
÷ÿ
ÿ
þ
ý
ü
û	ÿ
ÿ
þý


ÿ
z%TestArrowArray._cast_pointwise_resultc                 C  s6   |dv s|dv r"t  r"tj |¡p4|dv o4tj |¡S )N©Ú__add__Ú__radd__©r&  r'  r(  Ú__rfloordiv__©Ú__sub__Ú__rsub__)r   r)   rT   r\   rµ   )rz   Úopnamerc   r-   r-   r.   Ú_is_temporal_supportedŽ  s    ÿû
ø	
õz%TestArrowArray._is_temporal_supportedz4type[Exception] | tuple[type[Exception], ...] | None)r¸   r½   c                 C  s    |dv rt tfS t |¡}|j}|  ||¡}|dv r>t tf}n^|rHd }nT|dv rntj |¡shtj 	|¡rnd }n.tj 
|¡s˜tj |¡s˜tj |¡s˜t}nd }|S )N)Ú
__divmod__Ú__rdivmod__>   Ú__mod__Ú__rmod__r3  )r`   rÈ   rŽ   r/  r2   r<  r)   rT   r^   r_   rV   ru   rY   )rz   r¸   r0  r1  r4   rc   Úarrow_temporal_supportedÚexcr-   r-   r.   Ú_get_expected_exception�  s0    


ÿ
ÿ
ÿ
þ
ýz&TestArrowArray._get_expected_exceptionc                 C  sò   d }|   ||¡}|dkrRtj |¡s<tj |¡s<tj |¡rRtjjd|› �d�}nœ|r”tj 	|¡sv|dv r”tj 
|¡r”tjjt|› d|› d�d�}nZ|dkrÈtj |¡s´tj |¡rÈtjjtjd	d�}n&|d
krîtj |¡rîtjjtjd	d�}|S )NÚ__rpow__z<GH#29997: 1**pandas.NA == 1 while 1**pyarrow.NA == NULL for r•   r6  z  not supported betweenpd.NA and z Python scalarr#   r7  zdivide by 0r'  )r<  r)   rT   rV   ru   rY   r&   r'   r(   r]   r\   rÈ   r*   )rz   r;  rc   r'   rA  r-   r-   r.   Ú_get_arith_xfail_marker¿  sX    
ÿ
þ
ýÿþ
ÿÿý
ûÿý
ÿ
ÿþþz&TestArrowArray._get_arith_xfail_markerc                   sV   |j j}|dkr&tj |¡r&t d¡ |  ||¡}|d urD| |¡ t	ƒ  
||¡ d S ©Nr@  z%Skip testing Python string formatting)r4   r2   r)   rT   r_   r&   rÇ   rE  r+   r—   Útest_arith_series_with_scalar©rz   rd   Úall_arithmetic_operatorsr,   rc   r'   r™   r-   r.   rG  í  s    

z,TestArrowArray.test_arith_series_with_scalarc                   sb   |j j}|dkr2tj |¡s(tj |¡r2t d¡ |  ||¡}|d urP| 	|¡ t
ƒ  ||¡ d S rF  )r4   r2   r)   rT   r^   r_   r&   rÇ   rE  r+   r—   Útest_arith_frame_with_scalarrH  r™   r-   r.   rJ  ù  s    
ÿ
ÿ

z+TestArrowArray.test_arith_frame_with_scalarc           	      C  sž   |j j}|dv r:tj |¡r:| tjjtj	d|› �d�¡ |  
||¡}|d urX| |¡ |}t |¡}t tj|jd gt|ƒ |j d�¡}|  |||¡ d S )Nr8  zJImplemented pyarrow.compute.subtract_checked which raises on overflow for r#   r   rS   )r4   r2   r)   rT   rX   r+   r&   r'   r(   r*   rE  ra   ry   rb   r.  ÚlenZcheck_opname)	rz   rd   rI  r,   rc   r'   r¸   r|   r1  r-   r-   r.   Útest_arith_series_with_array  s&    
ýÿýÿ


&z+TestArrowArray.test_arith_series_with_arrayc                   s@   |j j}| d¡r0| tjjtjd|› �d�¡ t	ƒ  
|¡ d S )NÚint8zraises on overflow for r#   )r4   r2   r¨   r+   r&   r'   r(   r)   r*   r—   Ú$test_add_series_with_extension_arrayr  r™   r-   r.   rN  $  s    
þÿz3TestArrowArray.test_add_series_with_extension_arrayc                 C  s>   t jtdd�� ||tƒ ƒ W d   ƒ n1 s00    Y  d S )Nz'.* not implemented for <class 'object'>r¤   )r&   r$   r`   r�   )rz   rd   r{   r-   r-   r.   Útest_invalid_other_comp0  s    ÿz&TestArrowArray.test_invalid_other_compÚmasked_dtype)ÚbooleanZInt64r³   c           	      C  s„   g d¢}t j||d�}t j|| ¡ › d�d�}|||ƒ}|tjtjtjfv rVg d¢}ng d¢}t j|tt 	¡ ƒd�}t
 ||¡ d S )N)r:   r   NrS   rñ   )FFN)TTN)ra   ry   ÚlowerÚoperatorr!  r#  r   r   r)   Úbool_rŽ   r·   )	rz   rP  r{   rd   Ú
ser_maskedÚser_par’   Úexpr“   r-   r-   r.   Útest_comp_masked_numpy7  s    

z%TestArrowArray.test_comp_masked_numpy)3Ú__name__Ú
__module__Ú__qualname__r}   r&   r'   Úparametrizer”   r˜   rœ   r£   r§   r­   rº   rÂ   rÄ   rÕ   rØ   rÜ   rß   rì   rî   ró   rõ   r÷   rù   rú   rû   r(   rý   r  r  r  r   r  r  r  r  Z_combine_le_expected_dtyper  r2  r<  rC  rE  rG  rJ  rL  rN  rO  rX  Ú__classcell__r-   r-   r™   r.   rx     sz   
*0&
ÿÿÿ#f".rx   c                   @  sf  e Zd ZdZdd„ Zej ddg d¢fej	g d¢fdg d¢fe
 d¡g d¢fd	g d
¢fe
 d	¡g d
¢fg¡dd„ ƒZdd„ Zej ddg d¢fej	g d¢fdg d
¢fd	g d¢fe
 d¡g d
¢fe
 d	¡g d¢fg¡dd„ ƒZdd„ Zej ddg d¢fej	g d¢fdg d¢fe
 d¡g d¢fe
 d	¡g d
¢fg¡dd„ ƒZej dddgddgdd	gg¡dd„ ƒZdS )ÚTestLogicalOpsz1Various Series and DataFrame logical ops methods.c                 C  sÊ   t jdgd dgd  d gd  dd�}t jg d¢d dd�}||B }t jg d¢dd�}t ||¡ ||B }t ||¡ t |t jdgd dgd  d gd  dd�¡ t |t jg d¢d dd�¡ d S )NTrä   Fr%  rS   ©TFN)	TTTTFNTNN©ra   ry   rŽ   r·   ©rz   rH   rI   r’   r“   r-   r-   r.   Útest_kleene_orI  s"    (þ&þÿzTestLogicalOps.test_kleene_orzother, expectedN)TNNT)TTTFr_  c                 C  sf   t jg d¢dd�}||B }t j|dd�}t ||¡ ||B }t ||¡ t |t jg d¢dd�¡ d S ©Nr_  r%  rS   r`  ©rz   r1  r“   rH   r’   r-   r-   r.   Útest_kleene_or_scalar_  s    ÿz$TestLogicalOps.test_kleene_or_scalarc                 C  sÊ   t jdgd dgd  d gd  dd�}t jg d¢d dd�}||@ }t jg d¢dd�}t ||¡ ||@ }t ||¡ t |t jdgd dgd  d gd  dd�¡ t |t jg d¢d dd�¡ d S )NTrä   Fr%  rS   r_  )	TFNFFFNFNr`  ra  r-   r-   r.   Útest_kleene_andx  s"    (þ&þÿzTestLogicalOps.test_kleene_and)NFN©FFFc                 C  sf   t jg d¢dd�}||@ }t j|dd�}t ||¡ ||@ }t ||¡ t |t jg d¢dd�¡ d S rc  r`  rd  r-   r-   r.   Útest_kleene_and_scalarŽ  s    ÿz%TestLogicalOps.test_kleene_and_scalarc                 C  sÊ   t jdgd dgd  d gd  dd�}t jg d¢d dd�}||A }t jg d¢dd�}t ||¡ ||A }t ||¡ t |t jdgd dgd  d gd  dd�¡ t |t jg d¢d dd�¡ d S )NTrä   Fr%  rS   r_  )	FTNTFNNNNr`  ra  r-   r-   r.   Útest_kleene_xor§  s"    (þ&þÿzTestLogicalOps.test_kleene_xor©NNN)FTNc                 C  sf   t jg d¢dd�}||A }t j|dd�}t ||¡ ||A }t ||¡ t |t jg d¢dd�¡ d S rc  r`  rd  r-   r-   r.   Útest_kleene_xor_scalar½  s    ÿz%TestLogicalOps.test_kleene_xor_scalarzop, expÚ__and__Ú__or__Ú__xor__c                 C  s^   g d¢}t j|dd�}t j|dd�}t||ƒ|ƒ}t j|dd gtt ¡ ƒd�}t ||¡ d S )Nr_  rQ  rS   r%  F)ra   ry   r´   r   r)   rT  rŽ   r·   )rz   ÚoprW  rd   rU  rV  r’   r“   r-   r-   r.   Útest_logical_masked_numpyÕ  s    
z(TestLogicalOps.test_logical_masked_numpy)rY  rZ  r[  Ú__doc__rb  r&   r'   r\  ra   ÚNAr�   rT  re  rf  rh  ri  rk  rp  r-   r-   r-   r.   r^  F  sX   


úþ



úþ


ûþ

ýþr^  r¹   c                 C  sÜ   t | ƒ}tjg d¢|d�}tjg d¢|d�}||B }tjg d¢|d�}t ||¡ ||@ }tjg d¢|d�}t ||¡ ||A }tjg d¢|d�}t ||¡ | }| d¡ ¡  }tj||d� | ¡ ¡}t ||¡ d S )N)r:   Nrä   r5   rS   )Nrä   rG   r5   )NNrp   r5   )NNr:   r5   )NNé   r   r   )	r   ra   ry   rŽ   r·   r  rŒ   ÚmaskZisnull)r¹   r4   ÚleftÚrightr’   r“   r-   r-   r.   Útest_bitwiseç  s     rw  c                   C  st   t jtdd�� t d¡ W d   ƒ n1 s.0    Y  t jtdd�� t d¡ W d   ƒ n1 sf0    Y  d S )NzPassing pyarrow typer¤   z#not_a_real_dype[s, tz=UTC][pyarrow]zdecimal(7, 2)[pyarrow])r&   r$   r`   r   rô   r-   r-   r-   r.   ÚFtest_arrowdtype_construct_from_string_type_with_unsupported_parameters   s    (rx  c                  C  s*   t  d¡} t t dd¡ƒ}| |ks&J ‚d S )Nztimestamp[s, tz=UTC][pyarrow]r*  ÚUTC)r   rô   r)   Ú	timestamp)r4   r“   r-   r-   r.   Ú5test_arrowdtype_construct_from_string_supports_dt64tz  s    
r{  c                  C  sL   d} d}t jt|d��" tjtdƒ| d� W d   ƒ n1 s>0    Y  d S )Nzint64[pyarrow]foobar[pyarrow]zYPassing pyarrow type specific parameters \(\[pyarrow\]\) in the string is not supported\.r¤   rä   rS   )r&   r$   r`   ra   ry   Úrange)Úinvalidrö   r-   r-   r.   Ú;test_arrowdtype_construct_from_string_type_only_one_pyarrow  s
    ÿr~  c                  C  sr   t jddgtt ¡ ƒd�} t jddgdd�}| | }t jddgtt ¡ ƒd�}t ||¡ ||  }t ||¡ d S )	NÚabcÚdefgrS   r>   r;   r²   ÚabcabcÚ ©ra   ry   r   r)   r«   rŽ   r·   )ÚbinaryÚrepeatr’   r“   Úreflected_resultr-   r-   r.   Ú test_arrow_string_multiplication  s    r‡  c                  C  s`   t jddgtt ¡ ƒd�} | d }t jddgtt ¡ ƒd�}t ||¡ d|  }t ||¡ d S )Nr  r€  rS   r>   r�  Zdefgdefgrƒ  )r„  r’   r“   r†  r-   r-   r.   Ú.test_arrow_string_multiplication_scalar_repeat%  s    rˆ  Úinterpolation)ZlinearrR  ÚhigherZnearestZmidpointÚquantiler9   c                 C  sN  | j j}|  g d¢¡} t | ¡}tj |¡sDtj |¡sDtj 	|¡rŠd}t
jtj|d�� |j||d� W d   ƒ n1 s|0    Y  d S tj |¡sàtj |¡sàtj |¡r°n0tj | jj¡rÂn| t
jjtjd|› �d�¡ |  g d¢¡} t | ¡}|j||d�}tj |¡�rÆ|dv�rÆ|j�r>d|j› d	|j› d
�}nd|j› d
�}| |¡}	|	j||d�}
|dk�r–|jdk�r†|
jdd�}
||
k�sÂJ ‚n,|jdk�r®|
j d¡}
t ||
 | j ¡¡ d S |dk�rä|| d k�sJJ ‚nftj|  ddg¡ddgd�}
tj |¡�s*tj |¡�s*tj |¡�r>|
 d¡}
| d¡}t ||
¡ d S )N©r   r   r   z=Function 'quantile' has no kernel matching input types \(.*\)r¤   )Úqr‰  z&quantile not supported by pyarrow for r#   )rR  rŠ  zM8[z, r+  r9   r  F)Úwarnr   ©r
  rå   ) r4   r2   Útakera   ry   r)   rT   r^   r_   rU   r&   r$   r©   r‹  ru   rV   rY   rµ   rž   rf   r+   r'   r(   r[   r–   r  r¶   Úto_pydatetimeÚdtÚfloorrŽ   r·   )rd   r‰  r‹  r,   rc   r|   rö   r’   Zpd_dtypeZser_npr“   r-   r-   r.   Útest_quantile.  sr    

ÿ
þ
ý,
ÿ
þ
ýþÿ




ÿ
þ
ý

r”  ztake_idx, exp_idx)r   r   r>   r>   r5   r5   r5   )r   r   r   r>   r5   r5   Z
multi_modeZsingle_mode)r1   c                 C  s@   |   |¡}t |¡}|jdd�}t |   |¡¡}t ||¡ d S )NT©Zdropna)r�  ra   ry   ÚmoderŽ   r·   )ro   Ztake_idxZexp_idxrd   r|   r’   r“   r-   r-   r.   Útest_mode_dropna_true{  s
    

r—  c                 C  sx   t jd d | d g| jd�}|jdd�}t jd g| jd�}t ||¡ t j| d d g| jd�}|jdd�}t ||¡ d S )Nr   rS   Fr•  )ra   ry   r4   r–  rŽ   r·   )rd   Z	more_nansr’   r“   r-   r-   r.   Útest_mode_dropna_false_mode_naˆ  s    r˜  zarrow_dtype, expected_typeé   Úf1Úf2c                 C  s   t | ƒj|ksJ ‚d S r€   )r   rf   )Úarrow_dtypeÚexpected_typer-   r-   r.   Útest_arrow_dtype_type”  s    rž  c                  C  sh   t t g d¢¡ƒ} t| ƒsJ ‚tjj | ¡s0J ‚t t	t
| ƒƒ¡}||  }|t | ¡ }t ||¡ d S )N©TFT)r!   r)   rb   r   ra   ÚcoreÚcommonZis_bool_indexerry   r|  rK  r�   ZasarrayrŽ   r·   )rd   r*  r’   r“   r-   r-   r.   Útest_is_bool_dtype¨  s    r¢  c                 C  sJ   | j j}tj |¡s,tj |¡s,tj |¡r:t| ƒsFJ ‚nt| ƒrFJ ‚d S r€   )r4   r2   r)   rT   rV   ru   rY   r   ©rd   r¹   r-   r-   r.   Útest_is_numeric_dtype³  s    
ÿ
þ
ýr¤  c                 C  s2   | j j}tj |¡r"t| ƒs.J ‚nt| ƒr.J ‚d S r€   )r4   r2   r)   rT   ru   r   r£  r-   r-   r.   Útest_is_integer_dtypeÀ  s    r¥  c                 C  s2   | j j}tj |¡r"t| ƒs.J ‚nt| ƒr.J ‚d S r€   )r4   r2   r)   rT   rW   r   r£  r-   r-   r.   Útest_is_signed_integer_dtypeÉ  s    r¦  c                 C  s2   | j j}tj |¡r"t| ƒs.J ‚nt| ƒr.J ‚d S r€   )r4   r2   r)   rT   rX   r   r£  r-   r-   r.   Útest_is_unsigned_integer_dtypeÑ  s    r§  c                 C  s2   | j j}tj |¡r"t| ƒs.J ‚nt| ƒr.J ‚d S r€   )r4   r2   r)   rT   rV   r   r£  r-   r-   r.   Útest_is_float_dtypeÙ  s    r¨  c                 C  sl   t  | ¡}| d¡}t |¡}t |¡}t|ƒt|ƒks<J ‚t |¡}t ||¡ t |¡}t ||¡ d S )Nr>   )	ra   ry   ÚheadÚpickleÚdumpsrK  ÚloadsrŽ   r·   )rd   r“   Zexpected_slicedZfull_pickledZsliced_pickledr’   Zresult_slicedr-   r-   r.   Útest_pickle_roundtripá  s    





r­  c                 C  sH   | j  ¡ j}| | j¡}t|jtƒr(J ‚t|jtƒs8J ‚t || ¡ d S r€   )	rž   Ú	to_pandasrb   r¶   r4   r    r   rŽ   rŸ   )rd   Zpd_arrayr’   r-   r-   r.   Útest_astype_from_non_pyarrowñ  s
    r¯  c                  C  s6   t  dg¡} |  d¡}t jdgdd�}t ||¡ d S )Nú1.0rå   r7   rS   ©ra   ry   r¶   rŽ   r·   ©r|   r’   r“   r-   r-   r.   Ú&test_astype_float_from_non_pyarrow_strú  s    
r³  c                  C  s2   t jddgidd�} | jddd�}t || ¡ d S )NÚcoli@fr±   rS   úfloat[pyarrow]r   )Úerrors)ra   r  r¶   rŽ   r  )r“   r’   r-   r-   r.   Útest_astype_errors_ignore  s    r·  c                 C  s–   |   ¡ }| jj}tj |¡s(tj |¡r4t d¡ n(tj 	|¡rPt
 t| ƒ¡}nt
 | j¡}| jr†t| jƒs†| t¡}tj|t | ¡< t ||¡ d S )Nz Tested in test_to_numpy_temporal)rŒ   rž   rf   r)   rT   r\   r[   r&   rÇ   rZ   r�   rb   ÚlistÚ_hasnar   r4   r¶   r�   ra   rr  r   rŽ   r�   )rd   r’   r¹   r“   r-   r-   r.   Útest_to_numpy_with_defaults	  s    
rº  c                  C  sP   dd g} t j| dd�}| ¡ }t dtjg¡}t|d tƒs@J ‚t ||¡ d S )Nr:   r²   rS   r   )	ra   rb   rŒ   r�   r‘   r    ÚfloatrŽ   r�   )rd   rë   r’   r“   r-   r-   r.   Útest_to_numpy_int_with_na  s    r¼  zna_val, exp)r:   r:   c                 C  sH   t jt jt jgdd�}|jd| d�}tj|gd dd�}t ||¡ d S )Núnull[pyarrow]rS   r‡   rˆ   r>   ©ra   rb   rr  rŒ   r�   rŽ   r�   )Zna_valrW  rë   r’   r“   r-   r-   r.   Útest_to_numpy_null_array&  s    r¿  c                  C  sH   t jt jt jgdd�} | jd d�}tjt jgd dd�}t ||¡ d S )Nr½  rS   r>   r�   r¾  ©rë   r’   r“   r-   r-   r.   Ú!test_to_numpy_null_array_no_dtype/  s    rÁ  c                  C  s„   t jdt jgdd�} | jdd�}tjddgtjd�}t ||¡ t jdt jgdd�} | jdd�}tjddgtjd�}t ||¡ d S )	NTr%  rS   F)r‰   r7   r†   r8   )	ra   rb   rr  rŒ   r�   rT  rŽ   r�   Zfloat32rÀ  r-   r-   r.   Útest_to_numpy_without_dtype7  s    rÂ  c                 C  s®   |   ¡ }|  ¡ }| d |d d …< tj| d gt| ƒ | jd�}t ||¡ |  ¡ }| d d d… |d d …< | d d d… }t ||¡ |  ¡ }|  ¡ |d d …< | }t ||¡ d S )Nr   rS   r<   )Úcopyr!   rg   rK  r4   rŽ   rŸ   Útolist)rd   Úorigr’   r“   r-   r-   r.   Útest_setitem_null_sliceD  s     þrÆ  c                 C  s¬   | j j}tj |¡s tj |¡r.d}t}d}n@tj |¡sRtj |¡sRtj 	|¡rbd}tj
}d}nd}t}d}tj||d�� || d d …< W d   ƒ n1 sž0    Y  d S )Né{   zInvalid value '123' for dtypeÚfoozCould not convertzInvalid value 'foo' for dtyper¤   )rž   rf   r)   rT   r^   r_   rÈ   ru   rV   rU   r*   r&   r$   )rd   r¹   Ú
fill_valueÚerrrö   r-   r-   r.   Útest_setitem_invalid_dtype[  s&    
ÿ
þ
ýrË  c                  C  sv   t jt d¡t d¡gt  ¡ d�} | jt  ¡ tt  ¡ ƒijd�}tj	t d¡t d¡gtt  ¡ ƒd�}t
 ||¡ d S )Nz
2019-12-31©rf   ©Ztypes_mapperrS   )r)   rb   ra   Ú	TimestampÚdate32r®  r   Zdate64Úgetry   rŽ   r·   )Z
date_arrayr’   r“   r-   r-   r.   Ú&test_from_arrow_respecting_given_dtyper  s    ÿÿ
þrÑ  c                  C  sd   t jddgt  ¡ d�} t t j¡�. | jt  ¡ tt  ¡ ƒij	d� W d   ƒ n1 sV0    Y  d S )Nrò   ç      @rÌ  rÍ  )
r)   rb   r‡   rŽ   Zexternal_error_raisedr*   r®  r   rð   rÐ  )rb   r-   r-   r.   Ú-test_from_arrow_respecting_given_dtype_unsafe€  s    rÓ  c                  C  s�   d} t jdddt jg| d�}| d¡}t jdddt jg| d�}t ||¡ t jd	t jd
g| d�}| d¡}t jdt jdg| d�}t ||¡ d S )Nrå   r8   g®Gáz®ó?g{®Gáz@rS   r:   g333333ó?gÍÌÌÌÌÌ@gš™™™™Ù^@g¤p=
×cL@r<   g      ^@g      N@)ra   ry   rr  ÚroundrŽ   r·   ©r4   r|   r’   r“   r-   r-   r.   Ú
test_round†  s    

rÖ  c                 C  sp   | \}}}|   g d¢¡}tj|d< |r0t |¡}d}tjt|d�� | |¡ W d   ƒ n1 sb0    Y  d S )N)r>   r   r:   r<   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r¤   )r�  ra   rr  ry   r&   r$   r  Zsearchsorted)rr   Z	as_seriesrI   rj   rH   rë   rö   r-   r-   r.   Ú test_searchsorted_with_na_raises”  s    


ÿr×  c               
   C  s^   t  t jddgtt t ¡ t ¡ ¡ƒd�ddgdœ¡} |  ¡ }| j	ddgd	�}t
 ||¡ d S )
Nr‚   r  rS   r:   r>   ©rH   rI   rH   rI   )Zby)ra   r  ry   r   r)   Ú
dictionaryÚint32r«   rÃ  Zsort_valuesrŽ   r  )r  r“   r’   r-   r-   r.   Útest_sort_values_dictionary¥  s    ÿüÿrÛ  Úpatr  z	a[a-z]{2}c                 C  sP   t jdd gtt ¡ ƒd�}|j | ¡}t jdd gtt ¡ ƒd�}t 	||¡ d S )Nr  rS   r:   )
ra   ry   r   r)   r«   r»   rÖ   rÚ  rŽ   r·   )rÜ  r|   r’   r“   r-   r-   r.   Útest_str_count³  s    rÝ  c                  C  s\   t jdd gtt ¡ ƒd�} tjtdd��  | jj	ddd� W d   ƒ n1 sN0    Y  d S )Nr  rS   z	count notr¤   r:   ©Úflags)
ra   ry   r   r)   r«   r&   r$   r`   r»   rÖ   ©r|   r-   r-   r.   Ú test_str_count_flags_unsupported»  s    rá  zside, str_funcru  Úrjustrv  ÚljustZbothÚcenterc                 C  sb   t jdd gtt ¡ ƒd�}|jjd| dd�}t jtd|ƒddƒd gtt ¡ ƒd�}t 	||¡ d S )NrH   rS   rä   r‚   )ÚwidthÚsideZfillchar)
ra   ry   r   r)   r«   r»   Úpadr´   rŽ   r·   )ræ  Zstr_funcr|   r’   r“   r-   r-   r.   Útest_str_padÁ  s    ÿrè  c                  C  s\   t jdd gtt ¡ ƒd�} tjtdd��  | j 	ddd¡ W d   ƒ n1 sN0    Y  d S )NrH   rS   zInvalid side: foor¤   rä   rÈ  r‚   )
ra   ry   r   r)   r«   r&   r$   r  r»   rç  rà  r-   r-   r.   Útest_str_pad_invalid_sideÍ  s    ré  zpat, case, na, regex, expÚabFTZAbz	a[a-z]{1}z	A[a-z]{1}c                 C  sT   t jdd gtt ¡ ƒd�}|jj| |||d�}t j|tt ¡ ƒd�}t 	||¡ d S )Nr  rS   )ÚcaseÚnaÚregex)
ra   ry   r   r)   r«   r»   ÚcontainsrT  rŽ   r·   )rÜ  rë  rì  rí  rW  r|   r’   r“   r-   r-   r.   Útest_str_containsÓ  s    rï  c                  C  s\   t jdd gtt ¡ ƒd�} tjtdd��  | jj	ddd� W d   ƒ n1 sN0    Y  d S )Nr  rS   zcontains notr¤   rH   r:   rÞ  )
ra   ry   r   r)   r«   r&   r$   r`   r»   rî  rà  r-   r-   r.   Ú#test_str_contains_flags_unsupportedä  s    rð  zside, pat, na, expÚ
startswith)TNFrI   rg  Úendswith)FTFÚbc)rH   ÚeÚg)TNT)rH   rj   rõ  r-   )FNFc                 C  sT   t jg d¢tt ¡ ƒd�}t|j| ƒ||d�}t j|tt ¡ ƒd�}t 	||¡ d S )N)r  NÚefgrS   )rì  ©
ra   ry   r   r)   r«   r´   r»   rT  rŽ   r·   )ræ  rÜ  rì  rW  r|   r’   r“   r-   r-   r.   Útest_str_start_ends_withê  s    rø  ræ  )rñ  rò  c                 C  sT   t jd d gtt ¡ ƒd�}t|j| ƒdƒ}t jd d gtt ¡ ƒd�}t 	||¡ d S )NrS   r-   r÷  )ræ  r|   r’   r“   r-   r-   r.   Ú/test_str_starts_ends_with_all_nulls_empty_tupleþ  s    rù  zarg_name, argÚreplrë  rß  r:   c                 C  sr   t jdd gtt ¡ ƒd�}ddddœ}||| < tjtdd��" |jj	f i |¤Ž W d   ƒ n1 sd0    Y  d S )	Nr  rS   rI   r‚   T)rÜ  rú  rí  zreplace is not supportedr¤   )
ra   ry   r   r)   r«   r&   r$   r`   r»   Úreplace)Zarg_nameÚargr|   Úkwargsr-   r-   r.   Útest_str_replace_unsupported  s
    rþ  zpat, repl, n, regex, exprH   r‚   r<   ZxbxcZxbacz[a-b]Zxxxcc                 C  sT   t jdd gtt ¡ ƒd�}|jj| |||d�}t j|tt ¡ ƒd�}t ||¡ d S )NZabacrS   )Únrí  )	ra   ry   r   r)   r«   r»   rû  rŽ   r·   )rÜ  rú  rÿ  rí  rW  r|   r’   r“   r-   r-   r.   Útest_str_replace  s    	r   c            	      C  sÒ   t jddgtt ¡ ƒd�} | j dddd¡}t jddgtt ¡ ƒd�}t ||¡ |  	t j
d	d
�¡}|j dddd¡}| 	|j¡}t ||¡ |  	t j
d	tjd�¡}|j dddd¡}| 	|j¡}t ||¡ d S )Nr  ZaaaaaarS   rH   r‚  éýÿÿÿTró  r    ©Ústorage)r  r‰   )ra   ry   r   r)   r«   r»   rû  rŽ   r·   r¶   ÚStringDtyper4   r�   r‘   )	r|   Úactualr“   Úser2Zactual2Z	expected2Zser3Zactual3Z	expected3r-   r-   r.   Útest_str_replace_negative_n#  s    r  c                  C  s\   t jdd gtt ¡ ƒd�} tjtdd��  | j 	ddg¡ W d   ƒ n1 sN0    Y  d S )Nr  rS   zrepeat is notr¤   r:   r>   )
ra   ry   r   r)   r«   r&   r$   r`   r»   r…  rà  r-   r-   r.   Útest_str_repeat_unsupported6  s    r  c                  C  sP   t jdd gtt ¡ ƒd�} | j d¡}t jdd gtt ¡ ƒd�}t ||¡ d S )Nr  rS   r>   r�  )	ra   ry   r   r)   r«   r»   r…  rŽ   r·   r²  r-   r-   r.   Útest_str_repeat<  s    r	  zpat, case, na, expc                 C  sR   t jdd gtt ¡ ƒd�}|jj| ||d�}t j|tt ¡ ƒd�}t 	||¡ d S )Nr  rS   ©rë  rì  )
ra   ry   r   r)   r«   r»   r¥   rT  rŽ   r·   ©rÜ  rë  rì  rW  r|   r’   r“   r-   r-   r.   Útest_str_matchC  s    r  ©TFFNZAbc)FFFNúabc$zabc\$©FTFNzAbc$zAbc\$z(abc)|(abx)z((abc)|(abx))c                 C  sR   t jg d¢tt ¡ ƒd�}|jj| ||d�}t j|tt ¡ ƒd�}t 	||¡ d S )N)r  r  z$abcNrS   r
  )
ra   ry   r   r)   r«   r»   Ú	fullmatchrT  rŽ   r·   r  r-   r-   r.   Útest_str_fullmatchU  s    r  zsub, start, end, exp, exp_typrä   c                 C  sN   t jdd gtt ¡ ƒd�}|jj| ||d�}t j|t|ƒd�}t ||¡ d S )Nr  rS   )ÚstartÚend©	ra   ry   r   r)   r«   r»   ÚfindrŽ   r·   )Úsubr  r  rW  Zexp_typr|   r’   r“   r-   r-   r.   Útest_str_findq  s    r  c                  C  sV   t jdd gtt ¡ ƒd�} | jjdddd�}t jdd gtt ¡ ƒd�}t 	||¡ d S )Nr  rS   rI   iüÿÿrä   ©r  r  r  r:   ©
ra   ry   r   r)   r«   r»   r  rð   rŽ   r·   r²  r-   r-   r.   Útest_str_find_negative_start|  s    r  c                  C  sL   t jdd gtt ¡ ƒd�} | jjddd�}t jdd gdd�}t ||¡ d S )Nr  rS   rê  r:   )r  r<   r²   r  r²  r-   r-   r.   Útest_str_find_no_end„  s    r  c                  C  sV   t jdd gtt ¡ ƒd�} | jjdddd�}t jdd gtt ¡ ƒd�}t 	||¡ d S )NÚabcdefgrS   Údéúÿÿÿr  r  rä   r  r²  r-   r-   r.   Ú)test_str_find_negative_start_negative_end‹  s    r  c                  C  sT   t jdd gtt ¡ ƒd�} | jjddd�}t jdd gtt ¡ ƒd�}t 	||¡ d S )Nr  rS   r  r™  )r  r  r<   r  r²  r-   r-   r.   Útest_str_find_large_start“  s    r   z,https://github.com/apache/arrow/issues/36311r•   r  )éñÿÿÿr  r   r:   é   Nr  )r!  r<   r   rä   r"  Nr  )r‚  ÚazZabcerH   Zcaac           	      C  sš   t jg d¢tt ¡ ƒd�}| t jdd�¡}|j || |¡}|j || |¡ |j	¡}t
 ||¡ | t jdd�¡}|j || |¡ |j	¡}t
 ||¡ d S )N)Zabcaadefr  Zabcdeddefgj8292rê  rH   r‚  rS   r  r  r    )ra   ry   r   r)   r«   r¶   r  r»   r  r4   rŽ   r·   )	r  r  r  r*  Zobject_seriesr’   r“   Zarrow_str_seriesZresult2r-   r-   r.   Útest_str_find_e2e›  s    
þr$  c                  C  sV   t jdd gtt ¡ ƒd�} | jjdddd�}t jdd gtt ¡ ƒd�}t 	||¡ d S )Nr  rS   r  r  r  r  r<   r  r²  r-   r-   r.   Ú2test_str_find_negative_start_negative_end_no_match°  s    r%  zi, exp)rI   rô  N)rj   rô  Nr>   )rj   NNr  )rH   NNrj  c                 C  sL   t jg d¢tt ¡ ƒd�}|j | ¡}t j|tt ¡ ƒd�}t ||¡ d S )N)r  ÚdeNrS   )	ra   ry   r   r)   r«   r»   rÐ  rŽ   r·   )rç   rW  r|   r’   r“   r-   r-   r.   Útest_str_get¸  s    r'  z=TODO: StringMethods._validate should support Arrow list typesrÃ   c                  C  sX   t  tt tdƒtdƒd g¡ƒ¡} | j d¡}t jg d¢tt 	¡ ƒd�}t
 ||¡ d S )Nr  Ú123ú=©za=b=cz1=2=3NrS   )ra   ry   r!   r)   rb   r¸  r»   Újoinr   r«   rŽ   r·   r²  r-   r-   r.   Útest_str_joinÉ  s    "r,  c                  C  sN   t  tt g d¢¡ƒ¡} | j d¡}t jg d¢tt ¡ ƒd�}t	 
||¡ d S )N)r  r(  Nr)  r*  rS   )ra   ry   r!   r)   rb   r»   r+  r   r«   rŽ   r·   r²  r-   r-   r.   Útest_str_join_string_typeÔ  s    r-  zstart, stop, step, expZdcbac                 C  sP   t jdd gtt ¡ ƒd�}|j | ||¡}t j|tt ¡ ƒd�}t ||¡ d S ©NÚabcdrS   )	ra   ry   r   r)   r«   r»   ÚslicerŽ   r·   )r  ÚstopÚsteprW  r|   r’   r“   r-   r-   r.   Útest_str_sliceÛ  s    
r3  zstart, stop, repl, expZaxcdZxcdÚcdc                 C  sP   t jdd gtt ¡ ƒd�}|j | ||¡}t j|tt ¡ ƒd�}t ||¡ d S r.  )	ra   ry   r   r)   r«   r»   Zslice_replacerŽ   r·   )r  r1  rú  rW  r|   r’   r“   r-   r-   r.   Útest_str_slice_replaceë  s    	r5  zvalue, method, exp)Za1cÚisalnumT)z!|,r6  F)ÚaaaÚisalphaT)z!!!r8  F)u   Ù Ú	isdecimalT)z~!r9  F)rJ   ÚisdigitT)ú~r:  F)r7  ÚislowerT)ZaaAr<  F)r(  Ú	isnumericT)Z11Ir=  F)ú ÚisspaceT)r‚  r?  F)zThe ThatÚistitleT)zthe Thatr@  F)ZAAAÚisupperT)ZAAcrA  Fc                 C  sR   t j| d gtt ¡ ƒd�}t|j|ƒƒ }t j|d gtt ¡ ƒd�}t 	||¡ d S r�   r÷  )Úvaluerÿ   rW  r|   r’   r“   r-   r-   r.   Útest_str_is_functionsú  s    rC  zmethod, expÚ
capitalizezAbc defÚtitlezAbc DefÚswapcasezAbC DefrR  zabc defÚupperzABC DEFÚcasefoldc                 C  sR   t jdd gtt ¡ ƒd�}t|j| ƒƒ }t j|d gtt ¡ ƒd�}t ||¡ d S )NzaBc dEFrS   ©	ra   ry   r   r)   r«   r´   r»   rŽ   r·   )rÿ   rW  r|   r’   r“   r-   r-   r.   Útest_str_transform_functions  s    rJ  c                  C  sN   t jdd gtt ¡ ƒd�} | j ¡ }t jdd gtt ¡ ƒd�}t 	||¡ d S )Nr/  rS   r5   )
ra   ry   r   r)   r«   r»   rK  rÚ  rŽ   r·   r²  r-   r-   r.   Útest_str_len*  s    
rK  zmethod, to_strip, val)r  Nz abc )r  r‚   Zxabcx)ÚlstripNz abc)rL  r‚   Zxabc)ÚrstripNzabc )rM  r‚   Zabcxc                 C  sV   t j|d gtt ¡ ƒd�}t|j| ƒ|d�}t jdd gtt ¡ ƒd�}t ||¡ d S )NrS   )Úto_stripr  rI  )rÿ   rN  Úvalr|   r’   r“   r-   r-   r.   Útest_str_strip1  s    rP  rO  Zabc123c                 C  sP   t j| d gtt ¡ ƒd�}|j d¡}t jdd gtt ¡ ƒd�}t ||¡ d S ©NrS   r(  r  )	ra   ry   r   r)   r«   r»   ÚremovesuffixrŽ   r·   ©rO  r|   r’   r“   r-   r-   r.   Útest_str_removesuffixC  s    rT  Z123abcc                 C  sP   t j| d gtt ¡ ƒd�}|j d¡}t jdd gtt ¡ ƒd�}t ||¡ d S rQ  )	ra   ry   r   r)   r«   r»   ÚremoveprefixrŽ   r·   rS  r-   r-   r.   Útest_str_removeprefixK  s    rV  r¶  r   Ústrictzencoding, expÚutf8s   abcÚutf32s   ÿþ  a   b   c   c                 C  sR   t jdd gtt ¡ ƒd�}|j || ¡}t j|d gtt ¡ ƒd�}t 	||¡ d S ©Nr  rS   )
ra   ry   r   r)   r«   r»   Úencoder„  rŽ   r·   )r¶  ÚencodingrW  r|   r’   r“   r-   r-   r.   Útest_str_encodeS  s    	r]  c                 C  s^   t jg d¢tt ¡ ƒd�}|jjd| d�}t jdgg d gtt t ¡ ¡ƒd�}t 	||¡ d S )N)r  rö  NrS   rI   rÞ  )
ra   ry   r   r)   r«   r»   ÚfindallÚlist_rŽ   r·   )rß  r|   r’   r“   r-   r-   r.   Útest_str_findallb  s    $r`  rÿ   r
  Úrindexz
start, endc                 C  sš   t jdd gtt ¡ ƒd�}t|j| ƒd||ƒ}t jdd gtt ¡ ƒd�}t 	||¡ t
jtdd��$ t|j| ƒd||ƒ W d   ƒ n1 sŒ0    Y  d S )NÚabcbarS   rj   r>   zsubstring not foundr¤   rÈ  )ra   ry   r   r)   r«   r´   r»   rð   rŽ   r·   r&   r$   r  )rÿ   r  r  r|   r’   r“   r-   r-   r.   Útest_str_r_indexj  s    	rc  ÚformÚNFCÚNFKCc                 C  s>   t jdd gtt ¡ ƒd�}|j | ¡}| ¡ }t 	||¡ d S rZ  )
ra   ry   r   r)   r«   r»   Ú	normalizerÃ  rŽ   r·   )rd  r|   r’   r“   r-   r-   r.   Útest_str_normalize|  s    rh  c                 C  sT   t jg d¢tt ¡ ƒd�}|j d| |¡}t jg d¢tt ¡ ƒd�}t 	||¡ d S )N)rb  rÈ  NrS   rj   )r>   r<   N)
ra   ry   r   r)   r«   r»   Úrfindrð   rŽ   r·   )r  r  r|   r’   r“   r-   r-   r.   Útest_str_rfind„  s    rj  c                  C  sT   t jdd gtt ¡ ƒd�} | j ddi¡}t jdd gtt ¡ ƒd�}t ||¡ d S )Nrb  rS   éa   rI   Zbbcbb)	ra   ry   r   r)   r«   r»   Ú	translaterŽ   r·   r²  r-   r-   r.   Útest_str_translate’  s    rm  c                  C  sP   t jdd gtt ¡ ƒd�} | j d¡}t jdd gtt ¡ ƒd�}t ||¡ d S )Nrb  rS   rä   zabc
ba)	ra   ry   r   r)   r«   r»   ÚwraprŽ   r·   r²  r-   r-   r.   Útest_str_wrap™  s    ro  c                  C  sb   t jg d¢tt ¡ ƒd�} | j ¡ }t jg d¢g d¢g d¢gtt ¡ ƒg d¢d�}t	 
||¡ d S )N)za|bNza|crS   )TTFrg  rŸ  )rH   rI   rj   )r4   r-  )ra   ry   r   r)   r«   r»   Zget_dummiesr  rT  rŽ   r  r²  r-   r-   r.   Útest_get_dummies   s    

ýrp  c                  C  s  t jdd gtt ¡ ƒd�} | j d¡}t jg d¢g d¢gtt ¡ ƒd�}t 	||¡ | jjddd�}t  t
t g d¢d g¡ƒ¡}t ||¡ | j d¡}t jg d¢g d¢gtt ¡ ƒd�}t 	||¡ | jjddd�}t  t
t g d¢d g¡ƒ¡}t ||¡ d S )	Nrb  rS   rI   )rH   rI   Zcbarj  F©Úexpand)r  rI   rH   )ra   ry   r   r)   r«   r»   Ú	partitionr  rŽ   r  r!   rb   r·   Ú
rpartitionr²  r-   r-   r.   Útest_str_partition«  s"    ÿÿru  ÚrsplitÚsplitc                 C  sT   t jdd gtt ¡ ƒd�}t|j| ƒƒ }t  tt g d¢d g¡ƒ¡}t	 
||¡ d S )Nza1 cbc
brS   )Úa1ZcbcrI   )ra   ry   r   r)   r«   r´   r»   r!   rb   rŽ   r·   ©rÿ   r|   r’   r“   r-   r-   r.   Útest_str_split_pat_noneÂ  s    rz  c                  C  sf  t jg d¢tt ¡ ƒd�} | j d¡}t  tt g d¢g d¢d g¡ƒ¡}t	 
||¡ | jjddd�}t  tt dd	gd
d	gd g¡ƒ¡}t	 
||¡ | jjddd�}t  tt ddgddgd g¡ƒ¡}t	 
||¡ | jjdddd�}t  tt g d¢¡ƒtt g d¢¡ƒdœ¡}t	 ||¡ | jjddd�}t  tt g d¢¡ƒtt g d¢¡ƒdœ¡}t	 ||¡ d S )N©Za1cbcbÚa2cbcbNrS   rj   ©rx  rI   rI   ©Úa2rI   rI   r:   ©rÿ  rx  Zbcbr  z[1-2]T)rí  rH   Úcbcb)rí  rr  )rH   rH   N)r�  r�  N©r   r:   r?   rq  ©rH   r|  N©r�  NN)ra   ry   r   r)   r«   r»   rw  r!   rb   rŽ   r·   r  r  r²  r-   r-   r.   Útest_str_splitË  s<    ÿÿÿþÿþÿr…  c                  C  s(  t jg d¢tt ¡ ƒd�} | j d¡}t  tt g d¢g d¢d g¡ƒ¡}t	 
||¡ | jjddd�}t  tt dd	gd
d	gd g¡ƒ¡}t	 
||¡ | jjdddd�}t  tt g d¢¡ƒtt g d¢¡ƒdœ¡}t	 ||¡ | jjddd�}t  tt g d¢¡ƒtt g d¢¡ƒdœ¡}t	 ||¡ d S )Nr{  rS   rj   r}  r~  r:   r€  Úa1cbrI   Úa2cbT)rÿ  rr  )r†  r‡  N)rI   rI   Nr‚  r?   rq  rƒ  r„  )ra   ry   r   r)   r«   r»   rv  r!   rb   rŽ   r·   r  r  r²  r-   r-   r.   Útest_str_rsplitó  s2    ÿÿþÿþÿrˆ  c                  C  sX   t jg d¢tt ¡ ƒd�} tjtdd�� | j 	d¡ W d   ƒ n1 sJ0    Y  d S )N©rx  Úb2Úc3rS   z*pat=.* must contain a symbolic group name.r¤   z[ab](\d))
ra   ry   r   r)   r«   r&   r$   r  r»   Úextractrà  r-   r-   r.   Útest_str_extract_non_symbolic	  s    r�  rr  c                 C  sf   t jg d¢tt ¡ ƒd�}|jjd| d�}t  tt 	g d¢¡ƒtt 	g d¢¡ƒdœ¡}t
 ||¡ d S )Nr‰  rS   z(?P<letter>[ab])(?P<digit>\d)rq  )rH   rI   N©r?   rJ   N)ÚletterÚdigit)ra   ry   r   r)   r«   r»   rŒ  r  r!   rb   rŽ   r  )rr  r|   r’   r“   r-   r-   r.   Útest_str_extract	  s    þÿr‘  c                  C  sŽ   t jg d¢tt ¡ ƒd�} | jjddd�}t  dtt 	g d¢¡ƒi¡}t
 ||¡ | jjddd�}t jtt 	g d¢¡ƒdd	�}t
 ||¡ d S )
Nr‰  rS   z[ab](?P<digit>\d)Trq  r�  rŽ  F©rê   )ra   ry   r   r)   r«   r»   rŒ  r  r!   rb   rŽ   r  r·   r²  r-   r-   r.   Útest_str_extract_expand(	  s    ÿÿr“  r  )r	  r  r)  r*  c                 C  sF   ddg}t  | ¡}tj||d�}tt jdd g|d�ƒ}t ||¡ d S )NZ1000ÚNaTrS   éè  rÌ  )r)   Údurationr!   r¦   rb   rŽ   rŸ   )r  Ústringsr¹   r’   r“   r-   r-   r.   Ú#test_duration_from_strings_with_nat7	  s
    
r˜  c                 C  sR   | j j}tj |¡sNtjtdd�� t 	| ¡j
 W d   ƒ n1 sD0    Y  d S )Nz2Can only use .dt accessor with datetimelike valuesr¤   )r4   r2   r)   rT   rµ   r&   r$   ÚAttributeErrorra   ry   r’  rv   r-   r-   r.   Útest_unsupported_dtA	  s    ÿrš  zprop, expectedÚyearéç  ÚdayZday_of_weekZ	dayofweekÚweekdayZday_of_yearZ	dayofyearÚhourÚminuteZis_leap_yearÚmicrosecondrG   ÚmonthÚ
nanosecondrs  ZquarterÚsecondrp   r   r   c                 C  s–   t jt jddddddddd	�d gtt d
¡ƒd�}t|j| ƒ}d }t|t	ƒrVt 
¡ }nt|tƒrjt d
¡}t  ttj|d g|d�ƒ¡}t ||¡ d S )Nrœ  r:   r>   rä   r5   rp   rG   rs  )r›  r¢  r�  rŸ  r   r¤  r¡  r£  r	  rS   rÌ  )ra   ry   rÎ  r   r)   rz  r´   r’  r    r   rÏ  r   Útime64r!   rb   rŽ   r·   )Úpropr“   r|   r’   Zexp_typer-   r-   r.   Útest_dt_propertiesJ	  s.    ø
õò



r§  c               	   C  s¤   t jtddddd�tddddd�tddddd�d gtt d¡ƒd	�} | jj}t jg d
¢tt ¡ ƒd	�}t	 
||¡ | jj}t jg d¢tt ¡ ƒd	�}t	 
||¡ d S )Nrœ  rC   r>   rä   ©r›  r¢  r�  rŸ  r:   rD   r  rS   r  ©FFTN)ra   ry   r   r   r)   rz  r’  Zis_month_startrT  rŽ   r·   Zis_month_endr²  r-   r-   r.   Útest_dt_is_month_start_end{	  s    üù	rª  c               	   C  s¤   t jtddddd�tddddd�tddddd�d gtt d¡ƒd�} | jj}t jg d	¢tt ¡ ƒd�}t	 
||¡ | jj}t jg d
¢tt ¡ ƒd�}t	 
||¡ d S )Nrœ  rC   rD   rä   r¨  r:   r  rS   r  r  )ra   ry   r   r   r)   rz  r’  Zis_year_startrT  rŽ   r·   Zis_year_endr²  r-   r-   r.   Útest_dt_is_year_start_endŽ	  s    üù	r«  c               	   C  s¤   t jtddddd�tddddd�tddddd�d gtt d¡ƒd	�} | jj}t jg d
¢tt ¡ ƒd	�}t	 
||¡ | jj}t jg d¢tt ¡ ƒd	�}t	 
||¡ d S )Nrœ  é   é   rä   r¨  r:   rD   r  rS   r  r©  )ra   ry   r   r   r)   rz  r’  Zis_quarter_startrT  rŽ   r·   Zis_quarter_endr²  r-   r-   r.   Útest_dt_is_quarter_start_end¡	  s    üù	r®  Zdays_in_monthZdaysinmonthc              	   C  sz   t jtddddd�tddddd�tddddd�d gtt d¡ƒd	�}t|j| ƒ}t jg d
¢tt ¡ ƒd	�}t	 
||¡ d S )Nrœ  rä   r­  r¨  r5   r:   r>   r  rS   )rD   r­  é   N)ra   ry   r   r   r)   rz  r´   r’  rð   rŽ   r·   ry  r-   r-   r.   Útest_dt_days_in_month´	  s    üù	r°  c                  C  sž   t jtdddd�tddddd�tdddd	d
d
d�d gtt d¡ƒd�} | j ¡ }t jtdddd�tdddd�tdddd�d gtt d¡ƒd�}t 	||¡ d S )Nrœ  rä   r­  ©r›  r¢  r�  r5   r:   r¨  r>   é   é;   )r›  r¢  r�  rŸ  r   r¤  r  rS   )
ra   ry   r   r   r)   rz  r’  rg  rŽ   r·   r²  r-   r-   r.   Útest_dt_normalizeÄ	  s$    üù	
üù	r´  r  r	  c                 C  sx   t jtddddd�d gtt | ¡ƒd�}|jj| ks8J ‚|jj}t  t	tj
tddƒd gt | ¡d�ƒ¡}t ||¡ d S )	Nrœ  r:   r>   rä   r¨  rS   r   rÌ  )ra   ry   r   r   r)   rz  r’  r  r   r!   rb   r¥  rŽ   r·   ©r  r|   r’   r“   r-   r-   r.   Útest_dt_time_preserve_unitÛ	  s    þ ÿr¶  r–   )Nry  ú
US/Pacificc                 C  sJ   t jtddddd�d gttjd| d�ƒd�}|jj}|t 	| ¡ksFJ ‚d S )	Nrœ  r:   r>   rä   r¨  r	  ©r–   rS   )
ra   ry   r   r   r)   rz  r’  r–   r   Zmaybe_get_tz)r–   r|   r’   r-   r-   r.   Ú
test_dt_tzê	  s    þr¹  c                  C  sb   t jtddddd�d gtt d¡ƒd�} | j ¡ }t jg d¢g d	¢gg d
¢dd�}t	 
||¡ d S )Nrœ  r:   r>   rä   r¨  r	  rS   )rœ  r:   r:   rŒ  )r›  Úweekr�  r²   ©r-  r4   )ra   ry   r   r   r)   rz  r’  Úisocalendarr  rŽ   r  r²  r-   r-   r.   Útest_dt_isocalendarô	  s    þ
ýr½  Úday_nameZSundayÚ
month_nameÚJanuaryc                 C  sd   t |ƒ tjtdddƒd gtt d¡ƒd�}t|j| ƒƒ }tj|d gtt 	¡ ƒd�}t
 ||¡ d S )Nrœ  r:   r)  rS   )r/   ra   ry   r   r   r)   rz  r´   r’  r«   rŽ   r·   )rÿ   rW  r,   r|   r’   r“   r-   r-   r.   Útest_dt_day_month_name
  s
    $rÁ  c                 C  sf   t | ƒ tjtddddd�d gtt d¡ƒd�}|j d¡}tjd	d gtt 	¡ ƒd�}t
 ||¡ d S )
Nrœ  r:   r>   rä   r¨  r	  rS   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r/   ra   ry   r   r   r)   rz  r’  Ústrftimer«   rŽ   r·   )r,   r|   r’   r“   r-   r-   r.   Útest_dt_strftime
  s    þÿrÃ  )Úceilr“  rÔ  c                 C  s°   t jtddddd�d gtt d¡ƒd�}tjtdd	��$ t	|j
| ƒd
dd� W d   ƒ n1 s`0    Y  tjtdd	��$ t	|j
| ƒd
dd� W d   ƒ n1 s¢0    Y  d S )Nrœ  r:   r>   rä   r¨  r	  rS   zambiguous is not supported.r¤   Z1hr”  ©Z	ambiguousznonexistent is not supported.©Únonexistent)ra   ry   r   r   r)   rz  r&   r$   r`   r´   r’  ©rÿ   r|   r-   r-   r.   Ú*test_dt_roundlike_tz_options_not_supported
  s    þ2rÉ  c                 C  s¨   t jtddddd�d gtt d¡ƒd�}tjtdd	��  t	|j
| ƒd
ƒ W d   ƒ n1 s\0    Y  tjtdd	��  t	|j
| ƒd ƒ W d   ƒ n1 sš0    Y  d S )Nrœ  r:   r>   rä   r¨  r	  rS   zfreq='1B' is not supportedr¤   Z1Bz$Must specify a valid frequency: None)ra   ry   r   r   r)   rz  r&   r$   r  r´   r’  rÈ  r-   r-   r.   Ú"test_dt_roundlike_unsupported_freq*
  s    þ.rÊ  Úfreq)ÚDÚhrâ   r*  r)  r  r	  c                 C  sn   t  tdddd�d g¡}tt d¡ƒ}t|j|ƒd| › �ƒ |¡}t| |¡j|ƒd| › �ƒ}t	 
||¡ d S )Nrœ  r:   r±  r	  r?   )ra   ry   r   r   r)   rz  r´   r’  r¶   rŽ   r·   )rË  rÿ   r|   rc   r“   r’   r-   r-   r.   Útest_dt_ceil_year_floor7
  s    ÿrÎ  c                  C  sî   t dddƒt dddƒg} tj| tt d¡ƒd�}d}tjt|d�� |j	 
¡ }W d   ƒ n1 sb0    Y  tj| td�}t ||¡ tdd	„ |D ƒƒsœJ ‚d
}tjt|d��  | d¡j	 
¡ }W d   ƒ n1 sÔ0    Y  t ||¡ d S )NrA   r:   rœ  r	  rS   úCThe behavior of ArrowTemporalProperties.to_pydatetime is deprecatedr¤   c                 s  s   | ]}t |ƒtu V  qd S r€   )rf   r   ©Ú.0Úresr-   r-   r.   Ú	<genexpr>M
  r„   z(test_dt_to_pydatetime.<locals>.<genexpr>z>The behavior of DatetimeProperties.to_pydatetime is deprecatedúdatetime64[ns])r   ra   ry   r   r)   rz  rŽ   r  ÚFutureWarningr’  r‘  r�   rb   r�   r�   rÔ   r¶   )rd   r|   rö   r’   r“   r-   r-   r.   Útest_dt_to_pydatetimeC
  s    (.rÖ  Ú	date_typer°   é@   c              	   C  s˜   t jtdddƒgtttd| › �ƒƒ ƒd�}d}tjt|d��H t	j
tdd�� |j ¡  W d   ƒ n1 sl0    Y  W d   ƒ n1 sŠ0    Y  d S )	NrA   rC   rD   r   rS   rÏ  r¤   z#to_pydatetime cannot be called with)ra   ry   r   r   r´   r)   rŽ   r  rÕ  r&   r$   r  r’  r‘  )r×  r|   rö   r-   r-   r.   Ú test_dt_to_pydatetime_date_errorU
  s    þrÙ  c                  C  s¨   t jtddddd�d gtt d¡ƒd�} tjtdd	��  | j	j
d
dd� W d   ƒ n1 s\0    Y  tjtdd	��  | j	j
d
dd� W d   ƒ n1 sš0    Y  d S )Nrœ  r:   r>   rä   r¨  r	  rS   z ambiguous='NaT' is not supportedr¤   ry  r”  rÅ  z"nonexistent='NaT' is not supportedrÆ  )ra   ry   r   r   r)   rz  r&   r$   r`   r’  Útz_localizerà  r-   r-   r.   Ú*test_dt_tz_localize_unsupported_tz_optionsb
  s    þ.rÛ  c                  C  sp   t jtddddd�d gttjddd�ƒd	�} | j d ¡}t jtddddd�d gtt d¡ƒd	�}t 	||¡ d S )
Nrœ  r:   r>   rä   r¨  r	  r·  r¸  rS   )
ra   ry   r   r   r)   rz  r’  rÚ  rŽ   r·   r²  r-   r-   r.   Útest_dt_tz_localize_nonen
  s    þþrÜ  c                 C  sŒ   t |ƒ tjtddddd�d gtt | ¡ƒd�}|j d¡}tj	tddddd�d gt | ¡d�}tj
 |d¡}t t|ƒ¡}t ||¡ d S )	Nrœ  r:   r>   rä   r¨  rS   r·  rÌ  ©r/   ra   ry   r   r   r)   rz  r’  rÚ  rb   ZcomputeZassume_timezoner!   rŽ   r·   )r  r,   r|   r’   Úexp_datar“   r-   r-   r.   Útest_dt_tz_localize{
  s    þÿrß  znonexistent, exp_dateZshift_forwardrC   r¨  Zshift_backwardz2023-03-12 01:59:59.999999999c                 C  s†   t |ƒ tjtdddddd�d gtt d¡ƒd�}|jjd	| d
�}tj	|d gt d¡d�}tj
 |d	¡}t t|ƒ¡}t ||¡ d S )Nrœ  rä   rC   r>   r­  )r›  r¢  r�  rŸ  r   r	  rS   r·  rÆ  rÌ  rÝ  )rÇ  Zexp_dater,   r|   r’   rÞ  r“   r-   r-   r.   Útest_dt_tz_localize_nonexistentŒ
  s    þrà  c                  C  sf   t jtddddd�d gtt d¡ƒd�} tjtdd	�� | j	 
d
¡ W d   ƒ n1 sX0    Y  d S )Nrœ  r:   r>   rä   r¨  r	  rS   z"Cannot convert tz-naive timestampsr¤   ry  )ra   ry   r   r   r)   rz  r&   r$   rÈ   r’  Ú
tz_convertrà  r-   r-   r.   Ú test_dt_tz_convert_not_tz_raises¡
  s    þrâ  c                  C  sn   t jtddddd�d gtt dd¡ƒd�} | j d ¡}t jtddddd�d gtt d¡ƒd�}t 	||¡ d S )	Nrœ  r:   r>   rä   r¨  r	  r·  rS   ©
ra   ry   r   r   r)   rz  r’  rá  rŽ   r·   r²  r-   r-   r.   Útest_dt_tz_convert_noneª
  s    þþrä  c                 C  sp   t jtddddd�d gtt | d¡ƒd�}|j d¡}t jtddddd�d gtt | d¡ƒd�}t 	||¡ d S )	Nrœ  r:   r>   rä   r¨  r·  rS   z
US/Easternrã  rµ  r-   r-   r.   Útest_dt_tz_convert·
  s    þþrå  ztimestamp[ms][pyarrow]zduration[ms][pyarrow]c                 C  s@   t jdd g| d�}|j d¡}| |  dd¡¡}t ||¡ d S )Nr•  rS   r	  r)  )ra   ry   r’  Úas_unitr¶   rû  rŽ   r·   rÕ  r-   r-   r.   Útest_as_unitÅ
  s    rç  ÚdaysÚsecondsÚmicrosecondsÚnanosecondsc                 C  sf   t jt jddddd�d gtt d¡ƒd�}t|j| ƒ}t  ttj	|d gt 
¡ d�ƒ¡}t ||¡ d S )	Nr:   r>   rä   r5   ©rè  ré  rê  rë  r	  rS   rÌ  )ra   ry   Ú	Timedeltar   r)   r–  r´   r’  r!   rb   rÚ  rŽ   r·   )r¦  r“   r|   r’   r-   r-   r.   Útest_dt_timedelta_propertiesÎ
  s     üù	öÿrî  c                  C  sd   t jt jddddd�d gtt d¡ƒd�} | j ¡ }t  ttj	dd gt 
¡ d	�ƒ¡}t ||¡ d S )
Nr:   r>   rä   r5   rì  r	  rS   gN%  õ@rÌ  )ra   ry   rí  r   r)   r–  r’  Útotal_secondsr!   rb   r‡   rŽ   r·   r²  r-   r-   r.   Útest_dt_timedelta_total_secondsì
  s     üù	ö
ÿrð  c                  C  sŠ   t dddƒt dddƒg} tj| tt d¡ƒd�}|j ¡ }tj	| t
d�}t ||¡ tdd„ |D ƒƒsjJ ‚| d	¡j ¡ }t ||¡ d S )
Nr:   r>   rä   r5   r	  rS   c                 s  s   | ]}t |ƒtu V  qd S r€   )rf   r   rÐ  r-   r-   r.   rÓ  	  r„   z)test_dt_to_pytimedelta.<locals>.<genexpr>útimedelta64[ns])r   ra   ry   r   r)   r–  r’  Zto_pytimedeltar�   rb   r�   rŽ   r�   rÔ   r¶   ©rd   r|   r’   r“   r-   r-   r.   Útest_dt_to_pytimedelta  s    
ró  c                  C  sb   t jt jddddd�d gtt d¡ƒd�} | jj}t jg d¢g d	¢gg d
¢dd�}t	 
||¡ d S )Nr:   r>   rä   r5   rì  r	  rS   )r:   r   r   r>   r   rä   r5   )NNNNNNN)rè  ÚhoursÚminutesré  Zmillisecondsrê  rë  r±   r»  )ra   ry   rí  r   r)   r–  r’  Ú
componentsr  rŽ   r  r²  r-   r-   r.   Útest_dt_components  s$    üù	ö	õr÷  r¯   c                 C  sD   t jd gdd�}t|| ƒ|d�}|r.| dk}nt j}||u s@J ‚d S )Nrå   rS   r®   rÔ   )ra   ry   r´   rr  )rà   r¯   r|   r’   r“   r-   r-   r.   Ú#test_boolean_reduce_series_all_null.  s    
rø  c                  C  sÆ   g d¢} g d¢}d g}| | | }dgt | ƒ dgt |ƒ  d gt |ƒ  }tj|t ¡ d�}tj|dd�}t ||¡ ddg}t	j
tjd	d
��" tj|t ¡ d� W d   ƒ n1 s¸0    Y  d S )N)ÚtrueÚTRUEÚTruer?   r°  )ÚfalseÚFALSEÚFalseÚ0r@   TFrS   r%  rû  rÈ  zFailed to parser¤   )rK  r!   r¦   r)   rT  ra   rb   rŽ   rŸ   r&   r$   r*   )Ztrue_stringsZfalse_stringsZnullsr—  Zboolsr’   r“   r-   r-   r.   Ú%test_from_sequence_of_strings_boolean:  s    (ÿr   c                 C  sB   t jg | d�}| ¡ }t  |tjg tjd� g¡}t ||¡ d S r�   )	ra   ry   rÃ  Úconcatr�   rb   rT  rŽ   r·   )r4   r|   r“   r’   r-   r-   r.   Ú%test_concat_empty_arrow_backed_seriesL  s    r  r«   zstring[pyarrow]c                 C  s>   t  d ¡ ¡}tj|| d�}tjt|ƒ| d�}t ||¡ d S )Nzthe quick brown foxrS   )r)   rb   rw  ra   ry   r!   rŽ   r·   )r4   rë   r|   r“   r-   r-   r.   Útest_series_from_string_arrayT  s    r  c                      s   e Zd Z‡ fdd„Z‡  ZS )ÚOldArrowExtensionArrayc                   s   t ƒ  ¡ }| d¡|d< |S )Nrž   Ú_data)r—   Ú__getstate__Úpop)rz   Ústater™   r-   r.   r  ^  s    
z#OldArrowExtensionArray.__getstate__)rY  rZ  r[  r  r]  r-   r-   r™   r.   r  ]  s   r  c                  C  sV   t  dg¡} t| ƒ}t t |¡¡}t ||¡ |jt  	| ¡ksDJ ‚t
|dƒrRJ ‚d S )Nr:   r  )r)   rb   r  rª  r¬  r«  rŽ   rŸ   rž   Úchunked_arrayÚhasattr)rd   r“   r’   r-   r-   r.   Ú#test_pickle_old_arrowextensionarrayd  s    r  c                  C  sT   d} t t tj| ftjd�g¡ƒ}| ¡ }d|tj| ftjd�< |j|jksPJ ‚d S )Nih6 rS   F)	r!   r)   r	  r�   ZonesrT  rÃ  Zzerosrž   )ÚNrë   r“   r-   r-   r.   Ú/test_setitem_boolean_replace_with_mask_segfaultm  s
    r  zdata, arrow_dtyperM   rN   c                 C  s:   t |ƒ}tjt | ¡|d�}tj| |d�}t ||¡ d S r�   )r   ra   rb   r�   rŽ   rŸ   )rd   rœ  r4   r’   r“   r-   r-   r.   Ú-test_conversion_large_dtypes_from_numpy_arrayv  s    r  c                  C  sl   t jdd d gitt ¡ ƒd�} t jdddgidd�}t j| |gdd�}t jdg d¢idd�}t ||¡ d S )	NrH   rS   r   r:   r²   T)Zignore_index)NNr   r:   )ra   r  r   r)   Únullr  rŽ   r  )r  Zdf2r’   r“   r-   r-   r.   Útest_concat_null_array„  s
    r  c                 C  sN   t jg d¢t| ƒd�}| ¡ }t jg d¢tt ¡ ƒg d¢d�}t ||¡ d S )N©r:   r>   rä   rS   )rä   r>   r:   r:   rò   g       @rÒ  rä   ©rÖ   rÏ   rÑ   râ   ú25%ú50%ú75%rá   ©r4   r
  )ra   ry   r   Údescriber)   r‡   rŽ   r·   ©r¹   rd   r’   r“   r-   r-   r.   Útest_describe_numeric_data�  s    
ýr  c                 C  s^   t jtddƒt| ƒd�}| ¡ }t jdgt jg d¢| jd� ¡  tg d¢d�}t	 
||¡ d S )	Nr:   rF   rS   é	   )rG   r>   r:   rä   rG   rp   r  ©r  r  r  )ra   ry   r|  r   r  Úto_timedeltar  rÄ  r�   rŽ   r·   r  r-   r-   r.   Útest_describe_timedelta_dataš  s    ýr  c                   sX   t jtddƒtˆ ƒd�}| ¡ }t jdg‡ fdd„dD ƒ tg d¢d	�}t ||¡ d S )
Nr:   rF   rS   r  c                   s    g | ]}t j|ˆ jˆ jd �‘qS ))r–   r  )ra   rÎ  r–   r  )rÑ  Úv©r¹   r-   r.   Ú
<listcomp>®  s   ÿz/test_describe_datetime_data.<locals>.<listcomp>)rG   r:   rä   rG   rp   r  )rÖ   rÏ   râ   r  r  r  rá   r  )ra   ry   r|  r   r  r�   rŽ   r·   r  r-   r  r.   Útest_describe_datetime_data§  s    
þÿù	r!  c                 C  s<   g d¢}t j|t| ƒd�}| d¡}|d }||ks8J ‚d S )Nr  rS   gš™™™™™¹?r   )ra   ry   r   r‹  )r¹   rd   r|   r’   r“   r-   r-   r.   Útest_quantile_temporal¸  s
    
r"  c                  C  sB   t jt d¡gt  ¡ d�} tj| t| jƒd�}t	|ƒdks>J ‚d S )Nz
2020-01-01rÌ  rS   z+0    2020-01-01
dtype: date32[day][pyarrow])
r)   rb   r   ÚfromisoformatrÏ  ra   ry   r   rf   Úrepr)Zarrow_dtr|   r-   r-   r.   Útest_date32_reprÄ  s    r%  c                  C  s€   t  dd g¡} t  dd g¡}t j| tt d¡ƒd�}t j|tt d¡ƒd�}|| }t jdd gtt d¡ƒd�}t 	||¡ d S )Nr:   r	  rS   r>   )
ra   Úto_datetimer  ry   r   r)   rz  r–  rŽ   r·   )Zdata_tsZdata_tdZser_tsZser_tdr’   r“   r-   r-   r.   Ú2test_duration_overflow_from_ndarray_containing_natË  s    r'  c                 C  sZ   t  | ¡}|dksJ ‚| jr<|dv r<tjjdd�}| |¡ |t jt| ƒdd�ksVJ ‚d S )Nzunknown-array)ZfloatingZ
datetime64Ztimedelta64zfin infer_dtype pd.NA is not ignored in these cases even with skipna=True in the list(data) check belowr•   Tr®   )r
   Zinfer_dtyper¹  r&   r'   r(   r+   r¸  )rd   r,   rÒ  r'   r-   r-   r.   Útest_infer_dtype_pyarrow_dtypeÖ  s    
ÿ
r(  c                 C  sz   d}| j }tj | ¡r.tj||d� |¡g}ntj||| jd� |¡g}t	j
|| d�}t	tj|g| d�ƒ}t ||¡ d S )Nrä   r  ©r  r–   rS   rÌ  )r  r)   rT   r\   ra   rí  ræ  rÎ  r–   r!   rg   rb   rŽ   rŸ   )r¹   rO  r  Úseqr’   r“   r-   r-   r.   Útest_from_sequence_temporalä  s    r+  c                 C  s�   | j }tj | ¡r(tjd|d� |¡}ntjd|| jd� |¡}t	tj
g d¢| d�ƒ}| ¡ }||d d …< t	tj
g d¢| d�ƒ}t ||¡ d S )Nr:   r  r)  r  rÌ  )r:   r:   r:   )r  r)   rT   r\   ra   rí  ræ  rÎ  r–   r!   rb   rÃ  rŽ   rŸ   ©r¹   r  rO  rë   r’   r“   r-   r-   r.   Útest_setitem_temporalõ  s    r-  c                 C  sZ   t tjg d¢| d�ƒ}| j}|tjd|d� |¡ }t tjg d¢| d�ƒ}t ||¡ d S )Nr  rÌ  r:   r  )r   r:   r>   )	r!   r)   rb   r  ra   rí  ræ  rŽ   rŸ   )r¹   r,   rë   r  r’   r“   r-   r-   r.   Útest_arithmetic_temporal  s
    r.  c                 C  sˆ   | j }tj | ¡r(tjd|d� |¡}ntjd|| jd� |¡}t	tj
g d¢| d�ƒ}||k}t	tj
g d¢t ¡ d�ƒ}t ||¡ d S )Nr:   r  r)  r  rÌ  )FTT)r  r)   rT   r\   ra   rí  ræ  rÎ  r–   r!   rb   rT  rŽ   rŸ   r,  r-   r-   r.   Útest_comparison_temporal  s    r/  c                 C  s    t tjg d¢| d�ƒ}|d }tj | ¡rTtjd| jd� | j¡}t	|tjƒs€J ‚n,tj
d| j| jd� | j¡}t	|tj
ƒs€J ‚|j|jks�J ‚||ksœJ ‚d S )Nr  rÌ  r:   r>   r  r)  )r!   r)   rb   rT   r\   ra   rí  r  ræ  r    rÎ  r–   ©r¹   rë   r’   r“   r-   r-   r.   Útest_getitem_temporal&  s    ÿr1  c                 C  s¼   t tjdd g| d�ƒ}t|ƒ}tj | ¡r^tjd| jd� 	| j¡tj
g}t|d tjƒs”J ‚n6tjd| j| jd� 	| j¡tj
g}t|d tjƒs”J ‚|d j|d jks¬J ‚||ks¸J ‚d S )Nr:   rÌ  r  r   r)  )r!   r)   rb   r¸  rT   r\   ra   rí  r  ræ  rr  r    rÎ  r–   r0  r-   r-   r.   Útest_iter_temporal9  s    þþr2  c                 C  sR   t j| d d… g d¢d�}|jdd� ¡ }t jddgdd	d
gd�}t ||¡ d S )Nrä   )rH   rH   rI   r�  r   )Úlevelr>   r:   r²   rH   rI   r  )ra   ry   ÚgroupbyÚsizerŽ   r·   rò  r-   r-   r.   Ú'test_groupby_series_size_returns_pa_intP  s    r6  c                 C  s  t tjdd g| d�ƒ}|j|d�}tj | ¡rHtjd| jd� 	| j¡}ntj
d| j| jd� 	| j¡}|tks‚tj | ¡rÀ| jd urÀ|tkr’tj}ntj}tj||gtd�}|d j|jks¾J ‚nF|  ¡  d| j¡}| ¡ }t ||g¡}t |d ¡d | jk�sJ ‚t ||¡ d S )Nr:   rÌ  rS   r  r)  r   Znat)r!   r)   rb   rŒ   rT   r\   ra   rí  r  ræ  rÎ  r–   r�   r[   rr  r”  r�   Úto_pandas_dtyperf   Zdatetime_datarŽ   r�   )r¹   r4   rë   r’   rB  rì  r“   r-   r-   r.   Útest_to_numpy_temporalX  s     r8  c                 C  s\   t  ddg| | dœ¡}| d¡ ¡ }t jddggt jdgdd�ddgdd�}t ||¡ d S )	Nr:   )rl   rm   rn   rl   r’  rm   rn   r²   )r
  r-  r4   )ra   r  r4  rÖ   ÚIndexrŽ   r  )rh   r  r’   r“   r-   r-   r.   Ú%test_groupby_count_return_arrow_dtypeu  s    ür:  c                  C  sD   t jddgddggttjt ¡ dd�ƒd�} | jj}|tks@J ‚d S )Nr:   r>   rä   r5   )Z	list_sizerS   )	ra   ry   r   r)   r_  rð   r4   rf   r¸  )r|   r’   r-   r-   r.   Útest_fixed_size_list�  s
    "ÿr;  c                  C  s@   t jt jddd�dgttdƒƒd�} t| ƒ}d}||ks<J ‚d S )NZ2012rä   )r  r´  rÌ  r»  z#     col
0  15340
1  15341
2  15342)ra   r  Zperiod_ranger   r"   r$  )r  r’   r“   r-   r-   r.   Ú'test_arrowextensiondtype_dataframe_reprŠ  s    
ýr<  c                  C  sB   t jdd gdd�} | jd dd�}t jdd gdd�}t ||¡ d S )Nr>   r²   rS   rä   )rÉ  é   )ra   ry   ÚpowrŽ   r·   )Úkr’   r“   r-   r-   r.   Útest_pow_missing_operand˜  s    r@  c                 C  sh   t jd dgt| ƒd�}t  tjddgd| j› d�d�¡}| |¡}t jddgt| ƒd�}t ||¡ d S )Nr>   rS   r:   rä   zm8[r+  )	ra   ry   r   r�   rb   r  r  rŽ   r·   )r¹   Zser1r  r’   r“   r-   r-   r.   Útest_duration_fillna_numpy   s
    "
rA  c                  C  s^   t jdgdd�} t jd gdd�}tjtjjdd�� | |k  W d   ƒ n1 sP0    Y  d S )Nl            ræ   rS   r²   zInteger valuer¤   )ra   ry   r&   r$   r)   r
   r*   rØ  r-   r-   r.   Ú+test_comparison_not_propagating_arrow_errorª  s    rB  c                  C  s‚   t  t  dg¡ ¡ t  dg¡ ¡ g¡} t t| ƒ¡}| ¡ \}}tjddgtj	d�}t 
t|  ¡ ƒ¡}t ||¡ t ||¡ d S )NrH   rI   r   r:   rS   )r)   r	  rb   Údictionary_encodera   ry   r!   Z	factorizer�   Zintpr9  r¡   rŽ   r�   Zassert_index_equal)r¬   r|   Zres_indicesZres_uniquesZexp_indiciesZexp_uniquesr-   r-   r.   Ú!test_factorize_chunked_dictionary²  s    ÿrD  c                  C  s’   t  t g d¢¡¡ ¡ t  t g d¢¡¡ ¡ g} t tt  | ¡ƒ¡}| d¡}tj	g d¢t
t  ¡ ƒd�}tjg d¢tj|d�d�}t ||¡ d S )N)rH   r‚   rj   rH   )rH   r  rj   Úcategory)rH   r‚   rj   r  rS   )rH   r‚   rj   rH   rH   r  rj   )Ú
categories)r)   rb   r�   rC  ra   ry   r!   r	  r¶   r9  r   r«   ZCategoricalDtyperŽ   r·   )Zarrsr|   r’   rF  r“   r-   r-   r.   Ú"test_dictionary_astype_categorical¿  s    þ

þrG  c                  C  sH   t jdgdd�} t jdgdd�}t jdgdd�}| | }t ||¡ d S )Niùÿÿÿr²   rS   r5   r;   r`  )rH   rI   r“   r’   r-   r-   r.   Útest_arrow_floordivÏ  s
    rH  c                  C  s8   t jdgdd�} t jdgdd�}| d }t ||¡ d S )Nl     ^ \K r²   rS   l    \Ëp/i@B r`  )rH   r“   r’   r-   r-   r.   Ú test_arrow_floordiv_large_valuesØ  s    rI  r²   ræ   c                 C  s(   t jdg| d�}|d }t ||¡ d S )Nì   ÿÿÿÿrS   r:   r`  )r4   rH   r’   r-   r-   r.   Ú)test_arrow_floordiv_large_integral_resultà  s    rK  c                 C  s@   t | ƒ}tjdg|d�}|d }tjdg|d�}t ||¡ d S )NiéÿÿÿrS   é   r<   )r   ra   ry   rŽ   r·   )r¹   r4   rH   r’   r“   r-   r-   r.   Ú"test_arrow_floordiv_larger_divisorè  s
    rM  c                 C  sœ   t  |  ¡ ¡j}tj|gt| ƒd�}tjt	j
jdd�� |d  W d   ƒ n1 sT0    Y  tjt	j
jdd�� |d  W d   ƒ n1 sŽ0    Y  d S )NrS   zoverflow|not in ranger¤   r<   zdivide by zeror   )r�   Úiinfor7  râ   ra   ry   r   r&   r$   r)   r
   r*   )r¹   Z	min_valuerH   r-   r-   r.   Ú$test_arrow_floordiv_integral_invalidò  s    &rO  c                 C  s<   t jdg| d�}|d }t jtdƒg| d�}t ||¡ d S )Nr>   rS   r   Úinf)ra   ry   r»  rŽ   r·   )r4   rH   r’   r“   r-   r-   r.   Ú&test_arrow_floordiv_floating_0_divisorý  s    rQ  )r‡   rÔ  rñ  c                 C  s>   t jdd gdd�}| | ¡}t jdd g| d�}t ||¡ d S )Nr:   r²   rS   r±  rÕ  r-   r-   r.   Ú(test_astype_int_with_null_to_numpy_dtype  s    
rR  c                 C  sP   t  |  ¡ ¡j}t| ƒ}tj|g|d�}tjdg|d�}|| }t ||¡ d S )NrS   r:   )	r�   rN  r7  rá   r   ra   ry   rŽ   r·   )r¹   Z	max_valuer4   rH   rI   r’   r-   r-   r.   Ú)test_arrow_integral_floordiv_large_values  s    rS  c                 C  sH   t jdg| d�}t jdg| d�}t jdgdd�}|| }t ||¡ d S )Nr   rS   rJ  rå   r`  ©r4   rH   rI   r“   r’   r-   r-   r.   Ú&test_arrow_true_division_large_divisor  s
    rU  c                 C  sH   t jdg| d�}t jdg| d�}t jdg| d�}|| }t ||¡ d S )Nr   rS   rJ  r`  rT  r-   r-   r.   Ú'test_arrow_floor_division_large_divisor$  s
    rV  c                  C  sD   g d¢} t j| dd�}t  ttjt  | ¡dd�ƒ¡}t ||¡ d S )N)ú2020-01-01 04:30:00z2020-01-02 00:00:00z2020-01-03 00:00:00útimestamp[ns][pyarrow]rS   T©Zfrom_pandas)ra   ry   r!   r)   rb   r&  rŽ   r·   )Zstring_datesr’   r“   r-   r-   r.   Ú$test_string_to_datetime_parsing_cast.  s    ÿrZ  z0pairwise_diff_checked not implemented in pyarrowc                 C  sf   | j jsbt | ¡}t d|j › d�¡}tjt|d�� t | ¡ 	¡  W d   ƒ n1 sX0    Y  d S )NzCannot interpolate with z dtyper¤   )
r4   rí   ra   ry   ÚreÚescaper&   r$   rÈ   Zinterpolate)rd   r|   rö   r-   r-   r.   Útest_interpolate_not_numeric8  s
    
r]  c               	   C  sH   dg} t j| dd�}t  ttjtddddƒgdd	�ƒ¡}t ||¡ d S )
Nz11:41:43.076160ztime64[us][pyarrow]rS   r¬  é)   é+   i€) TrY  )ra   ry   r!   r)   rb   r   rŽ   r·   )Zstring_timesr’   r“   r-   r-   r.   Ú test_string_to_time_parsing_castC  s    ÿr`  c                  C  sB   t jg d¢dd�} |  d¡}t jddtjgdd�}t ||¡ d S )N©r°   é(   Nrµ  rS   r‡   r°   rb  )ra   ry   r¶   r�   r‘   rŽ   r·   r²  r-   r-   r.   Útest_to_numpy_floatM  s    
rc  c                  C  s:   t jdgdd�} | jtjd�}t dg¡}t ||¡ d S )NrW  rX  rS   l    P‘)Æ#-/ )ra   ry   rŒ   r�   rð   rb   rŽ   r�   r²  r-   r-   r.   Útest_to_numpy_timestamp_to_intU  s    rd  c                  C  sJ   t jg d¢dd�} | jdd„ dd�}t jddtjgd	d�}t ||¡ d S )
Nra  r²   rS   c                 S  s   dS )Né*   r-   r�   r-   r-   r.   rƒ   _  r„   z,test_map_numeric_na_action.<locals>.<lambda>r   r…   g      E@r‡   )ra   ry   r‹   r�   r‘   rŽ   r·   r²  r-   r-   r.   Útest_map_numeric_na_action]  s    rf  (  rq  Ú
__future__r   r   r   r   r   Údecimalr   Úior   r	   rS  rª  r[  Únumpyr�   r&   Zpandas._libsr
   Zpandas._libs.tslibsr   Zpandas.compatr   r   r   r   r   r   r   r   r   Zpandas.core.dtypes.dtypesr   r   Zpandasra   Zpandas._testingZ_testingrŽ   Zpandas.api.extensionsr   Zpandas.api.typesr   r   r   r   r   r   r   Zpandas.tests.extensionr   Zimportorskipr)   Zpandas.core.arrays.arrow.arrayr!   Z(pandas.core.arrays.arrow.extension_typesr"   r/   ZfixtureZALL_PYARROW_DTYPESr»   r4   rd   rh   ri   ro   rr   rs   rw   ZExtensionTestsrx   r^  r'   r\  ZALL_INT_PYARROW_DTYPESrw  rx  r{  r~  r‡  rˆ  r”  r—  r˜  r„  ÚbytesZlarge_binaryZlarge_stringr_  rð   r¸  Z
large_listZmap_r«   ÚstructrM  ÚdictrÙ  rž  r¢  r¤  r¥  r¦  r§  r¨  r­  r¯  r³  r·  rº  r¼  r‘   r¿  rÁ  rÂ  rÆ  rË  rÑ  rÓ  rÖ  r×  rÛ  rÝ  rá  rè  ré  rï  rð  rø  rù  Úcompilerþ  r   r  r  r	  r  r  rÚ  r  r  r  r  r   Zskipifr$  r%  r'  r(   r™  r,  r-  r3  r5  rC  rJ  rK  rP  rT  rV  r]  r`  rc  rh  rj  rm  ro  rp  ru  rz  r…  rˆ  r�  r‘  r“  r˜  rš  r§  rª  r«  r®  r°  r´  r¶  r¹  r½  rÁ  rÃ  rÉ  rÊ  rÎ  rÖ  rÙ  rÛ  rÜ  rß  rÎ  rà  râ  rä  rå  rç  rî  rð  ró  r÷  rø  r   r  r  r  r  r  r  r  ZFLOAT_PYARROW_DTYPESr  ZTIMEDELTA_PYARROW_DTYPESr  ZDATETIME_PYARROW_DTYPESr!  r"  r%  r'  r(  r+  r-  r.  r/  r1  r2  r6  r$  r�   r8  r:  r;  r<  r@  rA  rB  rD  rG  rH  rI  rK  ZSIGNED_INT_PYARROW_DTYPESrM  rO  ZFLOAT_PYARROW_DTYPES_STR_REPRrQ  rR  rS  rU  rV  rZ  r]  r`  rc  rd  rf  r-   r-   r-   r.   Ú<module>   sà  ,$	


;


:


      > "
	ÿIý



 ÷þ
		


ÿ
	ûþ

øþ

	 þ
ýþ
úþ
òü
*þ
ÿ




ûþ

þ
üþ	
ýþîþ





úþúþ

þþþþ
þþ("		



ïþ	ÿ

þþ	üþ			þþ	ÿ	ÿÿÿ	ÿÿÿÿ				

		
ÿ
