a
    Pªf‘<  ã                   @   s  d dl Zd dlZd dlmZ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g d¢¡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g d¢¡d%d&„ ƒZd'd(„ Zd)d*„ ZdS )+é    N)Ú	DataFrameÚIndexÚ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\J ‚t t|dƒt|dƒ¡s²J ‚n8t t|dƒt|dƒ¡r–J ‚t t|dƒt|dƒ¡r²J ‚d|jd< | røt t|dƒt|dƒ¡rÜJ ‚t t|dƒt|dƒ¡søJ ‚d|jd< | r&t t|dƒt|dƒ¡r&J ‚t ||¡ d S )	NÚbÚaé   é   ©ÚaxisÚd©r   r   ©r   r   )	r   Úcopyr   ÚnpÚshares_memoryr   ÚilocÚtmÚassert_frame_equal)Úusing_copy_on_writeÚdfÚdf2Údf_origÚresult© r   ú^/var/www/ai-form-bot/venv/lib/python3.9/site-packages/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ƒ¡sTJ ‚t t|dƒt|dƒ¡sªJ ‚n8t t|dƒt|dƒ¡rŽJ ‚t t|dƒt|dƒ¡rªJ ‚| ¡ }d|jd< | røt t|dƒt|dƒ¡rÜJ ‚t t|dƒt|dƒ¡søJ ‚d|jd< | r&t t|dƒt|dƒ¡r&J ‚t ||¡ d S )Nr   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\J ‚t t|dƒ|j¡s¦J ‚n0t t|dƒ|j¡rŽJ ‚t t|dƒ|j¡r¦J ‚d	|jd
< | rät t|dƒ|j¡rÌJ ‚t t|dƒ|j¡säJ ‚d|jd< | rt t|dƒ|j¡rJ ‚t 	||¡ t 	||¡ d S )Nr   é   r	   ©Únamer
   é   r   r   éd   r   éè  r   )
r   r   r   r   r   r   Úvaluesr   r   Zassert_series_equal)r   ÚserÚser2Zser_origZ	ser2_origr   r   r   r   Útest_concat_series?   s&    

r*   c                 C   sH  t g d¢g d¢dœƒ}t dg d¢iƒ}t dg d¢iƒ}tt||gdd|gdd}| ¡ }| r´t t|d	ƒt|d	ƒ¡szJ ‚t t|dƒt|dƒ¡s–J ‚t t|dƒt|dƒ¡s²J ‚nVt t|d	ƒt|d	ƒ¡rÐJ ‚t t|dƒt|dƒ¡rìJ ‚t t|dƒt|dƒ¡r
J ‚d
|jd< | r8t t|d	ƒt|d	ƒ¡r8J ‚t ||¡ d S )N©r   r!   r
   )gš™™™™™¹?gš™™™™™É?g333333Ó?©r	   r   Úc©r$   é   é   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_chainedY   s     
r2   c                 C   sB  t g d¢dd}t g d¢dd}t g d¢dd}tt||gdd|gdd}| ¡ }| r®t t|dƒt|dƒ¡stJ ‚t t|dƒt|dƒ¡sJ ‚t t|dƒt|dƒ¡s¬J ‚nVt t|dƒt|dƒ¡rÊJ ‚t t|dƒt|dƒ¡ræJ ‚t t|dƒt|dƒ¡rJ ‚d	|jd
< | r2t t|dƒt|dƒ¡r2J ‚t ||¡ d S )Nr+   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_chainedp   s     
r3   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ƒ¡sfJ ‚t t|dƒt|dƒ¡s¼J ‚n8t t|dƒt|dƒ¡r J ‚t t|dƒt|dƒ¡r¼J ‚d
|jd< | rt t|dƒt|dƒ¡rèJ ‚t t|dƒt|dƒ¡sJ ‚t ||¡ d|jd< | r@t t|dƒt|dƒ¡r@J ‚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   Ú!test_concat_series_updating_input‡   s$    

