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ÚparamsÚ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   úb/var/www/html/laksyashrimp/venv/lib/python3.9/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/   /   r0   Fc                 C   s   | S r,   r   r-   r   r   r   r/   0   r0   c                 C   s   | d d d… S r    r   r-   r   r   r   r/   0   r0   c                 C   s   | S r,   r   r-   r   r   r   r/   1   r0   c                 C   s   dS )Né   r   r-   r   r   r   r/   1   r0   Tc                 C   s   t tdƒtjd�S ©Né
   ©Údtype©r   Úranger#   Úfloat64r-   r   r   r   r/   3   r0   c                 C   s   t tdƒtjd�S r2   r6   r-   r   r   r   r/   4   r0   Ú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é   r4   z
2020-01-01©Úperiodsr+   ©ÚindexÚnamer   é   r!   Úr)	r   r#   Úaranger8   r   ÚgetattrÚoperatorÚtmZassert_almost_equal)Úselfr9   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   )rL   ©ÚMySeriesr   r   Ú_constructorY   s    zgTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservation.<locals>.MySeries._constructorN)Ú__name__Ú
__module__Ú__qualname__Ú	_metadataÚpropertyrV   r   rT   r   r   rU   V   s   rU   ©rF   r!   é   Útest©rE   é*   rF   )r   rI   r.   )rL   Zall_arithmetic_operatorsr9   rO   r   rP   r   rT   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   rF   r]   é   r1   r!   ©Ú
fill_value)r   r#   ÚnanÚfillnar:   rK   Úassert_series_equal)rL   ÚserÚexpÚresr   r   r   Útest_flex_add_scalar_fill_valued   s    z8TestSeriesFlexArithmetic.test_flex_add_scalar_fill_valuerF   )r:   r;   r<   r?   r>   r=   r   rG   c                 C   s   t t|ƒ|| ƒS r,   )rI   rJ   )r.   ÚyrO   r   r   r   r/   s   r0   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)Úallrc   )rD   ÚunionÚreindexr   r7   r'   r#   ZerrstateÚappendre   r   rK   rg   )ÚmethrO   ÚaÚbrd   Ú	exp_indexZamaskZbmaskÚ
exp_valuesÚirP   rQ   r   r   r   Ú_check_filly   s,    

:
zDTestSeriesFlexArithmetic.test_operators_combine.<locals>._check_fillç      ð?g       @g      @r1   ©rD   rF   r]   ç      @é   rc   ©Úaxis)r   )r   r#   re   rH   rK   rg   )	rL   rO   Zequiv_opÚfvrx   rs   rt   rP   ri   r   r   r   Útest_operators_combinew   s    
 $

z/TestSeriesFlexArithmetic.test_operators_combineN)rW   rX   rY   ÚpytestÚmarkÚparametrizerS   ra   rk   r   ÚdivrJ   r>   Zrdivr   ZrtruedivZpairingsrO   r   rI   ZlopZlequivrR   Zrequivrq   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!   rz   rF   z4Input has different freq=D from Period\(freq=Y-DEC\)©ÚmatchÚDÚend)Úhow)ÚpdZperiod_ranger   r#   r$   r%   Ústandard_normalr'   re   ÚilocrK   rg   r)   r�   Úraisesr   Zasfreq)rL   Úrngr+   rP   rQ   Ú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   rK   rg   )rL   Z
target_addZinput_valueZexpected_valuers   rP   rQ   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 )NrF   )rs   rt   ÚcÚdrz   r!   )rs   rt   rš   Úer   )r   r#   re   ÚdivmodrK   rg   Zrdivmod)rL   rs   rt   rP   rQ   r   r   r   Útest_divmodÂ   s    



z TestSeriesArithmetic.test_divmodrD   Né	   c                 C   sX   t tddƒƒ}t d|d�}d}tjt|d�� ||  W d   ƒ n1 sJ0    Y  d S )NrF   r3   Úfoorz   zHnot all arguments converted during string formatting|'mod' not supportedrŠ   )r   r7   r�   r’   Ú	TypeError)rL   rD   Ú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 )NrF   r!   rz   r3   é   é   )rF   rF   r!   )r   r#   re   rK   rg   )rL   r¡   r¢   rP   rQ   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Ü  rF   r!   rz   r   )r   r   r   Úshiftr   r‘   )rL   rh   rP   Ú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)rD   r5   r   )r   r
   r#   r8   Úisnanrn   Úcopyr'   )rL   Údatetime_seriesÚemptyrP   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+   rC   )ÚastypeÚintr   ÚvaluesrD   rK   rg   )rL   r¬   Zint_tsÚaddedrQ   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 )Nr4   r.   g        rz   )r   r#   Zint32rK   rg   re   )rL   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Œ   ©rB   r‰   r!   éÿÿÿÿr   r_   )r   r   r#   re   r‘   r   r�   ZNaTrK   rg   Úto_frame)rL   ÚdtZdt2rQ   rP   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-01r3   ZCET)rB   ÚtzÚUTCrz   )r   Ú
