U
    ÎZjý ã                   @   s@  d Z ddlmZmZmZmZ ddlZddl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 ddlZddlmZ ddlmZ ejddd	�Zdd
lmZ ddlm 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„ ƒZ'ej!dd„ ƒZ(ej!dd„ ƒZ)ej!dd„ ƒZ*ej!dd„ ƒZ+ej!dd„ ƒZ,G d d!„ d!ej-ƒZ.G d"d#„ d#ej/ƒZ0G d$d%„ d%ej1ƒZ2G d&d'„ d'ej3ƒZ4G d(d)„ d)ej5ƒZ6G d*d+„ d+ej7ƒZ8G d,d-„ d-ej9ƒZ:G d.d/„ d/ej;ƒZ<G d0d1„ d1ej=ƒZ>G d2d3„ d3ej?ƒZ@G d4d5„ d5ejAƒZBG d6d7„ d7ejCƒZDG d8d9„ d9ejEƒZFG d:d;„ d;ejGƒZHG d<d=„ d=ejIƒZJG d>d?„ d?ejKƒZLG d@dA„ dAejMƒZNG dBdC„ dCejOƒZPdDdE„ ZQejRjSeeTdFdG�ejR UdHdIdJdKdLdMg¡ejR UdNdOdOdOgg¡dPdQ„ ƒƒƒZVejRjSeeTdRdG�ejR UdSdTdUg¡ejRjUdVdddWdWdXdXgdXdggddddWdXdXgdgggdYdZgd[�d\d]„ ƒƒƒZWdS )^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/`.
é    )ÚdateÚdatetimeÚtimeÚ	timedeltaN)	Úis_ci_environmentÚis_platform_windowsÚpa_version_under2p0Úpa_version_under3p0Úpa_version_under4p0Úpa_version_under6p0Úpa_version_under7p0Úpa_version_under8p0Úpa_version_under9p0)ÚPerformanceWarning)ÚbaseZpyarrowz1.0.1)Z
minversion)ÚArrowExtensionArray)Ú
ArrowDtype)ÚparamsÚidsc                 C   s   t | jd�S )N)Úpyarrow_dtype)r   Úparam)Úrequest© r   úd/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/extension/test_arrow.pyÚdtype/   s    r   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 }�n¨tj |¡�rdt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 }nºtj |¡�r:tdƒtddƒgd d g tdƒtdƒgd  d g tdƒtdƒg }ndt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‚tj|| d�S )NTFé   é,   g      ð?ç        g       Àg      ð¿ç      à?g     àX@é   r   éþÿÿÿéÿÿÿÿéc   é   éæ  éÏ  é   é   éä  iöÿÿÿé
   é   ©r   ©r   ÚpaÚtypesÚ
is_booleanÚis_floatingZis_signed_integerÚis_unsigned_integerÚis_dater   Úis_timestampr   Úis_durationr   Úis_timer   ÚNotImplementedErrorÚpdÚarray)r   Úpa_dtypeÚdatar   r   r   r:   4   sn    0000ÿþýüÿ*ÿþýüÿÿþýüÿÿþýüÿr:   c                 C   s   t | ƒ d| d g¡S )zLength-2 array with [NA, Valid]Nr   ©ÚtypeÚ_from_sequence)r:   r   r   r   Údata_missingd   s    r>   )r   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.
    r:   r>   N)r   )r   r:   r>   r   r   r   Úall_dataj   s    

r?   c              	   C   sX  | j }tj |¡r"d}d}d}�ntj |¡r<d}d}d}nþtj |¡rVd}d}d}nätj |¡rpd}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ƒ}n2tj |¡�r6tddƒ}tddƒ}td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š™™™™™ñ¿r   gš™™™™™ñ?r!   r   r   r)   r%   r&   r'   iÚ  r$   r(   r   Nr+   r,   )r   r9   ÚAÚBÚCr   r   r   Údata_for_groupingv   sF    	

rC   c                 C   s    t | ƒ | d | d | d g¡S )zn
    Length-3 array with a known sort order.

    This should be three items [B, C, A] with
    A < B < C
    r   é   r   r;   ©rC   r   r   r   Údata_for_sorting¥   s    ÿrF   c                 C   s    t | ƒ | d | d | d g¡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#   r   r;   rE   r   r   r   Údata_missing_for_sorting²   s    ÿrG   c                 C   s:   | j j}tj |¡s tj |¡r6tjdgd | j d�S | S )z3Length-100 array in which all the elements are two.r#   éd   r+   )r   r   r-   r.   Ú