r4   c                 C   sT  t g d¢ddœƒ}tg d¢dd}t||gdd}| ¡ }| r”t t|dƒt|dƒ¡sZJ ‚t t|d	ƒt|d	ƒ¡svJ ‚t t|dƒt|dƒ¡sèJ ‚nTt t|dƒt|dƒ¡r°J ‚t t|d	ƒt|d	ƒ¡rÌJ ‚t t|dƒt|dƒ¡rèJ ‚d
|jd< | rt t|dƒt|dƒ¡rJ ‚d
|jd< | rDt t|dƒt|dƒ¡rDJ ‚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   Útest_concat_mixed_series_frame    s$    

r5   r   )TNFc                 C   s´   t dddgiƒ}t dddgiƒ}t||gd|d}| s>|du rxt t|dƒt|dƒ¡sZJ ‚t t|dƒt|dƒ¡s°J ‚n8t t|dƒt|dƒ¡r”J ‚t t|dƒt|dƒ¡r°J ‚d S )	Nr	   r   r!   r   g      ø?g      @)r   r   F)r   r   r   r   r   ©r   r   r   r   r   r   r   r   Útest_concat_copy_keyword¹   s    r7   Úfuncc                 K   s   | j |fi |¤ŽS ©N©r   ©r1   r   Úkwargsr   r   r   Ú<lambda>Ë   ó    r=   c                 K   s   t | |fi |¤ŽS r9   r:   r;   r   r   r   r=   Ì   r>   c                 C   sŽ  t g d¢g d¢dœƒ}t g d¢g d¢dœƒ}| ¡ }| ¡ }|||dd}| rÀt t|dƒt|dƒ¡sjJ ‚t t|d	ƒt|d	ƒ¡s†J ‚t t|dƒt|dƒ¡s¢J ‚t t|dƒt|dƒ¡røJ ‚n8t t|dƒt|dƒ¡rÜJ ‚t t|d	ƒt|d	ƒ¡røJ ‚d
|jd< | rDt t|dƒt|dƒ¡r&J ‚t t|d	ƒt|d	ƒ¡sDJ ‚d
|jd< | rrt t|d	ƒt|d	ƒ¡rrJ ‚t ||¡ t ||¡ d S )N©r	   r   r-   r+   ©Úkeyr	   r.   ©rA   r   rA   ©Úonr	   r   r   r   ©r   r!   )r   r   r   r   r   r   r   r   )r   r8   r1   r   Údf1_origÚdf2_origr   r   r   r   Útest_merge_on_keyÈ   s*    