tz_convertr   rD   )rL   ÚdtiZdti_utcrh   Ú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!   rz   r·   rÁ   rb   rÂ   rž   rÃ   )Ú
categoriesr{   é   )	r   r   r�   ZCategoricalIndexrÄ   r#   re   rK   rg   )rL   ÚcatÚser1Úser2rP   ru   rv   rQ   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]   rb   rF   r|   Zint64r4   rz   r1   z20130101 09:00:00rA   Z20130101z9 hours)r   r#   rH   rK   rg   r   r   )rL   rD   rh   rN   rP   rQ   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   Úfloatr4   rF   ÚInt64ÚFloat64)r   r#   re   r�   ÚNArK   rg   ©rL   rÇ   rÈ   rP   rQ   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é   r1   rb   rÌ   r4   ry   rÍ   )r   r�   rÎ   r#   re   rK   rg   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)rF   Nr]   rÌ   r4   rF   r!   r]   r—   )rL   Úvalr5   rh   rP   rQ   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Úbooleanr4   )TNT)	ÚnodeZcallspecÚidr   ÚUserWarningr   rK   Úassert_produces_warningrg   )rL   r   Úwarningrh   rP   rQ   r   r   r   Ú%test_add_list_to_masked_array_booleanb  s    ÿÿý**z:TestSeriesArithmetic.test_add_list_to_masked_array_boolean)rW   rX   rY   r•   r�   r‚   rƒ   r˜   r�   r7   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   NrD   c                 C   sZ   t tj d¡ d¡ƒ}t tj d¡ d¡ƒ}t||jƒ||d�}|||ƒ}t ||¡ d S )Nr!   r3   r}   )	r   r#   r$   r%   r�   rI   rW   rK   rg   )rL   r~   Úcomparison_opÚleftÚrightrP   rQ   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!   r3   zNo axis named 1 for object typerŠ   rF   r}   )
r   r#   r$   r%   r�   r�   r’   Ú
ValueErrorrI   rW   )rL   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©rF   r]   r!   Úabcrz   ©r!   r!   r!   ÚbcdÚabcd©r   ÚlistrI   rK   rg   )rL   r²   rO   rÞ   rß   rP   rQ   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ê   rz   rë   rì   rc   rí   rî   )rL   r²   rO   rd   rÞ   rß   rP   rQ   r   r   r   Ú#test_comparison_flex_alignment_fill›  s
    z<TestSeriesFlexComparison.test_comparison_flex_alignment_fillN)
rW   rX   rY   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©rs   rt   r™   rt   rs   z'only compare identically-labeled SeriesrŠ   rF   r!   )r!   r]   rb   )r   r�   r’   rá   )rL   rs   rt   r”   r   r   r   Ú test_comparison_different_length¯  s    &z5TestSeriesComparison.test_comparison_different_lengthr9   )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]   rz   r!   Úbool)r   r7   rI   Údtypesr#   r5   )rL   r9   rh   ÚconstrP   rQ   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]   rz   r   r!   rõ   )r   r7   r‘   rI   rö   r#   r5   )rL   r9   rh   r­   r÷   rP   rQ   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Úhr1   r   )r‰   rB   rE   rF   r!   z
US/CentralZinferrˆ   )ÚstartrB   rE   Úcategory)r   r   ÚrenamerE   Útz_localizer�   ZDatetimeIndexr§   rJ   rã   rä   Zinterval_ranger°   )
rL   rú   rÝ   rO   r¾   rh   rP   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—   )rL   Úsr¢   ri   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ÿ   r4   Úobject)rs   rt   ÚccZacbrs   r   ú can only compare equality or notrŠ   )r   rï   r   rn   r�   r’   r    )rL   rs   rt   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Š   rt   F)ZorderedTz1Invalid comparison between dtype=category and strrš   r  )TTT)r   r   rï   r�   r’   r    rK   rg   )rL   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)rF   rF   )rF   r!   FT)r   r   r—   )rL   r  rP   rQ   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 )NrF   r!   TF)r   Ú	frozensetrK   rg   ©rL   rh   rP   rQ   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†   r3   rA   r4   r!   r1   zDowncasting object dtype arraysrŠ   TF)r   r   r  r#   re   Zdropnarp   rD   rK   rÙ   ÚFutureWarningrJ   rä   rf   r°   rõ   rg   )rL   rÝ   rh   rÓ   rP   rQ   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]   rb   r1   r|   é   r4   )TTFTTr1   )r   rË   r#   ÚarrayrK   Zassert_numpy_array_equalrD   )rL   r+   rQ   r   r   r   Útest_ne’  s    zTestSeriesComparison.test_nezleft, rightr\   ÚABCr.   rC   rë   ZABD)r!   r!   r!   r!   Ú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   rW   r¸   r�   r’   rá   )rL   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)rW   rX   rY   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)rB   r‰   r»   r!   éZ   z
US/Easternrz   zEurope/Berlin)r   r#   r$   r%   r&   r   r�   r"   r½   Z
sort_indexrD   r»   r   r  rK   rg   )	rL   r“   ÚpermrÇ   rÈ   rP   Zuts1Zuts2rQ   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  r3   rý   r¶   r!   rz   r  z0Cannot join tz-naive with tz-aware DatetimeIndexrŠ   )r   r   r#   r$   r%   r�   r'   r  r�   r’   Ú	Exception)rL   r“   rh   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]   )rB   Úunitr|   )Údays)z
2011-12-26z
2011-12-27z
2011-12-28)	r   r   r�   ÚoffsetsZ
DateOffsetÚto_datetimeZas_unitrK   rg   )rL   r$  rM   ÚoffsetrP   Zexp_dtirQ   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@   rA   r!   rz   r1   c                 S   s   g | ]}|  ¡ ‘qS r   )r   )Ú.0r.   r   r   r   Ú
<listcomp>  r0   zWTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindex.<locals>.<listcomp>)r   r   r#   r$   r%   r�   r«   rD   Z
_with_freqrK   rg   )rL   r“   r+   Zts_sliceZts2rP   r¨   rQ   r   r   r   Ú*test_align_date_objects_with_datetimeindex  s    zCTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindexN)rW   rX   rY   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 )
Nr3   r   r_   rF   Ú_)ÚandZrandÚxorZrxorÚorZrorzLLogical ops \(and, or, xor\) between Pandas objects and dtype-less sequencesrŠ   r!   )r   r7   rW   Ústriprï   Útupler  rI   rK   rÙ   Ú
isinstancer
   rE   )rL   r/  r.  rú   Zall_binary_operatorsrO   rÞ   rß   rE   Z