is_integerr0   r7   r8   )r:   r9   r   r   r   Údata_for_twos¿   s    rJ   c                   C   s   t jS )z6The scalar missing value for this type. Default 'None')r7   ÚNAr   r   r   r   Úna_valueÉ   s    rL   c                   @   s   e Zd ZdS )ÚTestBaseCastingN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   rM   Ï   s   rM   c                       s4   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Z‡  ZS )	ÚTestConstructorsc                    sn   |j j}tj |¡r^|jr^tr@|j t	j
jd|j› d�d�¡ n|j t	j
jtd|› �d�¡ tƒ  |¡ d S )Nztimestamp data with tz=z( converted to integer when pyarrow < 2.0©Úreasonú$pyarrow.type_for_alias cannot infer ©ÚraisesrT   )r   r   r-   r.   r3   Útzr   ÚnodeÚ
add_markerÚpytestÚmarkÚxfailr6   ÚsuperÚtest_from_dtype©Úselfr:   r   r9   ©Ú	__class__r   r   r_   Ô   s    ÿÿþÿz TestConstructors.test_from_dtypec                 C   s~   t r|j tjjdd�¡ t|ƒ |j¡}t	 
||¡ t|jtjƒsHt‚t|ƒ |j ¡ ¡}t	 
||¡ t|jtjƒszt‚d S )Nú,ChunkedArray has no attribute combine_chunksrS   )r	   rY   rZ   r[   r\   r]   r<   r=   Ú_dataÚtmÚassert_extension_array_equalÚ
isinstancer-   ZChunkedArrayÚAssertionErrorÚcombine_chunks)ra   r:   r   Úresultr   r   r   Útest_from_sequence_pa_arrayç   s    ÿÿz,TestConstructors.test_from_sequence_pa_arrayc              	   C   sN   t r|j tjjtdd�¡ tjtdd�� t	j
dgt ¡ d� W 5 Q R X d S )Nz3month_day_nano_interval not implemented by pyarrow.rV   zConverting strings to©Úmatchz12-1r+   )r   rY   rZ   r[   r\   r]   ÚAttributeErrorrW   r6   r   Ú_from_sequence_of_stringsr-   Zmonth_day_nano_interval)ra   r   r   r   r   Ú*test_from_sequence_pa_array_notimplementedø   s    þÿ ÿz;TestConstructors.test_from_sequence_pa_array_notimplementedc                 C   s¢  |j j}tr&|j tjjdd�¡ �n tj	 
|¡rT| d¡rT|j tjjdd�¡ nòtj	 |¡r‚|j tjjtjd|› �d�¡ nÄtj	 |¡r¦|j tjjdd�¡ n tj	 |¡�r|jd k	�rtræ|j tjjtjd|› �d�¡ n*tƒ �rFtƒ �rF|j tjjtjd	d�¡ n4t�rFtj	 |¡�rF|j tjjtjd|› �d�¡ |j t ¡ ¡}t|ƒj||j d
�}t ||¡ | ¡ }t|ƒj||j d
�}t ||¡ d S )Nrd   rS   z
time64[ns]z&Nanosecond time parsing not supported.z pyarrow doesn't support parsing rV   z:Iterating over ChunkedArray[bool] returns PyArrow scalars.z)pyarrow doesn't support string cast from z_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.r+   )r   r   r	   rY   rZ   r[   r\   r]   r-   r.   Z	is_time64Úequalsr4   ÚArrowNotImplementedErrorr/   r3   rX   r   r   r   ÚArrowInvalidr   Úis_temporalre   ÚcastÚstringr<   rp   rf   rg   rj   )ra   r:   r   r9   Úpa_arrayrk   r   r   r   Ú&test_from_sequence_of_strings_pa_array  sl    ÿÿÿÿþÿÿÿþÿýÿ	þÿz7TestConstructors.test_from_sequence_of_strings_pa_array)rO   rP   rQ   r_   rl   rq   ry   Ú__classcell__r   r   rb   r   rR   Ó   s   rR   c                       sN   e Zd Zejjdd�‡ fdd„ƒZ‡ fdd„Z‡ fdd„Z‡ fd	d
„Z	‡  Z
S )ÚTestGetitemTestsz`data.dtype.type return pyarrow.DataType but this (intentionally) returns Python scalars or pd.NarS   c                    s   t ƒ  |¡ d S ©N)r^   Útest_getitem_scalar©ra   r:   rb   r   r   r}   C  s    z$TestGetitemTests.test_getitem_scalarc                    s€   t |jjdd ƒ}t |jjdd ƒ}dg}tr:| dddg¡ trp|dkrp||krp|j tj	j
d|› d	|› �d
�¡ tƒ  |¡ d S ©NrX   ÚunitÚnsÚsÚmsÚus©NÚUTCz3Not supported by pyarrow < 3.0 with timestamp type ú and rS   )Úgetattrr   r   r   Úextendr	   rY   rZ   r[   r\   r]   r^   Útest_take_series)ra   r   r:   rX   r€   Ú	bad_unitsrb   r   r   rŠ   M  s    þÿz!TestGetitemTests.test_take_seriesc                    s‚   t |jjdd ƒ}t |jjdd ƒ}dg}tr:| dddg¡ trp|dkrp||krp|j tj	j
d|› d	|› �d
�¡ tƒ  ||¡ d S r   )rˆ   r   r   r   r‰   r	   rY   rZ   r[   r\   r]   r^   Útest_reindex)ra   r   r:   rL   rX   r€   r‹   rb   r   r   rŒ   ^  s    þÿzTestGetitemTests.test_reindexc                    s„   t |jjdd ƒ}t |jjdd ƒ}dg}tr:| dddg¡ trt|st|dkrt||krt|j tj	j
d|› d	|› �d
�¡ tƒ  |¡ d S r   )rˆ   r   r   r   r‰   r	   rY   rZ   r[   r\   r]   r^   Ú test_loc_iloc_frame_single_dtype)ra   r   Zusing_array_managerr:   rX   r€   r‹   rb   r   r   r�   o  s&    ÿþýüþÿz1TestGetitemTests.test_loc_iloc_frame_single_dtype)rO   rP   rQ   r[   r\   r]   r}   rŠ   rŒ   r�   rz   r   r   rb   r   r{   B  s   þr{   c                       s6   e Zd Zdd„ Zej dddg¡‡ fdd„ƒZ‡  ZS )ÚTestBaseNumericReducec                 C   sr   |j j}t||ƒ|d�}tj |¡r0t d¡ n"tj |¡sHtj 	|¡rR| 
d¡}t||ƒ|d�}t ||¡ d S )N©ÚskipnazApandas boolean data with NA does not fully support all reductionsZFloat64)r   r   rˆ   r-   r.   r/   r[   ÚskiprI   r0   Úastyperf   Zassert_almost_equal)ra   ÚserÚop_namer�   r9   rk   Úexpectedr   r   r   Úcheck_reduce‡  s    ÿ
z"TestBaseNumericReduce.check_reducer�   TFc                    sj  |j j}tjjt|› dtj› d|› �d�}|dkrB|j 	|¡ �n|dkr\t
r\|j 	|¡ nú|dkrvtrv|j 	|¡ nà|dkrÔ|dkrÔt
rÔtj |¡s¢tj |¡rÔ|j 	tjjt|› d|› d	|› d
tj› �d�¡ n‚tj |¡�s2tj |¡�s2tj |¡�s2|dk�r$tj |¡�r$tj |¡�r2|j 	|¡ n$tj |¡�rV|dk�rV|j 	|¡ tƒ  |||¡ d S )Nú is not implemented in pyarrow=ú for rV   >   ÚskewÚkurt>   ÚstdÚminÚvarÚmaxÚprodÚmedian>   ÚsumÚmeanFz with skip_nulls=z did not return NA for z with pyarrow=>   rž   rœ   >   r�   r    r›   )r   r   r[   r\   r]   Ú	TypeErrorr-   Ú__version__rY   rZ   r   r   r.   rI   r0   ri   r/   ru   r4   r^   Útest_reduce_series)ra   r:   Zall_numeric_reductionsr�   r   r9   Ú
xfail_markrb   r   r   r¥   ”  s\    ýÿþÿþý
ü
üýÿ

ÿ
þ
ýû
ú
úz(TestBaseNumericReduce.test_reduce_series)	rO   rP   rQ   r–   r[   r\   Úparametrizer¥   rz   r   r   rb   r   rŽ   †  s   rŽ   c                   @   s&   e Zd Zej dddg¡dd„ ƒZdS )ÚTestBaseBooleanReducer�   TFc                 C   s†   |j j}tjjt|› dtj› d|› �d�}tj 	|¡sD|j
 |¡ ntrT|j
 |¡ |}t |¡}	t|	|ƒ|d�}
|
|dkks‚t‚d S )Nr—   r˜   rV   r�   Úany)r   r   r[   r\   r]   r£   r-   r¤   r.   r/   rY   rZ   r	   r7   ÚSeriesrˆ   ri   )ra   r:   Zall_boolean_reductionsr�   rL   r   r9   r¦   r”   r‚   rk   r   r   r   r¥   É  s    ý
z(TestBaseBooleanReduce.test_reduce_seriesN)rO   rP   rQ   r[   r\   r§   r¥   r   r   r   r   r¨   È  s   r¨   c                       sj   e Zd Z‡ fdd„Z‡ fdd„Z‡ fdd„Z‡ fdd„Z‡ fd	d
„Zej	 
dddg¡‡ fdd„ƒZ‡  ZS )ÚTestBaseGroupbyc                    sJ   t |jjdd ƒ}tr:|dkr:|j tjjd|› d�d�¡ t	ƒ  
|¡ d S )NrX   r…   ú3Not supported by pyarrow < 2.0 with timestamp type Ú.rS   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_groupby_agg_extension)ra   rC   r   rX   rb   r   r   r®   à  s    
ÿÿz*TestBaseGroupby.test_groupby_agg_extensionc                    sn   |j j}tj |¡r2|j tjj	|› d�d�¡ n,tj 
|¡r^|j tjj	tjd|› �d�¡ tƒ  |¡ d S ©Nú" only has 2 unique possible valuesrS   ú$pyarrow doesn't support factorizing rV   )r   r   r-   r.   r/   rY   rZ   r[   r\   r]   r4   rs   r^   Útest_groupby_extension_no_sort©ra   rC   r   r9   rb   r   r   r²   ê  s    ÿÿþÿz.TestBaseGroupby.test_groupby_extension_no_sortc                    sn   |j j}tj |¡r2|j tjj	|› d�d�¡ n,tj 
|¡r^|j tjj	tjd|› �d�¡ tƒ  |¡ d S r¯   )r   r   r-   r.   r/   rY   rZ   r[   r\   r]   r4   rs   r^   Ú test_groupby_extension_transformr³   rb   r   r   r´   û  s    ÿÿþÿz0TestBaseGroupby.test_groupby_extension_transformc              	      sb   |j j}tj |¡r4|j tjj	tj
d|› �d�¡ tjttdd�� tƒ  ||¡ W 5 Q R X d S )Nr±   rV   F©Zcheck_stacklevel)r   r   r-   r.   r4   rY   rZ   r[   r\   r]   rs   rf   Úmaybe_produces_warningr   r   r^   Útest_groupby_extension_apply)ra   rC   Zgroupby_apply_opr   r9   rb   r   r   r·     s    þÿ  ÿz,TestBaseGroupby.test_groupby_extension_applyc                    sF   |j j}tj |¡s tj |¡r6|j tj	j
dd�¡ tƒ  |¡ d S )Nz/ArrowExtensionArray doesn't support .sum() yet.rS   )r   r   r-   r.   rI   r0   rY   rZ   r[   r\   r]   r^   Útest_in_numeric_groupbyr³   rb   r   r   r¸     s    ÿÿz'TestBaseGroupby.test_in_numeric_groupbyÚas_indexTFc              	      sŽ   |j j}tj |¡r4|j tjj	t
|› d�d�¡ n,tj |¡r`|j tjj	tjd|› �d�¡ tjttdd�� tƒ  ||¡ W 5 Q R X d S )Nr°   rV   r±   Frµ   )r   r   r-   r.   r/   rY   rZ   r[   r\   r]   Ú
ValueErrorr4   rs   rf   r¶   r   r   r^   Útest_groupby_extension_agg)ra   r¹   rC   r   r9   rb   r   r   r»   &  s*    þÿþÿ  ÿz*TestBaseGroupby.test_groupby_extension_agg)rO   rP   rQ   r®   r²   r´   r·   r¸   r[   r\   r§   r»   rz   r   r   rb   r   r«   ß  s   

r«   c                       sH   e Zd Z‡ fdd„Z‡ fdd„Z‡ fdd„Zdd„ Z‡ fd	d
„Z‡  ZS )ÚTestBaseDtypec                    sJ   |j }tj |¡r:|jd k	r:|j tjj	t
d|› �d�¡ tƒ  |¡ d S ©NrU   rV   )r   r-   r.   r3   rX   rY   rZ   r[   r\   r]   r6   r^   Ú#test_construct_from_string_own_name©ra   r   r   r9   rb   r   r   r¾   >  s    þÿz1TestBaseDtype.test_construct_from_string_own_namec                    sJ   |j }tj |¡r:|jd k	r:|j tjj	t
d|› �d�¡ tƒ  |¡ d S r½   )r   r-   r.   r3   rX   rY   rZ   r[   r\   r]   r6   r^   Útest_is_dtype_from_namer¿   rb   r   r   rÀ   I  s    þÿz%TestBaseDtype.test_is_dtype_from_namec                    sJ   |j }tj |¡r:|jd k	r:|j tjj	t
d|› �d�¡ tƒ  |¡ d S r½   )r   r-   r.   r3   rX   rY   rZ   r[   r\   r]   r6   r^   Útest_construct_from_stringr¿   rb   r   r   rÁ   T  s    þÿz(TestBaseDtype.test_construct_from_stringc              	   C   s0   d}t jt|d�� t|ƒ d¡ W 5 Q R X d S )Nz*'another_type' must end with '\[pyarrow\]'rm   Zanother_type)r[   rW   r£   r<   Úconstruct_from_string)ra   r   Úmsgr   r   r   Ú.test_construct_from_string_another_type_raises_  s    z<TestBaseDtype.test_construct_from_string_another_type_raisesc                    s€   |j }tj |¡sTtj |¡sTtj |¡r>|jdksT|jd k	sTtj |¡rp|jdkrp|j	 
tjj|› d�d�¡ tƒ  |¡ d S )Nr�   zB does not have associated numpy dtype findable by find_common_typerS   )r   r-   r.   r2   r5   r3   r€   rX   r4   rY   rZ   r[   r\   r]   r^   Útest_get_common_dtyper¿   rb   r   r   rÅ   d  s*    
ÿ
þ
üûû
ùù	þÿz#TestBaseDtype.test_get_common_dtype)	rO   rP   rQ   r¾   rÀ   rÁ   rÄ   rÅ   rz   r   r   rb   r   r¼   =  s
   r¼   c                   @   s   e Zd ZdS )ÚTestBaseIndexNrN   r   r   r   r   rÆ   z  s   rÆ   c                       s6   e Zd Z‡ fdd„Zejjdd�‡ fdd„ƒZ‡  ZS )ÚTestBaseInterfacec                    sh   t |jjdd ƒ}t |jjdd ƒ}trV|dkrV|dkrV|j tjjd|› d|› �d�¡ t	ƒ  
