o
    �¨ÊhÀ ã                   @   sL  d dl mZ d dlmZmZ d dl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  mZ d dlZd dlmZmZmZmZ d dlmZ d dlmZ d dlmZm Z  ej!d	d
„ ƒZ"ej!dd dgddgd�dd„ ƒZ#G dd„ dƒZ$G dd„ dƒZ%G dd„ dƒZ&G dd„ dƒZ'G dd„ dƒZ(dd„ Z)dd„ Z*d d!„ Z+G d"d#„ d#ƒZ,d$d%„ Z-d&d'„ Z.d(d)„ Z/ej0 1d*ed+d,gd-d.gge2d/ƒd0�d1fed+d2gd-d2gge2d/ƒd0� 3d2e4i¡d3fg¡d4d5„ ƒZ5d6d7„ Z6ej0 1d8ed9d9gƒged9d9gƒed9d9gƒgg¡d:d;„ ƒZ7d<d=„ Z8d>d?„ Z9d@dA„ Z:dBdC„ Z;ej0 <dD¡dEdF„ ƒZ=dGdH„ Z>dIdJ„ Z?dS )Ké    )Údeque)ÚdatetimeÚtimezone)ÚEnumN)Úusing_pyarrow_string_dtype)Ú	DataFrameÚIndexÚ
MultiIndexÚSeries)Úexpressions)Ú_check_mixed_floatÚ_check_mixed_intc                  C   s2   t  g d¢g d¢g d¢g¡} t| g d¢g d¢d�S )zË
    Fixture for simple 3x3 DataFrame

    Columns are ['one', 'two', 'three'], index is ['a', 'b', 'c'].

       one  two  three
    a  1.0  2.0    3.0
    b  4.0  5.0    6.0
    c  7.0  8.0    9.0
    ©ç      ð?ç       @ç      @)ç      @ç      @g      @)g      @g       @g      "@©ÚoneÚtwoÚthree©ÚaÚbÚc©ÚcolumnsÚindex)ÚnpÚarrayr   )Úarr© r"   úT/var/www/html/env/lib/python3.10/site-packages/pandas/tests/frame/test_arithmetic.pyÚsimple_frame!   s   r$   Téd   ÚnumexprÚpython)ÚautouseÚparamsÚidsc                 c   sH   � |  ¡ �}| td| j¡ | jV  W d   ƒ d S 1 sw   Y  d S )NÚ_MIN_ELEMENTS)ÚcontextÚsetattrÚexprÚparam)ÚrequestÚmonkeypatchÚmr"   r"   r#   Úswitch_numexpr_min_elements2   s
   €

"þr3   c                   @   sX   e Zd Zddd„Zddd„Zdefdd„Zdefd	d
„Zddd„Zdd„ Z	ddd„Z
dS )ÚDummyElementÚreturnNc                 C   s   || _ t |¡| _d S ©N)Úvaluer   Údtype)Úselfr7   r8   r"   r"   r#   Ú__init__:   s   zDummyElement.__init__c                 C   s   t j| j| jd�S )N©r8   )r   r    r7   r8   ©r9   r8   Úcopyr"   r"   r#   Ú	__array__>   s   zDummyElement.__array__c                 C   s   d| j › d| j› d�S )NzDummyElement(z, ú))r7   r8   ©r9   r"   r"   r#   Ú__str__A   ó   zDummyElement.__str__c                 C   s   t | ƒS r6   )Ústrr@   r"   r"   r#   Ú__repr__D   s   zDummyElement.__repr__Fc                 C   s
   || _ | S r6   r;   r<   r"   r"   r#   ÚastypeG   s   zDummyElement.astypec                 C   s   t | ƒ| j |¡|ƒS r6   )Útyper7   Úview)r9   r8   r"   r"   r#   rG   K   rB   zDummyElement.viewc                 C   s
   t | jƒS r6   )Úboolr7   )r9   Úaxisr"   r"   r#   ÚanyN   s   
zDummyElement.any©r5   N)NN)Fr6   )Ú__name__Ú
__module__Ú__qualname__r:   r>   rC   rA   rD   rE   rG   rJ   r"   r"   r"   r#   r4   9   s    


r4   c                   @   s®  e Zd Zdd„ Zdd„ Zej dej	 
d¡jddd�ejd	dd
�dœej	 
d¡jddd�ej	 
d¡jddd�dœgej	 
d¡jddd�ej	 
d¡jddd�dœej	 
d¡jddd�ejd	dd
�dœgejd	dd
�ejd	dd
�dœej	 
d¡jddd�ej	 
d¡jddd�dœgej	 
d¡jddd�ejd	dd
�dœejd	dd
�ejd	dd
�dœgg¡dd„ ƒZej dg d¢¡dd„ ƒZejjeƒ dd�dd„ ƒZdd„ Zdd„ Zdd„ ZdS )ÚTestFrameComparisonsc                 C   s^   t dg d¢iƒ}t dg d¢iƒ}|dk}t ||¡ |d  d¡|d< |dk}t ||¡ d S )NÚA)ÚfooÚbarÚbaz)TFFrQ   Úcategory)r   ÚtmÚassert_frame_equalrE   )r9   ÚdfÚexpÚresr"   r"   r#   Ú&test_comparison_with_categorical_dtypeY   s   z;TestFrameComparisons.test_comparison_with_categorical_dtypec                 C   s^   t tj d¡ d¡tdƒd�}d}tjt|d�� |dv  W d   ƒ d S 1 s(w   Y  d S )Né   )é   é   ÚABCD©r   z+The truth value of a DataFrame is ambiguous©Úmatchr6   )	r   r   ÚrandomÚdefault_rngÚstandard_normalÚlistÚpytestÚraisesÚ
ValueError)r9   rW   Úmsgr"   r"   r#   Útest_frame_in_listh   s   ÿ
"ÿz'TestFrameComparisons.test_frame_in_listz	arg, arg2r[   é
   ©ÚsizeÚ20010101©Úperiods©r   r   c                    sp  t |ƒ‰ t |ƒ‰ˆ ˆk}t ‡ ‡fdd„ˆ jD ƒˆ jˆ jd�}t ||¡ ˆ ˆk}t ‡ ‡fdd„ˆ jD ƒˆ jˆ jd�}t ||¡ g d¢}d |¡}tjt|d�� ˆ ˆk W d   ƒ n1 s_w   Y  tjt|d�� ˆ ˆk W d   ƒ n1 szw   Y  tjt|d�� ˆ ˆk  W d   ƒ n1 s•w   Y  tjt|d�� ˆ ˆk W d   ƒ d S 1 s±w   Y  d S )Nc                    s   i | ]}|ˆ | ˆ| k“qS r"   r"   ©Ú.0Úcol©ÚxÚyr"   r#   Ú
<dictcomp>§   ó    z@TestFrameComparisons.test_comparison_invalid.<locals>.<dictcomp>©r   r   c                    s   i | ]}|ˆ | ˆ| k“qS r"   r"   rr   ru   r"   r#   rx   ¯   ry   )z=Invalid comparison between dtype=datetime64\[ns\] and ndarrayzinvalid type promotionzbThe DTypes <class 'numpy.dtype\[.*\]'> and <class 'numpy.dtype\[.*\]'> do not have a common DType.ú|r`   )	r   r   r   rU   rV   Újoinrf   rg   Ú	TypeError)r9   ÚargÚarg2ÚresultÚexpectedÚmsgsri   r"   ru   r#   Útest_comparison_invalidq   s<   0ýý
	
ÿ
ÿ
ÿ
"ÿz,TestFrameComparisons.test_comparison_invalidzleft, right))ÚgtÚlt)r…   r„   )ÚgeÚle)r‡   r†   )Úeqrˆ   )Úner‰   c           	      C   s  t tjddd�tjddd�tj d¡jddd�tj d¡ d¡dd	„ tdƒD ƒd
œƒ}tj	|j
tj d¡ t|ƒ¡dkdf< tt|ƒ}tt|ƒ}|dv rc||t d¡ƒ}|t d¡|ƒ}t ||¡ n@d}tjt|d�� ||t d¡ƒ W d   ƒ n1 sw   Y  tjt|d�� |t d¡|ƒ W d   ƒ n1 sžw   Y  |dv r¿||t d¡ƒ}|t d¡|ƒ}t ||¡ d S d}tjt|d�� ||t d¡ƒ W d   ƒ n1 sÛw   Y  tjt|d�� |t d¡|ƒ W d   ƒ d S 1 sûw   Y  d S )Nrn   rk   ro   Ú20010102r[   i Êš;rl   c                 S   s   g | ]}t d | ƒ‘qS )r%   )Úchr©rs   Úir"   r"   r#   Ú
<listcomp>Ü   s    z?TestFrameComparisons.test_timestamp_compare.<locals>.<listcomp>)Údates1Údates2ÚintcolÚfloatcolÚ	stringcolg      à?r�   )rˆ   r‰   Ú20010109zL'(<|>)=?' not supported between instances of 'numpy.ndarray' and 'Timestamp'r`   ÚnatzJ'(<|>)=?' not supported between instances of 'numpy.ndarray' and 'NaTType')r   ÚpdÚ
date_ranger   rb   rc   Úintegersrd   ÚrangeÚNaTÚlocÚlenÚgetattrÚoperatorÚ	TimestamprU   rV   rf   rg   r}   )	r9   ÚleftÚrightrW   Úleft_fÚright_fr�   r€   ri   r"   r"   r#   Útest_timestamp_compareÈ   sF   ûÿ&	

ÿÿÿÿÿ"ÿz+TestFrameComparisons.test_timestamp_comparezcan't compare string and int)Úreasonc                 C   s\   t ddgddggƒ}t ddgddggƒ}||k}| ¡  ¡ r J ‚||k}| ¡  ¡ s,J ‚d S )Nz
1989-08-01é   r[   r   r   r   Úd)r   rJ   Úall)r9   rW   Úotherr€   r"   r"   r#   Útest_mixed_comparison   s   z*TestFrameComparisons.test_mixed_comparisonc                 C   s^   t t d¡ d¡ƒ}t ddgddgddggƒ}|dk}t ||¡ |ddgk}t ||¡ d S )Nr\   ©é   r[   FT©r[   r[   r[   )r   r   ÚarangeÚreshaperU   rV   )r9   rW   r�   r€   r"   r"   r#   Ú test_df_boolean_comparison_error  s   z5TestFrameComparisons.test_df_boolean_comparison_errorc                 C   sB   t tj d¡ d¡tdƒg d¢d�}| d ¡}| ¡  ¡ rJ ‚d S )Nr[   )é   r¬   r±   ©rP   ÚBÚCrz   )r   r   rb   rc   rd   r™   Ú__eq__rJ   ©r9   rW   r€   r"   r"   r#   Útest_df_float_none_comparison  s   ý
z2TestFrameComparisons.test_df_float_none_comparisonc                 C   s¼   t dddœdddœgƒ}|jdk}t || |jdd…d d …f ¡ t ||  |jdd…d d …f ¡ |jdk}t || |jdd…d d …f ¡ t ||  |jdd…d d …f ¡ d S )Nr¦   rQ   rq   r[   rR   r   )r   r   rU   rV   r›   r   )r9   rW   Úmask_aÚmask_br"   r"   r#   Útest_df_string_comparison(  s   
"$
"(z.TestFrameComparisons.test_df_string_comparisonN)rL   rM   rN   rZ   rj   rf   ÚmarkÚparametrizer   rb   rc   r˜   r–   r—   rƒ   r¤   Úxfailr   rª   r°   r·   rº   r"   r"   r"   r#   rO   V   s`    	þþûþþûþþûþþûáþ
-*þ
-ÿ

