o
    Àvhv=  ã                   @   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ej d'ed(g¡d)d*„ ƒZd+d,„ ZdS )-é    N)Ú	DataFrameÚIndexÚSeriesÚconcatÚmerge)Ú	get_arrayc                 C   s:  t ddgd itd}t ddgd itd}| ¡ }t||gdd}| rAt t|dƒt|dƒ¡s2J ‚t t|dƒt|dƒ¡s@J ‚nt t|dƒt|dƒ¡rOJ ‚t t|dƒt|dƒ¡r]J ‚d|jd< | r€t t|dƒt|dƒ¡rrJ ‚t t|dƒt|dƒ¡s€J ‚d|jd	< | r•t t|dƒt|dƒ¡r•J ‚t 	||¡ d S )
NÚbÚaé   ©Údtypeé   ©ÚaxisÚd©r   r   ©r   r   )
r   ÚobjectÚcopyr   ÚnpÚshares_memoryr   ÚilocÚtmÚassert_frame_equal)Úusing_copy_on_writeÚdfÚdf2Údf_origÚresult© r   úc/var/www/html/hyperkenya/venv/lib/python3.10/site-packages/pandas/tests/copy_view/test_functions.pyÚtest_concat_frames   s"   

r!   c                 C   s:  t ddgd itd}t ddgd itd}t||gdd}| r=t t|dƒt|dƒ¡s.J ‚t t|dƒt|dƒ¡s<J ‚nt t|dƒt|dƒ¡rKJ ‚t t|dƒt|dƒ¡rYJ ‚| ¡ }d|jd< | r€t t|dƒt|dƒ¡rrJ ‚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   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}| r;t t|dƒ|j¡s.J ‚t t|dƒ|j¡s:J ‚nt t|dƒ|j¡rGJ ‚t t|dƒ|j¡rSJ ‚d	|jd
< | rrt t|dƒ|j¡rfJ ‚t t|dƒ|j¡srJ ‚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   Úassert_series_equal)r   ÚserÚser2Úser_origÚ	ser2_origr   r   r   r    Útest_concat_series?   s&   

r0   c                 C   sB  t g d¢g d¢dœƒ}t dg d¢iƒ}t dg d¢iƒ}tt||gdd|gdd}| ¡ }| rZt t|d	ƒt|d	ƒ¡s=J ‚t t|dƒt|dƒ¡sKJ ‚t t|dƒt|dƒ¡sYJ ‚n*t t|d	ƒt|d	ƒ¡rhJ ‚t t|dƒt|dƒ¡rvJ ‚t t|dƒt|dƒ¡r„J ‚d
|jd< | r™t t|d	ƒt|d	ƒ¡r™J ‚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   Údf3r   r"   r   r   r    Útest_concat_frames_chainedY   s    
r9   c                 C   s<  t g d¢dd}t g d¢dd}t g d¢dd}tt||gdd|gdd}| ¡ }| rWt t|dƒt|dƒ¡s:J ‚t t|dƒt|dƒ¡sHJ ‚t t|dƒt|dƒ¡sVJ ‚n*t t|dƒt|dƒ¡reJ ‚t t|dƒt|dƒ¡rsJ ‚t t|dƒt|dƒ¡rJ ‚d	|jd
< | r–t t|dƒt|dƒ¡r–J ‚t ||¡ d S )Nr1   r	   r%   r4   r3   r   r   r   r(   r   )	r   r   r   r   r   r   r   r   r   )r   Úser1r-   Úser3r   r"   r   r   r    Útest_concat_series_chainedp   s    
r<   c                 C   sH  t ddgdd}t ddgdd}tddgddgdœƒ}t||gdd	}| rBt t|dƒt|dƒ¡s3J ‚t t|dƒt|dƒ¡sAJ ‚nt t|dƒt|dƒ¡rPJ ‚t t|dƒt|dƒ¡r^J ‚d
|jd< | rt t|dƒt|dƒ¡rsJ ‚t t|dƒt|dƒ¡sJ ‚t ||¡ d|jd< | rœt t|dƒt|dƒ¡rœJ ‚t ||¡ d S )Nr   r$   r	   r%   r
   r'   r   r2   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$   

r=   c                 C   sL  t g d¢ddœƒ}tg d¢dd}t||gdd}| ¡ }| rJt t|dƒt|dƒ¡s-J ‚t t|d	ƒt|d	ƒ¡s;J ‚t t|dƒt|dƒ¡sIJ ‚n*t t|dƒt|dƒ¡rXJ ‚t t|d	ƒt|d	ƒ¡rfJ ‚t t|dƒt|dƒ¡rtJ ‚d
|jd< | r‰t t|dƒt|dƒ¡r‰J ‚d
|jd< | ržt t|dƒt|dƒ¡ržJ ‚t 	||¡ d S )Nr1   r   )r	   r3   r4   r   r%   r   r	   r3   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$   

r>   r   )TNFc                 C   s¶   t dddgiƒ}t dddgiƒ}t||gd|d}| s|du r=t t|dƒt|dƒ¡s-J ‚t t|dƒt|dƒ¡s;J ‚d S t t|dƒt|dƒ¡rKJ ‚t t|dƒt|dƒ¡rYJ ‚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¹   ó     r@   Úfuncc                 K   s   | j |fi |¤ŽS ©N©r   ©r7   r   Úkwargsr   r   r    Ú<lambda>Ë   ó    rG   c                 K   s   t | |fi |¤ŽS rC   rD   rE   r   r   r    rG   Ì   rH   c                 C   s”  t tg d¢tdg d¢dœƒ}t tg d¢tdg d¢dœƒ}| ¡ }| ¡ }|||dd}| rht t|d	ƒt|d	ƒ¡s=J ‚t t|d
ƒt|d
ƒ¡sKJ ‚t t|dƒt|dƒ¡sYJ ‚t t|dƒt|dƒ¡rgJ ‚nt t|d	ƒt|d	ƒ¡rvJ ‚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 )N©r	   r   r3   r   r1   ©Úkeyr	   r4   ©rK   r   rK   ©Úonr	   r   r   r   ©r   r$   )
r   r   r   r   r   r   r   r   r   r   )r   rB   r7   r   Údf1_origÚdf2_origr   r   r   r    Útest_merge_on_keyÈ   s*   