||¡ d S )NrX   r€   r…   r„   r¬   r‡   rS   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_contains)ra   r:   r>   r   rX   r€   rb   r   r   rÈ     s    þÿzTestBaseInterface.test_containsz,pyarrow.ChunkedArray does not support views.rS   c                    s   t ƒ  |¡ d S r|   )r^   Ú	test_viewr~   rb   r   r   rÉ   �  s    zTestBaseInterface.test_view)	rO   rP   rQ   rÈ   r[   r\   r]   rÉ   rz   r   r   rb   r   rÇ   ~  s   rÇ   c                       s(   e Zd Zej d¡‡ fdd„ƒZ‡  ZS )ÚTestBaseMissingz4ignore:Falling back:pandas.errors.PerformanceWarningc                    s   t ƒ  |¡ d S r|   )r^   Útest_dropna_array)ra   r>   rb   r   r   rË   “  s    z!TestBaseMissing.test_dropna_array)rO   rP   rQ   r[   r\   ÚfilterwarningsrË   rz   r   r   rb   r   rÊ   ’  s   
rÊ   c                   @   s   e Zd ZdS )ÚTestBasePrintingNrN   r   r   r   r   rÍ   ˜  s   rÍ   c                       sŠ   e Zd Z‡ fdd„Z‡ fdd„Z‡ fdd„Z‡ fdd„Z‡ fd	d
„Z‡ fdd„Z‡ fdd„Z	e
jjdd�‡ fdd„ƒZ‡ fdd„Z‡  ZS )ÚTestBaseReshapingc                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S ©NrX   r…   r¬   rS   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_concat_columns©ra   r:   rL   r   rX   rb   r   r   rÐ   �  s    ÿÿz%TestBaseReshaping.test_concat_columnsc                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Ú'test_concat_extension_arrays_copy_falserÑ   rb   r   r   rÒ   §  s    ÿÿz9TestBaseReshaping.test_concat_extension_arrays_copy_falsec                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Ú
test_alignrÑ   rb   r   r   rÓ   ±  s    ÿÿzTestBaseReshaping.test_alignc                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_align_framerÑ   rb   r   r   rÔ   »  s    ÿÿz"TestBaseReshaping.test_align_framec                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_align_series_framerÑ   rb   r   r   rÕ   Å  s    ÿÿz)TestBaseReshaping.test_align_series_framec                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Ú
test_mergerÑ   rb   r   r   rÖ   Ï  s    ÿÿzTestBaseReshaping.test_mergec                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Ú
test_ravel©ra   r:   r   rX   rb   r   r   r×   Ù  s    ÿÿzTestBaseReshaping.test_ravelú5GH 45419: pyarrow.ChunkedArray does not support viewsrS   c                    s   t ƒ  |¡ d S r|   )r^   Útest_transposer~   rb   r   r   rÚ   ã  s    z TestBaseReshaping.test_transposec                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_transpose_framerØ   rb   r   r   rÛ   ç  s    ÿÿz&TestBaseReshaping.test_transpose_frame)rO   rP   rQ   rÐ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   r[   r\   r]   rÚ   rÛ   rz   r   r   rb   r   rÎ   œ  s   