rO   c                   @   sž   e Zd Zej dg d¢¡dd„ ƒZej deje	g¡dd„ ƒZ
dd	„ Zd
d„ Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZdd„ ZdS )ÚTestFrameFlexComparisonsÚop)rˆ   r‰   r„   r…   r†   r‡   c                 C   sf  t j d¡ d¡}t j d¡ d¡}t|ƒ}t|ƒ}t  |jd ¡}| |¡j 	¡ s,J ‚| 
|¡j ¡ r6J ‚t||ƒ}tt|ƒ}t ||ƒ|||ƒ¡ |jdd …dd …f  ¡ }	||	ƒ}
|||	j|j|jd�ƒ}t |
|¡ t ||jƒ|||jƒ¡ t |dƒ||dƒ¡ d}t |t jƒ||t jƒ¡ tjt|d	�� ||ƒ W d   ƒ d S 1 s¬w   Y  d S )
Nr[   ©é   r¬   )r¦   r¬   r¬   r¦   rz   r   ú$Unable to coerce to Series/DataFramer`   )r   rb   rc   rd   r   ÚonesÚshaperˆ   Úvaluesr¨   r‰   rJ   r�   rž   rU   rV   r›   r=   Úreindexr   r   Únanrf   rg   rh   )r9   r¿   ÚdataÚ
other_datarW   r©   Úndim_5ÚfÚoÚpart_oÚrsÚxpri   r"   r"   r#   Útest_bool_flex_frame5  s*   


"ÿz-TestFrameFlexComparisons.test_bool_flex_frameÚboxc                 C   s"  t j d¡ d¡}t|ƒ}|t j d¡ d¡ƒ}|t j d¡ d¡ƒ}|j|dd�}| |¡}|j|dd�}| |¡}	t ||t	|ƒk¡ t ||	 ¡ t || ¡ t ||j
 |¡j
¡ t || t|ƒ¡¡ t ||jt	|ƒdd�¡ t ||jt|ƒdd�¡ |j|dd�}
| |¡}|j|dd�}| |¡}t ||t	|ƒk¡ t || ¡ t |
| ¡ t |
|j
 |¡j
¡ |j|dd�}| |¡}|j|dd�}| |¡}t ||t	|ƒk¡ t || ¡ t || ¡ t ||j
 |¡j
¡ t	t j d¡ d¡ƒ}t	t j d¡ d¡ƒ}d S )Nr[   rÀ   rÁ   r¬   r   ©rI   )r   rb   rc   rd   r   rˆ   r‰   rU   rV   r
   ÚTre   r„   r‡   r†   r…   )r9   rÑ   rÈ   rW   Úidx_serÚcol_serÚidx_eqÚcol_eqÚidx_neÚcol_neÚidx_gtÚcol_gtÚidx_leÚcol_leÚidx_geÚcol_geÚidx_ltÚcol_ltr"   r"   r#   Útest_bool_flex_seriesS  sB   





z.TestFrameFlexComparisons.test_bool_flex_seriesc                 C   s¶   t tj d¡ d¡ƒ}tj|jd< | |¡}|jd rJ ‚| |¡}|jd s)J ‚| 	|¡}|jd r5J ‚| 
|¡}|jd rAJ ‚| |¡}|jd rMJ ‚| |¡}|jd rYJ ‚d S )Nr[   rÀ   ©r   r   )r   r   rb   rc   rd   rÇ   r›   rˆ   r‰   r„   r…   r†   r‡   )r9   rW   rÎ   r"   r"   r#   Útest_bool_flex_frame_na~  s   





z0TestFrameFlexComparisons.test_bool_flex_frame_nac           	      C   sê  t  t jddt jg¡}t  dt jdd g¡}td|iƒ}td|iƒ}d ddg¡}tjt|d	�� | |¡ W d   ƒ n1 s?w   Y  tjt|d	�� |d  |d ¡ W d   ƒ n1 s_w   Y  tjt|d	�� |j	|j	k W d   ƒ n1 s|w   Y  | 
|¡}|j	 ¡ s�J ‚t  dt jd g¡}td|iƒ}tjt|d	�� | d¡ W d   ƒ n1 s³w   Y  tjt|d	�� |d  d¡ W d   ƒ n1 sÑw   Y  tjt|d	�� |j	dk W d   ƒ d S 1 sîw   Y  d S )
Nr¦   r\   y               @é   r   r{   z9'>' not supported between instances of '.*' and 'complex'z unorderable types: .*complex\(\)r`   )r   r    rÇ   r   r|   rf   rg   r}   r„   rÅ   r‰   r¨   )	r9   r!   Úarr2rW   Údf2ri   rÎ   Úarr3Údf3r"   r"   r#   Ú"test_bool_flex_frame_complex_dtype�  s>   þÿþþþ
þþ"þz;TestFrameFlexComparisons.test_bool_flex_frame_complex_dtypec                 C   s\   t ddtjdgitd�}t ddt ¡ dgitd�}| |¡}t dg d¢iƒ}t ||¡ d S )Nrt   rQ   rR   r;   )FTF)	r   r   rÇ   Úobjectr   Únowr‰   rU   rV   )r9   Údf1rç   r€   rX   r"   r"   r#   Ú!test_bool_flex_frame_object_dtype¶  s
   
z:TestFrameFlexComparisons.test_bool_flex_frame_object_dtypec                 C   s”   t tjgƒ}|tjk}|jd  ¡ du sJ ‚| tj¡}|jd  ¡ du s'J ‚|tjk}|jd  ¡ du s7J ‚| tj¡}|jd  ¡ du sHJ ‚d S )Nrã   FT)r   r–   rš   ÚilocÚitemrˆ   r‰   r¶   r"   r"   r#   Útest_flex_comparison_nat¾  s   

z1TestFrameFlexComparisons.test_flex_comparison_natÚopnamec                 C   sR   t g d¢g d¢dœƒ}d}t||ƒ|ƒj ¡ }t |tdgt t	¡gdd�¡ d S )N©r¦   r[   r¬   r   ru   r[   Úcount©r   Úname)
r   r�   ÚdtypesÚvalue_countsrU   Úassert_series_equalr
   r   r8   rH   )r9   rò   rW   Úconstr€   r"   r"   r#   Ú&test_df_flex_cmp_constant_return_typesÐ  s   ÿz?TestFrameFlexComparisons.test_df_flex_cmp_constant_return_typesc                 C   s`   t g d¢g d¢dœƒ}d}|jd d… }t||ƒ|ƒj ¡ }t |tdgt 	t
¡gdd�¡ d S )Nró   r   ru   r[   r   rô   rõ   )r   rï   r�   r÷   rø   rU   rù   r
   r   r8   rH   )r9   rò   rW   rú   Úemptyr€   r"   r"   r#   Ú,test_df_flex_cmp_constant_return_types_emptyÛ  s   ÿzETestFrameFlexComparisons.test_df_flex_cmp_constant_return_types_emptyc                 C   sŒ   t j g d¢¡}t||dœƒ}tddgƒ}|j|dd�}tddgddgdœƒ}t ||¡ tddgdd	gd
�}|j|dd�}t ||¡ d S )Nró   ©rP   r³   r   rÒ   Fr¦   r[   rP   r³   ©r   )r–   ÚIntervalIndexÚfrom_breaksr   r
   rˆ   rU   rV   )r9   ÚiirW   ÚserrY   r�   Úser2Úres2r"   r"   r#   Ú-test_df_flex_cmp_ea_dtype_with_ndarray_seriesç  s   zFTestFrameFlexComparisons.test_df_flex_cmp_ea_dtype_with_ndarray_seriesN)rL   rM   rN   rf   r»   r¼   rÐ   r   r    r
   râ   rä   rê   rî   rñ   rû   rý   r  r"   r"   r"   r#   r¾   3  s    

*'


