a
    +ñ»j‚  ã                   @   sV  d dl mZmZmZ d dlmZ d dlZd dlZd dl	Z	d dl
mZ d dlmZ d dlZd dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d d	l m!Z! e	j"d
d dgddgd�dd„ ƒZ#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)G dd„ dƒZ*G dd „ d ƒZ+d!d"„ Z,d#d$„ Z-d%d&„ Z.dS )'é    )ÚdateÚ	timedeltaÚtimezone)ÚDecimalN)Úlib)ÚIncompatibleFrequency)ÚCategoricalÚDatetimeTZDtypeÚIndexÚSeriesÚ	TimedeltaÚbdate_rangeÚ
date_rangeÚisna)Úops)Úexpressions)ÚNUMEXPR_INSTALLEDTi@B ÚnumexprÚpython)ZautouseÚparamsZidsc                 c   sB   |  ¡ �&}| td| j¡ d V  W d   ƒ n1 s40    Y  d S )NZ_MIN_ELEMENTS)ÚcontextÚsetattrÚexprÚparam)ÚrequestZmonkeypatchÚm© r   úIE:\soccer\ml_env\Lib\site-packages\pandas/tests/series/test_arithmetic.pyÚswitch_numexpr_min_elements    s    
r   c                 C   s   |   tj d¡ t| ƒ¡¡S ©Né   )ÚtakeÚnpÚrandomÚdefault_rngÚpermutationÚlen)Úobjr   r   r   Ú_permute'   s    r(   c                	   @   s  e Zd Zej ddd„ dd„ dfdd„ dd„ dfdd„ d	d„ d
fdd„ dd„ d
fg¡ej dg d¢¡dd„ ƒƒZdd„ Zdd„ Ze	j
ejdfe	jejdfgZdD ]VZdZee	eƒZeeeƒZee	de ƒZefdd„Ze eeef¡ e eeef¡ q ej de¡dd„ ƒZdS )ÚTestSeriesFlexArithmeticÚtsc                 C   s   | S ©Nr   ©Úxr   r   r   Ú<lambda>/   ó    z!TestSeriesFlexArithmetic.<lambda>c                 C   s   | d S r   r   r,   r   r   r   r.   /   r/   Fc                 C   s   | S r+   r   r,   r   r   r   r.   0   r/   c                 C   s   | d d d… S r   r   r,   r   r   r   r.   0   r/   c                 C   s   | S r+   r   r,   r   r   r   r.   1   r/   c                 C   s   dS )Né   r   r,   r   r   r   r.   1   r/   Tc                 C   s   t tdƒtjd�S ©Né
   ©Údtype©r   Úranger"   Úfloat64r,   r   r   r   r.   3   r/   c                 C   s   t tdƒtjd�S r1   r5   r,   r   r   r   r.   4   r/   Úopname)ÚaddÚsubÚmulÚfloordivÚtruedivÚpowc                 C   s¬   t tjdtjd�tddd�dd�}|d |ƒ}|d |ƒ}|d	 }tt |ƒ}tt|ƒ}|||ƒ}	|||ƒ}
t |	|
¡ |r¨tt d
| ƒ}|||ƒ}	|||ƒ}
t |	|
¡ d S )Né   r3   z
2020-01-01©Úperiodsr*   ©ÚindexÚnamer   é   r    Úr)	r   r"   Úaranger7   r   ÚgetattrÚoperatorÚtmZassert_almost_equal)Úselfr8   r*   ZtserÚseriesÚotherZcheck_reverseÚopZaltÚresultÚexpectedÚropr   r   r   Útest_flex_method_equivalence,   s$    
ý





z5TestSeriesFlexArithmetic.test_flex_method_equivalencec                    sT   G ‡ fdd„dt ƒ‰ |}tt |ƒ}ˆ g d¢dd�}d|_||dƒ}|jdksPJ ‚d S )Nc                       s"   e Zd ZdgZe‡ fdd„ƒZdS )zZTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservation.<locals>.MySeriesr-   c                    s   ˆ S r+   r   )rK   ©ÚMySeriesr   r   Ú_constructorY   s    zgTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservation.<locals>.MySeries._constructorN)Ú__name__Ú
__module__Ú__qualname__Ú	_metadataÚpropertyrU   r   rS   r   r   rT   V   s   rT   ©rE   r    é   Útest©rD   é*   rE   )r   rH   r-   )rK   Zall_arithmetic_operatorsr8   rN   r   rO   r   rS   r   Ú/test_flex_method_subclass_metadata_preservationT   s    

zHTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservationc                 C   sD   t ddtjdddgƒ}| d¡ d¡}|jddd�}t ||¡ d S )Nr   rE   r\   é   r0   r    ©Ú
fill_value)r   r"   ÚnanÚfillnar9   rJ   Úassert_series_equal)rK   ÚserÚexpÚresr   r   r   Útest_flex_add_scalar_fill_valued   s    z8TestSeriesFlexArithmetic.test_flex_add_scalar_fill_valuerE   )r9   r:   r;   r>   r=   r<   r   rF   c                 C   s   t t|ƒ|| ƒS r+   )rH   rI   )r-   ÚyrN   r   r   r   r.   s   r/   zop, equiv_op, fvc           	      C   s’   ddd„}t tjdddtjgt d¡d�}t tjd	tjd
tjdgt d¡d�}|||ƒ}|||ƒ}t ||¡ ||||||d� |||dd� d S )Nr   c              	   S   s6  |j  |j ¡}| |¡}| |¡}t|ƒ}t|ƒ}g }tt|ƒƒD ]Ê}	tjdd��¨ ||	 r”||	 r~| tj	¡ W d   ƒ qB| ||||	 ƒ¡ nX||	 rÔ||	 r¾| tj	¡ W d   ƒ qB| |||	 |ƒ¡ n| |||	 ||	 ƒ¡ W d   ƒ qB1 �s0    Y  qB| |||d�}
t
||ƒ}t |
|¡ d S )NÚignore)Úallrb   )rC   ÚunionÚreindexr   r6   r&   r"   ZerrstateÚappendrd   r   rJ   rf   )ÚmethrN   ÚaÚbrc   Ú	exp_indexZamaskZbmaskÚ
exp_valuesÚirO   rP   r   r   r   Ú_check_filly   s,    

:
zDTestSeriesFlexArithmetic.test_operators_combine.<locals>._check_fillç      ð?g       @g      @r0   ©rC   rE   r\   ç      @é   rb   ©Úaxis)r   )r   r"   rd   rG   rJ   rf   )	rK   rN   Zequiv_opÚfvrw   rr   rs   rO   rh   r   r   r   Útest_operators_combinew   s    
 $