rÎ   c                
       s  e Zd Z‡ fdd„Z‡ fdd„Z‡ fdd„Zej ddd	g¡‡ fd
d„ƒZ	‡ fdd„Z
‡ fdd„Z‡ fdd„Z‡ fdd„Z‡ fdd„Z‡ fdd„Zejjde dddddg¡ejdddddgdd�ejdddejejgdd�gdddgd �‡ fd!d"„ƒZ‡ fd#d$„Zejjd%d&d'd(gejd&d'd(gd)d�e d&d'd(g¡gd*d+dgd �‡ fd,d-„ƒZej d.ddg¡ej ddd/g¡‡ fd0d1„ƒƒZej ddd/g¡‡ fd2d3„ƒZ‡ fd4d5„Z‡ fd6d7„Z‡ fd8d9„Z‡ fd:d;„Z‡ fd<d=„Z‡ fd>d?„Z‡ fd@dA„Zejj dBdC�‡ fdDdE„ƒZ!‡  Z"S )FÚTestBaseSetitemc                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_scalar_series©ra   r:   Úbox_in_seriesr   rX   rb   r   r   rÝ   ó  s    ÿÿz*TestBaseSetitem.test_setitem_scalar_seriesc                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_sequencerÞ   rb   r   r   rà   ý  s    ÿÿz%TestBaseSetitem.test_setitem_sequencec                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Ú test_setitem_sequence_broadcastsrÞ   rb   r   r   rá     s    ÿÿz0TestBaseSetitem.test_setitem_sequence_broadcastsÚsetterÚlocÚilocc                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_scalar©ra   r:   râ   r   rX   rb   r   r   rå     s    ÿÿz#TestBaseSetitem.test_setitem_scalarc                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_loc_scalar_mixedrØ   rb   r   r   rç     s    ÿÿz-TestBaseSetitem.test_setitem_loc_scalar_mixedc                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_loc_scalar_singlerØ   rb   r   r   rè   &  s    ÿÿz.TestBaseSetitem.test_setitem_loc_scalar_singlec                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Ú,test_setitem_loc_scalar_multiple_homogoneousrØ   rb   r   r   ré   0  s    ÿÿz<TestBaseSetitem.test_setitem_loc_scalar_multiple_homogoneousc                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_iloc_scalar_mixedrØ   rb   r   r   rê   :  s    ÿÿz.TestBaseSetitem.test_setitem_iloc_scalar_mixedc                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_iloc_scalar_singlerØ   rb   r   r   rë   D  s    ÿÿz/TestBaseSetitem.test_setitem_iloc_scalar_singlec                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Ú-test_setitem_iloc_scalar_multiple_homogoneousrØ   rb   r   r   rì   N  s    ÿÿz=TestBaseSetitem.test_setitem_iloc_scalar_multiple_homogoneousÚmaskTFÚbooleanr+   znumpy-arrayzboolean-arrayzboolean-array-na©r   c                    sL   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_mask)ra   r:   rí   rß   r   rX   rb   r   r   rð   X  s    
ÿÿz!TestBaseSetitem.test_setitem_maskc                    sb   t |jjdd ƒ}t |jjdd ƒ}trP|dkrP|dkrP|j tjjd|› �d�¡ t	ƒ  
||¡ d S )NrX   r€   r…   r„   r¬   rS   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Ú'test_setitem_mask_boolean_array_with_na)ra   r:   rß   r   rX   r€   rb   r   r   rñ   k  s    ÿÿz7TestBaseSetitem.test_setitem_mask_boolean_array_with_naÚidxr   r   r#   ZInt64Úlistzinteger-arrayc                    sL   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_integer_array)ra   r:   rò   rß   r   rX   rb   r   r   rô   v  s    ÿÿz*TestBaseSetitem.test_setitem_integer_arrayÚas_callableNc                    sL   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_mask_aligned)ra   r:   rõ   râ   r   rX   rb   r   r   rö   …  s    ÿÿz)TestBaseSetitem.test_setitem_mask_alignedc                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_mask_broadcastræ   rb   r   r   r÷   ‘  s    ÿÿz+TestBaseSetitem.test_setitem_mask_broadcastc                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_tuple_indexrØ   rb   r   r   rø   œ  s    ÿÿz(TestBaseSetitem.test_setitem_tuple_indexc                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_slicerÞ   rb   r   r   rù   ¦  s    ÿÿz"TestBaseSetitem.test_setitem_slicec                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_loc_iloc_slicerØ   rb   r   r   rú   °  s    ÿÿz+TestBaseSetitem.test_setitem_loc_iloc_slicec                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_slice_arrayrØ   rb   r   r   rû   º  s    ÿÿz(TestBaseSetitem.test_setitem_slice_arrayc                    sZ   d|j jk}t|jjdd ƒ}trH|dkrH|sH|j  tjj	d|› �d�¡ t
ƒ  ||¡ d S )NZ
null_slicerX   r…   r¬   rS   )rY   Únodeidrˆ   r   r   r   rZ   r[   r\   r]   r^   Ú,test_setitem_with_expansion_dataframe_column)ra   r:   Zfull_indexerr   Zis_null_slicerX   rb   r   r   rý   Ä  s    ÿÿz<TestBaseSetitem.test_setitem_with_expansion_dataframe_columnc                    sJ   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
||¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_with_expansion_rowrÑ   rb   r   r   rþ   Ð  s    ÿÿz/TestBaseSetitem.test_setitem_with_expansion_rowc                    sH   t |jjdd ƒ}tr8|dkr8|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )rˆ   r   r   r   rY   rZ   r[   r\   r]   r^   Útest_setitem_frame_2d_valuesrØ   rb   r   r   rÿ   Ú  s    ÿÿz,TestBaseSetitem.test_setitem_frame_2d_valuesrÙ   rS   c                    s   t ƒ  |¡ d S r|   )r^   Útest_setitem_preserves_viewsr~   rb   r   r   r   ä  s    z,TestBaseSetitem.test_setitem_preserves_views)#rO   rP   rQ   rÝ   rà   rá   r[   r\   r§   rå   rç   rè   ré   rê   rë   rì   Únpr8   r7   rK   rð   rñ   rô   rö   r÷   rø   rù   rú   rû   rý   rþ   rÿ   r]   r   rz   r   r   rb   r   rÜ   ò  sR   