r¾   c                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	g d
¢¡dd„ ƒZ
ej 	deddƒ¡dd„ ƒZdd„ Zej 	d	g d¢¡dd„ ƒZdd„ Zej 	dddg¡dd„ ƒZdd„ Zd d!„ Zd"d#„ Zej 	d	g d$¢¡d%d&„ ƒZej 	d'd(d)g¡d*d+„ ƒZd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd)S )4ÚTestFrameFlexArithmeticc                    st   t  d¡}t|ƒ‰tˆˆdœƒ‰ ˆ jˆdd�}t‡ ‡fdd„ˆ jD ƒƒ}t ||¡ ˆ jˆjdd�}t ||¡ d S )Nr¬   rþ   r   rÒ   c                    s   i | ]	}|ˆ | ˆ “qS r"   r"   rr   ©rW   r  r"   r#   rx     ó    z?TestFrameFlexArithmetic.test_floordiv_axis0.<locals>.<dictcomp>)	r   r®   r
   r   Úfloordivr   rU   rV   rÅ   )r9   r!   r€   r�   Úresult2r"   r  r#   Útest_floordiv_axis0û  s   
z+TestFrameFlexArithmetic.test_floordiv_axis0c                 C   sf   t jddd�}t jddd�}t|ƒ}t||dœƒ}|j|dd�}t|| || dœƒ}t ||¡ d S )Nú
2016-01-01rk   ro   Ú1©r   r¦   r   rÒ   )r–   r—   Útimedelta_ranger
   r   ÚaddrU   rV   )r9   ÚdtiÚtdiÚtserrW   r€   r�   r"   r"   r#   Útest_df_add_td64_columnwise
  s   z3TestFrameFlexArithmetic.test_df_add_td64_columnwisec                 C   s†   t jddd�}tg d¢dd�}t||dœƒ}t||dœƒ}t jdd	� ¡ }|j||d
�}ttg d¢dd�|d dœƒ}t ||¡ d S )Nr  r¬   ro   )z1 Dayrš   z2 Daysútimedelta64[ns]r;   rþ   r¦   )Údays©Ú
fill_value)z
2016-01-02z
2016-01-03z
2016-01-05zdatetime64[ns]r[   )	r–   r—   r
   r   Ú	TimedeltaÚto_timedelta64r  rU   rV   )r9   r  r  rW   r©   Úfillr€   r�   r"   r"   r#   Ú$test_df_add_flex_filled_mixed_dtypes  s   ÿüÿz<TestFrameFlexArithmetic.test_df_add_flex_filled_mixed_dtypesc                    s|   |‰ ‡ fdd„}t |ˆ ƒd| ƒ}||d| ƒ}t ||¡ t |ˆ ƒd| ƒ}||d| ƒ}t ||¡ t|dd id� d S )Nc                    s2   ˆ   d¡rttˆ  dd¡ƒ|| ƒS ttˆ ƒ| |ƒS )NÚ__rÚ__)Ú
startswithr�   rž   Úreplaceru   ©r¿   r"   r#   rË   .  s   
z8TestFrameFlexArithmetic.test_arith_flex_frame.<locals>.fr[   r´   r;   )r�   rU   rV   r   )r9   Úall_arithmetic_operatorsÚfloat_frameÚmixed_float_framerË   r€   r�   r"   r"  r#   Útest_arith_flex_frame(  s   z-TestFrameFlexArithmetic.test_arith_flex_framer¿   )Ú__add__Ú__sub__Ú__mul__c           
      C   sö   t t|ƒ}t ||ƒd| ƒ}||d| ƒ}d }	|dv r!dd dœ}	n|dv r)dd i}	tjr9|dkr9d| d j|	d< t ||¡ t||	d	� t ||ƒd| ƒ}||d| ƒ}t ||¡ t|dd id	� t ||ƒd| ƒ}||d| ƒ}t ||¡ d S )
Nr[   )r(  Úuint64)r³   r´   )r'  r)  r´   r   rP   r;   )	r�   rž   r.   ÚUSE_NUMEXPRr8   rU   rV   r   r   )
r9   r¿   Ú	int_frameÚmixed_int_framer%  r3   rË   r€   r�   r8   r"   r"   r#   Útest_arith_flex_frame_mixed>  s&   
	z3TestFrameFlexArithmetic.test_arith_flex_frame_mixedÚdimr¬   r\   c                 C   sX   |}t  d| ¡}d}tjt|d�� t||ƒ|ƒ W d   ƒ d S 1 s%w   Y  d S )N)r¦   rÂ   r`   )r   rÃ   rf   rg   rh   r�   )r9   r#  r$  r/  r¿   r!   ri   r"   r"   r#   Útest_arith_flex_frame_raiseg  s   "ÿz3TestFrameFlexArithmetic.test_arith_flex_frame_raisec                 C   sþ   |  d¡}t ||d ¡ |  |d d… ¡}| ¡ tj }t ||¡ |d d…   |¡}| ¡ tj }t ||¡ tjtdd�� |j |j	d dd� W d   ƒ n1 sUw   Y  tjtdd�� |j |j	d ddd� W d   ƒ d S 1 sxw   Y  d S )	Nr¦   r   r  r`   r¬   r  r   ©rI   r  )
r  rU   rV   Ú
sort_indexr   rÇ   rf   rg   ÚNotImplementedErrorrï   )r9   r$  Ú	const_addr€   r�   r"   r"   r#   Útest_arith_flex_frame_cornerr  s   
ÿ"ÿz4TestFrameFlexArithmetic.test_arith_flex_frame_corner)r  ÚsubÚmulÚmodc                 C   sb   |}|  d¡}|d }t||ƒ}tt|ƒ}t ||ƒ|||ƒ¡ t ||dd�||j|ƒj¡ d S )Nr   r   r   rÒ   )Úxsr�   rž   rU   rV   rÓ   )r9   r$   r¿   rW   Úrowrt   rË   r"   r"   r#   Útest_arith_flex_series_ops…  s   


"z2TestFrameFlexArithmetic.test_arith_flex_series_opsc                 C   sh   |}|  d¡}|d }t |j|d d�|| ¡ t | |¡|| ¡ t |j|dd�|j| j¡ d S )Nr   r   rÒ   r   )r9  rU   rV   r  ÚdivrÓ   )r9   r$   rW   r:  rt   r"   r"   r#   Útest_arith_flex_series‘  s   
"z.TestFrameFlexArithmetic.test_arith_flex_seriesr8   Úint64Úfloat64c                 C   sX   t t d¡ d¡|d�}t tjtjgddgddggƒ}|j|d dd	�}t ||¡ d S )
Nr\   r«   r;   r   ç      ø?g      ô?r   r   rÒ   )	r   r   r®   r¯   rÇ   Úinfr<  rU   rV   )r9   r8   rW   r�   r€   r"   r"   r#   Ú#test_arith_flex_series_broadcasting�  s   z;TestFrameFlexArithmetic.test_arith_flex_series_broadcastingc                 C   sº   t g td�}tddgd�}tddgddggddgd�}tjtd	d
�� |j|dd� W d   ƒ n1 s4w   Y  tjtd	d
�� |j|d d dd� W d   ƒ d S 1 sVw   Y  d S )Nr;   rP   r³   r_   r¦   r[   r¬   r]   r  r`   ÚEr  r1  )r
   rë   r   rf   rg   r3  r  r6  )r9   Úser_len0Údf_len0rW   r"   r"   r#   Útest_arith_flex_zero_len_raises¥  s   ÿ"ÿz7TestFrameFlexArithmetic.test_arith_flex_zero_len_raisesc                 C   s^   t jddt jdddgdd�}td|itd	ƒd
�}| d¡ d¡}|jddd�}t ||¡ d S )Nr   r¦   r¬   r]   rÁ   Úfloatr;   rQ   r\   rÿ   r[   r  )	r   r    rÇ   r   r™   Úfillnar  rU   rV   )r9   ÚdatrW   rX   rY   r"   r"   r#   Útest_flex_add_scalar_fill_value²  s
   z7TestFrameFlexArithmetic.test_flex_add_scalar_fill_valuec                 C   sV   t g d¢g d¢d�}t g d¢g d¢d�}t g d¢g d¢d�}| |¡}t ||¡ d S )N)r¦   r[   r¬   r]   rÁ   )r¦   r[   r¦   r[   r¬   rÿ   ró   )r   r[   r   r[   r[   )r¦   r¦   r[   r[   r¬   )r   r6  rU   rV   )r9   rí   rç   r�   r€   r"   r"   r#   Ú'test_sub_alignment_with_duplicate_index»  s
   
z?TestFrameFlexArithmetic.test_sub_alignment_with_duplicate_index)r'  r)  r(  Ú__truediv__c                 C   sb   t t d¡tj d¡ d¡dœƒ}t||ƒ|ƒ}ddg|_ddg|_t||ƒ|ƒ}t ||¡ d S )Nrk   r[   rþ   rP   )	r   r   r®   rb   rc   r�   r   rU   rV   )r9   r¿   rW   r�   r€   r"   r"   r#   Ú&test_arithmetic_with_duplicate_columnsÃ  s   "

z>TestFrameFlexArithmetic.test_arithmetic_with_duplicate_columnsÚlevelr   Nc                 C   s’   t g d¢g d¢dœƒ}|j d¡|_t g d¢g d¢dœƒ}|j ddg¡|_|j||d�}t g d¢g d¢dœƒ}|j ddg¡|_t ||¡ d S )	N©r   r¦   r[   ró   rþ   ÚL1©r   r   r   ))rP   r´   )rP   ÚDÚL2)rN  )r   r   Ú	set_namesr  rU   rV   )r9   rN  rí   rç   r€   r�   r"   r"   r#   Útest_broadcast_multiindexÍ  s   z1TestFrameFlexArithmetic.test_broadcast_multiindexc                 C   s®   t g d¢g d¢dœtjdgdgg d¢gg d¢d�d	�}td
gtjdgdggddgd�d	�}t g d¢g d¢dœtjdgdgg d¢gg d¢d�d	�}|j|dd�}t ||¡ d S )Nró   ©r¬   r]   rÁ   ©iÚ  iä  r   r   rO  ©Úscenr8  Úid©Únamesrÿ   çš™™™™™Ù?r8  rY  )çffffffö?ç333333@ç333333@)r`  çš™™™™™@gš™™™™™@r   rÒ   ©r   r	   Úfrom_productr
   r  rU   rV   ©r9   rW   Úseriesr�   r€   r"   r"   r#   Ú test_frame_multiindex_operationsÜ  s$   ÿþþÿþz8TestFrameFlexArithmetic.test_frame_multiindex_operationsc                 C   s¬   t dgdgdœtjdgdggddgd�d	�}tg d
