U
    >vf=/  ã                   @   s  d dl 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„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zej ddddg¡dd„ ƒZej ddd„ dd„ g¡dd„ ƒZdd„ Zej dd d„ d!fd"d„ d#fg¡d$d%„ ƒZej ddddg¡d&d'„ ƒZdS )(é    N)Ú	DataFrameÚSeriesÚconcatÚmerge)Ú	get_arrayc                 C   s6  t ddgd iƒ}t ddgd iƒ}| ¡ }t||gdd}| rzt t|dƒt|dƒ¡s\t‚t t|dƒt|dƒ¡s²t‚n8t t|dƒt|dƒ¡r–t‚t t|dƒt|dƒ¡r²t‚d|jd< | røt t|dƒt|dƒ¡rÜt‚t t|dƒt|dƒ¡søt‚d|jd< | r&t t|dƒt|dƒ¡r&t‚t 	||¡ d S )	NÚbÚaé   é   ©ÚaxisÚd©r   r   ©r   r
   )
r   Úcopyr   ÚnpÚshares_memoryr   ÚAssertionErrorÚilocÚtmÚassert_frame_equal)Úusing_copy_on_writeÚdfÚdf2Zdf_origÚresult© r   úI/tmp/pip-unpacked-wheel-vdrwu74i/pandas/tests/copy_view/test_functions.pyÚtest_concat_frames   s"    

r   c                 C   s6  t ddgd iƒ}t ddgd iƒ}t||gdd}| rrt t|dƒt|dƒ¡sTt‚t t|dƒt|dƒ¡sªt‚n8t t|dƒt|dƒ¡rŽt‚t t|dƒt|dƒ¡rªt‚| ¡ }d|jd< | røt t|dƒt|dƒ¡rÜt‚t t|dƒt|dƒ¡søt‚d|jd< | r&t t|dƒt|dƒ¡r&t‚t 	||¡ d S )Nr   r   r	   r
   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   Úexpectedr   r   r   Ú!test_concat_frames_updating_input&   s"    

r   c                 C   s*  t ddgdd}t ddgdd}| ¡ }| ¡ }t||gdd}| rvt t|dƒ|j¡s\t‚t t|dƒ|j¡s¦t‚n0t t|dƒ|j¡rŽt‚t t|dƒ|j¡r¦t‚d	|jd
< | rät t|dƒ|j¡rÌt‚t t|dƒ|j¡sät‚d|jd< | rt t|dƒ|j¡rt‚t	 
||¡ t	 
||¡ d S )Nr
   é   r   ©Únamer	   é   r   r   éd   r   éè  r   )r   r   r   r   r   r   Úvaluesr   r   r   Zassert_series_equal)r   ÚserÚser2Zser_origZ	ser2_origr   r   r   r   Útest_concat_series>   s&    

r)   c                 C   sP  t dddgdddgdœƒ}t dd	d
dgiƒ}t dd	d
dgiƒ}tt||gdd|gdd}| ¡ }| r¼t t|dƒt|dƒ¡s‚t‚t t|dƒt|dƒ¡sžt‚t t|dƒt|dƒ¡sºt‚nVt t|dƒt|dƒ¡rØt‚t t|dƒt|dƒ¡rôt‚t t|dƒt|dƒ¡rt‚d|jd< | r@t t|dƒt|dƒ¡r@t‚t 	||¡ d S )Nr
   r    r	   gš™™™™™¹?gš™™™™™É?g333333Ó?©r   r   Úcr#   é   é   r   r   r   r$   r   )
r   r   r   r   r   r   r   r   r   r   )r   Údf1r   Zdf3r   r   r   r   r   Útest_concat_frames_chainedX   s     
r/   c                 C   sH  t dddgdd}t dddgd	d}t dddgd
d}tt||gdd|gdd}| ¡ }| r´t t|dƒt|dƒ¡szt‚t t|d	ƒt|d	ƒ¡s–t‚t t|d
ƒt|d
ƒ¡s²t‚nVt t|dƒt|dƒ¡rÐt‚t t|d	ƒt|d	ƒ¡rìt‚t t|d
ƒt|d
ƒ¡r
t‚d|jd< | r8t t|dƒt|dƒ¡r8t‚t 	||¡ d S )Nr
   r    r	   r   r!   r#   r,   r-   r+   r   r   r$   r   )
r   r   r   r   r   r   r   r   r   r   )r   Zser1r(   Zser3r   r   r   r   r   Útest_concat_series_chainedo   s     
r0   c                 C   sP  t ddgdd}t ddgdd}tddgddgdœƒ}t||gdd	}| r„t t|dƒt|dƒ¡sft‚t t|dƒt|dƒ¡s¼t‚n8t t|dƒt|dƒ¡r t‚t t|dƒt|dƒ¡r¼t‚d
|jd< | rt t|dƒt|dƒ¡rèt‚t t|dƒt|dƒ¡st‚t 	||¡ d|jd< | r@t t|dƒt|dƒ¡r@t‚t 	||¡ d S )Nr
   r    r   r!   r	   r#   r   r*   r   r$   r   r%   )
r   r   r   r   r   r   r   r   r   r   )r   r'   r(   r   r   r   r   r   Ú!test_concat_series_updating_input†   s$    