ýù	
*ý








rÜ   c                       s.   e Zd Zej dddg¡‡ fdd„ƒZ‡  ZS )ÚTestBaseParsingÚengineÚcÚpythonc                    sx   |j j}tj |¡r.|j tjj	t
dd�¡ n8tj |¡rf|jd k	rf|j tjj	td|j› d�d�¡ tƒ  ||¡ d S )NzGH 47534rV   zParameterized types with tz=z not supported.)r   r   r-   r.   r/   rY   rZ   r[   r\   r]   r£   r3   rX   r6   r^   Útest_EA_types)ra   r  r:   r   r9   rb   r   r   r  ê  s    ÿþÿzTestBaseParsing.test_EA_types)rO   rP   rQ   r[   r\   r§   r  rz   r   r   rb   r   r  é  s   r  c                       s.   e Zd Zejjeedd�‡ fdd„ƒZ‡  Z	S )ÚTestBaseUnaryOpsz3pyarrow.compute.invert not supported in pyarrow<2.0rV   c                    sD   |j j}tj |¡s4|j tjj	tj
d|› �d�¡ tƒ  |¡ d S )Nz$pyarrow.compute.invert does support rV   )r   r   r-   r.   r/   rY   rZ   r[   r\   r]   rs   r^   Útest_invertr`   rb   r   r   r  ü  s    þÿzTestBaseUnaryOps.test_invert)
rO   rP   rQ   r[   r\   r]   r   r6   r  rz   r   r   rb   r   r  û  s   ýr  c                       sú  e Zd Zej dddg¡‡ fdd„ƒZej dddg¡‡ fd	d
„ƒZ‡ fdd„Zejj	e
edd�‡ fdd„ƒZej dddddddejfddejfddg¡‡ fdd„ƒZej dddg¡‡ fdd„ƒZej dddg¡‡ fdd „ƒZej d!ejd"d#„ g¡ej d$d%d#„ ejg¡‡ fd&d'„ƒƒZej d(d)dg¡‡ fd*d+„ƒZej d(d)dg¡‡ fd,d-„ƒZ‡ fd.d/„Z‡ fd0d1„Zej d2d3dd4dd4d5gg¡‡ fd6d7„ƒZ‡ fd8d9„Z‡ fd:d;„Zejj	d<d=�‡ fd>d?„ƒZ‡ fd@dA„Z‡ fdBdC„Z‡ fdDdE„Z ‡  Z!S )FÚTestBaseMethodsÚperiodsr   r    c              	      sV   |j j}tj |¡rD|dkrD|j tjj	tj
d|› d|› d�d�¡ tƒ  ||¡ d S )Nr   z
diff with z and periods=z will overflowrV   )r   r   r-   r.   r1   rY   rZ   r[   r\   r]   rt   r^   Ú	test_diff)ra   r:   r
  r   r9   rb   r   r   r    s    ýÿzTestBaseMethods.test_diffÚdropnaTFc                    sF   |j j}tj |¡r4|j tjj	tj
d|› �d�¡ tƒ  ||¡ d S )Nzvalue_count has no kernel for rV   )r   r   r-   r.   r4   rY   rZ   r[   r\   r]   rs   r^   Útest_value_counts)ra   r?   r  r   r9   rb   r   r   r    s    þÿz!TestBaseMethods.test_value_countsc                    sD   |j j}tj |¡r4|j tjj	tj
d|› �d�¡ tƒ  |¡ d S )Nz&value_count has no pyarrow kernel for rV   )r   r   r-   r.   r4   rY   rZ   r[   r\   r]   rs   r^   Ú test_value_counts_with_normalizer`   rb   r   r   r  (  s    þÿz0TestBaseMethods.test_value_counts_with_normalizez6argmin/max only implemented for pyarrow version >= 6.0rV   c                    sr   |j j}tj |¡r2|j tjj	|› d�d�¡ n,tj 
|¡r^|j tjj	tjd|› �d�¡ tƒ  |||¡ d S )Nr°   rS   ú%min_max not supported in pyarrow for rV   )r   r   r-   r.   r/   rY   rZ   r[   r\   r]   r4   rs   r^   Útest_argmin_argmax)ra   rF   rG   rL   r   r9   rb   r   r   r  3  s    ÿÿþÿz"TestBaseMethods.test_argmin_argmaxzop_name, skipna, expected)ÚidxmaxTr   )ÚidxminTr#   )ÚargmaxTr   )ÚargminTr#   r  r  )r  Fr!   )r  Fr!   c                    st   |j j}tr*|r*|j tjjtdd�¡ n4ts^t	j
 |¡r^|r^|j tjjt	jd|› �d�¡ tƒ  ||||¡ d S )Nz min_max not supported in pyarrowrV   r  )r   r   r   rY   rZ   r[   r\   r]   r6   r-   r.   r4   rs   r^   Útest_argreduce_series)ra   rG   r”   r�   r•   r   r9   rb   r   r   r  K  s*    þÿþÿ   ÿz%TestBaseMethods.test_argreduce_seriesÚ	ascendingc                    sV   |j j}tj |¡rB|sBtsB|j tj	j