¢tjdgdgg d¢gg d¢d�d	�}t g d¢g d¢dœtjdgdgg d¢gg d¢d�d	�}|j|dd�}t ||¡ d S )Nr¦   r¬   rW  r   r   rY  r8  r[  rÿ   )ç      $@g      4@g      >@rO  rX  )g      &@é   g      ?@)g      *@g      7@g     €@@r   rÒ   rb  rd  r"   r"   r#   Ú<test_frame_multiindex_operations_series_index_to_frame_indexô  s$   þÿþÿþzTTestFrameFlexArithmetic.test_frame_multiindex_operations_series_index_to_frame_indexc              	   C   s¬   t g d¢g d¢dœtjdgdgg d¢gg d¢d�d	�}td
gtjdgdggddgd�d	�}t tjtjdœtjdddddtjfgg d¢d�d	�}|j|dd�}t 	||¡ d S )Nró   rV  rW  r   r   rO  rX  r[  rÿ   r]  r   r8  rY  ©r   r   r   ©r   r   r¦   )r   r   r[   r   rÒ   )
r   r	   rc  r
   r   rÇ   Úfrom_tuplesr  rU   rV   rd  r"   r"   r#   Ú)test_frame_multiindex_operations_no_align  s.   ÿþþ
üùþzATestFrameFlexArithmetic.test_frame_multiindex_operations_no_alignc                 C   s¢   t g d¢g d¢dœtjg d¢g d¢d�d�}tdgtjd	gd
ggddgd�d�}t ddtjgddtjgdœtjg d¢g d¢d�d�}|j|dd�}t 	||¡ d S )Nró   rV  rW  )rj  rk  )r   r   r[   rX  r[  rÿ   r]  r   r   r8  rY  r^  r_  r`  ra  r   rÒ   )
r   r	   rl  r
   rc  r   rÇ   r  rU   rV   rd  r"   r"   r#   Ú+test_frame_multiindex_operations_part_align)  s(   úþþúþzCTestFrameFlexArithmetic.test_frame_multiindex_operations_part_align)rL   rM   rN   r  r  r  r&  rf   r»   r¼   r.  r™   r0  r5  r;  r=  rB  rF  rJ  rK  rM  rU  rf  ri  rm  rn  r"   r"   r"   r#   r  ú  s4    
(



	
	
r  c                   @   s.  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j dddg¡dd„ ƒZe
j dddgde ddg¡eddƒeddgƒg¡dd„ ƒZdd„ Zdd„ Zdd „ Ze
j d!d"d#d$d%d&d'e d(d)¡d*fe d(d)¡d+fg¡e
jjd,ejejejejejejgd-d.„ d/�d0d1„ ƒƒZd2d3„ Z d4d5„ Z!d6S )7ÚTestFrameArithmeticc                 C   sJ   t ddgdd�}tddgddggƒ}|| }t||dœƒ}t ||¡ d S )	Nrš   r  r;   r¦   r[   r¬   r]   r  ©r
   r   rU   rV   )r9   r  rW   r€   r�   r"   r"   r#   Útest_td64_op_nat_castingL  s
   z,TestFrameArithmetic.test_td64_op_nat_castingc                 C   s¦   t  d¡ dd¡}t|ddgg d¢d�}|dgd d …f }|jd|jd fks)J ‚tdd	gd	dgdd
gg|j|j|jd�}|| }t 	||¡ || }t 	||¡ d S )Nr\   r¬   r[   TFr²   r   r¦   r]   r±   ©r   r   r8   ©
r   r®   r¯   r   rÄ   r   r   r8   rU   rV   )r9   r!   rW   Úrowliker�   r€   r"   r"   r#   Ú'test_df_add_2d_array_rowlike_broadcastsV  ó   úz;TestFrameArithmetic.test_df_add_2d_array_rowlike_broadcastsc                 C   s¦   t  d¡ dd¡}t|ddgg d¢d�}|d d …dgf }|j|jd	 dfks)J ‚tddgd
dgddgg|j|j|jd�}|| }t 	||¡ || }t 	||¡ d S )Nr\   r¬   r[   TFr²   r   r¦   r   rÁ   é	   rk   rr  rs  )r9   r!   rW   Úcolliker�   r€   r"   r"   r#   Ú'test_df_add_2d_array_collike_broadcastsk  rv  z;TestFrameArithmetic.test_df_add_2d_array_collike_broadcastsc                 C   sâ   |}|r|dv rt  |¡ t d¡ dd¡}t|ddgg d¢d�}|d	gd d …f }|jd	|jd	 fks6J ‚t|jd
 |ƒ| 	¡ ƒt|jd |ƒ| 	¡ ƒt|jd |ƒ| 	¡ ƒg}t||j
|jd�}	t||ƒ|ƒ}
t |
|	¡ d S )N©Ú__rmod__Ú__rfloordiv__r\   r¬   r[   TFr²   r   r¦   rP   r³   r´   )ÚtdÚ&mark_array_manager_not_yet_implementedr   r®   r¯   r   rÄ   r�   r›   Úsqueezer   r   rU   rV   )r9   r0   r#  Úusing_array_managerrò   r!   rW   rt  Úexvalsr�   r€   r"   r"   r#   Ú)test_df_arith_2d_array_rowlike_broadcasts€  s   
ýz=TestFrameArithmetic.test_df_arith_2d_array_rowlike_broadcastsc                 C   sð   |}|r|dv rt  |¡ t d¡ dd¡}t|ddgg d¢d�}|d d …d	gf }|j|jd
 d	fks6J ‚t|d |ƒ| ¡ ƒt|d |ƒ| ¡ ƒdœ}d }	|dv r_tj	dd„ | 
¡ D ƒŽ }	t||j|j|	d�}
t||ƒ|ƒ}t ||
¡ d S )Nrz  r\   r¬   r[   TFr²   r   r¦   r   )TFc                 s   s   � | ]}|j V  qd S r6   )rÅ   ©rs   rv   r"   r"   r#   Ú	<genexpr>´  s   € zPTestFrameArithmetic.test_df_arith_2d_array_collike_broadcasts.<locals>.<genexpr>rr  )r}  r~  r   r®   r¯   r   rÄ   r�   r  Úcommon_typerÅ   r   r   rU   rV   )r9   r0   r#  r€  rò   r!   rW   rx  r�  r8   r�   r€   r"   r"   r#   Ú)test_df_arith_2d_array_collike_broadcasts›  s    
þz=TestFrameArithmetic.test_df_arith_2d_array_collike_broadcastsc                 C   sh   t ddgddggƒ}|d }|j dd„ ¡}|dk ¡ sJ ‚d| }|j dd„ ¡}|dk ¡ s2J ‚d S )NFTr¦   c                 S   ó   | j S r6   ©Úkind©rv   r"   r"   r#   Ú<lambda>Ã  ó    z:TestFrameArithmetic.test_df_bool_mul_int.<locals>.<lambda>r�   c                 S   r‡  r6   rˆ  rŠ  r"   r"   r#   r‹  Ç  rŒ  )r   r÷   Úapplyr¨   )r9   rW   r€   Úkindsr"   r"   r#   Útest_df_bool_mul_int»  s   z(TestFrameArithmetic.test_df_bool_mul_intc                 C   sD   t g d¢g d¢dœƒ}|| }t g d¢g d¢dœƒ}t ||¡ d S )Nr   ró   rþ   )ÚaaÚbbÚcc©r[   r]   r\   ©r   rU   rV   )r9   r    r€   r�   r"   r"   r#   Útest_arith_mixedÊ  s   z$TestFrameArithmetic.test_arith_mixedrt   rP   r³   c                 C   sB   t ddgddgdœƒ}||dƒ| }||| dƒ}t ||¡ d S )Ngš™™™™™ñ?gffffff
@g      @g333333Àrþ   r¦   )r   rU   rù   )r9   Úall_arithmetic_functionsrt   rW   r€   r�   r"   r"   r#   Útest_arith_getitem_commuteÑ  s   z.TestFrameArithmetic.test_arith_getitem_commuterÅ   r¦   r[   ©r¦   r[   r¬   c                 C   sD   t ddgddgdœƒ}t ddgddgdœƒ}|| }t ||¡ d S )Nr¦   rþ   r[   r¬   r”  )r9   rÅ   rW   r�   r€   r"   r"   r#   Ú&test_arith_alignment_non_pandas_objectØ  s   z:TestFrameArithmetic.test_arith_alignment_non_pandas_objectc                 C   s8  t tjdddd� dd¡g d¢g d¢d�}| d	¡j}t |j| |j|jd
�}t 	|| |¡ t |jj
| j
|j|jd
�}t 	|j|dd�|¡ t|d ƒ}t |j| |j|jd
�}t 	|| |¡ t |jj
| j
|j|jd
�}t 	|j|dd�|¡ tj d¡ |j¡}t |j| |j|jd
�}t 	| |¡|¡ d S )Nr¦   rk   Úf8r;   r¬   r   r   r   r   rz   r   rÒ   r   r   r[   )r   r   r®   r¯   r9  rÅ   r   r   rU   rV   rÓ   r  re   rb   rc   rÄ   )r9   rW   Úval1ÚaddedÚval2Úval3r"   r"   r#   Útest_arith_non_pandas_objectâ  s$   ýz0TestFrameArithmetic.test_arith_non_pandas_objectc                    sn   |‰t  t jddd�¡}ddg}t|g|d�}d‰ t|ˆƒˆ ƒ}t‡ ‡fdd	„|D ƒg|d�}t ||¡ d S )
Nç        r   )ÚstartÚendr¦   r[   r_   rk   c                    s   g | ]	}t |ˆƒˆ ƒ‘qS r"   )r�   )rs   Ún©Únumr¿   r"   r#   rŽ     r	  zVTestFrameArithmetic.test_operations_with_interval_categories_index.<locals>.<listcomp>)r–   ÚCategoricalIndexÚinterval_ranger   r�   rU   rV   )r9   r#  ÚindrÈ   rW   r€   r�   r"   r¤  r#   Ú.test_operations_with_interval_categories_indexü  s   zBTestFrameArithmetic.test_operations_with_interval_categories_indexc                 C   sˆ   t t d¡t d¡gt d¡t d¡gdœddgdd	�}|dg }|| }t t d
¡t d
¡gtjtjgdœddgd�}t ||¡ d S )NÚ2019Ú2020Ú2018Ú2021)rQ   rR   rQ   rR   úM8[ns]©r   r8   r   r_   )r   r–   rŸ   r  r   rÇ   rU   rV   )r9   rW   rç   r€   r�   r"   r"   r#   Útest_frame_with_frame_reindex  s   þú
 þz1TestFrameArithmetic.test_frame_with_frame_reindexzvalue, dtype)r¦   Úi8)r   rš  )ì            rš  )y              ð?Ú
complex128)r²  r³  )TrH   é   Únsú<m8[ns]ú<M8[ns]r¿   c                 C   r‡  r6   )rL   rŠ  r"   r"   r#   r‹  2  rŒ  zTestFrameArithmetic.<lambda>)r*   c              
   C   sž  t jdft jdft jdft jdfh}t||ƒ}td|j|jgi|jd�}t jdft j	dft jdft jdft jdft jdft jdft j
dft j	dfh	}||f|v rÇd }	|dkr[|t jksd|dkrg|t jkrgd }
n#|dkrnd}
n|t j
u rƒd}
|dkr‚tjr‚|d	kr‚t}	nd
|j› d�}
tjt|
d��, t |	¡� |||jƒ W d   ƒ n1 s¨w   Y  W d   ƒ d S W d   ƒ d S 1 sÀw   Y  d S ||f|v �r$|t jt jfv �rtjrá|d	krát}	nd }	t |	¡� |||jƒ W d   ƒ d S 1 súw   Y  d S d}
tjt|
d�� |||jƒ W d   ƒ d S 1 �sw   Y  d S t d ¡� |||jƒj}|||ƒj}W d   ƒ n	1 �sBw   Y  t ||¡ d S )NrH   rP   r;   r·  r¶  r³  z3ufunc 'remainder' not supported for the input typesz-numpy boolean subtract, the `-` operator, is r   zcannot perform __z7__ with this index type: (DatetimeArray|TimedeltaArray)r`   z+operator '.*' not implemented for .* dtypes)rž   ÚtruedivÚpowr  r7  r4   r   r7   r8   r8  r6  r.   r+  ÚUserWarningrL   rf   rg   r}   rU   Úassert_produces_warningr3  r÷   rù   )r9   r¿   r7   r8   r3   ÚskipÚelemrW   ÚinvalidÚwarnri   r€   r�   r"   r"   r#   Útest_binop_other  st   ü
÷
ÿ€ÿÿÿ"ÿ"ÿ$ÿþz$TestFrameArithmetic.test_binop_otherc                 C   s    t  tddgƒtddgƒg¡}t  tddgdd�tddgƒg¡}tddgddgg|d�}tddgddgg|d�}|| }tddgddgg|d�}t ||¡ d S )	Nr¦   r[   r¬   r]   ÚInt8r;   r_   r   ©r	   Úfrom_arraysr
   r   rU   rV   ©r9   ÚmidxÚmidx2r    r¡   r€   r�   r"   r"   r#   Ú*test_arithmetic_midx_cols_different_dtypesz  ó   "z>TestFrameArithmetic.test_arithmetic_midx_cols_different_dtypesc                 C   s    t  tddgƒtddgƒg¡}t  tddgdd�tddgƒg¡}tddgddgg|d�}tddgddgg|d�}|| }tddgddgg|d�}t ||¡ d S )	Nr¦   r[   r¬   r]   rÁ  r;   r_   éÿÿÿÿrÂ  rÄ  r"   r"   r#   Ú:test_arithmetic_midx_cols_different_dtypes_different_order„  rÈ  zNTestFrameArithmetic.test_arithmetic_midx_cols_different_dtypes_different_orderN)"rL   rM   rN   rq  ru  ry  r‚  r†  r�  r•  rf   r»   r¼   r—  r   r    r™   r   r™  rŸ  r©  r°  Útimedelta64Ú