rR   c                 C   sB  t dg d¢iƒ}t dg d¢iƒ}| ¡ }| ¡ }t||ddd}| r?t t|dƒt|dƒ¡s0J ‚t t|dƒt|dƒ¡s>J ‚nt t|dƒt|dƒ¡rMJ ‚t t|dƒt|dƒ¡r[J ‚d|jd< | r~t t|dƒt|dƒ¡rpJ ‚t t|dƒt|dƒ¡s~J ‚d|jd	< | r“t t|dƒt|dƒ¡r“J ‚t ||¡ t ||¡ d S )
Nr	   r1   r   r4   T)Ú
left_indexÚright_indexr   r   r   )	r   r   r   r   r   r   r   r   r   )r   r7   r   rP   rQ   r   r   r   r    Útest_merge_on_indexì   s&   

rU   z	func, howc                 K   s   t || fddi|¤ŽS ©NrN   rK   rD   rE   r   r   r    rG   
  ó    Úrightc                 K   s   t | |fddi|¤ŽS rV   rD   rE   r   r   r    rG     rW   Úleftc                 C   sŠ  t tg d¢tdg d¢dœƒ}t tddgtdddgd	œƒ}| ¡ }| ¡ }||||d
}| r|t t|dƒt|dƒ¡s=J ‚t t|dƒt|dƒ¡rKJ ‚|j d¡sSJ ‚|j d¡s[J ‚t t|dƒt|dƒ¡|dku smJ ‚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< | r·t t|dƒt|dƒ¡r·J ‚t
 ||¡ t
 ||¡ d S )NrI   r   r1   rJ   r	   r   r'   r5   rL   )Úhowr   r   rK   rY   r   rO   )r   r   r   r   r   r   r   Ú_mgrÚ_has_no_referencer   r   r   )r   rB   rZ   r7   r   rP   rQ   r   r   r   r    Útest_merge_on_key_enlarging_one  s.   ÿ
r]   c                 C   s¶   t dddgiƒ}t dddgiƒ}|j||ddd}| s|d	u r=t t|dƒt|dƒ¡s-J ‚t t|dƒt|dƒ¡s;J ‚d S t t|dƒt|dƒ¡rKJ ‚t t|dƒt|dƒ¡rYJ ‚d S )
Nr	   r   r$   r   r
   g      @T)r   rS   rT   F)r   r   r   r   r   r?   r   r   r    Útest_merge_copy_keyword-  rA   r^   r   Ústrc                 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}|rot t|dƒt|dƒ¡sDJ ‚t t|d	ƒt|d	ƒ¡sRJ ‚t t|jƒt|jƒ¡s`J ‚t t|jƒt|jƒ¡rnJ ‚n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 ‚t t|d	ƒt|d	ƒ¡s®J ‚d|j	d< |rÃt t|d	ƒt|d	ƒ¡rÃJ ‚t 
||¡ t 
||¡ d S )NrI   rK   ©r&   r   r	   r1   T©Údeep©Úindexr   r4   rM   r   r   r   )r   r   r   Újoinr   r   r   r   rd   r   r   )r   r   Údf_indexr7   r   rP   rQ   r   r   r   r    Útest_join_on_key<  s,   

rg   c           	      C   sÆ  t g d¢dt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 ƒ}| |¡}| r¢t t|dƒt|dƒ¡sSJ ‚t t|d	ƒt|d d	ƒ¡scJ ‚t t|dƒt|d dƒ¡ssJ ‚t t|jƒt|jƒ¡sJ ‚t t|jƒt|d jƒ¡r‘J ‚t t|jƒt|d jƒ¡r¡J ‚n.t t|dƒt|dƒ¡r°J ‚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< | r1t t|d	ƒt|d d	ƒ¡r J ‚t t|dƒt|d dƒ¡s1J ‚d|j	d< | rJt t|dƒt|d dƒ¡rJJ ‚t
 ||¡ t||ƒD ]\}}t
 ||¡ qUd S )NrI   rK   r`   r	   r1   Tra   rc   r   r4   r3   )é   é   é	   c                 S   s   g | ]}|  ¡ ‘qS r   )r   )Ú.0r   r   r   r    Ú
<listcomp>h  s    z8test_join_multiple_dataframes_on_key.<locals>.<listcomp>r   r   r   r   rO   )r   r   r   r   re   r   r   r   rd   r   r   r   Úzip)	r   rf   r7   Údfs_listrP   Údfs_list_origr   r   r   r   r   r    Ú$test_join_multiple_dataframes_on_key^  sL   þ
  ÿ
ÿ  
 "
""
"ÿrp   )Únumpyr   ÚpytestÚpandasr   r   r   r   r   Úpandas._testingÚ_testingr   Úpandas.tests.copy_view.utilr   r!   r#   r0   r9   r<   r=   r>   ÚmarkÚparametrizer@   rR   rU   r]   r^   r   rg   rp   r   r   r   r    Ú<module>   sD    
þþ


þþ


!