tjd|› d|› �d�¡ tƒ  |||¡ d S )Nú!unique has no pyarrow kernel for ú when ascending=rV   )r   r   r-   r.   r4   r   rY   rZ   r[   r\   r]   rs   r^   Útest_sort_values)ra   rF   r  Zsort_by_keyr   r9   rb   r   r   r  n  s    ýÿ	z TestBaseMethods.test_sort_valuesc                    sL   |j j}tj |¡r:|j tjj	tj
d|› d|› �d�¡ tƒ  ||¡ d S )Nú,dictionary_encode has no pyarrow kernel for r  rV   )r   r   r-   r.   r4   rY   rZ   r[   r\   r]   rs   r^   Útest_sort_values_frame)ra   rF   r  r   r9   rb   r   r   r  }  s    ýÿ	z&TestBaseMethods.test_sort_values_frameÚboxc                 C   s   | S r|   r   ©Úxr   r   r   Ú<lambda>Œ  ó    zTestBaseMethods.<lambda>Úmethodc                 C   s   |   ¡ S r|   )Úuniquer  r   r   r   r  �  r   c                    sN   |j j}tj |¡r:ts:|j tj	j
tjd|› d�d�¡ tƒ  |||¡ d S )Nr  r­   rV   )r   r   r-   r.   r4   r   rY   rZ   r[   r\   r]   rs   r^   Útest_unique)ra   r:   r  r!  r   r9   rb   r   r   r#  Œ  s    
þÿzTestBaseMethods.test_uniqueÚna_sentinelr!   c                    sp   |j j}tj |¡r6|j tjj	tj
d|› �d�¡ n(tj |¡r^|j tjj	|› d�d�¡ tƒ  ||¡ d S )Nr  rV   r°   rS   )r   r   r-   r.   r4   rY   rZ   r[   r\   r]   rs   r/   r^   Útest_factorize©ra   rC   r$  r   r9   rb   r   r   r%  ™  s    þÿÿÿzTestBaseMethods.test_factorizec                    sF   |j j}tj |¡r4|j tjj	tj
d|› �d�¡ tƒ  ||¡ d S ©Nr  rV   )r   r   r-   r.   r4   rY   rZ   r[   r\   r]   rs   r^   Útest_factorize_equivalencer&  rb   r   r   r(  «  s    þÿz*TestBaseMethods.test_factorize_equivalencec                    sD   |j j}tj |¡r4|j tjj	tj
d|› �d�¡ tƒ  |¡ d S r'  )r   r   r-   r.   r4   rY   rZ   r[   r\   r]   rs   r^   Útest_factorize_emptyr`   rb   r   r   r)  ·  s    þÿz$TestBaseMethods.test_factorize_emptyc                    sL   |j j}t|dd ƒ}tr<|dkr<|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )r   r   rˆ   r   rY   rZ   r[   r\   r]   r^   Útest_shift_fill_value©ra   r:   r   r9   rX   rb   r   r   r*  Â  s    ÿÿz%TestBaseMethods.test_shift_fill_valueÚrepeatsr   r#   é   c                    s`   |j j}t|dd ƒ}trJ|dkrJ|dkrJ|j tjjd|› d|› �d�¡ t	ƒ  
||||¡ d S )NrX   r…   r   r¬   z when repeats=rS   )r   r   rˆ   r   rY   rZ   r[   r\   r]   r^   Útest_repeat)ra   r:   r,  Ú	as_seriesZ	use_numpyr   r9   rX   rb   r   r   r.  Í  s    þÿzTestBaseMethods.test_repeatc                    sL   |j j}t|dd ƒ}tr<|dkr<|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )r   r   rˆ   r   rY   rZ   r[   r\   r]   r^   Útest_insertr+  rb   r   r   r0  Ü  s    ÿÿzTestBaseMethods.test_insertc                    sL   |j j}t|dd ƒ}tr<|dkr<|j tjjd|› �d�¡ t	ƒ  
|¡ d S rÏ   )r   r   rˆ   r   rY   rZ   r[   r\   r]   r^   Útest_combine_firstr+  rb   r   r   r1  ç  s    ÿÿz"TestBaseMethods.test_combine_firstz<result dtype pyarrow[bool] better than expected dtype objectrS   c                    s   t ƒ  |¡ d S r|   )r^   Útest_combine_le)ra   Údata_repeatedrb   r   r   r2  ò  s    zTestBaseMethods.test_combine_lec                    sN   t |dƒƒjj}tj |¡r>|j tj	j
t|› d|› �d�¡ tƒ  |¡ d S )Nr   z cannot be added to rV   )Únextr   r   r-   r.   ru   rY   rZ   r[   r\   r]   r£   r^   Útest_combine_add)ra   r3  r   r9   rb   r   r   r5  ø  s    þÿz TestBaseMethods.test_combine_addc                    sB   |j j}tj |¡r0|j tjj	|› d�d�¡ t
ƒ  ||¡ d S )Nr°   rS   )r   r   r-   r.   r/   rY   rZ   r[   r\   r]   r^   Útest_searchsorted)ra   rF   r/  r   r9   rb   r   r   r6    s    ÿÿz!TestBaseMethods.test_searchsortedc                    sH   |j j}tj |¡r4|j tjj	tj
d|› �d�¡ tƒ  |||¡ d S )Nz Unsupported cast from double to rV   )r   r   r-   r.   ru   rY   rZ   r[   r\   r]   rs   r^   Útest_where_series)ra   r:   rL   Zas_framer   r9   rb   r   r   r7    s    þÿz!TestBaseMethods.test_where_series)"rO   rP   rQ   r[   r\   r§   r  r  r  r]   r   r6   r  r  Únanr  r  r  r7   rª   r"  r#  r%  r(  r)  r*  r.  r0  r1  r2  r5  r6  r7  rz   r   r   rb   r   r	    s`   ý