datetime64rž   r  r6  r7  r¸  r8  r¹  rÀ  rÇ  rÊ  r"   r"   r"   r#   ro  K  sV    
 
*ÿ
øþúöF
ro  c                  C   sä   t tj d¡ d¡ dd¡ddgd�} ttjd�}| | }t | jtj	 | j
d�}t ||¡ tjtdd	�� | |k W d   ƒ n1 sDw   Y  t | j d
¡| j
d�}tjtdd	�� ||k W d   ƒ d S 1 skw   Y  d S )Nr[   r\   r¬   rP   r³   r_   r;   znot alignedr`   r®  )r   r   rb   rc   rd   r¯   r
   r?  rÅ   rÇ   r   rU   rV   rf   rg   rh   rG   )rW   r  r€   r�   rç   r"   r"   r#   Ú,test_frame_with_zero_len_series_corner_cases�  s   ÿ
þ
"þrÍ  c                  C   sB   t ddgtjd�} tddgddgd�}| | }| }t ||¡ d S )NrP   r³   r¯  r¦   r[   rÿ   )r   r   r?  r
   rU   rV   )rW   r  r€   r�   r"   r"   r#   Ú,test_zero_len_frame_with_series_corner_cases¦  s
   rÎ  c                  C   sD   dt ddtjgƒi} t| ƒ}|jdd�}t g d¢ƒ}t ||¡ d S )NÚOnerP   ç333333ó?r¦   rÒ   )rP   rÐ  r   )r
   r   rÇ   r   ÚsumrU   rù   )rÈ   rW   r€   r�   r"   r"   r#   Ú+test_frame_single_columns_object_sum_axis_1°  s   ÿrÒ  c                   @   sÔ  e Zd Zdd„ Zdd„ Zej dej	ej
ejejg¡dd„ ƒZej dd	d
g¡ej d¡dd„ ƒƒZej dg d¢¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dejejejejejejg¡dd„ ƒZd d!„ Zd"d#„ Zd$d%„ Z d&d'„ Z!d(d)„ Z"ej dd*d+ej#d,ejj$e%d-d.�d/�d0d1d2d3d4d5d6d7g¡d8d9„ ƒZ&ej d:g d;¢d;e'j(g d;¢e'j)d<�e*d=d>ƒg¡d?d@„ ƒZ+ej d:d=dAgdBe' (d=dAg¡e*d=dCƒg¡dDdE„ ƒZ,dFdG„ Z-dHdI„ Z.dJdK„ Z/dLdM„ Z0dNS )OÚTestFrameArithmeticUnsortedc                 C   sv   t jddddd�}ttj d¡ t|ƒ¡|dgd�}| d	¡}|| }|j	j
tju s,J ‚|| }|j	j
tju s9J ‚d S )
Nz1/1/2011rk   Úhú
US/Eastern)rp   ÚfreqÚtzr[   r   rz   zEurope/Moscow)r–   r—   r   r   rb   rc   rd   rœ   Ú
tz_convertr   r×  r   Úutc)r9   ÚrngrW   Ú	df_moscowr€   r"   r"   r#   Ú*test_frame_add_tz_mismatch_converts_to_utcÂ  s   ÿ
zFTestFrameArithmeticUnsorted.test_frame_add_tz_mismatch_converts_to_utcc                 C   s¨   t jdddd�}ttj d¡ t|ƒdf¡|d�}||d d d…  }|| }tj|j	dd d…< t
 ||¡ |d d d… }|| tj d¡ t|ƒ¡¡ }t
 ||¡ d S )	Nz1/1/2000z1/1/2010ÚY)rÖ  r[   r¬   rÿ   r¦   )r–   Úperiod_ranger   r   rb   rc   rd   rœ   rÇ   rï   rU   rV   ÚtakeÚpermutation)r9   rÚ  Útsr€   r�   Úhalfr"   r"   r#   Útest_align_frameÏ  s   ÿ z,TestFrameArithmeticUnsorted.test_align_framer¿   c                 C   sd  t g d¢g d¢dœtd�}d}tjt|d�� | tj¡}W d   ƒ n1 s'w   Y  ||dƒ}||dƒ t¡}tj|t	 
|¡< t ||¡ |||ƒ}|||ƒ t¡}tj|t	 
|¡< t ||¡ d}tjt|d�� ||| d¡ƒ}W d   ƒ n1 s~w   Y  t ||¡ d}tjt|d�� || d¡|ƒ}W d   ƒ n1 s¥w   Y  t ||¡ d S )	N)r[   r   é{   N)r¦   r[   r¬   r]   )Úcol1Úcol2r;   zDowncasting object dtype arraysr`   r¬   rå   )r   rë   rU   r»  ÚFutureWarningrH  r   rÇ   rE   r–   ÚisnarV   )r9   r¿   rW   ri   Úfilledr€   r�   r"   r"   r#   Útest_operators_none_as_naÞ  s2   ÿÿ