rH   c                 C   sF  t dg d¢iƒ}t dg d¢iƒ}| ¡ }| ¡ }t||ddd}| r~t t|dƒt|dƒ¡s`J ‚t t|dƒt|dƒ¡s¶J ‚n8t t|dƒt|dƒ¡ršJ ‚t t|dƒt|dƒ¡r¶J ‚d|jd< | rüt t|dƒt|dƒ¡ràJ ‚t t|dƒt|dƒ¡süJ ‚d|jd	< | r*t t|dƒt|dƒ¡r*J ‚t ||¡ t ||¡ d S )
Nr	   r+   r   r.   T)Ú
left_indexÚright_indexr   r   r   )	r   r   r   r   r   r   r   r   r   )r   r1   r   rF   rG   r   r   r   r   Útest_merge_on_indexì   s&    

rK   z	func, howc                 K   s   t || fddi|¤ŽS ©NrD   rA   r:   r;   r   r   r   r=   
  r>   Úrightc                 K   s   t | |fddi|¤ŽS rL   r:   r;   r   r   r   r=     r>   Úleftc                 C   s„  t g d¢g d¢dœƒ}t ddgddgdœƒ}| ¡ }| ¡ }||||d	}| rèt t|dƒt|dƒ¡sjJ ‚t t|dƒt|dƒ¡r†J ‚|j d
¡s–J ‚|j d¡s¦J ‚t t|dƒt|dƒ¡|dku sÊJ ‚t t|dƒt|dƒ¡ræJ ‚n<t t|dƒt|dƒ¡rJ ‚t t|dƒt|dƒ¡r$J ‚|dkr:d|jd< n
d|jd< | rht t|dƒt|dƒ¡rhJ ‚t 	||¡ t 	||¡ d S )Nr?   r+   r@   r	   r   r$   r/   rB   )Úhowr   r   rA   rN   r   rE   )
r   r   r   r   r   Z_mgrZ_has_no_referencer   r   r   )r   r8   rO   r1   r   rF   rG   r   r   r   r   Útest_merge_on_key_enlarging_one  s.    ÿ

rP   c                 C   s´   t dddgiƒ}t dddgiƒ}|j||ddd}| s>|d	u rxt t|dƒt|dƒ¡sZJ ‚t t|dƒt|dƒ¡s°J ‚n8t t|dƒt|dƒ¡r”J ‚t t|dƒt|dƒ¡r°J ‚d S )
Nr	   r   r!   r   r
   g      @T)r   rI   rJ   F)r   r   r   r   r   r6   r   r   r   Útest_merge_copy_keyword-  s    rQ   c                 C   s¬  t g d¢dd}tdg d¢i|jddd}td	g d
¢i|jddd}| ¡ }| ¡ }|j|dd}| rÜt t|dƒt|dƒ¡s†J ‚t t|d	ƒt|d	ƒ¡s¢J ‚t t|jƒt|jƒ¡s¾J ‚t t|jƒt|jƒ¡rÚJ ‚n:t t|dƒt|dƒ¡røJ ‚t t|d	ƒt|d	ƒ¡rJ ‚d|jd< | rbt t|dƒt|dƒ¡rDJ ‚t t|d	ƒt|d	ƒ¡sbJ ‚d|jd< | rt t|d	ƒt|d	ƒ¡rJ ‚t	 
||¡ t	 
||¡ d S )Nr?   rA   r"   r	   r+   T©Údeep©Úindexr   r.   rC   r   r   r   )r   r   r   Újoinr   r   r   rU   r   r   r   )r   Údf_indexr1   r   rF   rG   r   r   r   r   Útest_join_on_key<  s,    

rX   c           	      C   sÖ  t g d¢dd}tdg d¢i|jddd}td	g d
¢i|jdddtdg d¢i|jdddg}| ¡ }dd„ |D ƒ}| |¡}| rJt t|dƒt|dƒ¡s¦J ‚t t|d	ƒt|d d	ƒ¡sÆJ ‚t t|dƒt|d dƒ¡sæJ ‚t t|jƒt|jƒ¡sJ ‚t t|jƒt|d jƒ¡r&J ‚t t|jƒt|d jƒ¡r¬J ‚nbt t|dƒt|dƒ¡rhJ ‚t t|d	ƒt|d d	ƒ¡rŠJ ‚t t|dƒt|d dƒ¡r¬J ‚d|jd< | rt t|dƒt|dƒ¡rÚJ ‚t t|d	ƒt|d d	ƒ¡süJ ‚t t|dƒt|d dƒ¡sJ ‚d|jd< | rrt t|d	ƒt|d d	ƒ¡rPJ ‚t t|dƒt|d dƒ¡srJ ‚d|jd< | r¤t t|dƒt|d dƒ¡r¤J ‚t	 
||¡ t||ƒD ]\}}t	 
||¡ qºd S )Nr?   rA   r"   r	   r+   TrR   rT   r   r.   r-   )é   é   é	   c                 S   s   g | ]}|  ¡ ‘qS r   )r   )Ú.0r   r   r   r   Ú
<listcomp>g  r>   z8test_join_multiple_dataframes_on_key.<locals>.<listcomp>r   r   r   r   rE   )r   r   r   rV   r   r   r   rU   r   r   r   Úzip)	r   rW   r1   Zdfs_listrF   Zdfs_list_origr   r   r   r   r   r   Ú$test_join_multiple_dataframes_on_key]  sJ    þ
  ÿ
ÿ""
""
""
"r_   )Únumpyr   ZpytestZpandasr   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.tests.copy_view.utilr   r   r    r*   r2   r3   r4   r5   ÚmarkZparametrizer7   rH   rK   rP   rQ   rX   r_   r   r   r   r   Ú<module>   s@   
þþ


þþ

!