øþÿ
r	  c                       sH   e Zd ZeZdd„ Z‡ fdd„Z‡ fdd„Zdd„ Z‡ fd	d
„Z	‡  Z
S )ÚTestBaseArithmeticOpsc           
      C   s¢   t j | |||¡}d}t|tjƒrNd}|jd d …df }|jd d …df j}n
|}|j}t 	|j
¡ |j¡}t|j
ƒ|ƒ}	|r”tj|	|j|jd�}n
t |	¡}|S )NFTr   )ÚindexÚcolumns)r   ÚBaseArithmeticOpsTestsÚ_combinerh   r7   Z	DataFramerä   r   r-   r8   Ú_valuesrv   r   r<   r:  r;  rª   )
ra   ÚobjÚotherÚopr•   Z	was_frameZexpected_dataZoriginal_dtyperx   Zpd_arrayr   r   r   Ú_patch_combine  s$      ÿ
z$TestBaseArithmeticOps._patch_combinec                    sn  |j j}t o4|dkr"tj |¡p4|dko4tj |¡}|dksBtrJt| _	n8|rVd | _	n,tj 
|¡s|tj |¡s||s|tj| _	nd | _	|dkrÄtj 
|¡s¢tj |¡rÄtsÄ|j tjjd|› �d�¡ np|rî|j tjjt|› d|› d�d	�¡ nF|d
k�r4tj 
|¡�stj |¡�r4t�s4|j tjjtjdd	�¡ |dk�r\tj |¡�r\| td| j¡ tƒ  ||¡ d S ©N©Ú__add__Ú__radd__©Ú__sub__Ú__rsub__>   Ú__rmod__Ú__mod__Ú__rpow__ú<GH 29997: 1**pandas.NA == 1 while 1**pyarrow.NA == NULL for rS   ú  not supported betweenpd.NA and ú Python scalarrV   >   Ú__rfloordiv__Ú__rtruediv__údivide by 0Ú__floordiv__r=  )r   r   r   r-   r.   r4   ru   r   r6   Zseries_scalar_excr0   rI   rs   rY   rZ   r[   r\   r]   r£   rt   Úsetattrr9  rB  r^   Útest_arith_series_with_scalar©ra   r:   Úall_arithmetic_operatorsr   Úmonkeypatchr9   Úarrow_temporal_supportedrb   r   r   rU  4  s|    
ÿ
üÿÿú
ÿ
þý
ÿ
þ
þýþÿýÿ
ÿ
þ
þýþÿz3TestBaseArithmeticOps.test_arith_series_with_scalarc                    sj  |j j}t o4|dkr"tj |¡p4|dko4tj |¡}|dksBtrJt| _	n4|rVd | _	n(tj 
|¡sxtj |¡sxtj| _	nd | _	|dkrÀtj 
|¡sžtj |¡rÀtsÀ|j tjjd|› �d�¡ np|rê|j tjjt|› d|› d�d	�¡ nF|d
k�r0tj 
|¡�stj |¡�r0t�s0|j tjjtjdd	�¡ |dk�rXtj |¡�rX| td| j¡ tƒ  ||¡ d S rC  )r   r   r   r-   r.   r4   ru   r   r6   Zframe_scalar_excr0   rI   rs   rY   rZ   r[   r\   r]   r£   rt   rT  r9  rB  r^   Útest_arith_frame_with_scalarrV  rb   r   r   rZ  z  sr    
ÿ
üÿÿú
ÿ
þ
þýþÿýÿ
ÿ
þ
þýþÿz2TestBaseArithmeticOps.test_arith_frame_with_scalarc           
      C   sî  |j j}t o4|dkr"tj |¡p4|dko4tj |¡}|dksBtrJt| _	n4|rVd | _	n(tj 