ÿÿz5TestFrameArithmeticUnsorted.test_operators_none_as_nazop,res)rµ   F)Ú__ne__Tz ignore:elementwise:FutureWarningc                 C   s*   t ||ƒdƒ}t| ¡  ¡ ƒ|u sJ ‚d S )NrQ   )r�   rH   r¨   )r9   r¿   rY   r$  r€   r"   r"   r#   Ú%test_logical_typeerror_with_non_validÿ  s   zATestFrameArithmeticUnsorted.test_logical_typeerror_with_non_valid)r  r6  r7  r<  r¸  c                    s  t jtdƒg d¢g d¢gg d¢d�}tt d¡ dd¡|g d	¢d
� ¡ ‰ tj	‰t
t|d ƒ‰ˆd u r3d S tg d¢g d¢ƒ}t
ˆ |ƒ|ddd�}t ‡ ‡‡fdd„| ¡ D ƒ¡ ¡ }t ||¡ tddgddgƒ}t
ˆ |ƒ|ddd�}t ‡ ‡‡fdd„| ¡ D ƒ¡ ˆ ¡ ¡ }t ||¡ d S )NÚabcr   ró   )ÚfirstÚsecondÚthirdr[  éQ   é   r¬   )Úvalue1Úvalue2Úvalue3rz   )r   rg  g      Y@rð  r   )rN  rI   c                    s:   g | ]\}}ˆˆ j ˆd d …d d …|f d d …f |ƒ‘qS r6   ©r›   ©rs   r�   Úv©rW   ÚidxÚopar"   r#   rŽ      s   : zETestFrameArithmeticUnsorted.test_binary_ops_align.<locals>.<listcomp>r   rg  r   r   rï  c                    s4   g | ]\}}ˆˆ j ˆd d …|f d d …f |ƒ‘qS r6   rö  r÷  rù  r"   r#   rŽ   (  s   4 )r	   rc  re   r   r   r®   r¯   r2  r–   Ú
IndexSlicer�   rž   r
   ÚconcatÚitemsrU   rV   Úreindex_like)r9   r¿   r   rv   r€   r�   r"   rù  r#   Útest_binary_ops_align  s<   þýüÿþýz1TestFrameArithmeticUnsorted.test_binary_ops_alignc                 C   s(  t  ddgddgg¡}ttjddd�|d�}td	d
dœƒ}| ¡ }ddg|j_| ¡ }d|j	_
|j|d	d	d�}|j|d	d	d�}|j|d	d	d�}|j|d	d	d�}	|j|d	dd�}
|j|d	dd�}ttjg d¢g d¢gdd�|d�}||fD ]}t ||¡ qtddg|j_||	|
|fD ]}t ||¡ q‰d S )NrP   r³   r   r   )r[   r]   r>  r;   r_   r¦   r[   rq   Úlvl0Úlvl1)rI   rN  )r¦   r[   r¦   r[   )r	   rc  r   r   rÃ   r
   r=   r   r\  r   rö   r7  r    rU   rV   )r9   rÅ  rW   Úsrç   Ús2Úres1r  Úres3Úres4Úres5Úres6rX   rY   r"   r"   r#   Ú&test_binary_ops_align_series_dataframe.  s,   ÿÿzBTestFrameArithmeticUnsorted.test_binary_ops_align_series_dataframec                 C   sŒ   t jg d¢dd�}| d¡d d… }| d¡dd … }tdddgi|d	�}tdddgi|d	�}tdtjd
tjgi|d	�}t || |¡ d S )N)z
2011-01-01z
2011-01-02z
2011-01-03ÚUTC)r×  z
Asia/Tokyor[   rÕ  r¦   rP   rÿ   r¬   )r–   ÚDatetimeIndexrØ  r   r   rÇ   rU   rV   )r9   ÚbaseÚidx1Úidx2rí   rç   rX   r"   r"   r#   Ú test_add_with_dti_mismatched_tzsM  s   z<TestFrameArithmeticUnsorted.test_add_with_dti_mismatched_tzsc                 C   s  |  |jd d d… ¡}|d= tj|jd |jd …df< || }|d  ¡ j}|d d  ¡ }t |d  ¡ |j| ¡ tj|j|j 	|¡ < t |d |j|d j ¡ t 
|d   |j¡d d… ¡ ¡ sgJ ‚t 
|d ¡ ¡ srJ ‚|| }t |j|j¡ || }	t 
|d ¡ ¡ s�J ‚t 
|	d ¡ ¡ s˜J ‚|tƒ  }
t 
|
j¡ ¡ s§J ‚tƒ | }t 
|j¡ ¡ s¶J ‚tƒ tƒ  }|jsÁJ ‚|j |jd d d… d�}t || |d ¡ || }t|d	d
� || }t|d	d
� || }t|dd id
� || }t|d	d
� d S )Nr[   rR  r]   r´   rP   rÁ   rÉ  r_   r?  r;   )rÆ   r   r   rÇ   r›   Údropnar=   rU   rù   ÚisinÚisnanr¨   Úassert_index_equalr   rÅ   rü   r   rV   r   )r9   r$  r%  r-  Ú
frame_copyrœ  ÚindexerrX   Ú
self_addedÚ	added_revÚ
plus_emptyÚ
empty_plusÚempty_emptyÚreverser"   r"   r#   Útest_combineFrameW  s@   &


z-TestFrameArithmeticUnsorted.test_combineFramec           
      C   s\  |  |jd ¡}|| }| ¡ D ]\}}t ||| ||  ¡ q| ¡ }d|d< t|ƒ}|| }	| ¡ D ]\}}t |	| |||  ¡ q5d|	v sLJ ‚t |	d ¡ 	¡ sWJ ‚|| }t 	|j
|jk¡sfJ ‚|| d¡ }t|dd id� || d¡ }t|dd id� |d|  d	¡ }t|d	d
d	d	dœd� |d|  d¡ }t|dd
dd	dœd� d S )Nr   r¦   rC  Úfloat32r´   r;   Úfloat16r%   r>  r?  )rP   r³   r´   rR  Úint32)r9  r   rþ  rU   rù   Úto_dictr
   r   r  r¨   r÷   r8   rE   r   r   )