z/TestSeriesFlexArithmetic.test_operators_combineN)rV   rW   rX   ÚpytestÚmarkÚparametrizerR   r`   rj   r   ÚdivrI   r=   Zrdivr   ZrtruedivZpairingsrN   r~   rH   ZlopZlequivrQ   Zrequivrp   r   r   r   r   r   r)   +   s8   ýüþÿ

r)   c                   @   sê   e Zd Zdd„ Zej ddddgddgfd	ddgd
dgfg¡dd„ ƒZdd„ Zej dde	dƒg¡dd„ ƒZ
dd„ Zdd„ Zdd„ Zd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d0d1„ ZdS )2ÚTestSeriesArithmeticc                 C   sÐ   t jdddd�}ttj d¡ t|ƒ¡|d�}||d d d…  }|| }tj|j	dd d…< t
 ||¡ |t|d d d… ƒ }t
 ||¡ d}tjt|d	��" ||jd
dd�  W d   ƒ n1 sÂ0    Y  d S )Nú1/1/2000z1/1/2010ÚY©Úfreqr    ry   rE   z4Input has different freq=D from Period\(freq=Y-DEC\)©ÚmatchÚDÚend)Úhow)ÚpdZperiod_ranger   r"   r#   r$   Ústandard_normalr&   rd   ÚilocrJ   rf   r(   r€   Úraisesr   Zasfreq)rK   Úrngr*   rO   rP   Úmsgr   r   r   Ú!test_add_series_with_period_index£   s    z6TestSeriesArithmetic.test_add_series_with_period_indexz%target_add,input_value,expected_valueú!ZhelloZworldzhello!zworld!r   ZhellomZworldmc                 C   s(   t |ƒ}|| }t |ƒ}t ||¡ d S r+   ©r   rJ   rf   )rK   Z
target_addZinput_valueZexpected_valuerr   rO   rP   r   r   r   Útest_string_addition³   s    	z)TestSeriesArithmetic.test_string_additionc                 C   s²   t dddtjgg d¢d�}t dtjdtjgg d¢d�}| |¡}t||ƒ}t |d |d ¡ t |d |d ¡ | |¡}t||ƒ}t |d |d ¡ t |d |d ¡ d S )NrE   )rr   rs   ÚcÚdry   r    )rr   rs   r™   Úer   )r   r"   rd   ÚdivmodrJ   rf   Zrdivmod)rK   rr   rs   rO   rP   r   r   r   Útest_divmodÂ   s    



z TestSeriesArithmetic.test_divmodrC   Né	   c                 C   sX   t tddƒƒ}t d|d�}d}tjt|d�� ||  W d   ƒ n1 sJ0    Y  d S )NrE   r2   Úfoory   zHnot all arguments converted during string formatting|'mod' not supportedr‰   )r   r6   r€   r‘   Ú	TypeError)rK   rC   Ús1Ús2r“   r   r   r   Útest_series_integer_modÑ   s
    z,TestSeriesArithmetic.test_series_integer_modc                 C   sX   t ddgddgd�}t ddgddgd�}|| }t ddtjgg d¢d�}t ||¡ d S )NrE   r    ry   r2   é   é   )rE   rE   r    )r   r"   rd   rJ   rf   )rK   r    r¡   rO   rP   r   r   r   Útest_add_with_duplicate_indexÜ   s
    z2TestSeriesArithmetic.test_add_with_duplicate_indexc                 C   sp   t tdƒtdƒgtdddƒtdddƒgd�}|| d¡ }| d¡| }t|jd ƒsZJ ‚t|jd ƒslJ ‚d S )Nz1.3z2.3iÜ  rE   r    ry   r   )r   r   r   Úshiftr   r�   )rK   rg   rO   Úresult2r   r   r   Útest_add_na_handlingä   s    $ÿz)TestSeriesArithmetic.test_add_na_handlingc                 C   sN   t g tg ƒtjd�}|| }t |¡ ¡ s.J ‚|| ¡  }t|ƒdksJJ ‚d S )N)rC   r4   r   )r   r
   r"   r7   Úisnanrm   Úcopyr&   )rK   Údatetime_seriesÚemptyrO   r   r   r   Útest_add_corner_casesî   s
    z*TestSeriesArithmetic.test_add_corner_casesc                 C   sZ   |  t¡d d… }|| }t|jd d… |j |jd d… dd�}t |d d… |¡ d S )Néûÿÿÿr*   rB   )ÚastypeÚintr   ÚvaluesrC   rJ   rf   )rK   r«   Zint_tsÚaddedrP   r   r   r   Útest_add_float_plus_int÷   s    ýz,TestSeriesArithmetic.test_add_float_plus_intc                 C   s>   t g g tjd�}t ddiƒ}t || t tjgdgd�¡ d S )Nr3   r-   g        ry   )r   r"   Zint32rJ   rf   rd   )rK   r    r¡   r   r   r   Útest_mul_empty_int_corner_case  s    z3TestSeriesArithmetic.test_mul_empty_int_corner_casec                 C   sˆ   t tdddd�ƒ}tj|jd< |d d d… }t tdƒtdƒtjgƒ}|| }t 	||¡ t |dd�}| 
¡ | 
¡  d }t 	||¡ d S )	Nz2012-1-1r\   r‹   ©rA   rˆ   r    éÿÿÿÿr   r^   )r   r   r"   rd   r�   r   rŽ   ZNaTrJ   rf   Úto_frame)rK   ÚdtZdt2rP   rO   r   r   r   Útest_sub_datetimelike_align  s    z0TestSeriesArithmetic.test_sub_datetimelike_alignc                 C   sX   t dddd�}| d¡}td|d�}td|d�}||  |j|u sFJ ‚|j|u sTJ ‚d S )Nz
2016-01-01r2   ZCET)rA   ÚtzÚUTCry   )r   Ú
tz_convertr   rC   )rK   ÚdtiZdti_utcrg   Úser_utcr   r   r   Útest_alignment_doesnt_change_tz  s    
z4TestSeriesArithmetic.test_alignment_doesnt_change_tzc                 C   sŠ   t g d¢ƒ}td|d�}td|d d… d�}|| }dgd dgd  d	g }tj||jd
�}dgd tjg }t||ƒ}t ||¡ d S )N)Ú3z53rÀ   ÚLoJGrÁ   rÁ   ÚN503r    ry   r¶   rÀ   ra   rÁ   r�   rÂ   )Ú
categoriesrz   é   )	r   r   rŽ   ZCategoricalIndexrÃ   r"   rd   rJ   rf   )rK   ÚcatÚser1Úser2rO   rt   ru   rP   r   r   r   Útest_alignment_categorical$  s    
z/TestSeriesArithmetic.test_alignment_categoricalc                 C   s®   g d¢}t tjdddd�|d�}t tjddd�|d�}|| }t dg d¢d�}t ||¡ t tddd	�|d�}t td
dd	�|d�}|| }t tdƒg d¢d�}t ||¡ d S )N)r    r    r\   r\   ra   rE   r{   Zint64r3   ry   r0   z20130101 09:00:00r@   Z20130101z9 hours)r   r"   rG   rJ   rf   r   r   )rK   rC   rg   rM   rO   rP   r   r   r   Ú$test_arithmetic_with_duplicate_index2  s    z9TestSeriesArithmetic.test_arithmetic_with_duplicate_indexc                 C   sL   t dtjgdd�}t ddgdd�}|| }t dtjgdd�}t ||¡ d S )Nr   Úfloatr3   rE   ÚInt64ÚFloat64)r   r"   rd   rŽ   ÚNArJ   rf   ©rK   rÆ   rÇ   rO   rP   r   r   r   Ú'test_masked_and_non_masked_propagate_naD  s
    z<TestSeriesArithmetic.test_masked_and_non_masked_propagate_nac                 C   sl   t dtjddgdd�}t ddtjdgƒ}|| }t dtjtjdgdd�}t ||¡ || }t ||¡ d S )Né   r0   ra   rË   r3   rx   rÌ   )r   rŽ   rÍ   r"   rd   rJ   rf   rÎ   r   r   r   Ú+test_mask_div_propagate_na_for_non_na_dtypeL  s    z@TestSeriesArithmetic.test_mask_div_propagate_na_for_non_na_dtypez
val, dtype)r\   rË   )g      @rÌ   c                 C   s^   t g d¢dd�}|dd |g }t dd d| g|d�}t ||¡ dd |g| }t ||¡ d S )N)rE   Nr\   rË   r3   rE   r    r\   r–   )rK   Úvalr4   rg   rO   rP   r   r   r   Útest_add_list_to_masked_arrayW  s    z2TestSeriesArithmetic.test_add_list_to_masked_arrayc                 C   sÂ   |j jjdkrtrtnd }tg d¢dd�}t |¡� |g d¢ }W d   ƒ n1 sV0    Y  tg d¢dd�}t ||¡ t |¡� g d¢| }W d   ƒ n1 s¨0    Y  t ||¡ d S )Nr   )TNFÚbooleanr3   )TNT)	ÚnodeZcallspecÚidr   ÚUserWarningr   rJ   Úassert_produces_warningrf   )rK   r   Úwarningrg   rO   rP   r   r   r   Ú%test_add_list_to_masked_array_booleanb  s    ÿÿý**z:TestSeriesArithmetic.test_add_list_to_masked_array_boolean)rV   rW   rX   r”   r€   r�   r‚   r—   rœ   r6   r¢   r¥   r¨   r­   r³   r´   r¹   r¿   rÈ   rÉ   rÏ   rÑ   rÓ   rÚ   r   r   r   r   r„       s2   þþ



	

r„   c                   @   sÞ   e Zd Zej dg d¢¡dd„ ƒZdd„ Zej dg d¢d	fg d
¢dfg d¢dfg d¢dfg d¢dfg d¢dfg¡dd„ ƒZej dg d¢d	dfg d¢ddfg d¢ddfg d¢ddfg d¢ddfg d¢ddfg¡dd„ ƒZ	dS )ÚTestSeriesFlexComparisonr}   )r   NrC   c                 C   sZ   t tj d¡ d¡ƒ}t tj d¡ d¡ƒ}t||jƒ||d�}|||ƒ}t ||¡ d S )Nr    r2   r|   )	r   r"   r#   r$   r�   rH   rV   rJ   rf   )rK   r}   Úcomparison_opÚleftÚrightrO   rP   r   r   r   Útest_comparison_flex_basicy  s
    
z3TestSeriesFlexComparison.test_comparison_flex_basicc                 C   sv   t tj d¡ d¡ƒ}t tj d¡ d¡ƒ}d}tjt|d��$ t||j	ƒ|dd� W d   ƒ n1 sh0    Y  d S )Nr    r2   zNo axis named 1 for object typer‰   rE   r|   )
r   r"   r#   r$   r�   r€   r‘   Ú
ValueErrorrH   rV   )rK   rÜ   rÝ   rÞ   r“   r   r   r   Útest_comparison_bad_axis�  s
    z1TestSeriesFlexComparison.test_comparison_bad_axisz
values, op)FFTFÚeq)TTFTÚneÚle)FFFFÚlt)FTTFÚge)FTFFÚgtc                 C   sV   t g d¢tdƒd�}t g d¢tdƒd�}t||ƒ|ƒ}t |tdƒd�}t ||¡ d S )N©rE   r\   r    Úabcry   ©r    r    r    ÚbcdÚabcd©r   ÚlistrH   rJ   rf   )rK   r±   rN   rÝ   rÞ   rO   rP   r   r   r   Útest_comparison_flex_alignment‰  s
    z7TestSeriesFlexComparison.test_comparison_flex_alignmentzvalues, op, fill_value)FFTTr    )TTFFr   )FFFT)TTTFc                 C   sZ   t g d¢tdƒd�}t g d¢tdƒd�}t||ƒ||d�}t |tdƒd�}t ||¡ d S )Nrè   ré   ry   rê   rë   rb   rì   rí   )rK   r±   rN   rc   rÝ   rÞ   rO   rP   r   r   r   Ú#test_comparison_flex_alignment_fill›  s
    z<TestSeriesFlexComparison.test_comparison_flex_alignment_fillN)
rV   rW   rX   r€   r�   r‚   rß   rá   rï   rð   r   r   r   r   rÛ   x  s2   






úþ
úþrÛ   c                
   @   s  e Zd Zdd„ Zej dg d¢¡dd„ ƒZej dg 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dd„ Zej deg d¢edƒdd�eg d ¢ed!ƒdd�feg d¢edƒdd�eg d"¢ed#ƒdd�fg¡d$d%„ ƒZd&d'„ Zd(S ))ÚTestSeriesComparisonc                 C   s¤   t g d¢ƒ}t ddgƒ}d}tjt|d�� ||k  W d   ƒ n1 sH0    Y  t ddgƒ}t g d¢ƒ}tjt|d�� ||k W d   ƒ n1 s–0    Y  d S )	N©rr   rs   r˜   rs   rr   z'only compare identically-labeled Seriesr‰   rE   r    )r    r\   ra   )r   r€   r‘   rà   )rK   rr   rs   r“   r   r   r   Ú test_comparison_different_length¯  s    &z5TestSeriesComparison.test_comparison_different_lengthr8   )râ   rã   rç   rå   ræ   rä   c                 C   sB   t g d¢tdƒd�}d}t||ƒ|ƒj}t d¡}||ks>J ‚d S )Nrè   r\   ry   r    Úbool)r   r6   rH   Údtypesr"   r4   )rK   r8   rg   ÚconstrO   rP   r   r   r   Útest_ser_flex_cmp_return_dtypes»  s
    
z4TestSeriesComparison.test_ser_flex_cmp_return_dtypesc                 C   sP   t g d¢tdƒd�}|jd d… }d}t||ƒ|ƒj}t d¡}||ksLJ ‚d S )Nrè   r\   ry   r   r    rô   )r   r6   r�   rH   rõ   r"   r4   )rK   r8   rg   r¬   rö   rO   rP   r   r   r   Ú%test_ser_flex_cmp_return_dtypes_emptyÄ  s    
z:TestSeriesComparison.test_ser_flex_cmp_return_dtypes_emptyÚnames))NNN)rž   ÚbarN)Úbazrû   rû   c           
      C   sn  |}t ddd|d d�}t|ƒ |d ¡}|||ƒ}|j|d ksFJ ‚| d¡}tj|d	d
�}t|ƒ |d ¡}|||ƒ}|j|d ksŒJ ‚|| d¡ }t|ƒ |d ¡}|||ƒ}|j|d ksÈJ ‚|tj	tj
fv �rtjdd|d d�}t|ƒ |d ¡}|||ƒ}|j|d k�sJ ‚|tj	tj
fv �rj| d¡}	t|	ƒ |d ¡}|||	ƒ}|j|d k�sjJ ‚d S )Nz1949-06-07 03:00:00Úhr0   r   )rˆ   rA   rD   rE   r    z
US/CentralZinferr‡   )ÚstartrA   rD   Úcategory)r   r   ÚrenamerD   Útz_localizerŽ   ZDatetimeIndexr¦   rI   râ   rã   Zinterval_ranger¯   )
rK   rù   rÜ   rN   r½   rg   rO   ZtdiÚiiZcidxr   r   r   Útest_ser_cmp_result_namesÎ  s0    






z.TestSeriesComparison.test_ser_cmp_result_namesc                 C   sH   t g d¢ƒ}t g d¢ƒ}t g d¢ƒ}t ||k|¡ t ||k|¡ d S )Nrò   )FTF©FFFr–   )rK   Úsr¡   rh   r   r   r   Útest_comparisonsö  s
    z%TestSeriesComparison.test_comparisonsc                 C   s:  t tdƒdd�}t tdƒdd�}t g d¢dd�}t tdƒdd�}ttdƒƒ}ttdƒƒ}|dk ¡ rhJ ‚|dk|dk k ¡ s‚J ‚d|k ¡ r’J ‚|dkd s¢J ‚d|kd s²J ‚d|kd rÂJ ‚||k ¡ sÒJ ‚||k ¡ râJ ‚|t|ƒk ¡ söJ ‚||k ¡ �sJ ‚||k ¡ �sJ ‚||k ||kk ¡ �s6J ‚||k ||kk ¡ �sRJ ‚||k ¡ �rdJ ‚||k ¡ �rvJ ‚||k ¡ �rˆJ ‚||k ¡ �ršJ ‚||k ¡ �s¬J ‚||k ¡ �s¾J ‚||k ¡ �rÐJ ‚||k ¡ �râJ ‚||k ||kk ¡ �sþJ ‚||k ||kk ¡ �sJ ‚||k ||kk ¡ �s6J ‚||k ||kk ¡ �sRJ ‚d	}tjt|d
�� ||k  W d   ƒ n1 �s„0    Y  tjt|d
�� ||k  W d   ƒ n1 �s¼0    Y  tjt|d
�� ||k W d   ƒ n1 �sô0    Y  tjt|d
�� ||k W d   ƒ n1 �s,0    Y  d S )Nré   rþ   r3   Úobject)rr   rs   ÚccZacbrr   r   ú can only compare equality or notr‰   )r   rî   r   rm   r€   r‘   rŸ   )rK   rr   rs   r˜   r™   rš   Úfr“   r   r   r   Útest_categorical_comparisons  sP    (((z1TestSeriesComparison.test_categorical_comparisonsc                 C   s¾  t ttdƒƒƒ}d}tjt|d�� |dk W d   ƒ n1 s@0    Y  t ttdƒdd�ƒ}tjt|d�� |dk W d   ƒ n1 sŠ0    Y  t ttdƒdd�ƒ}d}tjt|d�� |d	k  W d   ƒ n1 sØ0    Y  tjt|d�� |d	k W d   ƒ n1 �s0    Y  tjt|d�� d	|k  W d   ƒ n1 �sH0    Y  tjt|d�� d	|k W d   ƒ n1 �s€0    Y  t |d	kt g d
¢ƒ¡ t |d	kt g d¢ƒ¡ d S )Nré   r  r‰   rs   F)ÚorderedTz1Invalid comparison between dtype=category and strr™   r  )TTT)r   r   rî   r€   r‘   rŸ   rJ   rf   )rK   rÅ   r“   r   r   r   Ú5test_unequal_categorical_comparison_raises_type_error:  s&    &&&(((zJTestSeriesComparison.test_unequal_categorical_comparison_raises_type_errorc                 C   sÜ   t ddgƒ}|dk}t ddgƒ}t ||¡ |dk}t ddgƒ}t ||¡ |dk}t ddgƒ}t ||¡ |dk}t ddgƒ}t ||¡ t ddgƒ}|dk}t ddgƒ}t ||¡ |dk}t ddgƒ}t ||¡ d S )N)rE   rE   )rE   r    FT)r   r   r–   )rK   r  rO   rP   r   r   r   Útest_comparison_tuplesY  s(    z+TestSeriesComparison.test_comparison_tuplesc                 C   sD   t tdgƒtddgƒgƒ}|tdgƒk}t ddgƒ}t ||¡ d S )NrE   r    TF)r   Ú	frozensetrJ   rf   ©rK   rg   rO   rP   r   r   r   Útest_comparison_frozensetx  s    z.TestSeriesComparison.test_comparison_frozensetc                 C   sº   t tddd�td�}tj|d d d…< |d }|||ƒ}|| ¡ |ƒ |j¡}d}tj	t
|d��< |tju r|| d	¡ t¡}n| d
¡ t¡}W d   ƒ n1 s 0    Y  t ||¡ d S )Nr…   r2   r@   r3   r    r0   zDowncasting object dtype arraysr‰   TF)r   r   r  r"   rd   Zdropnaro   rC   rJ   rØ   ÚFutureWarningrI   rã   re   r¯   rô   rf   )rK   rÜ   rg   rÒ   rO   rP   r“   r   r   r   Ú"test_comparison_operators_with_nas  s    

.z7TestSeriesComparison.test_comparison_operators_with_nasc                 C   sN   t g d¢g d¢td�}t g d¢¡}t |jdk|¡ t |jdk |¡ d S )N)r\   ra   r0   r{   é   r3   )TTFTTr0   )r   rÊ   r"   ÚarrayrJ   Zassert_numpy_array_equalrC   )rK   r*   rP   r   r   r   Útest_ne’  s    zTestSeriesComparison.test_nezleft, rightr[   ÚABCr-   rB   rê   ZABD)r    r    r    r    ZABCDc                 C   s„  |t ur(d|j› d�}| ¡ }| ¡ }nd|j› d�}tjt|d�� ||k W d   ƒ n1 sb0    Y  tjt|d�� ||k W d   ƒ n1 s˜0    Y  tjt|d�� ||k W d   ƒ n1 sÎ0    Y  tjt|d�� ||k W d   ƒ n1 �s0    Y  tjt|d�� ||k  W d   ƒ n1 �s>0    Y  tjt|d�� ||k  W d   ƒ n1 �sv0    Y  d S )Nz@Can only compare identically-labeled \(both index and columns\) z objectsz%Can only compare identically-labeled r‰   )r   rV   r·   r€   r‘   rà   )rK   rÝ   rÞ   Zframe_or_seriesr“   r   r   r   Útest_comp_ops_df_compat˜  s*    ÿÿ
ÿ&&&((z,TestSeriesComparison.test_comp_ops_df_compatc                 C   s0   t g d¢ƒ}|dk}t g d¢ƒ}t ||¡ d S )N)Ú	IntervalAZ	IntervalBZ	IntervalCr  )TFFr–   r  r   r   r   Ú$test_compare_series_interval_keywordÄ  s    z9TestSeriesComparison.test_compare_series_interval_keywordN)rV   rW   rX   ró   r€   r�   r‚   r÷   rø   r  r  r
  r  r  r  r  r  r   rî   r  r  r   r   r   r   rñ   ®  s8   

	ÿ
%8þþûþ
rñ   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestTimeSeriesArithmeticc           	      C   sÞ   t ddddd�}tj d¡ d¡d d… }ttj d¡ d¡| |¡ d¡d	�}tj d¡ d¡d d… }ttj d¡ d¡| |¡ d
¡d	�}|| }| d¡}| d¡}|| }| 	¡ }|j
jtju sÎJ ‚t ||¡ d S )Nú1/1/2011éd   rü   Úutc)rA   rˆ   rº   r    éZ   z
US/Easternry   zEurope/Berlin)r   r"   r#   r$   r%   r   r�   r!   r¼   Z
sort_indexrC   rº   r   r  rJ   rf   )	rK   r’   ÚpermrÆ   rÇ   rO   Zuts1Zuts2rP   r   r   r   Ú+test_series_add_tz_mismatch_converts_to_utcÓ  s$    þþ

zDTestTimeSeriesArithmetic.test_series_add_tz_mismatch_converts_to_utcc                 C   sª   t dddd�}ttj d¡ t|ƒ¡|d�}| d¡}d}tj	t
|d	�� ||  W d   ƒ n1 sf0    Y  tj	t
|d	�� ||  W d   ƒ n1 sœ0    Y  d S )
Nr  r2   rü   rµ   r    ry   r  z0Cannot join tz-naive with tz-aware DatetimeIndexr‰   )r   r   r"   r#   r$   r�   r&   r   r€   r‘   Ú	Exception)rK   r’   rg   r¾   r“   r   r   r   Ú"test_series_add_aware_naive_raisesî  s    
&z;TestTimeSeriesArithmetic.test_series_add_aware_naive_raisesc                 C   sT   t tdd|d�ƒ}tjjdd�}|| }t g d¢¡ |¡}t |ƒ}t ||¡ d S )Nz
2012-01-01r\   )rA   Úunitr{   )Údays)z
2011-12-26z
2011-12-27z
2011-12-28)	r   r   rŽ   ÚoffsetsZ
DateOffsetÚto_datetimeZas_unitrJ   rf   )rK   r#  rL   ÚoffsetrO   Zexp_dtirP   r   r   r   Útest_datetime_understoodü  s    ÿz1TestTimeSeriesArithmetic.test_datetime_understoodc                 C   s–   t ddd�}ttj d¡ d¡|d�}|dd … }| ¡ }dd„ |jD ƒ|_|| }|| }||dd …  }|j d ¡|_t	 
||¡ t	 
||¡ d S )	Nr…   r?   r@   r    ry   r0   c                 S   s   g | ]}|  ¡ ‘qS r   )r   )Ú.0r-   r   r   r   Ú
<listcomp>  r/   zWTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindex.<locals>.<listcomp>)r   r   r"   r#   r$   r�   rª   rC   Z
_with_freqrJ   rf   )rK   r’   r*   Zts_sliceZts2rO   r§   rP   r   r   r   Ú*test_align_date_objects_with_datetimeindex  s    zCTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindexN)rV   rW   rX   r   r"  r(  r+  r   r   r   r   r  Ò  s   r  c                	   @   sT   e Zd Zej deeej	e
eej	g¡ej dddg¡dd„ ƒƒZdd„ Zd	d
„ ZdS )ÚTestNamePreservationÚboxÚflexTFc                 C   s  |}t tdƒ|d d�}t tdƒ|d d�}|j d¡}|dv }	d}
d }|ttfv r\|	r\t}||ƒ}|r€|	rpd S t||ƒ|ƒ}n8tj	||
d�� |||ƒ}W d   ƒ n1 s®0    Y  t
|t ƒsÆJ ‚|tt fv rô|j|d	 u sò|j|d	 ksòJ ‚n$|j|d u �s|j|d k�sJ ‚d S )
Nr2   r   r^   rE   Ú_)ÚandZrandÚxorZrxorÚorZrorzLLogical ops \(and, or, xor\) between Pandas objects and dtype-less sequencesr‰   r    )r   r6   rV   Ústriprî   Útupler  rH   rJ   rØ   Ú
isinstancer
   rD   )rK   r.  r-  rù   Zall_binary_operatorsrN   rÝ   rÞ   rD   Z
is_logicalr“   ÚwarnrO   r   r   r   Útest_series_ops_name_retention  s*    ÿ("z3TestNamePreservation.test_series_ops_name_retentionc                 C   s  || }|j |j ksJ ‚| |¡}|j |j ks2J ‚||d d…  }|j |j ksRJ ‚| ¡ }d|_ || }|j d u svJ ‚| |¡}|j d u sŽJ ‚g d¢}|dd„ |D ƒ }|D ]T}| ¡ }t||ƒ|ƒ}|j |j ksÖJ ‚| ¡ }d|_ t||ƒ|ƒ}|j d u s¬J ‚q¬d S )Néþÿÿÿzsomething else)r9   r:   r;   rƒ   r=   r<   Úmodr>   c                 S   s   g | ]}d | ‘qS )rF   r   )r)  rN   r   r   r   r*  Q  r/   zGTestNamePreservation.test_binop_maybe_preserve_name.<locals>.<listcomp>Úchanged)rD   r;   rª   r9   rH   )rK   r«   rO   Úcpr   rN   rg   r   r   r   Útest_binop_maybe_preserve_name>  s,    

z3TestNamePreservation.test_binop_maybe_preserve_namec                 C   s   |d }|j |j ksJ ‚d S r   r^   )rK   r«   rO   r   r   r   Útest_scalarop_preserve_name^  s    z0TestNamePreservation.test_scalarop_preserve_nameN)rV   rW   rX   r€   r�   r‚   rî   r4  r"   r  r
   r   rŽ   r7  r<  r=  r   r   r   r   r,    s
   # r,  c                   @   s"   e Zd Zej dd¡dd„ ƒZdS )ÚTestInplaceOperationsz)dtype1, dtype2, dtype_expected, dtype_mul))rË   rË   rË   rË   )rÊ   rÊ   rÊ   rÊ   )rË   rÊ   rÌ   rÌ   )rË   rÌ   rÌ   rÌ   c                 C   s†   t dg|d�}t dg|d�}||7 }t dg|d�}t ||¡ ||8 }t dg|d�}t ||¡ ||9 }t dg|d�}t ||¡ d S )NrE   r3   r    r\   r–   )rK   Zdtype1Zdtype2Zdtype_expectedZ	dtype_mulrÆ   rÇ   rP   r   r   r   Útest_series_inplace_opsd  s    z-TestInplaceOperations.test_series_inplace_opsN)rV   rW   rX   r€   r�   r‚   r?  r   r   r   r   r>  c  s
   þ	r>  c                 C   s¦  |}t |ƒdk r$|  tjjdd�¡ tj|jd< |d k}|jd rFJ ‚|jd rTJ ‚|d k}|jd sjJ ‚|jd sxJ ‚d |k}|jd rŽJ ‚|jd rœJ ‚d |k}|jd s²J ‚|jd sÀJ ‚t	 
|jd¡sÜt|jtƒ�rRd}tjt|d�� d |k W d   ƒ n1 �s0    Y  tjt|d�� |d k W d   ƒ n1 �sF0    Y  nPd |k}|jd �rjJ ‚|jd �rzJ ‚|d k }|jd �r’J ‚|jd �r¢J ‚d S )NrE   z%Test doesn't make sense on empty data)Úreasonr   ÚMzInvalid comparisonr‰   )r&   Zapplymarkerr€   r�   Zxfailr"   rd   r�   Ziatr   Zis_np_dtyper4   r5  r	   r‘   rŸ   )r   Zseries_with_simple_indexrL   rO   r“   r   r   r   Útest_none_comparison  s<    ÿ(*rB  c                  C   sÂ   t tdƒtjjtdƒtdƒddggg d¢d�d�} t d	d
„ tddƒD ƒtjjtdƒddggddgd�d�}| jtjdgd d …d d …f  | }t g d¢tjjg d¢g d¢d�d�}t	 
||¡ d S )Né   ÚabÚxyrE   r    )rD  rE  Únum)rù   ry   c                 S   s   g | ]}d | ‘qS )éè  r   )r)  rv   r   r   r   r*  ¸  r/   z;test_series_varied_multiindex_alignment.<locals>.<listcomp>r0   rF  rr   )rG  iÑ  iº  i£  ))rr   r-   rE   )rr   r-   r    )rr   rk   rE   )rr   rk   r    )r   r6   rŽ   Z
MultiIndexZfrom_productrî   ÚlocZ
IndexSliceÚfrom_tuplesrJ   rf   )r    r¡   rO   rP   r   r   r   Ú'test_series_varied_multiindex_alignment¯  s&    ÿþþ$þþrJ  c                  C   s2   t dgd ƒ d¡} t dgd ƒ}t | |¡ d S )Nr    i'  r¶   rE   )r   ZrmodrJ   rf   )rO   rP   r   r   r   Ú!test_rmod_consistent_large_seriesÆ  s    rK  )/Údatetimer   r   r   Údecimalr   rI   Únumpyr"   r€   Zpandas._libsr   Zpandas._libs.tslibsr   ZpandasrŽ   r   r	   r
   r   r   r   r   r   Zpandas._testingZ_testingrJ   Zpandas.corer   Zpandas.core.computationr   r   Zpandas.core.computation.checkr   Zfixturer   r(   r)   r„   rÛ   rñ   r  r,  r>  rB  rJ  rK  r   r   r   r   Ú<module>   s8   (

u Y6  &FK0