is_logicalr”   ÚwarnrP   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)r:   r;   r<   r„   r>   r=   Úmodr?   c                 S   s   g | ]}d | ‘qS )rG   r   )r*  rO   r   r   r   r+  Q  r0   zGTestNamePreservation.test_binop_maybe_preserve_name.<locals>.<listcomp>Úchanged)rE   r<   r«   r:   rI   )rL   r¬   rP   Úcpr   rO   rh   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_   )rL   r¬   rP   r   r   r   Útest_scalarop_preserve_name^  s    z0TestNamePreservation.test_scalarop_preserve_nameN)rW   rX   rY   r�   r‚   rƒ   rï   r5  r#   r  r
   r   r�   r8  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 )NrF   r4   r!   r]   r—   )rL   Zdtype1Zdtype2Zdtype_expectedZ	dtype_mulrÇ   rÈ   rQ   r   r   r   Útest_series_inplace_opsd  s    z-TestInplaceOperations.test_series_inplace_opsN)rW   rX   rY   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 )NrF   z%Test doesn't make sense on empty data)Úreasonr   ÚMzInvalid comparisonrŠ   )r'   Zapplymarkerr�   r‚   Zxfailr#   re   r‘   Ziatr   Zis_np_dtyper5   r6  r	   r’   r    )r   Zseries_with_simple_indexrM   rP   r”   r   r   r   Útest_none_comparison  s<    ÿ(*rC  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ÚxyrF   r!   )rE  rF  Únum)rú   rz   c                 S   s   g | ]}d | ‘qS )éè  r   )r*  rw   r   r   r   r+  ¸  r0   z;test_series_varied_multiindex_alignment.<locals>.<listcomp>r1   rG  rs   )rH  iÑ  iº  i£  ))rs   r.   rF   )rs   r.   r!   )rs   rl   rF   )rs   rl   r!   )r   r7   r�   Z
MultiIndexZfrom_productrï   ÚlocZ
IndexSliceÚfrom_tuplesrK   rg   )r¡   r¢   rP   rQ   r   r   r   Ú'test_series_varied_multiindex_alignment¯  s&    ÿþþ$þþrK  c                  C   s2   t dgd ƒ d¡} t dgd ƒ}t | |¡ d S )Nr!   i'  r·   rF   )r   ZrmodrK   rg   )rP   rQ   r   r   r   Ú!test_rmod_consistent_large_seriesÆ  s    rL  )/Údatetimer   r   r   Údecimalr   rJ   Únumpyr#   r�   Zpandas._libsr   Zpandas._libs.tslibsr   Zpandasr�   r   r	   r
   r   r   r   r   r   Zpandas._testingZ_testingrK   Zpandas.corer   Zpandas.core.computationr   r   Zpandas.core.computation.checkr   Zfixturer   r)   r*   r…   rÜ   rò   r  r-  r?  rC  rK  rL  r   r   r   r   Ú<module>   s8   (

u Y6  &FK0