r9   r$  r%  r-  re  rœ  Úkeyr  Úlarger_seriesÚlarger_addedr"   r"   r#   Útest_combine_series”  s4   ÿ
ÿz/TestFrameArithmeticUnsorted.test_combine_seriesc                 C   sv  |d }|j |dd�}| ¡ D ]0\}}|| }tj|| |dd� || j|ks*J ‚|j|jkr8|jdks7J ‚q|jd u s?J ‚q|d d… }|j |dd�}t |j|j¡ |d d… }	|j |	dd�}
t ||
¡ |j |d d… dd�}tt	j
|j|jd�}t ||¡ |d d… j |dd�}tt	j
|j|jd�}t ||¡ |d d	… jg d
�}|j|dd�}t|ƒt|ƒks¹J ‚d S )NrP   r   rÒ   F)Úcheck_nameséûÿÿÿr   rz   r¦   r_   )r  rþ  rU   rù   rö   r  r   rV   r   r   rÇ   r   rÆ   r7  rœ   )r9   Údatetime_framerá  rœ  r"  rt   r€   Úsmaller_frameÚsmaller_addedÚ
smaller_tsÚsmaller_added2r�   Úframer"   r"   r#   Útest_combine_timeseries¼  s8   ÿÿz3TestFrameArithmeticUnsorted.test_combine_timeseriesc                 C   s’   |d }t  |j|jd ¡ |d }| ¡ D ]\}}t  |j|| jd ¡ qt|dd id� tƒ d }|j tƒ j¡s>J ‚t|j	ƒdksGJ ‚d S )Nr[   r´   r;   r   )
rU   Úassert_numpy_array_equalrÅ   rþ  r   r   r   Úequalsrœ   r   )r9   r$  r%  r€   r   r  r"   r"   r#   Útest_combineFuncê  s   
z,TestFrameArithmeticUnsorted.test_combineFuncÚfuncc                 C   sF  t tj d¡ d¡ttdƒtd�tj	dddd�d	�}| 
¡ }| d
¡}t |jd ¡}|||ƒ}t |j||j|jƒ¡ d}	tjtt |	¡d�� |||ƒ W d   ƒ n1 sXw   Y  |||ƒ}
t |
j||j|jƒ¡ ||dƒ}t |j||jdƒ¡ d}	tjt|	d�� |||d d… ƒ W d   ƒ d S 1 sœw   Y  d S )Nr[   )é   r]   r^   r;   z
2000-01-01r3  r³   )rp   rÖ  r   r   ©r¦   r¦   r¦   zNUnable to coerce to Series/DataFrame, dimension must be <= 2: (30, 4, 1, 1, 1)r`   r   zQCan only compare identically-labeled \(both index and columns\) DataFrame objects)r   r   rb   rc   rd   r   re   rë   r–   r—   r=   r9  rÃ   rÄ   rU   r/  rÅ   rf   rg   rh   ÚreÚescape)r9   r$   r$  r2  rí   rç   r:  rÊ   r€   ri   r  Úresult3r"   r"   r#   Útest_comparisonsø  s4   ý

ÿÿ
ÿ
ÿ"ÿz,TestFrameArithmeticUnsorted.test_comparisonsc                 C   s^   t dd„ dD ƒƒ}tt|ƒ}d}tjt|d�� ||dƒ W d   ƒ d S 1 s(w   Y  d S )Nc                 S   s   i | ]	}|d dddœ“qS )rQ   rR   rS   )rv   rw   Úzr"   rƒ  r"   r"   r#   rx   #  r	  zZTestFrameArithmeticUnsorted.test_strings_to_numbers_comparisons_raises.<locals>.<dictcomp>r   z;'[<>]=?' not supported between instances of 'str' and 'int'r`   r   )r   r�   rž   rf   rg   r}   )r9   Úcompare_operators_no_eq_nerW   rË   ri   r"   r"   r#   Ú*test_strings_to_numbers_comparisons_raises   s   ÿ
"ÿzFTestFrameArithmeticUnsorted.test_strings_to_numbers_comparisons_raisesc                 C   s¶   t tjdtjd�ttdƒtd�d�}tj|j|j	d df< tj
dd�� |jdk }W d   ƒ n1 s3w   Y  tj
d	d�� |dk j}W d   ƒ n1 sNw   Y  t ||¡ d S )
N)rk   r]   r;   r^   r_   r   rP   Úignore)r¾  Úraise)r   r   rÃ   r?  r   re   rë   rÇ   r›   r   ÚerrstaterÅ   rU   r/  )r9   Ú
missing_dfr�   r€   r"   r"   r#   Ú'test_comparison_protected_from_errstate+  s   þÿÿzCTestFrameArithmeticUnsorted.test_comparison_protected_from_errstatec                 C   sZ  t t d¡ d¡ƒ}t ddg¡}t ddg¡}|j}g d¢}t|ƒ}t ddgddgddggƒ}||k}t 	||¡ |j
|k}t ||j
¡ d}	d}
d	}tjt|	d
�� ||k W d   ƒ n1 sbw   Y  tjt|	d
�� ||k W d   ƒ n1 s}w   Y  ||k}t 	||¡ |j
|k}t ||j
¡ tjt|
d
�� ||k W d   ƒ n1 s®w   Y  tjt|d
�� |j
|k W d   ƒ n1 sÊw   Y  t ddgddgddggƒ}||k}t 	||¡ tjt|	d
�� ||k W d   ƒ n1 süw   Y  tjt|	d
�� ||k W d   ƒ n	1 �sw   Y  ||k}t 	||¡ |j
|k}t ||j
¡ tjt|
d
�� ||k W d   ƒ n	1 �sJw   Y  |j
j|jk�sYJ ‚t t d¡ d¡tdƒtdƒd�}|j|_|j|_tjt|	d
�� ||k W d   ƒ n	1 �s‰w   Y  tjt|	d
�� ||k W d   ƒ d S 1 �s¦w   Y  d S )Nr\   r«   r[   ©r[   r[   r[   FTz5Unable to coerce to Series, length must be 2: given 3ú,Unable to coerce to DataFrame, shape must bez4operands could not be broadcast together with shapesr`   ÚABrí  r   )r   r   r®   r¯   r    Ú
atleast_2drÓ   ÚtuplerU   rV   rÅ   r/  rf   rg   rh   rÄ   re   r   r   )r9   rW   r   Úb_rÚb_cÚlstÚtupr�   r€   Úmsg1dÚmsg2dÚmsg2dbr"   r"   r#   Útest_boolean_comparison7  st   

þ
þ

ÿÿ
ÿ
ÿ

ÿÿ
ÿ
$ÿz3TestFrameArithmeticUnsorted.test_boolean_comparisonc                 C   sž  t dƒ}tt dt|ƒ ¡ dt|ƒ¡|tdƒd�}d|jd d …dd…f  ¡  }t dƒ}t dƒ}| ¡ }|| | j	|d	�}||  |7  < |j	|d	�}| ¡ }|| ||  j	|d	�}	||  || 7  < |j	|d	�}
t
 ||¡ t
 ||	¡ t
 ||
¡ | ¡ }|| | j	|d	�}||  |8  < |j	|d	�}| ¡ }|| ||  j	|d	�}	||  || 8  < |j	|d	�}
t
 ||¡ t
 ||	¡ t
 ||
¡ d S )
NÚabcdefgrk   rÉ  r   r%   r¦   ÚbedcfÚbcdefr_   )re   r   r   r®   rœ   r¯   r™   rï   r=   rÆ   rU   rV   )r9   r   ÚX_origÚZÚblock1ÚsubsÚXÚresult1r  r7  Úresult4r"   r"   r#   Útest_inplace_ops_alignment…  s>   ýz6TestFrameArithmeticUnsorted.test_inplace_ops_alignmentc           	      C   s(  t g d¢ƒ}ttj d¡jdddd� dd¡ƒ}| ¡ }|}|d7 }t 	||¡ t 	|d |¡ ||u s6J ‚|j
|j
u s>J ‚| ¡ }|}|d7 }t ||¡ t |d |¡ ||u s\J ‚|j
|j
u sdJ ‚| ¡ }|}|d	7 }t 	||¡ t 	|d	 |¡ | ¡ }|}|d	7 }t ||¡ t |d	 |¡ ||u sšJ ‚|j
|j
u s¢J ‚tj d¡jdddd�}t| ¡ d
dœƒ}| ¡ }|}|d  d7  < t| ¡ d d
dœƒ}t ||¡ t ||¡ |j
|j
u säJ ‚| ¡ }|}|d  d	7  < t| ¡ d	 d
dœƒ}t ||¡ t ||¡ |j
|j
u �sJ ‚d S )Nró   r[   r   rÁ   rk   rl   rÉ  r¦   r@  rQ   rþ   rP   )r
   r   r   rb   rc   r˜   r¯   r=   rU   rù   Ú_mgrrV   )	r9   Ús_origÚdf_origr  r  rW   rç   r!   r�   r"   r"   r#   Útest_inplace_ops_identityµ  s\   ÿz5TestFrameArithmeticUnsorted.test_inplace_ops_identityr  Úandr<  z__idiv__ not implemented)rg   r¥   )Úmarksr
  r8  r7  Úorr¹  r6  r¸  Úxorc                 C   s’   t g d¢g d¢dœƒ}d}|dv rg d¢|d< | ¡ }d|› d	�}d	|› d	�}t||ƒ|ƒ t||ƒ|ƒ}t ||¡ t|ƒ}t|ƒ|ksGJ ‚d S )
Nr   ró   rq   r[   )r]  r_  r`  )TFTr   Ú__ir  )r   r=   r�   rU   rV   rZ  )r9   r¿   rW   ÚoperandÚdf_copyÚiopr�   r"   r"   r#   Útest_inplace_ops_identity2ð  s   z6TestFrameArithmeticUnsorted.test_inplace_ops_identity2Úvalró   r;   r¦   r]   c                 C   s¢   g d¢}g d¢}t tj d¡ d¡||d�}t j}t |||dœ|jd�}t |||dd�d	 |¡ t g d
¢g d¢g d¢dœ|jd�}t |||d	d�d	 |¡ d S )Nr²   ©rU  rÝ  rR  r[   ©r¬   r¬   rz   rÿ   r   rÒ   r¦   r4  rA  ©r¬   r¬   r¬   )	r   r   rb   rc   rd   Ú_align_for_opr   rU   rV   )r9   rf  r   r   rW   Úalignr�   r"   r"   r#   Útest_alignment_non_pandas  s   
ýÿz5TestFrameArithmeticUnsorted.test_alignment_non_pandasr[   r˜  r¬   c                 C   s´   g d¢}g d¢}t tj d¡ d¡||d�}t j}d}tjt|d�� |||dd	� W d   ƒ n1 s4w   Y  tjt|d�� |||d
d	� W d   ƒ d S 1 sSw   Y  d S )Nr²   rg  r[   rh  rz   z5Unable to coerce to Series, length must be 3: given 2r`   r   rÒ   r¦   )	r   r   rb   rc   rd   rj  rf   rg   rh   )r9   rf  r   r   rW   rk  ri   r"   r"   r#   Ú)test_alignment_non_pandas_length_mismatch4  s   ýÿ"ÿzETestFrameArithmeticUnsorted.test_alignment_non_pandas_length_mismatchc                 C   sÂ  g d¢}g d¢}t tj d¡ d¡||d�}t j}t g d¢g d¢g d¢g¡}t |||d	d
�d t ||j	|j
d�¡ t |||dd
�d t ||j	|j
d�¡ d}t g d¢g d¢g¡}tjt|d�� |||d	d
� W d   ƒ n1 suw   Y  tjt|d�� |||dd
� W d   ƒ n1 s“w   Y  t d¡}t d¡}tjt|d�� |||d	d
� W d   ƒ n1 s»w   Y  tjt|d�� |||dd
� W d   ƒ d S 1 sÚw   Y  d S )Nr²   rg  r[   rh  rz   ró   ©r]   rÁ   r\   )rå   r±   rw  r   rÒ   r¦   rB  r`   ri  zGUnable to coerce to Series/DataFrame, dimension must be <= 2: (3, 3, 3))r   r   rb   rc   rd   rj  r    rU   rV   r   r   rf   rg   rh   Úzerosr5  r6  )r9   r   r   rW   rk  rf  ri   r"   r"   r#   Ú'test_alignment_non_pandas_index_columnsG  sF   ýþþÿÿ
ÿÿ"ÿzCTestFrameArithmeticUnsorted.test_alignment_non_pandas_index_columnsc                 C   s\   t ddgdd gdœƒ}|d }t d ¡� t||ƒ|ƒ W d   ƒ d S 1 s'w   Y  d S )Nr   rþ   r³   )r   rU   r»  r�   ©r9   r#  rW   r   r"   r"   r#   Útest_no_warningm  s
   "ÿz+TestFrameArithmeticUnsorted.test_no_warningc                 C   sb   t ddgdd gdœƒ}|d }tjtdd�� t||ƒ|dƒ W d   ƒ d S 1 s*w   Y  d S )Nr   rþ   r³   ztakes 2 positional argumentsr`   r   )r   rf   rg   r}   r�   rq  r"   r"   r#   Útest_dunder_methods_binarys  s
   "ÿz6TestFrameArithmeticUnsorted.test_dunder_methods_binaryc                 C   sj   t jddd� dd¡}t jdtd�}t|ƒ}| ¡ |d< | t¡}|| 	¡  }|| 	¡  }t
 ||¡ d S )Nr%   r?  r;   rk   )rk   r¦   z0.X)r   r®   r¯   rÃ   Úintr   r  rE   rG  ÚmeanrU   rV   )r9   rU  rÝ  rí   rç   r€   r�   r"   r"   r#   Útest_align_int_fill_bugz  s   