|¡sxtj |¡sxtj| _	nd | _	|dkrÀtj 
|¡sžtj |¡rÀtsÀ|j tjjd|› �d�¡ n¬|dkrútj |¡rútsú|j tjjtjd|› �d�¡ nr|�r&|j tjjt|› d	|› d
�d�¡ nF|dk�rltj 
|¡�sLtj |¡�rlt�sl|j tjjtjdd�¡ |}t |¡}t tj|jd gt|ƒ |j d�¡}	tj 
|¡�sÆtj |¡�rÖ|dk�rÖ| td| j¡ | j|||	| j	d� d S )NrD  rG  >   rJ  rK  rL  rM  rS   zJImplemented pyarrow.compute.subtract_checked which raises on overflow for rV   rN  rO  >   rP  rQ  rR  r   r+   Ú__truediv__r=  )Úexc)r   r   r   r-   r.   r4   ru   r   r6   Zseries_array_excr0   rI   rs   rY   rZ   r[   r\   r]   r1   rt   r£   r7   rª   r8   rä   ÚlenrT  r9  rB  Zcheck_opname)
ra   r:   rW  r   rX  r9   rY  r”   r“   r@  r   r   r   Útest_arith_series_with_array¼  sœ    
ÿ
üÿÿú
ÿ
þ
þýþÿ	ÿÿ
úù	ýÿ	ýÿ
ÿ
þ
þýþÿ
&
ÿÿz2TestBaseArithmeticOps.test_arith_series_with_arrayc                    sŽ   |j j}tj |¡s0tj |¡s0ts4tj |¡r4trT|j	 
tjjtd|› �d�¡ n*| d¡r~|j	 
tjjtjd|› �d�¡ tƒ  |¡ d S )Nz add_checked not implemented for rV   Zint8zraises on overflow for )r   r   r-   r.   rI   r0   r   r4   r   rY   rZ   r[   r\   r]   r6   rr   rt   r^   Ú$test_add_series_with_extension_arrayr`   rb   r   r   r_    s2    
þ
ýü
üúþÿ
þÿz:TestBaseArithmeticOps.test_add_series_with_extension_array)rO   rP   rQ   r6   Z
divmod_excrB  rU  rZ  r^  r_  rz   r   r   rb   r   r9    s   FBYr9  c                       s,   e Zd Z‡ fdd„Zdd„ Zdd„ Z‡  ZS )ÚTestBaseComparisonOpsc                    s.   t j|j ¡ dd�}tƒ j||f|ž|Ž d S )Nrî   r+   )r7   rª   r>  Zto_numpyr^   Úassert_series_equal)ra   ÚleftÚrightÚargsÚkwargsrb   r   r   ra  0  s    z)TestBaseComparisonOps.assert_series_equalc              
   C   s€  |j j}t |¡}t tj|jd gt|ƒ |j d�¡}|jdkr–|||ƒ}|d |ks\t‚|d |kslt‚| 	||¡}	||	d< ||	d< |  
||	¡ næd }
z|||ƒ}W n& tk
rÎ } z|}
W 5 d }~X Y nX |
d k�rVtj |¡�r<|d |ksøt‚|d |k�s
t‚| ddg¡jdd�}| ddg¡}| ddg¡}| 	||¡}	|  
||	¡ n&t t|
ƒ¡� | 	||¡ W 5 Q R X d S )Nr   r+   )ÚeqÚneé   éa   T)Údrop)r   r   r7   rª   r8   rä   r]  rO   ri   Úcombinera  Ú	Exceptionr-   r.   ru   rj  Zreset_indexr[   rW   r<   )ra   r:   Úcomparison_oprL   r   r9   r“   r@  rk   r•   r\  Úerrr   r   r   Útest_compare_array6  s6    
&


z(TestBaseComparisonOps.test_compare_arrayc              	   C   s*   t jtdd�� ||tƒ ƒ W 5 Q R X d S )Nz'.* not implemented for <class 'object'>rm   )r[   rW   r6   Úobject)ra   r:   rm  r   r   r   Útest_invalid_other_comp^  s
     ÿz-TestBaseComparisonOps.test_invalid_other_comp)rO   rP   rQ   ra  ro  rq  rz   r   r   rb   r   r`  /  s   (r`  c                	   C   s(   t jtdd�� t d¡ W 5 Q R X d S )NzPassing pyarrow typerm   ztimestamp[s, tz=UTC][pyarrow])r[   rW   r6   r   rÂ   r   r   r   r   ÚFtest_arrowdtype_construct_from_string_type_with_unsupported_parametersf  s    rr  z2quantile only supported for pyarrow version >= 4.0rV   ÚinterpolationZlinearÚlowerZhigherZnearestZmidpointÚquantiler   c                 C   s¾   | j j}tj |¡s@tj |¡s@|j tj	j
tjd|› �d�¡ |  dddg¡} t | ¡}|j||d�}|dkr‚|| d ksºt‚n8| d¡}tj|  ddg¡ d¡ddgd�}t ||¡ d S )Nz&quantile not supported by pyarrow for rV   r   )Úqrs  r   zfloat64[pyarrow])r:  )r   r   r-   r.   rI   r0   rY   rZ   r[   r\   r]   rs   Útaker7   rª   ru  ri   r’   rf   ra  )r:   rs  ru  r   r9   r“   rk   r•   r   r   r   Útest_quantilek  s&    
þÿ

 ÿrx  z.mode only supported for pyarrow version >= 6.0r  TFztake_idx, exp_idxr#   r   Ú
multi_modeZsingle_moderï   c           
      C   s¨   | j j}tj |¡r6|j tjj	tj
d|› �d�¡ n2tj |¡rhd|jjkrhtrh|j tjj	dd�¡ |  |¡}t |¡}|j|d�}t |  |¡¡}	t ||	¡ d S )Nz"mode not supported by pyarrow for rV   ry  z1https://issues.apache.org/jira/browse/ARROW-17096rS   )r  )r   r   r-   r.   ru   rY   rZ   r[   r\   r]   rs   r/   rü   r   rw  r7   rª   Úmoderf   ra  )
rC   r  Ztake_idxZexp_idxr   r9   r:   r“   rk   r•   r   r   r   Ú	test_mode‹  s0    þÿ
ÿ
þýÿÿ

r{  )XÚ__doc__r   r   r   r   Únumpyr  r[   Zpandas.compatr   r   r   r	   r
   r   r   r   r   Zpandas.errorsr   Zpandasr7   Zpandas._testingZ_testingrf   Zpandas.tests.extensionr   Zimportorskipr-   Zpandas.core.arrays.arrow.arrayr   Zpandas.core.arrays.arrow.dtyper   ZfixtureZALL_PYARROW_DTYPESÚstrr   r:   r>   r?   rC   rF   rG   rJ   rL   ZBaseCastingTestsrM   ZBaseConstructorsTestsrR   ZBaseGetitemTestsr{   ZBaseNumericReduceTestsrŽ   ZBaseBooleanReduceTestsr¨   ZBaseGroupbyTestsr«   ZBaseDtypeTestsr¼   ZBaseIndexTestsrÆ   ZBaseInterfaceTestsrÇ   ZBaseMissingTestsrÊ   ZBasePrintingTestsrÍ   ZBaseReshapingTestsrÎ   ZBaseSetitemTestsrÜ   ZBaseParsingTestsr  ZBaseUnaryOpsTestsr  ZBaseMethodsTestsr	  r<  r9  ZBaseComparisonOpsTestsr`  rr  r\   r]   r6   r§   rx  r{  r   r   r   r   Ú<module>   s˜   ,

/


.


	
oDB^=V x    7ý ÿý,ý