r1   c                 C   sX  t dddgddœƒ}tdddgdd	}t||gdd
}| ¡ }| r˜t t|dƒt|dƒ¡s^t‚t t|dƒt|dƒ¡szt‚t t|dƒt|dƒ¡sìt‚nTt t|dƒt|dƒ¡r´t‚t t|dƒt|dƒ¡rÐt‚t t|dƒt|dƒ¡rìt‚d|jd< | rt t|dƒt|dƒ¡rt‚d|jd< | rHt t|dƒt|dƒ¡rHt‚t	 
||¡ d S )Nr
   r    r	   )r   r+   r#   r,   r-   r   r!   r   r   r+   r$   r   r   )r   r   r   r   r   r   r   r   r   r   r   )r   r   r'   r   r   r   r   r   Útest_concat_mixed_series_frameŸ   s$    

r2   r   TFc                 C   s´   t dddgiƒ}t dddgiƒ}t||gd|d}| s>|dkrxt t|dƒt|dƒ¡sZt‚t t|dƒt|dƒ¡s°t‚n8t t|dƒt|dƒ¡r”t‚t t|dƒt|dƒ¡r°t‚d S )	Nr   r
   r    r   g      ø?g      @)r   r   F)r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   Útest_concat_copy_keyword¸   s    r4   Úfuncc                 K   s   | j |f|ŽS ©N©r   ©r.   r   Úkwargsr   r   r   Ú<lambda>Ê   ó    r:   c                 K   s   t | |f|ŽS r6   r7   r8   r   r   r   r:   Ë   r;   c                 C   s˜  t dddgdddgdœƒ}t dddgdd	d
gdœƒ}| ¡ }| ¡ }|||dd}| rÈt t|dƒt|dƒ¡srt‚t t|dƒt|dƒ¡sŽt‚t t|dƒt|dƒ¡sªt‚t t|dƒt|dƒ¡rÆt‚n:t t|dƒt|dƒ¡rät‚t t|dƒt|dƒ¡rt‚d|jd< | rNt t|dƒt|dƒ¡r0t‚t t|dƒt|dƒ¡sNt‚d|jd< | r|t t|dƒt|dƒ¡r|t‚t ||¡ t ||¡ d S )Nr   r   r+   r
   r    r	   ©Úkeyr   r#   r,   r-   ©r=   r   r=   )Úonr   r   ©r   r    )	r   r   r   r   r   r   r   r   r   )r   r5   r.   r   Údf1_origÚdf2_origr   r   r   r   Útest_merge_on_keyÇ   s*    

rC   c                 C   sN  t ddddgiƒ}t ddddgiƒ}| ¡ }| ¡ }t||d	d	d
}| r‚t t|dƒt|dƒ¡sdt‚t t|dƒt|dƒ¡sºt‚n8t t|dƒt|dƒ¡ržt‚t t|dƒt|dƒ¡rºt‚d|jd< | rt t|dƒt|dƒ¡ræt‚t t|dƒt|dƒ¡st‚d|jd< | r2t t|dƒt|dƒ¡r2t‚t 	||¡ t 	||¡ d S )Nr   r
   r    r	   r   r#   r,   r-   T)Ú
left_indexÚright_indexr   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r.   r   rA   rB   r   r   r   r   Útest_merge_on_indexë   s&    

rF   z	func, howc                 K   s   t || fddi|—ŽS ©Nr?   r=   r7   r8   r   r   r   r:   	  r;   Úrightc                 K   s   t | |fddi|—ŽS rG   r7   r8   r   r   r   r:   
  r;   Úleftc                 C   sˆ  t dddgdddgdœƒ}t ddgdd	gd
œƒ}| ¡ }| ¡ }||||d}| rìt t|dƒt|dƒ¡snt‚t t|dƒt|dƒ¡rŠt‚|j d¡sšt‚|j d¡sªt‚t t|dƒt|dƒ¡|dkksÎt‚t t|dƒt|dƒ¡rêt‚n<t t|dƒt|dƒ¡r
t‚t t|dƒt|dƒ¡r(t‚|dkr>d|jd< n
d|jd< | rlt t|dƒt|dƒ¡rlt‚t	 
||¡ t	 
||¡ d S )Nr   r   r+   r
   r    r	   r<   r#   r,   r>   )Úhowr   r=   rI   r   r@   )r   r   r   r   r   r   Z_mgrZ_has_no_referencer   r   r   )r   r5   rJ   r.   r   rA   rB   r   r   r   r   Útest_merge_on_key_enlarging_one  s.    ÿ

rK   c                 C   s´   t dddgiƒ}t dddgiƒ}|j||ddd}| s>|d	krxt t|dƒt|dƒ¡sZt‚t t|dƒt|dƒ¡s°t‚n8t t|dƒt|dƒ¡r”t‚t t|dƒt|dƒ¡r°t‚d S )
Nr   r
   r    r   r	   g      @T)r   rD   rE   F)r   r   r   r   r   r   r3   r   r   r   Útest_merge_copy_keyword,  s    rL   )Znumpyr   ZpytestZpandasr   r   r   r   Zpandas._testingZ_testingr   Zpandas.tests.copy_view.utilr   r   r   r)   r/   r0   r1   r2   ÚmarkZparametrizer4   rC   rF   rK   rL   r   r   r   r   Ú<module>   s<   
þþ


þþ