z3TestFrameArithmeticUnsorted.test_align_int_fill_bugN)1rL   rM   rN   rÜ  rã  rf   r»   r¼   rž   r  r6  r7  r¸  rê  Úfilterwarningsrì  r   r
  r  r  r%  r.  r1  rˆ   r‰   r…   r„   r†   r‡   r8  r;  r@  rM  rX  r\  r/   r½   ÚAttributeErrorre  r   r    r>  r™   rl  rm  rp  rr  rs  rv  r"   r"   r"   r#   rÓ  Á  s€    ÿ


&
=(.þ
$N0;ÿþðþ
üþ
	(
&rÓ  c                  C   sL   t dg d¢iƒ} t g d¢d�}| | }t dtjdtjgiƒ}t ||¡ d S )NrP   rO  rÿ   r   ©r   r   rÇ   rU   rV   )r    r¡   r€   r�   r"   r"   r#   Útest_pow_with_realignment‰  s
   rz  c                  C   sž   t tj d¡ ddd¡g d¢d�} tg d¢g d¢d�}|  d	¡| d	¡ d
d¡ }t || jdd�}|  	d¡}|| }t
 ||¡ || 	d¡ }t
 ||¡ d S )Nr[   r   r%   )rk   r¬   r   r_   ró   rÿ   r>  rÉ  r¬   ÚInt64r¯  )r   r   rb   rc   r˜   r
   Úto_numpyr¯   r   rE   rU   rV   )rW   r  r�   Údf_ear€   r"   r"   r#   Ú&test_dataframe_series_extension_dtypes“  s   ÿ
r~  c                     s  t j d¡ ddd¡} t| ƒ}| ¡  ddddœ¡}t j|jdg d¢f< | ¡  ddi¡}t j|jddgf< | ¡  ddddœ¡}t j|jdt  	dd¡f< | ¡  dddd	œ¡}t j|jdt  	d
d¡f< ||f||f||ffD ]\‰ ‰ˆ ˆ }t‡ ‡fdd„ˆ j
D ƒƒ}t ||¡ qod S )Nr[   r   iè  )r%   rk   rG  )r¦   r¬   rå   rÁ   ©r[   r¬   r]   rn  r]   rå   c                    s   i | ]}|ˆ | ˆ|  “qS r"   r"   rŒ   ©r    r¡   r"   r#   rx   º  ry   z6test_dataframe_blockwise_slicelike.<locals>.<dictcomp>)r   rb   rc   r˜   r   r=   rE   rÇ   rï   r®   r   rU   rV   )r!   rí   rç   ré   Údf4Údf5rY   r�   r"   r€  r#   Ú"test_dataframe_blockwise_slicelike¤  s   ürƒ  zdf, col_dtyper   r   r   r   Úabr_   r?  r   rë   c                 C   sT   t dtjgdtjggtdƒd�}| d|i¡}| tdgtdƒd� }t ||¡ d S )	Nr   r   r„  r_   r   g      ð¿r   rÿ   )r   r   rÇ   re   rE   r
   rU   rV   )rW   Ú	col_dtyper�   r€   r"   r"   r#   Ú/test_dataframe_operation_with_non_numeric_types¾  s    r†  c                  C   sZ   t dggdgd�} t g d¢gg d¢d�}| | }t tjddggg d¢d�}t ||¡ d S )Nr   rï  )rÈ   r   rQ  )rî  rï  rï  r_   ry  ©rí   rç   r€   r�   r"   r"   r#   Ú"test_arith_reindex_with_duplicatesÒ  s
   rˆ  Úto_addr¦   c                 C   sœ   t ddgddgdœƒ}dt| d ƒ› d�}tjt|d�� ||   W d   ƒ n1 s+w   Y  tjt|d�� | |  W d   ƒ d S 1 sGw   Y  d S )Nr¦   r[   ru   zUnable to coerce list of r   z to Series/DataFramer`   )r   rF   rf   rg   rh   )r‰  rW   ri   r"   r"   r#   Ú"test_arith_list_of_arraylike_raiseÛ  s   
ÿ
"ÿrŠ  c                 C   s¨   t dg d¢iƒ}| ¡ }|d }|j}t |¡� |d7 }W d   ƒ n1 s'w   Y  | r=|j|us5J ‚t ||¡ d S |j|u sDJ ‚t dg d¢iƒ}t ||¡ d S )NrP   ró   r¦   r  )r   r=   Ú_valuesrU   Úassert_cow_warningrV   )Úusing_copy_on_writeÚwarn_copy_on_writerW   r[  re  Úvalsr�   r"   r"   r#   Ú%test_inplace_arithmetic_series_updateç  s   
ÿr�  c                  C   sŠ   t dggdgtjdgdggddgd�d�} t dggdgtdgdd�d�}t dggdgtjdgdggddgd�d�}| | }t ||¡ dS )	zP
    Regression test for: https://github.com/pandas-dev/pandas/issues/33765
    r¦   r   r   r   r[  rz   ©rö   N)r   r	   rc  r   rU   rV   )rí   rç   r�   r€   r"   r"   r#   Ú test_arithmetic_multiindex_alignú  s   ýýr’  c                  C   sF   t dtdƒtdƒƒ} | d }t t d¡tdƒtdƒƒ}t ||¡ d S )NTr„  Úcdr   r­   )r   re   r   rÃ   rU   rV   )rW   r€   r�   r"   r"   r#   Útest_bool_frame_mult_float  s   r”  c                 C   sP   t g d¢| d�}t g d¢| d�}tg d¢| d�}| ¡ | ¡  }t ||¡ d S )N)r¦   r[   Nr;   ró   )r   r   N)r
   r   Úto_framerU   rV   )Úany_int_ea_dtypeÚseries1Úseries2r�   r€   r"   r"   r#   Útest_frame_sub_nullable_int  s
   r™  zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningc                     s†   G ‡ ‡fdd„dt ƒ‰G ‡fdd„dtƒ‰ ˆ dg d¢g d¢dœƒ} | d	 }ˆ dg d
¢g d¢dœƒ}t ||¡ | |  }t ||¡ d S )Nc                       s,   e Zd Ze‡fdd„ƒZe‡ fdd„ƒZdS )zEtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedSeriesc                    ó   ˆ S r6   r"   r@   ©ÚSubclassedSeriesr"   r#   Ú_constructor%  ó   zRtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedSeries._constructorc                    rš  r6   r"   r@   )ÚSubclassedDataFramer"   r#   Ú_constructor_expanddim)  rž  z\test_frame_op_subclass_nonclass_constructor.<locals>.SubclassedSeries._constructor_expanddimN)rL   rM   rN   Úpropertyr�  r   r"   ©rŸ  rœ  r"   r#   rœ  $  s
    rœ  c                       s@   e Zd ZdgZd
‡ fdd„Zedd„ ƒZe‡fdd	„ƒZ‡  ZS )zHtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrameÚmy_extra_datar5   Nc                    s   || _ tƒ j|i |¤Ž d S r6   )r£  Úsuperr:   )r9   r£  ÚargsÚkwargs©Ú	__class__r"   r#   r:   0  s   zQtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrame.__init__c                 S   s   t  t| ƒ| j¡S r6   )Ú	functoolsÚpartialrF   r£  r@   r"   r"   r#   r�  4  s   zUtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrame._constructorc                    rš  r6   r"   r@   r›  r"   r#   Ú_constructor_sliced8  rž  z\test_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrame._constructor_slicedrK   )	rL   rM   rN   Ú	_metadatar:   r¡  r�  r«  Ú__classcell__r"   r›  r§  r#   rŸ  -  s    
rŸ  Ú	some_dataró   rn  rþ   r[   r“  )r±   rk   é   rp  )Úsdfr€   r�   r"   r¢  r#   Ú+test_frame_op_subclass_nonclass_constructor  s   	r±  c                  C   sd   t ddƒ} t| jg d¢iƒ}t| jg d¢iƒ}|| j || j k}tg d¢| jd�}t ||¡ d S )NÚColsz	col1 col2ró   )TTTr‘  )r   r   rå  r
   rU   rù   )r²  Úq1Úq2r€   r�   r"   r"   r#   Útest_enum_column_equalityE  s   
rµ  c                  C   sb   t tdƒddgd�} t tdƒddgd�}|j d¡| _| | }t tdƒddgd�}t ||¡ d S )Nrí  r   r   )r   rÈ   r   r   Ústring)r   re   r   rE   rU   rV   r‡  r"   r"   r#   Útest_mixed_col_index_dtypeQ  s   r·  )@Úcollectionsr   r   r   Úenumr   r©  rž   r5  Únumpyr   rf   Úpandas._configr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsr}  Úpandasr–   r   r   r	   r
   Úpandas._testingÚ_testingrU   Úpandas.core.computationr   r.   Úpandas.tests.frame.commonr   r   Úfixturer$   r3   r4   rO   r¾   r  ro  rÍ  rÎ  rÒ  rÓ  rz  r~  rƒ  r»   r¼   re   rE   rë   r†  rˆ  rŠ  r�  r’  r”  r™  rw  r±  rµ  r·  r"   r"   r"   r#   Ú<module>   s„    

 ^ H  S  F
     M
ÿüþþ
.	
	ÿ
$