a
    é´«jgŸ ã                   @   sD  d dl mZm Z mZ d dlZd dlZd dlZd dlmZ d dl	m
Z
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mZmZmZ d dlmZ d dlmZ d dl m!Z!m"Z" dàdd„Z#dd„ Z$dd„ Z%ej&e$ƒ dd„ d�dd„ ƒZ'ej&e$ƒ dd„ d�dd„ ƒZ(ej&e%ƒ dd„ d�dd„ ƒZ)ej&dd„ ƒZ*G dd„ dƒZ+d d!„ Z,G d"d#„ d#ƒZ-ej&d$d%„ ƒZ.ej&d&d'„ ƒZ/G d(d)„ d)ƒZ0ej&d*d+„ ƒZ1ej&d,d-„ ƒZ2G d.d/„ d/ƒZ3ej4j5d0d1d2„ ej6D ƒed3d4gd3d4gd5d6�ed d7d5d8�ed9d:gd5d;�g d<d„ d=�d>d?„ ƒZ7ej4 5d@dAdBgdddCdCd4fdDddAdBgddCdEd4fdddAdBgdEdCd4fdAdBgdddCdCdfdFddAdBgddCdEdfdddAdBgdEdCdfg¡dGdH„ ƒZ8dIdJ„ Z9ej4 5dKd d dLdMidNdOgfd d dLdPid dOgfd d dLdQidRdSgfd d dLdTdUgidRdSgfdVd dLdWidVd gfdXdXdLdYidZdXgfd[d[dLdWid[d\gfdVdVdLdYid]dVgfdVd[dLdYidVd[gfdVdVdLd^idVd]gfd d dLd_id`d gfdVdVi d]dagfd d i dRdSgfg¡dbdc„ ƒZ:ej4 5ddd'eg de¢dfdgej;gg dh¢diœƒfdAeg dj¢dkdfdgej;gej;dldmdngdiœƒfg¡dodp„ ƒZ<ej4 5dqg dr¢¡dsdt„ ƒZ=ej4 5dLd%d'hd d duœg¡dvdw„ ƒZ>e�r<dxndyZ?ej4 5dzdVdVd{d|e?› d}�fdVdVe@dVƒd~fg¡dd€„ ƒZAej4 5d�d‚dƒg¡ej4 5d„dEdCg¡d…d†„ ƒƒZBd‡dˆ„ ZCd‰dŠ„ ZDd‹dŒ„ ZEd�dŽ„ ZFej4 5d�d�d‘g¡d’d“„ ƒZGd”d•„ ZHej4 5d–d—d˜g¡ej4 5d™dVdEdšœd›dœgfdVdEd�œdždŸgfg¡d d¡„ ƒƒZIej4 5d–d—d˜g¡ej4 5d™d›dVidždŸgfdždVid›dœgfg¡d¢d£„ ƒƒZJej4 5d–d—d˜g¡ej4 5d¤dŸdEidœdEig¡d¥d¦„ ƒƒZKd§d¨„ ZLd©dª„ ZMd«d¬„ ZNd­d®„ ZOd¯d°„ ZPd±d²„ ZQd³d´„ ZRdµd¶„ ZSej4 5d·dd¸g¡d¹dº„ ƒZTd»d¼„ ZUd½d¾„ ZVd¿dÀ„ ZWej4 5d·dÁdÂg¡dÃdÄ„ ƒZXej4 5dÅg dÆ¢¡ej4 5dÇddÈg¡dÉdÊ„ ƒƒZYdËdÌ„ ZZej4 5dÅg dÍ¢¡ej4 5dÎdEdCg¡ej4 5dÏdEdCg¡ej4 5dÐdEdCg¡ej4 5dÑdEdCg¡ej4 5dÒdEdCg¡ej4 5dÓdEdCg¡dÔdÕ„ ƒƒƒƒƒƒƒZ[dÖd×„ Z\dØdÙ„ Z]ej4 5dÚdEdCg¡ej4 5dÛdEdCg¡dÜdÝ„ ƒƒZ^ej4 5dÅg dÍ¢¡dÞdß„ ƒZ_dS )áé    )ÚdateÚdatetimeÚ	timedeltaN)ÚPY314)Úis_object_dtypeÚis_string_dtype)ÚCategoricalDtype)ÚCategoricalÚCategoricalIndexÚ	DataFrameÚDatetimeIndexÚIndexÚIntervalIndexÚ
MultiIndexÚPeriodIndexÚ
RangeIndexÚSeriesÚTimedeltaIndex)Úconcat)Ú
MergeErrorÚmergeé   é2   c                 C   sf   t t| ƒƒ}t t |||  ¡¡}t|ƒ|k rPt t |ƒ|d |t|ƒ …  ¡}tj d¡ |¡ |S )Né   )	ÚlistÚrangeÚnpZasarrayÚtileÚlenÚrandomÚdefault_rngÚshuffle)ÚngroupsÚnZunique_groupsÚarr© r%   úd/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/reshape/merge/test_merge.pyÚget_test_data)   s    "r'   c                   C   sT   t dgdd�t dgdd�t dgƒt dgƒt dgƒt t d¡gƒt tjdd	d
�gƒgS )Né   Úint64©ÚdtypeÚInt64g®Gáz®ó?ÚfooTú
2018-01-01ú
US/Eastern©Útz)r   ÚpdÚ	Timestampr%   r%   r%   r&   Ú
get_series4   s    ùr4   c                   C   s8   t tjgdd�t tjgdd�t tjgdd�t tjgƒgS )Nr,   r*   ÚfloatÚobject)r   r   Únanr2   ÚNaTr%   r%   r%   r&   Úget_series_na@   s
    
ür9   c                 C   s   | j jS ©N©r+   Úname©Úxr%   r%   r&   Ú<lambda>I   ó    r?   )ÚparamsÚidsc                 C   s   | j S )zV
    A parametrized fixture returning a variety of Series of different
    dtypes
    ©Úparam©Úrequestr%   r%   r&   Úseries_of_dtypeI   s    rG   c                 C   s   | j jS r:   r;   r=   r%   r%   r&   r?   R   r@   c                 C   s   | j S )zk
    A duplicate of the series_of_dtype fixture, so that it can be used
    twice by a single function
    rC   rE   r%   r%   r&   Úseries_of_dtype2R   s    rH   c                 C   s   | j jS r:   r;   r=   r%   r%   r&   r?   [   r@   c                 C   s   | j S )zU
    A parametrized fixture returning a variety of Series with all NA
    values
    rC   rE   r%   r%   r&   Úseries_of_dtype_all_na[   s    rI   c                  C   s@   t ddgddgddgdœƒ} t g d¢g d¢g d¢d	œƒ}| |fS )
Nr   r(   r   ÚaÚb)Úcol1Úcol_conflictÚcol_left)r(   r   é   é   é   )r   r   r   r   r   )rL   rM   Ú	col_right©r   )Údf1Údf2r%   r%   r&   Údfs_for_indicatord   s    ýÿrV   c                   @   sš  e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZej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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/g d0¢¡d1d2„ ƒZej d3d4d4d5œd4d6d7œd8d4d9œd8d6d:œg¡d;d<„ ƒZd=d>„ Z d?d@„ Z!dAdB„ Z"dCdD„ Z#dEdF„ Z$ej dGdHg dI¢fd4g dJ¢fg¡ej d/dKdLg¡dMdN„ ƒƒZ%dOdP„ Z&dQdR„ Z'ej (dS¡dTdU„ ƒZ)dVdW„ Z*dXdY„ Z+ej dZg d[¢¡d\d]„ ƒZ,ej dZg d[¢¡d^d_„ ƒZ-d`da„ Z.dbdc„ Z/ddde„ Z0dfdg„ Z1dhdi„ Z2djdk„ Z3dldm„ Z4dndo„ Z5dpdq„ Z6drds„ Z7dtdu„ Z8dvdw„ Z9dxdy„ Z:dzd{„ Z;d|d}„ Z<ej d/dLd~g¡ej de=g d€¢ƒe=g d�¢ƒfe>g d‚¢dƒd„�e>d…d†d‡e?j@e?j@e?j@gdƒd„�fgdˆd‰„ eAjBD ƒ¢eC Dg dŠ¢¡eC Dd‹dŒd�eEjFeEjFeEjFg¡f‘eGg dŽ¢d�d��eGd…d‘d’e?j@e?j@e?j@gd�d��f‘eHg d“¢ƒeHd”d•d–e?j@e?j@e?j@gƒf‘¡d—d˜„ ƒƒZId™dš„ ZJej d/dKdLg¡d›dœ„ ƒZKd�dž„ ZLdŸd „ ZMd¡S )¢Ú	TestMergec                 C   sF   t tƒ tƒ tj d¡ d¡tj d¡ d¡dœƒ}||d dk }|S )Nr   r   )Úkey1Úkey2Údata1Údata2rY   r(   ©r   r'   r   r   r    Ústandard_normal)ÚselfÚdfr%   r%   r&   r_   r   s    üÿ
zTestMerge.dfc                 C   s,   t tdd�tddd�tj d¡ d¡dœƒS )Né
   )r#   rP   )r"   r#   r   )rX   rY   Úvaluer\   ©r^   r%   r%   r&   rU   �   s    
ýÿzTestMerge.df2c                 C   s    t g d¢tj d¡ d¡dœƒS )N©rJ   rK   ÚcÚdÚerf   rJ   r   é   ©ÚkeyÚv1©r   r   r   r    r]   rb   r%   r%   r&   Úleft‹   s
    þÿzTestMerge.leftc                 C   s"   t dtj d¡ d¡ig d¢d�S )NÚv2r   rP   ©re   rK   rd   rJ   ©Úindexrk   rb   r%   r%   r&   Úright”   s    þzTestMerge.rightc                 C   sP   t ƒ }t dddgiddgdd�}t||ddd�}t dg idd	�}t ||¡ d S )
NrJ   r(   r   r   r)   )rp   r+   T©Ú
left_indexÚright_indexr*   ©r   r   ÚtmÚassert_frame_equal)r^   Údf_emptyZdf_aÚresultÚexpectedr%   r%   r&   Útest_merge_inner_join_empty›   s
    z%TestMerge.test_merge_inner_join_emptyc                 C   s,   t ||ƒ}t ||ddgd�}t ||¡ d S )NrX   rY   ©Úon©r   rv   rw   )r^   r_   rU   ÚjoinedÚexpr%   r%   r&   Útest_merge_common£   s    
zTestMerge.test_merge_commonc                 C   sJ   t g d¢g d¢g d¢g d¢dœƒ}| t¡}|}t||ƒ}t ||¡ d S )N)r(   r   r(   r   )r   r(   r   r   )r   r   r   r   )r(   r   r   rO   ©r   r(   r   rO   )r   Úastyper5   r   rv   rw   ©r^   rl   rq   rz   ry   r%   r%   r&   Útest_merge_non_string_columns¨   s    ÿ

z'TestMerge.test_merge_non_string_columnsc                 C   sF   |  d¡}|  d¡}t||dd�}t||dd�  d¡}t ||¡ d S )NrX   r|   )Ú	set_indexr   rv   rw   )r^   r_   rU   rl   rq   ry   rz   r%   r%   r&   Útest_merge_index_as_on_arg´   s
    

z$TestMerge.test_merge_index_as_on_argc                 C   sÎ   t g d¢tj d¡ d¡dœƒ}t dtj d¡ d¡ig d¢d�}t||d	d
ddd�}t||d	d
ddd�}t ||jd d …|j	f ¡ t||d	d
dd
d�}t||d	d
dd
d�}t ||jd d …|j	f ¡ d S )Nrc   r   rg   rh   rm   rP   rn   ro   ri   Trl   F)Úleft_onrt   ÚhowÚsortrq   )Úright_onrs   r‰   rŠ   )
r   r   r   r    r]   r   rv   rw   ÚlocÚcolumns)r^   rl   rq   Zmerged1Úmerged2r%   r%   r&   Ú(test_merge_index_singlekey_right_vs_left½   s.    þÿþÿÿÿÿz2TestMerge.test_merge_index_singlekey_right_vs_leftc                 C   s¾   t g d¢tj d¡ d¡dœƒ}t dtj d¡ d¡ig d¢d�}t||d	d
dd�}|j|d	d�j|j }t	 
||¡ t||d	d
dd�}|j|d	d�j|j }t	 
||jd d …|jf ¡ d S )Nrc   r   rg   rh   rm   rP   rn   ro   ri   TÚinner©rˆ   rt   r‰   r|   )r‹   rs   r‰   )r   r   r   r    r]   r   ÚjoinrŒ   rp   rv   rw   r�   ©r^   rl   rq   ry   rz   r%   r%   r&   Ú test_merge_index_singlekey_innerÙ   s    þÿþz*TestMerge.test_merge_index_singlekey_innerc                 C   s  d}t jtjj|d�� t||dd� W d   ƒ n1 s:0    Y  d}t jtjj|d�� t||dd� W d   ƒ n1 s~0    Y  d}t jtjj|d��  t||ddd	� W d   ƒ n1 sÄ0    Y  d
}t jt|d��& t||dgddgd� W d   ƒ n1 �s0    Y  d S )Nz&Must pass right_on or right_index=True©ÚmatchT)rs   z$Must pass left_on or left_index=True)rt   zRCan only pass argument "on" OR "left_on" and "right_on", not a combination of bothri   )rˆ   r}   z)len\(right_on\) must equal len\(left_on\)rX   rY   ©rˆ   r‹   )ÚpytestÚraisesr2   Úerrorsr   r   Ú
ValueError)r^   r_   rU   rl   rq   Úmsgr%   r%   r&   Útest_merge_misspecifiedî   s    ,,ÿ.z!TestMerge.test_merge_misspecifiedc                 C   sÜ   d}t jt|d��& t||ddddgd� W d   ƒ n1 s>0    Y  d}t jt|d��& t||dddgdd� W d   ƒ n1 s†0    Y  t jt|d��* t||dddgddgd� W d   ƒ n1 sÎ0    Y  d S )	Nz>right_index parameter must be of type bool, not <class 'list'>r•   rl   FrX   rY   ©r‰   rs   rt   z=left_index parameter must be of type bool, not <class 'list'>©r˜   r™   r›   r   )r^   r_   rU   rœ   r%   r%   r&   Ú&test_index_and_on_parameters_confusion  s4    û$û$ûz0TestMerge.test_index_and_on_parameters_confusionc                 C   sN   t ||dd�}|d  ¡ d  ¡ }t|ƒ|ks2J ‚d|v s>J ‚d|v sJJ ‚d S )Nri   r|   r   Zv1_xZv1_y)r   Úvalue_countsÚsumr   )r^   rl   ÚmergedZexp_lenr%   r%   r&   Útest_merge_overlap  s
    zTestMerge.test_merge_overlapc                 C   sô   t g d¢g d¢dœƒ}t g d¢g d¢dœƒ}|j|ddd	d
d�}tddddddtjgdd�}t |d |¡ tdtjdddddgdd�}t |d |¡ tddddddtjgdd�}t |d |¡ tdtjdddddgdd�}t |d |¡ d S )N)r-   ÚbarÚbazr-   ©r(   r   rO   rP   )Úlkeyra   )r-   r¥   Úquxr-   )rQ   é   rg   r   )Úrkeyra   r¨   r«   ÚouterT)rˆ   r‹   r‰   rŠ   r¥   r¦   r-   ©r<   r©   r   rO   r(   rP   Úvalue_xrª   rQ   r   rg   Úvalue_y)r   r   r   r   r7   rv   Úassert_series_equal)r^   rl   rq   r£   r€   r%   r%   r&   Ú%test_merge_different_column_key_names$  s    
ÿz/TestMerge.test_merge_different_column_key_namesc                 C   sz   t dddœtdƒd�}t dddœtdƒd�}t||d	d	d	d
�}d|d< |d dk ¡ sZJ ‚d|d< |d dk ¡ svJ ‚d S )Nr   r(   ©rJ   rK   r`   ro   r-   r¥   ©rd   re   T©rs   rt   Úcopyrª   rJ   Zpeekaboore   )r   r   r   Úall)r^   rl   rq   r£   r%   r%   r&   Útest_merge_copy8  s    zTestMerge.test_merge_copyc                 C   s~   t dddœtdƒd�}t dddœtdƒd�}t||d	d	d
d�}t |d j|d j¡sZJ ‚|szt |d j|d j¡szJ ‚d S )Nr   r(   r²   r`   ro   r-   r¥   r³   TFr´   rJ   re   )r   r   r   r   Zshares_memoryZ_values)r^   Úusing_array_managerÚusing_infer_stringrl   rq   r£   r%   r%   r&   Útest_merge_nocopyD  s    zTestMerge.test_merge_nocopyc                 C   s˜   t g d¢ttdƒƒdœddgd�}t g d¢ttdƒƒd	œƒ}t||dd
d�}t g d¢t dddddddtjtjg	¡g d¢dœg d¢d�}t ||¡ d S )N©r(   r(   r   r   rO   rQ   ©ri   ra   ra   ri   ©r�   ©r(   r(   r   rO   rP   rQ   rª   )ri   Úrvaluer¬   ©r}   r‰   ©	r(   r(   r(   r(   r   r   rO   rP   rQ   r   r(   r   rO   rP   )	r   r(   r   r(   r   r   rO   rP   rQ   )ri   ra   r¿   )ra   ri   r¿   )	r   r   r   r   r   Úarrayr7   rv   rw   )r^   rl   rq   r   rz   r%   r%   r&   Ú"test_intelligently_handle_join_keyN  s    ÿýúz,TestMerge.test_intelligently_handle_join_keyc                 C   sê   t dgdgdœƒ}t dgdgdœƒ}t||dd�}|d jd	ksDJ ‚t d
gdgdœƒ}t dgdgdœƒ}t||dd�}|d jdksˆJ ‚t ddgiƒ}t ddgiƒ}t dg¡}t dg¡}t||||dd�}|d jt t¡ksæJ ‚d S )Nr(   r`   rh   r   é   r¬   ©r‰   ri   r)   TFr   ÚboolÚval©rˆ   r‹   r‰   Úkey_0)r   r   r+   r   rÂ   Úint)r^   rT   rU   r_   r¨   r«   r%   r%   r&   Útest_merge_join_key_dtype_casta  s    z(TestMerge.test_merge_join_key_dtype_castc           	      C   sŠ  t g d¢t d¡dœddgdd�}t dt d	¡idd
�}tjg d¢dd
�}t||d|dd�}t|||ddd�}t |d |d ¡ |d  ¡  ¡ s–J ‚|d  ¡  ¡ sªJ ‚t dt d¡idgd�}t dt d	¡iƒ}t g d¢¡}t g d¢¡}t||||dd�}t	g d¢t
dd�}t |d |¡ t dt d¡iƒ}t dt d	¡iƒ}tjg d¢tjd
�}t||d|dd�}t |d t	|dd�¡ d S )Nr»   rQ   r¼   ra   ri   r)   ©r�   r+   r¿   rª   r*   r¾   r¬   rÈ   r½   rÁ   rÉ   r;   rO   )r   r(   r(   r   r   rO   T)rs   r‹   r‰   r­   )r   r   ÚarangerÂ   r   rv   r°   Znotnar¶   r   rÊ   r)   )	r^   rl   rq   ri   r£   rŽ   r¨   r«   rz   r%   r%   r&   Útest_handle_join_key_pass_arrayx  s0    ýz)TestMerge.test_handle_join_key_pass_arrayc                 C   sŒ   t  ¡ }tddgi|gd�}tdddgi||gd�}dd › dd › d	d
› dd
› �}tjt|d�� t||ƒ W d   ƒ n1 s~0    Y  d S )Nr>   rJ   ro   ÚyrK   rd   z>No common columns to perform merge on. Merge options: left_on=z, right_on=z, left_index=Fz, right_index=r•   )r   Únowr   r˜   r™   r   r   )r^   ÚdtrT   rU   rœ   r%   r%   r&   Ú&test_no_overlap_more_informative_error˜  s    ÿÿþþÿz0TestMerge.test_no_overlap_more_informative_errorc                 C   sè   t dddƒ}t dddƒ}t dddƒ}t dddƒ}tddgi|gd	�}td
ddgi||gd	�}t||ƒ tdg d¢i|||gd	�}td
g d¢i||||||gd	�}t||ƒ tdddgi||gd	�}td
ddgi||gd	�}t||ƒ d S )NéÜ  rQ   r(   r   rO   rP   r>   rJ   ro   rÏ   rK   rd   )rJ   rK   Úq)rd   re   rf   ÚfÚgÚhre   ©r   r   Ú_check_merge)r^   rÑ   Údt2Údt3Zdt4rT   rU   r%   r%   r&   Útest_merge_non_unique_indexes§  s    
ÿ
z'TestMerge.test_merge_non_unique_indexesc                 C   sl   t dddƒ}t dddƒ}t dddƒ}tdg d¢i||||gd�}td	g d
¢i|||||gd�}t||ƒ d S )NrÓ   rQ   r(   r   rO   r>   ©rJ   rK   rd   re   ro   rÏ   )rf   rÕ   rÖ   z hÚirØ   )r^   rÑ   rÚ   rÛ   rT   rU   r%   r%   r&   Ú(test_merge_non_unique_index_many_to_many¼  s    ÿz2TestMerge.test_merge_non_unique_index_many_to_manyc                 C   sZ   t dgdgdœƒ}t dg iƒ}t||ddd�}t ||¡ t||ddd�}t ||¡ d S )Nr(   r   r¼   ri   rl   rÀ   rq   ru   )r^   rl   rq   ry   r%   r%   r&   Útest_left_merge_empty_dataframeÆ  s    z)TestMerge.test_left_merge_empty_dataframer‰   )r�   rl   rq   r¬   c                 C   s:   t g |d d… d�}| ¡ }|j||d�}t ||¡ d S )Nr   ro   rÅ   )r   rµ   r’   rv   rw   )r^   rp   r‰   rl   rq   ry   r%   r%   r&   Útest_merge_empty_dataframeÐ  s    z$TestMerge.test_merge_empty_dataframeÚkwargTrr   r>   ©rs   r‹   rJ   ©rˆ   rt   r—   c                 C   sR   t g d¢d�}t g d¢d�}t g d¢td�}t||fd|i|¤Ž}t ||¡ d S )N©rJ   rK   rd   r½   ©r>   rÏ   Úz©rJ   rK   rd   r>   rÏ   rç   rÌ   r‰   )r   r6   r   rv   rw   )r^   Ú	join_typerâ   rl   rq   Úexp_inry   r%   r%   r&   Ú!test_merge_left_empty_right_emptyÙ  s
    z+TestMerge.test_merge_left_empty_right_emptyc                    sL  t g d¢d�‰ t g d¢g d¢g d¢gg d¢d�‰t tjtjgd td�tjtjgd td�tjtjgd td�g d	¢g d
¢g d¢dœg d¢d�}|dd… }‡ ‡fdd„}‡ ‡fdd„}dddœdddœfD ]}|||ƒ |||ƒ qÌdddœ}|||ƒ g d¢|d< |||ƒ dddœ}|||ƒ tjtjgd td�|d< |||ƒ d S )Nrå   r½   ©r(   r   rO   ©rP   rQ   rª   ©rg   r   é	   ræ   rO   r*   ©r(   rP   rg   ©r   rQ   r   ©rO   rª   rï   rè   r   c                    sH   t ˆ ˆfddi|¤Ž}t || ¡ t ˆ ˆfddi|¤Ž}t || ¡ d S )Nr‰   r�   rl   r~   ©r€   râ   ry   ©rl   rq   r%   r&   Úcheck1þ  s    z>TestMerge.test_merge_left_empty_right_notempty.<locals>.check1c                    sH   t ˆ ˆfddi|¤Ž}t || ¡ t ˆ ˆfddi|¤Ž}t || ¡ d S )Nr‰   rq   r¬   r~   ró   rô   r%   r&   Úcheck2  s    z>TestMerge.test_merge_left_empty_right_notempty.<locals>.check2Trr   r>   rã   rJ   rä   ©r   r(   r   r—   )r   r   rÂ   r7   r6   )r^   Úexp_outrê   rõ   rö   râ   r%   rô   r&   Ú$test_merge_left_empty_right_notemptyì  s8    "ú÷þ





z.TestMerge.test_merge_left_empty_right_notemptyc              
      sÒ   t g d¢g d¢g d¢gg d¢d�‰t g d¢d�‰t g d¢g d¢g d	¢tjtjgd
 td�tjtjgd
 td�tjtjgd
 td�dœg d¢d�‰ˆdd… ‰ˆj t¡ˆ_‡‡fdd„‰ ‡ ‡‡‡‡‡fdd„‰d S )Nrì   rí   rî   rå   r½   ræ   rð   rñ   rò   rO   r*   rè   r   c                    sH   t ˆ ˆfddi|¤Ž}t || ¡ t ˆ ˆfddi|¤Ž}t || ¡ d S )Nr‰   r�   rq   r~   ró   rô   r%   r&   rõ   /  s    z>TestMerge.test_merge_left_notempty_right_empty.<locals>.check1c                    s†   t ˆˆfddi|¤Ž}t || ¡ t ˆˆfddi|¤Ž}t || ¡ dddœdddœddd	œddd
œfD ]}ˆ ˆ|ƒ ˆˆ|ƒ qhd S )Nr‰   rl   r¬   Trr   r>   rã   rJ   rä   r—   r~   ró   ©rõ   rö   rê   rø   rl   rq   r%   r&   rö   5  s    ü
z>TestMerge.test_merge_left_notempty_right_empty.<locals>.check2)r   r   rÂ   r7   r6   rp   rƒ   rb   r%   rú   r&   Ú$test_merge_left_notempty_right_empty  s     "ú÷z.TestMerge.test_merge_left_notempty_right_emptyc                 C   s|   t ||dœddgd�}|d d… }t t|jd d�t|jd d�t|jd d�dœg d¢d�}|j|dd�}t ||¡ d S )	Nr¼   ri   ra   r½   r   r*   ©ri   r®   r¯   r|   )r   r   Údtypesr   rv   rw   )r^   rG   rH   r_   rx   rz   Úactualr%   r%   r&   Útest_merge_empty_frameE  s    þýúz TestMerge.test_merge_empty_framec                 C   sb   t ||dœddgd�}t ||dœddgd�}t |||dœg d¢d�}|j|dd�}t ||¡ d S )Nr¼   ri   ra   r½   rü   r|   ru   )r^   rG   rI   Zdf_leftZdf_rightrz   rþ   r%   r%   r&   Útest_merge_all_na_columnW  s"    þþýúz"TestMerge.test_merge_all_na_columnc                 C   s"  t j d¡jdddd�t j d¡jdddd�tdddƒtddd	ƒtd
ddƒtdddƒtddd	ƒtdd	dƒtddd	ƒtdddƒtd
ddƒtdddƒg
dœ}t |¡}|j ¡ }t  	|¡}t |t j d¡ d¡dœ¡}|j
|ddd�}t
||ddd�}t ||¡ |j ¡ |j ¡ k ¡ �sJ ‚d S )Nr   r   r`   ©ÚsizerÓ   r(   é   iÛ  rP   iÚ  rO   iØ  rQ   )Zvar1Zvar2Úvar3rg   )r  Zvar8r  F©r}   rŠ   )r   r   r    Zintegersr   r   Ú	from_dictr  ÚuniquerŠ   r   rv   rw   r¶   )r^   re   r_   r  Únewry   r€   r%   r%   r&   Útest_merge_nosortl  s0    









öý


ÿzTestMerge.test_merge_nosort)rŠ   ÚvaluesF)r(   r(   r   r(   r(   )r   r(   r(   r(   r(   rl   rq   c                 C   s@   t dg d¢iƒ}|j|d||d�}t |dgd�}t ||¡ d S )NrJ   )r(   r   r(   )r}   r‰   rŠ   r½   ru   )r^   rŠ   r
  r‰   r_   ry   rz   r%   r%   r&   Ú test_merge_same_order_left_rightŒ  s    z*TestMerge.test_merge_same_order_left_rightc                 C   s²   t ddgddgdœƒ}t dgdgdœƒ}|j|ddd�}t ddd	œddd	œdtjd	œdtjd	œddd	œd
œtg d
¢td�d� d ¡ ¡ g d¢ }|j 	d¡|_t
j||dd� d S )Nr   r(   ©Úi1Úi2©r  Úi3r  Ú_)r}   Úrsuffixç        ©r   r(   )r  r  Úi1_r  Nr*   r½   ©r  r  r  r  r6   F©Zcheck_dtype)r   r’   r   r7   r   r6   r†   Úreset_indexr�   rƒ   rv   rw   ©r^   rT   rU   ry   rz   r%   r%   r&   Útest_merge_nan_right˜  s&    

ûø
öõÿzTestMerge.test_merge_nan_rightc                 C   s~   t ddgddgdœƒ}t dgdgdœƒ}|j|dd	d
�}t dddœdtjdœdddœdtjdœdœƒg d¢ }t ||¡ d S )Nr   r(   g      à?ç      ø?r  gffffffæ?r  r  r  )r  r}   r  r  )r  r  r  r  r  )r   r’   r   r7   rv   rw   r  r%   r%   r&   Útest_merge_nan_right2­  s    

üÿùzTestMerge.test_merge_nan_right2zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningc                    s<   G ‡ fdd„dt ƒ‰ ˆ |ƒ}|j|dd�}t|ˆ ƒs8J ‚d S )Nc                       s   e Zd Ze‡ fdd„ƒZdS )z0TestMerge.test_merge_type.<locals>.NotADataFramec                    s   ˆ S r:   r%   rb   ©ÚNotADataFramer%   r&   Ú_constructorÀ  s    z=TestMerge.test_merge_type.<locals>.NotADataFrame._constructorN)Ú__name__Ú
__module__Ú__qualname__Úpropertyr  r%   r  r%   r&   r  ¿  s   r  rX   r|   )r   r   Ú
isinstance)r^   r_   rU   Znadry   r%   r  r&   Útest_merge_type»  s    zTestMerge.test_merge_typec                 C   sê   t  tdddddƒgtddƒgdœ¡}t tdƒd	�}d
}t}|rDd }tj||d��0 t||gdd�}t||gdd�}W d   ƒ n1 sˆ0    Y  t tdddddƒtdddddƒgtddƒtddƒgdœƒ}|rÚ| 	t
¡}t ||¡ d S )NiÝ  é   rQ   é8   r   iäW  )re   ÚtrÑ   r½   zDThe behavior of DataFrame concatenation with empty or all-NA entriesr•   T©Zignore_index)r   r  r   r   r   ÚFutureWarningrv   Úassert_produces_warningr   rƒ   r6   rw   )r^   r¸   re   r_   rœ   Úwarnry   rz   r%   r%   r&   Útest_join_append_timedeltasÉ  s&    ÿ.þÿ
z%TestMerge.test_join_append_timedeltasc                 C   s†   t  d¡}tt||gddgd�ƒ}tt|gdgd�ƒ}|j|ddd�}tt||gtdƒd�t|tjgtdƒd�d	œƒ}t 	||¡ d S )
Ni £áÚAÚBro   Úrrl   )r  r‰   ZAB)Ú0Z0r)
r   Ztimedelta64r   r   r’   r   r2   r8   rv   rw   )r^   ÚtdÚlhsÚrhsry   rz   r%   r%   r&   Útest_join_append_timedeltas2ã  s    
þÿz&TestMerge.test_join_append_timedeltas2Úunit)ÚDr×   ÚmÚsÚmsÚusÚnsc           
      C   sÚ   t dddgiƒ}td d gddgdd�}d|› d�}|dv r@d	}n|}| |¡ d¡}|d j|ksfJ ‚|j|dd
d�}tjddg|d�}tj	j
jj||jd�}t ddg|dœddgd�}	|	d j|ksÊJ ‚t ||	¡ d S )NÚ	entity_idée   éf   Údays©rp   r<   zdatetime64[ú]©r7  r×   r8  zdatetime64[s]Trä   Únatr*   ©r=  r@  r½   )r   r   rƒ   Úto_framer+   r   r   rÂ   r2   ÚcoreÚarraysZDatetimeArrayZ_simple_newrv   rw   )
r^   r6  rT   Úserr+   Z	exp_dtyperU   ry   r@  r€   r%   r%   r&   Útest_other_datetime_unitó  s&    þûz"TestMerge.test_other_datetime_unitc           	      C   sò   t dddgiƒ}td d gddgdd�}d|› d�}|dv rˆd	}tjt|d
�� | |¡ W d   ƒ n1 sl0    Y  | d¡ d¡}n"| |¡ d¡}|d j|ksªJ ‚|j|ddd�}t ddgt	j
ddg|d�dœddgd�}t ||¡ d S )Nr=  r>  r?  r@  rA  zm8[rB  rC  z/Supported resolutions are 's', 'ms', 'us', 'ns'r•   zm8[s]Trä   rD  r*   rE  r½   )r   r   r˜   r™   r›   rƒ   rF  r+   r   r   rÂ   rv   rw   )	r^   r6  rT   rI  r+   rœ   rU   ry   r€   r%   r%   r&   Útest_other_timedelta_unit  s     (þz#TestMerge.test_other_timedelta_unitc                 C   sÚ   t g d¢g d¢g d¢dœƒ}t g d¢g d¢g d¢dœƒ}g d¢|_g d¢|_t g d¢g d¢g d¢g d¢g d¢dœƒ}g d¢|_t t||ƒ|¡ g d	¢|_d
}tjt|d�� t||ƒ W d   ƒ n1 sÌ0    Y  d S )Nrì   rí   rî   ©ri   rj   rm   )ri   r-   r-   )ri   r¥   r¥   )ri   rj   rm   Zv3Zv4)ri   r-   r-   r¥   r¥   )rX   r-   r-   z?Data columns not unique: Index\(\['foo'\], dtype='object|str'\)r•   )r   r�   rv   rw   r   r˜   r™   r   )r^   r_   rU   rz   rœ   r%   r%   r&   Ú&test_overlapping_columns_error_message+  s$    

ûÿ	

z0TestMerge.test_overlapping_columns_error_messagec                 C   sŽ   t tjdddd�ddgdœƒ}t tjdddd�g d	¢dœƒ}t tjdd
dd�ddtjtjgtjdddgdœƒ}t||ddd�}t ||¡ d S )NÚ20151010r   r/   ©Úperiodsr1   r(   r¼   Ú20151011rO   rì   rP   rü   ri   r¬   rÀ   )r   r2   Ú
date_ranger   r7   r   rv   rw   r„   r%   r%   r&   Útest_merge_on_datetime64tzC  s$    þÿþÿýÿz$TestMerge.test_merge_on_datetime64tzc              
   C   sÄ   t ddgtjdddd�dœƒ}t ddgtjdddd�dœƒ}t g d	¢ttjdddd�ƒtjg tjgttjdddd�ƒ d
œƒ}t||ddd�}t ||¡ |d jdks®J ‚|d jdksÀJ ‚d S )Nr(   r   rN  r/   rO  r¼   rO   rQ  rì   rü   ri   r¬   rÀ   r®   zdatetime64[ns, US/Eastern]r¯   )	r   r2   rR  r   r8   r   rv   rw   r+   r„   r%   r%   r&   Útest_merge_datetime64tz_values\  s0    þÿþÿÿÿüÿ	z(TestMerge.test_merge_datetime64tz_valuesc                 C   sž   t jdd�}ttdg|d�dgtdg|d�dœg d¢d�}|d d	… }|j|d
d�}tt|d�ttd�t|d�ttd�t|d�dœg d¢d�}t ||¡ d S )NÚUTCr0   Z2018r*   g      @Z2019)r   ra   Zdate2r½   r   r   r|   )r   r®   Zdate2_xr¯   Zdate2_y)	r2   ZDatetimeTZDtyper   r   r   r   r5   rv   rw   )r^   Zdtzrq   rl   ry   rz   r%   r%   r&   Ú test_merge_on_datetime64tz_emptyw  s(    ýúûø
z*TestMerge.test_merge_on_datetime64tz_emptyc                 C   sº   t tjddddd�dgd�}d|d	< t t g d
¢¡ddœƒ}|d j d¡j d¡|d< t||ddd�}t tjddddd�dgd tj	gd  tj	gd dgd  dœƒ}t
 ||¡ d S )Nz2017-10-29 01:00rP   r×   zEurope/Madrid)rP  Úfreqr1   r   r½   r(   ra   )z2017-10-29 03:00:00z2017-10-29 04:00:00z2017-10-29 05:00:00r   )r   ra   rU  r¬   ©r‰   r}   rg   rO   )r   r®   r¯   )r   r2   rR  Úto_datetimerÑ   Ztz_localizeZ
tz_convertr   r   r7   rv   rw   r  r%   r%   r&   Ú+test_merge_datetime64tz_with_dst_transition�  s.    þÿøÿÿûÿ	z5TestMerge.test_merge_datetime64tz_with_dst_transitionc                 C   s”   t jdddd�}tttt|ƒƒƒ|dgd�}t||gƒ}|j|dddd	�}tt 	tj
dtjd
� d¡ dd¡d¡ddg| ¡ jd�}t ||¡ d S )Nz
2016-01-01é   ÚM©rP  rW  Zpnum©rp   r�   Tr�   )rs   rt   r‰   r*   r   éÿÿÿÿr(   Zpnum_xZpnum_y©r�   rp   )r2   Úperiod_ranger   r   r   r   r   r   r   r   rÍ   r)   ÚrepeatÚreshapeÚ
sort_indexrp   rv   rw   )r^   rp   r_   rU   ry   rz   r%   r%   r&   Ú"test_merge_non_unique_period_index°  s    $ýz,TestMerge.test_merge_non_unique_period_indexc                 C   sŽ   t tjdddd�ddgdœƒ}t tjdddd�g d	¢dœƒ}t tjdd
dd�ddtjtjgtjdddgdœƒ}t||ddd�}t ||¡ d S )NrN  r   r7  r]  r(   r¼   rQ  rO   rì   rP   rü   ri   r¬   rÀ   )r   r2   ra  r   r7   r   rv   rw   r„   r%   r%   r&   Útest_merge_on_periods½  s     ÿþÿýÿzTestMerge.test_merge_on_periodsc                 C   sÌ   t ddgtjdddd�dœƒ}t ddgtjdddd�dœƒ}tjdddd�}tjdddd�}t g d	¢t|ƒtjg tjgt|ƒ d
œƒ}t||ddd�}t ||¡ |d jdks¶J ‚|d jdksÈJ ‚d S )Nr(   r   rN  r7  r]  r¼   rO   rQ  rì   rü   ri   r¬   rÀ   r®   z	Period[D]r¯   )	r   r2   ra  r   r8   r   rv   rw   r+   )r^   rl   rq   Zexp_xZexp_yrz   ry   r%   r%   r&   Útest_merge_period_valuesÒ  s$    ÿÿýÿz"TestMerge.test_merge_period_valuesc           
      C   s@  |\}}|  ¡ }|  ¡ }tg d¢ddtjtjtjtjgddtjtjtjtjgtjdddddgtjdddddgd	œƒ}tg d
¢g d¢d�|d< |g d¢ }t||dddd�}t ||¡ |j|dddd�}t ||¡ t ||¡ t ||¡ |}|jddid�}t||dddd�}	t |	|¡ |j|dddd�}	t |	|¡ d S )N©r   r(   r   rO   rP   rQ   r(   r   rJ   rK   rO   rP   rQ   )rL   Úcol_conflict_xrN   Úcol_conflict_yrR   )Ú	left_onlyÚbothÚ
right_onlyrm  rm  rm  ©rk  rm  rl  ©Ú
categoriesÚ_merge)rL   ri  rN   rj  rR   rq  rL   r¬   T©r}   r‰   Z	indicatorZcustom_namer½   )	rµ   r   r   r7   r	   r   rv   rw   Úrename)
r^   rV   rT   rU   Údf1_copyÚdf2_copyZ	df_resultÚtestZdf_result_custom_nameZtest_custom_namer%   r%   r&   Útest_indicatorè  sH    ûÿ	÷
ÿÿ
ÿÿzTestMerge.test_indicatorc                 C   s�   |\}}d}t jt|d��" t||dddd� W d   ƒ n1 sB0    Y  t jt|d��" |j|dddd� W d   ƒ n1 s‚0    Y  d S )Nz<indicator option can only accept boolean or string argumentsr•   rL   r¬   rQ   rr  rŸ   )r^   rV   rT   rU   rœ   r%   r%   r&   Ú#test_merge_indicator_arg_validation'  s    0z-TestMerge.test_merge_indicator_arg_validationc                 C   sä   |\}}t ||dddd�}|jdk ¡ s,J ‚|j |dddd�}|jdk ¡ sPJ ‚t ||dddd�}|jdk ¡ stJ ‚|j |dddd�}|jdk ¡ s˜J ‚t ||dddd�}|jd	k ¡ s¼J ‚|j |dddd�}|jd	k ¡ sàJ ‚d S )
NrL   rl   Trr  rm  rq   rk  r�   rl  )r   rq  r¶   )r^   rV   rT   rU   Ztest2Ztest3Ztest4r%   r%   r&   Ú%test_merge_indicator_result_integrity1  s    z/TestMerge.test_merge_indicator_result_integrityc              	   C   sX  |\}}dD ]¨}t dddg|ddgiƒ}d|› d�}tjt|d��" t||ddd	d
� W d   ƒ n1 sj0    Y  tjt|d��" |j|ddd	d
� W d   ƒ q1 sª0    Y  qt ddgddgdœƒ}d}tjt|d��" t||dddd
� W d   ƒ n1 �s0    Y  tjt|d��" |j|dddd
� W d   ƒ n1 �sJ0    Y  d S )N)Z_right_indicatorZ_left_indicatorrq  rL   r(   r   zECannot use `indicator=True` option when data contains a column named z;|Cannot use name of an existing column for indicator columnr•   r¬   Trr  )rL   Úcustom_column_namez:Cannot use name of an existing column for indicator columnrz  ©r   r˜   r™   r›   r   )r^   rV   rT   r  rÞ   Zdf_badcolumnrœ   r%   r%   r&   Útest_merge_indicator_invalidD  s2    ÿÿ02û&ÿz&TestMerge.test_merge_indicator_invalidc                 C   s¢   t ddgddgdœƒ}t g d¢g d¢dœƒ}t g d¢g d	¢dœƒ}tg d
¢g d¢d�|d< t||ddgddd�}t ||¡ |j|ddgddd�}t ||¡ d S )Nr   r(   rJ   rK   )rL   Úcol2)r(   r(   rO   )rK   r>   rÏ   )r   r(   r(   rO   ©rJ   rK   r>   rÏ   )rk  rl  rm  rm  rn  ro  rq  rL   r}  r¬   Trr  ©r   r	   r   rv   rw   )r^   Údf3Údf4Zhand_coded_resultZtest5r%   r%   r&   Ú%test_merge_indicator_multiple_columnsf  s    ÿþ
z/TestMerge.test_merge_indicator_multiple_columnsc                 C   s¶  t g d¢g d¢dœtdƒd�}t g d¢g d¢dœtd	ƒd�}| ¡ }| ¡ }t||d
d
dd�}t ||¡ t ||¡ t g d¢g d¢g d¢g d¢dœtdƒg d¢d�}t||d
d
dd�}t ||¡ t g d¢g d¢g d¢dœtdƒd�}t||ddd�}t ||¡ t ||¡ t ||¡ t||ddd�}t ||¡ t g d¢g d¢g d¢dœg d¢tdƒd�}| d¡}	t|	|d
ddd�}t ||¡ t|t dgdgdœdgd�gƒ}
t||
d
d
dd� d}tj	t
|d��" t||
d
d
dd� W d   ƒ n1 �sø0    Y  tj	t
|d��  t||
ddd� W d   ƒ n1 �s80    Y  t|t dgdgdœdgd�gd
d�}t||d
d
dd� d }tj	t
|d��" t||d
d
dd� W d   ƒ n1 �s´0    Y  tj	t
|d��  t||ddd� W d   ƒ n1 �sô0    Y  t||
dd!d� d"}tj	t
|d��" t||
d
d
dd� W d   ƒ n1 �sJ0    Y  d#}tj	t
|d��  t||
ddd� W d   ƒ n1 �sŽ0    Y  d$}tj	t|d��  t||dd%d� W d   ƒ n1 �sÒ0    Y  t g d&¢g d'¢g d¢dœtdƒd�}t g d(¢g d)¢g d*¢d+œtdƒd�}t g d(¢g d)¢g d,¢g d*¢dœtdƒd�}d-}tj	t
|d��  t||ddd� W d   ƒ n1 �sˆ0    Y  t||dd.gdd�}t ||¡ d S )/NrÝ   )ÚcatÚdogÚweaselÚhorser²   rP   ro   ©rJ   rK   rd   re   rf   )ÚmeowÚbarkúum... weasel noise?ÚnayZchirp©rJ   rd   rQ   Tz1:1)rs   rt   Úvalidate)rˆ  r‰  rŠ  r‹  )Úa_xrK   Úa_yrd   r^  Z
one_to_onerå   rJ   )r}   r�  ©rK   rJ   rd   r`  )rs   r‹   r�  rf   ÚmooZone_to_manyzBMerge keys are not unique in right dataset; not a one-to-one merger•   ÚcowrO   )rŠ   Zmany_to_onezAMerge keys are not unique in left dataset; not a one-to-one mergeZmany_to_manyzCMerge keys are not unique in right dataset; not a many-to-one mergezBMerge keys are not unique in left dataset; not a one-to-many mergez™"jibberish" is not a valid argument. Valid arguments are:
- "1:1"
- "1:m"
- "m:1"
- "m:m"
- "one_to_one"
- "one_to_many"
- "many_to_one"
- "many_to_many"Z	jibberish)rJ   rJ   rK   rK   )r   r(   r   r(   ©rJ   rJ   rK   )r   r(   r   )rˆ  r‰  rŠ  )rJ   rK   re   )rƒ  r„  r…  zQMerge keys are not unique in either left or right dataset; not a one-to-one mergerK   )r   r   rµ   r   rv   rw   r†   r   r˜   r™   r   r›   )r^   rl   rq   Z	left_copyZ
right_copyry   rz   Z
expected_2Z
expected_3Zleft_index_resetZright_w_dupsrœ   Zleft_w_dupsZexpected_multir%   r%   r&   Útest_validationy  s   þþû	üø
ÿýú	ýù

û ûû&0ÿûû&0û&0ÿ0ýú	ýú	üùÿ0zTestMerge.test_validationc                 C   sN   t g g g dœƒ}tjdd�� t||dd� W d   ƒ n1 s@0    Y  d S )Nrå   Úraise)Údivider²   r|   )r   r   Zerrstater   )r^   rJ   r%   r%   r&   Ú)test_merge_two_empty_df_no_division_error>  s    z3TestMerge.test_merge_two_empty_df_no_division_errorr¬   zindex,expected_index)r(   r   rP   )r(   r   rP   NNN)ú
2001-01-01ú
2002-02-02ú
2003-03-03zM8[ns]r*   r˜  r™  rš  c                 C   s.   g | ]&}t g d ¢|d�t g d¢tjd�f‘qS )rì   r*   )r(   r   rO   NNN)r   r   Úfloat64©Ú.0Zdtypr%   r%   r&   Ú
<listcomp>U  s   ýþzTestMerge.<listcomp>)©r(   r   ©r   rO   ©rO   rP   rŸ  r   r¡  )r˜  ú
2001-01-02ú
2001-01-03r7  )rW  r¢  r£  )Ú1dÚ2dÚ3dr¤  r¥  r¦  c              	   C   sš   t g d¢g d¢dœ|d�}t dg d¢iƒ}|j|dd|d�}t g d	¢g d
¢g d¢tjddgtjddgtjddggg d¢d�}|j|dd� t ||¡ d S )Nr÷   ©rJ   ri   ro   rK   rh  ri   Tr‘   )r   r   r   ©r(   r(   r(   ©r   r   r   rO   rP   rQ   ©rJ   ri   rK   r½   )Úinplace)r   r   r   r7   r†   rv   rw   )r^   r‰   rp   Úexpected_indexrT   rU   ry   rz   r%   r%   r&   Ú$test_merge_on_index_with_more_valuesD  s    /


ú÷z.TestMerge.test_merge_on_index_with_more_valuesc                 C   sx   t g d¢g d¢dœƒ}t dg d¢iƒ}t g d¢g d¢g d¢dœg d¢d	d
dtjgd�}|j|dddd�}t ||¡ d S )Nrì   )r   r(   r(   r§  rK   ©r(   r   rO   N)r   r(   r(   r   )r(   r   r   rO   rª  r   r(   r   r`  ri   Trq   r‘   ©r   r   r7   r   rv   rw   r„   r%   r%   r&   Útest_merge_right_index_right„  s    ýz&TestMerge.test_merge_right_index_rightc                 C   s†   t ddgddgdœƒ}t ddgddgdœƒ}|j|dd	g|d
�}|dkr`t ddgddgdœƒ}nt ddgddgdœƒ}t ||¡ d S )Nr„  Úpigé(   r&  )ÚanimalÚ	max_speedZquetzaléP   r³  r´  rÀ   rq   ru   )r^   r‰   Úleft_dfÚright_dfry   rz   r%   r%   r&   Útest_merge_preserves_row_order“  s    z(TestMerge.test_merge_preserves_row_orderc                 C   sž   t g d¢tg d¢tdƒd�dœƒ}t dg d¢itg d¢ƒd�}|j|d	d
dd�}t g d¢tg d¢ƒg d¢dœdddtjgd�}|jg d¢d�}t 	||¡ d S )Nrì   r“  Úabcro  r§  rK   rå   ro   ri   Trq   r‘   r®  )rJ   rJ   rK   rd   )r(   r(   r   rO   rª  r   r(   r   r½   )
r   r	   r   r
   r   r   r7   Úreindexrv   rw   r“   r%   r%   r&   Ú8test_merge_take_missing_values_from_index_of_other_dtypeŸ  s     þÿ
ýúzBTestMerge.test_merge_take_missing_values_from_index_of_other_dtypec                 C   sd   t t d¡ d¡d g d¢d�}t t d¡ d¡d g d¢d�}|jjD ]}d|j_qH| |¡ d S )	NrÄ   )rP   rQ   r(   r‡  r½   )rQ   rP   r~  F)	r   r   rÍ   rc  Z_mgrrH  ÚflagsZ	writeabler   )r^   rZ   r[   r$   r%   r%   r&   Útest_merge_readonly´  s    ÿÿ
zTestMerge.test_merge_readonlyN)Nr   r!  r"  r˜   Úfixturer_   rU   rl   rq   r{   r�   r…   r‡   r�   r”   r�   r    r¤   r±   r·   rº   rÃ   rË   rÎ   rÒ   rÜ   rß   rà   ÚmarkÚparametrizerá   rë   rù   rû   rÿ   r   r	  r  r  r  Úfilterwarningsr%  r-  r5  rJ  rK  rM  rS  rT  rV  rZ  re  rf  rg  rw  rx  ry  r|  r‚  r”  r—  r
   r   r2   r8   rv   ÚALL_REAL_NUMPY_DTYPESr   Úfrom_tuplesr   r7   r   r   r­  r°  r¸  r»  r½  r%   r%   r%   r&   rW   q   sî   

	

	
 


üþ	

/* ÿÿ


 ?
" F

þÿþüûûòÿþëþþå#
þÞþ*
rW   c                 C   sZ   dD ]P}dD ]F}| j |||d�}t|  ¡ | ¡ ||d�}| d¡}tj||dd� qqd S )N)r�   rl   r¬   )TF©r‰   rŠ   rp   F)Zcheck_names)r’   r   r  r†   rv   rw   )r>   rÏ   r‰   rŠ   ry   rz   r%   r%   r&   rÙ   Ä  s    
rÙ   c                   @   s<  e Zd Zej dddgeddgƒ d¡g¡dd„ ƒZej de	j
e	je	je	je	je	jg¡ej de	j
e	je	je	jg¡d	d
„ ƒƒZej dg d¢g d¢g d¢g d¢dœfg d¢ddgddgddgdœfddgg d¢ddgddgdœfg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej dg d ¢eg d!¢ƒ d¡fg d"¢eg d!¢ƒ d¡fd#dged$d%ged&�fd#dged$d%ged&�fg¡d'd(„ ƒZej deddgd)d&�g d*¢feddgd+d&�g d*¢fg d ¢g d,¢fg d"¢g d,¢fg d ¢g d,¢fejd-dd.d/�d0d1gfejd-dd.d/�d#dgfejd-dd.d/�d2dgfejd3dd4�ejd3dd5d6�fg	¡d7d8„ ƒZej d9ddgd:fg d;fdgd<fdgd=fg¡d>d?„ ƒZej d9d@dAgd:fg d;fdAgd<fd@gd=fg¡dBdC„ ƒZ ej dDd;g dE¢g dF¢gfd:g dF¢g dE¢gfd=g dE¢g dF¢gfd<g dF¢g dE¢gfg¡dGdH„ ƒZ!dIdJ„ Z"ej dKg dL¢¡dMdN„ ƒZ#dOS )PÚTestMergeDtypesÚ
right_valsr-   r¥   Úcategoryc              
   C   s‚   t ddgtddgƒ d¡ddgddgtddgdd	�tddgd
d	�dœƒ}t d|iƒ}t||dd�}t|jjƒs~t|jjƒs~J ‚d S )Nr-   r¥   rÇ  r(   r   ç      ð?ç       @Úuint64r*   Úint32)r.  r/  ÚCr7  ÚEÚFr.  r|   )r   r   rƒ   r   r   r.  r+   r   )r^   rÆ  rl   rq   ry   r%   r%   r&   Útest_differentÑ  s    úÿ
zTestMergeDtypes.test_differentÚd1Úd2c           
      C   s>  t  |¡}t  |¡}tt jg d¢d |d�ddgd t jt  d¡t jd�dœƒ}t d	d
g¡}tdt jddg|d�i|d�}|j|ddgd�}| 	¡ }	|j
dkrªt  d¡}t jt j|d�|	d< d|	j|	jdk|	jdk@ df< d|	j|	jdk|	jdk@ df< t ||	¡ |j|ddgdd�}|	jddgddd� t ||	¡ d S )Nr÷   r   r*   r-   r¥   r  é   )Úk1Úk2Úv)r   r¥   )r(   r-   rm   rQ   rg   ro   rÓ  rÔ  r|   rÞ   r›  r   r(   Tr  Z	mergesort)Úkindr«  )r   r+   r   rÂ   rÍ   r)   r   rÃ  r’   rµ   rÖ  r7   rŒ   rÓ  rÔ  rv   rw   Úsort_values)
r^   rÐ  rÑ  Zdtype1Zdtype2rl   rp   rq   ry   rz   r%   r%   r&   Útest_join_multi_dtypesç  s*    


ýÿ

z&TestMergeDtypes.test_join_multi_dtypeszint_vals, float_vals, exp_valsrì   )rÈ  rÉ  ç      @©ÚXÚYrÈ  rÙ  r(   rO   r   rÉ  c                 C   sd   t d|iƒ}t d|iƒ}t |ƒ}|j|ddd�}t ||¡ |j|ddd�}t ||ddg ¡ d S )NrÛ  rÜ  r—   ru   )r^   Zint_valsZ
float_valsZexp_valsr.  r/  rz   ry   r%   r%   r&   Útest_merge_on_ints_floats
  s    z)TestMergeDtypes.test_merge_on_ints_floatsc                 C   s~   t ddgddgdœddgd�}t d	gd
gdœddgd�}|j|ddd�}t ddgddgtjdgdœg d¢d�}t ||¡ d S )NrÈ  rÉ  r`   rÄ   rh   ri   rj   r½   r   éÈ   )ri   rm   rm   rl   rÀ   g      i@rL  )r   r   r   r7   rv   rw   r  r%   r%   r&   Útest_merge_key_dtype_cast   s    þz)TestMergeDtypes.test_merge_key_dtype_castc                 C   s0  t dg d¢iƒ}t dg d¢iƒ}t dgdgdœƒ}t t¡�, |j|ddd�}t ||¡ W d   ƒ n1 sn0    Y  t t¡�4 |j|ddd�}t ||ddg ¡ W d   ƒ n1 s¼0    Y  t dtjtjdgiƒ}t d ¡�4 |j|ddd�}t ||ddg ¡ W d   ƒ n1 �s"0    Y  d S )	NrÛ  rì   rÜ  )çš™™™™™ñ?g      @rÙ  rO   rÙ  rÚ  r—   )r   rv   r+  ÚUserWarningr   rw   r   r7   )r^   r.  r/  rz   ry   r%   r%   r&   Ú!test_merge_on_ints_floats_warning+  s    *2z1TestMergeDtypes.test_merge_on_ints_floats_warningc                 C   st   t dtddgtd�iƒ}t dddgiƒ}t dddgitd�}t||dd�}t ||¡ t||dd�}t ||¡ d S ©Nri   TFr*   r|   )r   r   r6   r   rv   rw   ©r^   rT   rU   rz   ry   r%   r%   r&   Ú(test_merge_incompat_infer_boolean_objectC  s    z8TestMergeDtypes.test_merge_incompat_infer_boolean_objectc                 C   sx   t dtddtjgtd�iƒ}t dddgiƒ}t dddgitd�}t||dd�}t ||¡ t||dd�}t ||¡ d S rã  )r   r   r   r7   r6   r   rv   rw   rä  r%   r%   r&   Ú5test_merge_incompat_infer_boolean_object_with_missingN  s    zETestMergeDtypes.test_merge_incompat_infer_boolean_object_with_missingzdf1_vals, df2_valsr÷   )rJ   rK   rJ   )r  rÈ  rÉ  r   FTr*   c                 C   sh   t d|iƒ}t d|iƒ}t||dgd�}t|jjƒs8J ‚t||dgd�}t|jjƒsdt|jjƒsdJ ‚d S )Nr.  r|   )r   r   r   r.  r+   r   )r^   Údf1_valsÚdf2_valsrT   rU   ry   r%   r%   r&   Ú!test_merge_incompat_dtypes_are_okZ  s    z1TestMergeDtypes.test_merge_incompat_dtypes_are_okrÊ  rå   rË  )r1  Ú1Ú2z1/1/2011r7  r]  z
2011-01-01z
2011-01-02r  Z20130101)rP  r/   rO  c                 C   sæ  t d|iƒ}t d|iƒ}d|d j› d|d j› d�}t |¡}tjt|d��  t||dgd� W d   ƒ n1 st0    Y  d|d j› d|d j› d�}t |¡}tjt|d��  t||dgd� W d   ƒ n1 sÚ0    Y  t|ƒt|ƒk�rât |||dœƒ}t |||dœƒ}d|d j› d|d j› d	�}t |¡}tjt|d�� t||ƒ W d   ƒ n1 �sn0    Y  d|d
 j› d|d
 j› d�}t |¡}tjt|d��" t||dd
gd� W d   ƒ n1 �sØ0    Y  d S )Nr.  úYou are trying to merge on ú and zE columns for key 'A'. If you wish to proceed you should use pd.concatr•   r|   ©r.  r/  rÌ  r/  zE columns for key 'B'. If you wish to proceed you should use pd.concatrÌ  zE columns for key 'C'. If you wish to proceed you should use pd.concat)	r   r+   ÚreÚescaper˜   r™   r›   r   r   )r^   rç  rè  rT   rU   rœ   r€  r�  r%   r%   r&   Ú test_merge_incompat_dtypes_errorr  s2    ÿ
.ÿ
.ÿ
*ÿ
z0TestMergeDtypes.test_merge_incompat_dtypes_errorzexpected_data, howr¬   r�   rq   rl   c           	      C   s`   t dgdg|d�}t dgdg|d�}t|||d�}tt|ƒƒ}t ||dg|d�}t ||¡ d S )N)r(   ÚidrÌ   ©r   rÅ   ©rp   r�   r+   ©r   r   r   r   rv   rw   )	r^   Úany_numeric_ea_dtyper‰   Úexpected_datarÐ  rÑ  ry   Z	exp_indexrz   r%   r%   r&   Útest_merge_EA_dtype¼  s    
ÿz#TestMergeDtypes.test_merge_EA_dtyperJ   rK   c           	      C   s`   t dgdg|d�}t dgdg|d�}t|||d�}tt|ƒƒ}t ||dg|d�}t ||¡ d S )N)rJ   rò  rÌ   )rK   rÅ   rô  rõ  )	r^   r‰   r÷  Úany_string_dtyperÐ  rÑ  ry   Zexp_idxrz   r%   r%   r&   Útest_merge_string_dtypeÐ  s    
ÿz'TestMergeDtypes.test_merge_string_dtypezhow, expected_data)Tr(   rP   )FrQ   rO   c                 C   sZ   t ddgddgdœƒ}t ddgddgdœƒ}t|||d	�}t |g d
¢d�}t ||¡ d S )NTFr(   rQ   ©r.  r/  rO   rP   ©r.  rÌ  rÅ   rî  r½   ru   )r^   r‰   r÷  rT   rU   ry   rz   r%   r%   r&   Útest_merge_bool_dtypeä  s
    z%TestMergeDtypes.test_merge_bool_dtypec           	      C   sÀ   t g d¢g d¢dœt ¡ d�}| ¡ }t dddtjdgd	d
dtjdgdœ|d�}| ¡ }t||dg|d�}t ||¡ t ||¡ tt	 
d¡t ¡ t	 
d¡gt g d¢¡d�}t |j|¡ d S )N)rê  rë  Ú3Ú4N)rÿ  Ú5Ú6Ú7Ú8)©Úlvl0zlvl1-a©r  zlvl1-b)Údatar+   rê  rë  rþ  r   r  r  Ú9Z11)r  ©r  zlvl1-cr  )rl   rq   r}   r‰   ÚO)r  r  r	  ro   )r   r2   ZStringDtyperµ   ZNAr   rv   rw   r   r   r+   r   rÃ  r°   rý   )	r^   ré   Zstring_dtyperT   rt  rU   ru  r£   rz   r%   r%   r&   Útest_merge_ea_with_stringõ  s0    þûþûÿþz)TestMergeDtypes.test_merge_ea_with_stringzleft_empty, how, exp)
)Frl   rl   )Frq   Úempty)Fr�   r  )Fr¬   rl   )FÚcrossÚempty_cross)Trl   r  )Trq   rq   )Tr�   r  )Tr¬   rq   )Tr  r  c                 C   sø   t ddgddgdœƒ}t dgdgdœdd	�}|r<| d
¡}n
| d
¡}|j||d�}|dkr~t ddgddgtjtjgdœƒ}nT|dkr t dgtjgdgdœƒ}n2|dkrºt g d¢dd�}n|dkrÒt g d¢dd�}|dkrè|jddd�}t ||¡ d S )Nr   r(   rO   rP   rû  rQ   rü  r)   r*   r   rÅ   rl   rî  rq   r  rÌ   r  )ZA_xr/  ZA_yrÌ  r¬   r.  Tr)  )r   Úheadr   r   r7   r×  rv   rw   )r^   Ú
left_emptyr‰   r€   rl   rq   ry   rz   r%   r%   r&   Útest_merge_empty  s"    
"z TestMergeDtypes.test_merge_emptyN)$r   r!  r"  r˜   r¿  rÀ  r   rƒ   rÏ  r   r)   rË  ZintcZint16Zint8Zuint8r›  Zfloat32Zfloat16rØ  rÝ  rß  râ  rå  ræ  r6   rÆ   ré  r2   rR  rñ  rø  rú  rý  r  r  r%   r%   r%   r&   rÅ  Ð  s¢   ÿ
ÿýþ
úþ
þþóþ
5
üþ	

üþ	
üþ	
!þrÅ  c                   C   sL   t ttj d¡jddgdd�ƒ tddgƒ¡tj d¡jg d¢dd�dœƒS )Nr   r-   r¥   )r`   r  )ÚoneÚtwoÚthreerÚ  )r   r   r   r   r    Úchoicerƒ   r   r%   r%   r%   r&   rl   ?  s    ÿ
þüÿrl   c                   C   s(   t tddgƒ tddgƒ¡ddgdœƒS )Nr-   r¥   r(   r   )rÛ  ÚZ)r   r   rƒ   r   r%   r%   r%   r&   rq   K  s
    þÿrq   c                
   @   sò   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	d
dg¡dd„ ƒZ
dd„ Zej 	ddd„ dd„ dd„ g¡dd„ ƒZdd„ Zdd„ Zej 	d	d
dg¡ej 	dg d¢d
dgd
dgfg d¢ddgddgfg d ¢d!d"gd!d"gfg¡d#d$„ ƒƒZd%d&„ Zd'S )(ÚTestMergeCategoricalc                 C   sZ   t ||dd�}|j ¡ }|s&t d¡nd}ttddgd�||gg d¢d	�}t ||¡ d S )
NrÛ  r|   r
  Ústrr-   r¥   ro  )rÛ  ZY_xZY_yro   ©	r   rý   rd  r   r+   r   r   rv   r°   )r^   rl   r¹   r£   ry   r+   rz   r%   r%   r&   Útest_identicalV  s    
þz#TestMergeCategorical.test_identicalc                 C   s`   t ||dd�}|j ¡ }|s&t d¡nd}ttddgd�|t d¡gg d	¢d
�}t ||¡ d S )NrÛ  r|   r
  r  r-   r¥   ro  r)   ©rÛ  rÜ  r  ro   r  ©r^   rl   rq   r¹   r£   ry   r+   rz   r%   r%   r&   Ú
test_basica  s    
ýúzTestMergeCategorical.test_basicc                 C   sD  t ddddddœddddddœdœƒ}t d	d	d	d	d	dœd
d
d
d
d
dœdœƒ}t||dddd�}| ¡ }| ¡ }|d  d¡|d< t||dddd�}|d  tdgƒ¡|d< t ||¡ | ¡ }|d  d¡|d< t||dddd�}t ||¡ | ¡ }|d  d¡|d< | ¡ }|d  d¡|d< t||dddd�}t ||¡ d S )NrJ   rK   rd   re   rf   )r   r(   r   rO   rP   Únullr³   rÕ   rÖ   r²   rl   )r‰   rˆ   r‹   rÇ  )r   r   rµ   rƒ   r   rv   rw   )r^   rq   rl   r_   rz   Zcrightry   Zcleftr%   r%   r&   Útest_merge_categoricalq  s6    þÿþÿz+TestMergeCategorical.test_merge_categoricalc                 C   s„   t tg d¢g d¢d�g d¢dœƒ}t tg d¢g d¢d�g d¢dœƒ}t||dgd	�}t tg d¢ƒg d¢g d
¢dœƒ}t ||¡ d S )Nrî  ro  )ZA0ÚB0ZC0)ÚFooÚLeft)rÌ  r/  r.  )ÚC1ÚB1ÚA1)r!  ÚRightr!  r|   )r%  r$  r#  )r!  r"  r&  r  r  r%   r%   r&   Ú'tests_merge_categorical_unordered_equalœ  s$    þÿþÿ
ýÿz<TestMergeCategorical.tests_merge_categorical_unordered_equalÚorderedTFc                 C   sÆ   t ddg|d�}tg d¢tg d¢|d�g d¢dœƒ d	d
g¡}tg d¢tg d¢|d�g d¢dœƒ d	d
g¡}t||dddd�}tg d¢tg d¢|d�g d¢ddtjgdœƒ d	d
g¡}t ||¡ d S )NÚP2ÚP1©rp  r(  )rÌ  rÌ  r7  )r)  r*  r)  r*   r÷   )rò  ÚprJ   rò  r,  )r.  rÌ  rÌ  )r)  r)  r*  )r`   r&  r  )rò  r,  rÐ  rl   Trž   g      &@g      (@)rò  r,  rJ   rÐ  )	r   r   r	   r†   r   r   r7   rv   rw   )r^   r(  ZpcatrT   rU   ry   rz   r%   r%   r&   Ú5test_multiindex_merge_with_unordered_categoricalindexµ  s8    ýÿúýÿú
üÿùzJTestMergeCategorical.test_multiindex_merge_with_unordered_categoricalindexc                 C   s¤   |j |j d¡d�}t||dd�}|j ¡ }|s:t d¡nd}tt	ddgd	�|t	d
dgd	�gg d¢d�}t
 ||¡ |jj |jj¡sŠJ ‚|jj |jj¡s J ‚d S )NrÇ  )r  rÛ  r|   r
  r  r-   r¥   ro  r(   r   r  ro   )Úassignr  rƒ   r   rý   rd  r   r+   r   r   rv   r°   rÛ  r
  Z#_categories_match_up_to_permutationr  r%   r%   r&   Útest_other_columnsÒ  s    
ýúz'TestMergeCategorical.test_other_columnsÚchangec                 C   s   | S r:   r%   r=   r%   r%   r&   r?   ê  r@   zTestMergeCategorical.<lambda>c                 C   s   |   tg d¢ƒ¡S )N)r-   r¥   Zbah©rƒ   r   r=   r%   r%   r&   r?   ë  r@   c                 C   s   |   tdd�¡S )NT©r(  r1  r=   r%   r%   r&   r?   ì  r@   c                 C   sˆ   ||j  d¡ƒ}|j|d�}t|j jjtƒs0J ‚t||d|d�}|j 	¡ }|sXt
 d¡nd}	t|	|	t
 d¡gg d¢d	�}
t ||
¡ d S )
Nr6   )rÛ  rÛ  rÀ   r
  r  r)   r  ro   )rÛ  rƒ   r.  r$  r
  r+   r   r   rý   rd  r   r   rv   r°   )r^   r0  ré   rl   rq   r¹   rÛ  r£   ry   r+   rz   r%   r%   r&   Útest_dtype_on_merged_differentç  s    
z3TestMergeCategorical.test_dtype_on_merged_differentc                    sx   d‰ t g d¢ˆ  g d¢d ˆ  ‡ fdd„dD ƒ‡ fdd„d	D ƒd
œƒ}| dd„ ¡}t||t|jƒd�}t ||¡ d S )NrQ   )
rJ   rK   rd   re   rf   rÕ   rÖ   r×   rÞ   Új)r(  Úwr>   rÏ   rç   r   c                    s$   g | ]}|gd  ˆ  D ]}|‘qqS ró  r%   ©r�  ZeachÚletter©r8  r%   r&   rž  	  s   þzKTestMergeCategorical.test_self_join_multiple_categories.<locals>.<listcomp>)r8  r#   Úur,  Úoc                    s    g | ]}|gˆ  D ]}|‘qqS r%   r%   r6  r8  r%   r&   rž    s   ó)
ZaaZbbÚccÚddÚeeÚffZggÚhhÚiiZjjrÝ   c                 S   s
   |   d¡S )NrÇ  )rƒ   r=   r%   r%   r&   r?   "  r@   zITestMergeCategorical.test_self_join_multiple_categories.<locals>.<lambda>r|   )r   Úapplyr   r   r�   rv   rw   )r^   r_   ry   r%   r8  r&   Ú"test_self_join_multiple_categories  s    

þ
þøÿz7TestMergeCategorical.test_self_join_multiple_categoriesc                 C   s(  t tdddƒdgtdddƒdggddgd�}|d  d	¡|d< t tdddƒdgtddd
ƒdggddgd�}|d  d	¡|d< t t d¡ ¡ ddgt d¡ ¡ dtjgt d¡ ¡ tjdggg d¢d�}t||ddgd�}t 	||¡ t t d¡ ¡ ddggg d¢d�}t||ddgd�}t 	||¡ d S )NiÑ  r(   rà  r   çÍÌÌÌÌÌô?r   Únum2r½   rÇ  rO   çffffffö?Únum4r˜  r¢  r£  )r   rD  rF  r¬   rX  r�   )
r   r   rƒ   r2   r3   r   r7   r   rv   rw   )r^   r_   rU   Zexpected_outerZresult_outerZexpected_innerZresult_innerr%   r%   r&   Útest_dtype_on_categorical_dates)  s.    $ÿ$ÿýúþz4TestMergeCategorical.test_dtype_on_categorical_datesz.category_column,categories,expected_categories)FTTF)r   r(   r(   r   r(   r   )ÚFalseÚTruerI  rH  rI  rH  c           	      C   sŽ   t g d¢|dœƒ}|d  t||d�¡|d< t ddgddgd	œƒ}| |¡}t ddg|ddgd
œƒ}|d  t||d�¡|d< t ||¡ d S )Nr§   )rò  rƒ  rƒ  r2  r   rP   r(   rï   )rò  Únum)rò  rƒ  rJ  )r   rƒ   r   r   rv   rw   )	r^   Zcategory_columnrp  Zexpected_categoriesr(  rT   rU   ry   rz   r%   r%   r&   Ú/test_merging_with_bool_or_int_cateorical_columnI  s    

ÿzDTestMergeCategorical.test_merging_with_bool_or_int_cateorical_columnc                 C   s\   t tddtjgdd�ddœƒ}t||dd�}t tddtjgdd�dddœƒ}t ||¡ d S )	Nr(   r   r,   r*   rû  r.  r|   )r.  ÚB_xZB_y)r   r   r   r7   r   rv   rw   )r^   r_   ry   rz   r%   r%   r&   Útest_merge_on_int_arraya  s    ÿz,TestMergeCategorical.test_merge_on_int_arrayN)r   r!  r"  r  r  r  r'  r˜   r¿  rÀ  r-  r/  r3  rB  rG  rK  rM  r%   r%   r%   r&   r  U  s6   +
ýþ
( ýþr  c                   C   s   t dg d¢ig d¢d�S )NrJ   ©rÄ   r`   r   ©r   r(   r   ro   rS   r%   r%   r%   r&   r¶  k  s    r¶  c                   C   s   t dg d¢ig d¢d�S )NrK   ©é,  éd   rÞ  ©rO   r(   r   ro   rS   r%   r%   r%   r&   r·  p  s    r·  c                   @   sZ  e Zd Zej dddeddgddgdœd	d
gd�fddeddgddgdœd
d	gd�fddeg d¢ddejgdœg d¢d�fddeg d¢ejddgdœg d¢d�fddeejddgg d¢dœg d¢d�fddeddejgg d¢dœg d¢d�fddedddejgejdddgdœg d¢d�fddedddejgejdddgdœg d¢d�fg¡dd„ ƒZ	dS )ÚTestMergeOnIndexeszhow, sort, expectedr�   FrÄ   r`   rÞ  rR  r²   r   r(   ro   Trl   rN  rO  )r   r`   rÄ   r÷   rq   rP  rS  ©rR  rÞ  rQ  rì   r¬   r   rQ  r‚   c                 C   s$   t ||dd||d�}t ||¡ d S )NT)rs   rt   r‰   rŠ   r~   )r^   r¶  r·  r‰   rŠ   rz   ry   r%   r%   r&   Útest_merge_on_indexesv  s    0ÿz(TestMergeOnIndexes.test_merge_on_indexesN)
r   r!  r"  r˜   r¿  rÀ  r   r   r7   rV  r%   r%   r%   r&   rT  u  sR   "" ý ýÿýÿýþý	þýÝþ/rT  rp   c                 C   s   g | ]}t d dg|dd�‘qS )r(   r   Ú	index_colr;   )r   rœ  r%   r%   r&   rž  ®  r@   rž  r.  r/  rW  )rp  r<   r   )ÚstartÚstopr<   r.   z
2018-01-02r­   c                 C   s   t | ƒj› d| j› d�S )Nú[rB  )Útyper   r+   r=   r%   r%   r&   r?   ´  r@   )rB   c                 C   sb   t dddgi| d�}t dddgi| d�}|j|dgd	�}t ddgddgd
œ| d�}t ||¡ d S )NÚ	left_datar(   r   ro   Ú
right_datarÈ  rÉ  rW  r|   )r\  r]  ru   )rp   rl   rq   ry   rz   r%   r%   r&   Útest_merge_index_types¬  s
    r^  z-on,left_on,right_on,left_index,right_index,nmr¬   r�   F)NNNTTr/  T)NNNTTNc              
   C   s  t dg d¢itjddgddggddgd	�d
�}tg d¢tjddgddggddgd	�|d�}t ddgddgdœtjddgdggddgd	�d
�}|d ur¸t||| ||||d�}	t |	|¡ nHd}
tjt	|
d��& t||| ||||d�}	W d   ƒ n1 sö0    Y  d S )Nr.  r§   rJ   rK   r   r(   r¬   r�   ©Únamesro   r   rA  rP   rO   rû  )r}   rˆ   r‹   rs   rt   z$Cannot merge a Series without a namer•   )
r   r   Úfrom_productr   r   rv   rw   r˜   r™   r›   )r}   rˆ   r‹   rs   rt   ÚnmrJ   rK   rz   ry   rœ   r%   r%   r&   Útest_merge_seriesÂ  sF    
þýþù	ùrc  c                  C   sž   t dg d¢itjddgddggddgd	�d
�} tg d¢tjddgddggddgd	�dd�}tjtdd��" t| |ddgd� W d   ƒ n1 s�0    Y  d S )Nr.  r§   rJ   rK   r   r(   r¬   r�   r_  ro   r   )r/  rÌ  rA  z-Not allowed to merge between different levelsr•   r|   )r   r   ra  r   r˜   r™   r   r   r²   r%   r%   r&   Útest_merge_series_multilevel÷  s    
þýÿrd  z!col1, col2, kwargs, expected_colsÚsuffixes)Ú Ú_dupr1  Z0_dup)Nrg  )Ú_xÚ_yZ0_xZ0_yrh  ri  rJ   )Nri  r  )rh  Nz0.0_xrK   Úb_yrŽ  )Nrh  )Z_aNZ0_ar�  c                 C   sŠ   t | g d¢iƒ}t |g d¢iƒ}t ddgddgddgg|d	�}|j|fd
d
dœ|¤Ž}t ||¡ t||fd
d
dœ|¤Ž}t ||¡ d S )Nrì   rí   r(   rP   r   rQ   rO   rª   r½   Trr   ru   )rL   r}  ÚkwargsZexpected_colsrJ   rK   rz   ry   r%   r%   r&   Útest_merge_suffix		  s    rl  zhow,expectedrU  é<   éF   ©éX  é¼  é   )r.  r$  ZB2)r(   rR  rÞ  rQ  rµ  rp  rq  rr  c                 C   sX   t g d¢g d¢dœƒ}t g d¢g d¢dœƒ}t||d| dd�}g d	¢|_t ||¡ d S )
N)rR  rÞ  r(   )rm  rn  rµ  rû  rU  ro  r.  )rh  rh  )r}   r‰   re  )r.  rL  rL  )r   r   r�   rv   rw   )r‰   rz   r¶  r·  ry   r%   r%   r&   Útest_merge_duplicate_suffix)	  s
    
rs  zcol1, col2, suffixes))rJ   rJ   )NN)rJ   rJ   )rf  N)r   r   )Nrf  c                 C   sh   t | g d¢iƒ}t |g d¢iƒ}d}tjt|d��" t||dd|d� W d   ƒ n1 sZ0    Y  d S )Nrì   ©rO   rP   rQ   z'columns overlap but no suffix specifiedr•   T©rs   rt   re  r{  )rL   r}  re  rJ   rK   rœ   r%   r%   r&   Útest_merge_suffix_errorG	  s
    rv  rô   c                 C   sd   t dg d¢iƒ}t dg d¢iƒ}tjtdd��" t||dd| d� W d   ƒ n1 sV0    Y  d S )	NrJ   rì   rK   rt  zPassing 'suffixes' as ar•   Tru  )r   r˜   r™   Ú	TypeErrorr   )re  rJ   rK   r%   r%   r&   Útest_merge_suffix_raisesV	  s    rx  z2, got 3rë  zcol1, col2, suffixes, msgrå   z%too many values to unpack \(expected z\)z1not enough values to unpack \(expected 2, got 1\)c                 C   sd   t | g d¢iƒ}t |g d¢iƒ}tjt|d��" t||dd|d� W d   ƒ n1 sV0    Y  d S )Nrì   rt  r•   Tru  r{  )rL   r}  re  rœ   rJ   rK   r%   r%   r&   Útest_merge_suffix_length_errorb	  s    ry  Ú	cat_dtyper  r  Úreversec           	      C   sâ   t g d¢dd�t g d¢dd�dœ}ttg d¢ƒ |d ¡g d¢dœƒ d¡}g d¢}g d¢}|rp| ¡  | ¡  tt|ƒ ||  ¡|d	œƒ d¡}|j|d
d
d�}tg d¢g d¢tg d¢ƒ |d ¡dœƒ d¡}t ||¡ d S )Nrå   Fr+  )r  r  r  rì   ©r-   rl   r-   ©r-   rq   Trr   ©rl   rq   r-   )	r   r   r   rƒ   r†   r{  r   rv   rw   )	rz  r{  Z
cat_dtypesrT   Zdata_fooZ
data_rightrU   ry   rz   r%   r%   r&   Útest_merge_equal_cat_dtypesv	  s8    þÿþÿþýÿúr  c                  C   s¨   t g d¢dd�} ttddgƒ | ¡ddgdœƒ d	¡}ttg d¢ƒ | ¡g d
¢dœƒ d	¡}|j|ddd�}tddgddgtddgƒ | ¡dœƒ d	¡}t ||¡ d S )Nrå   Fr+  rJ   rK   r(   r   r|  r-   )rO   r   r(   r}  Trr   rO   r~  )r   r   r   rƒ   r†   r   rv   rw   )rz  rT   rU   ry   rz   r%   r%   r&   Útest_merge_equal_cat_dtypes2›	  s$    ÿþÿþ ÿþr€  c                  C   sj   t dtt dd¡t dd¡gdd�iƒ} |  ¡ }|d  d¡|d< t|| ddd	�}|  ¡ }t ||¡ d S )
NrJ   r   r(   r   Úintervalr*   rÇ  r�   rX  )	r   r   r2   ZIntervalrµ   rƒ   r   rv   rw   )rq   rl   ry   rz   r%   r%   r&   Útest_merge_on_cat_and_ext_array±	  s    "ÿr‚  c                     sÌ   g d¢} g d¢‰t j| ˆfddgd�}t|d�}d|d< t|d�}d|d< d	‰ d
‰|j|dˆ ˆfd�}‡ ‡fdd„| D ƒ}|dg7 }|‡‡fdd„| D ƒ7 }t j|ddgd�}t|d�}tj||dd� d S )NrÝ   ©rê  rë  rþ  r¬   r�   r_  r½   rf  rò  rh  ri  ©r}   re  c                    s"   g | ]}ˆD ]}|ˆ  |f‘qqS r%   r%   ©r�  r7  rJ  )Úl_sufÚnumbersr%   r&   rž  Ó	  r@   z1test_merge_multiindex_columns.<locals>.<listcomp>)rò  rf  c                    s"   g | ]}ˆ D ]}|ˆ |f‘qqS r%   r%   r…  )r‡  Úr_sufr%   r&   rž  Õ	  r@   Fr  )r   ra  r   r   rÃ  rv   rw   )Úlettersrp   Zframe_xZframe_yry   Ztuplesr¬  rz   r%   )r†  r‡  rˆ  r&   Útest_merge_multiindex_columns¿	  s     



rŠ  c                  C   st   t g d¢g d¢dœƒ} t g d¢t g d¢¡dœƒ}t| |ddd	�}t g d¢g d¢t g d
¢¡dœƒ}t ||¡ d S )Nrå   )rê  rë  rÿ  )r>   rÏ   rƒ  )Ú2000Ú2001Z2002)rÏ   rç   rl   rÏ   rX  )r‹  rŒ  r8   ræ   )r   r2   rY  r   rv   rw   ©rT   rU   ry   rz   r%   r%   r&   Ú test_merge_datetime_upcast_dtypeÝ	  s    ÿýÿrŽ  Ún_categoriesrQ   é€   c                 C   sš   t dgtt| ƒƒ ƒ}tt| d ƒdg|d�}tdggdgt dgtt| ƒƒd�d�}t||dddd	�}td
d„ t| d ƒD ƒddg|d�}t ||¡ d S )Nr   r(   ra   r`  rª   ro  rl   Trž   c                 S   s&   g | ]}|d k r|dgn|t jg‘qS )r   g      @)r   r7   )r�  rÞ   r%   r%   r&   rž  ý	  r@   z9test_categorical_non_unique_monotonic.<locals>.<listcomp>r®   r¯   )r
   r   r   r   r   rv   rw   )r�  rs   rT   rU   ry   rz   r%   r%   r&   Ú%test_categorical_non_unique_monotonicî	  s    ýýr‘  c                  C   s`  t g d¢g d¢ƒg d¢dœ} t| ƒ} t g d¢g d¢ƒg d¢g d¢dœ}t|ƒ d	d
g¡d }t| | ¡ ddgd	d
gdd�}|jd	d
gdd�}| j|ddgd�}t ||¡ t g d¢g d¢dd�g d¢dœ} t| ƒ} t g d¢g d¢dd�g d¢g d¢dœ}t|ƒ d	d
g¡d }t| | ¡ ddgd	d
gdd�}|jd	d
gdd�}| j|ddgd�}t ||¡ d S )N)rJ   rK   rJ   rd   rJ   rK   rå   )r   r(   r   r(   r   r   )ÚCat1ÚInt1)rJ   rK   rd   rJ   rK   rd   )r   r   r   r(   r(   r(   )rà  g333333ó?rC  rE  r  gš™™™™™ù?)ÚCatÚIntÚFactorr”  r•  r–  r’  r“  rl   rÈ   r(   )Zaxisr|   r�  Tr2  )	r	   r   r†   r   r  Údropr’   rv   rw   )rJ   rK   rz   ry   r%   r%   r&   Ú&test_merge_join_categorical_multiindex
  sT    þýûÿüÿûûr˜  Úfuncr   Z
merge_asof)rk  Úerr_msg)rˆ   rs   rˆ   rs   )r‹   rt   r‹   rt   c                 C   s�   t ddgddgdœƒ}t ddgddgdœƒ}d	|d
 › d|d › d�}tjt|d��( tt| ƒ||fi |¤Ž W d   ƒ n1 s‚0    Y  d S )Nr(   r   rO   rP   r²   rQ   rª   rŒ  zCan only pass argument "r   ú" OR "z" not both\.r•   ©r   r˜   r™   r   Úgetattrr2   ©r™  rk  rš  rl   rq   rœ   r%   r%   r&   Ú/test_merge_join_cols_error_reporting_duplicates<
  s
    
rŸ  c                 C   s�   t ddgddgdœƒ}t ddgddgdœƒ}d	|d
 › d|d › d�}tjt|d��( tt| ƒ||fi |¤Ž W d   ƒ n1 s‚0    Y  d S )Nr(   r   rO   rP   r²   rQ   rª   rŒ  zMust pass "r   r›  z"\.r•   rœ  rž  r%   r%   r&   Ú,test_merge_join_cols_error_reporting_missingM
  s
    
r   rk  c                 C   s~   t ddgddgdœƒ}t ddgddgdœƒ}d	}tjt|d
��, tt| ƒ||fddi|¤Ž W d   ƒ n1 sp0    Y  d S )Nr(   r   rO   rP   r²   rQ   rª   rŒ  zZCan only pass argument "on" OR "left_index" and "right_index", not a combination of both\.r•   r}   rJ   rœ  )r™  rk  rl   rq   rœ   r%   r%   r&   Ú1test_merge_join_cols_error_reporting_on_and_index^
  s    
ÿr¡  c                  C   sv   t ddgddgdœƒ} t ddgddgdœƒ}t| |dddd�}t ddgddgddgddgddgdœƒ}t ||¡ d S )	Nr(   r-   )r>   rç   rq   Tr>   )r‰   rs   r‹   )r>   Zx_xZz_xZx_yZz_yru   ©rl   rq   ry   rz   r%   r%   r&   Útest_merge_right_left_indexr
  s    ûÿ	r£  c                  C   s�   t dgdgdœƒ ddg¡} t ddgiƒ dg¡}t g g dœtjd� ddg¡}t| |dgdd�}t ||¡ t|| ddgd	�}t ||¡ d S )
Nr(   r   r²   rJ   rK   r*   Trä   rã   )r   r†   r   r)   r   rv   rw   ©rT   rU   rz   ry   r%   r%   r&   Ú$test_merge_result_empty_index_and_onƒ
  s    r¥  c                  C   s¤   t g d¢dddœƒ} t g d¢ddœƒ}tjtdd�� t| |dd	� W d   ƒ n1 sX0    Y  tjtdd��  t|| dd
d� W d   ƒ n1 s–0    Y  d S )Nrì   r(   r   )rJ   rK   Úb_xr²   ú(Passing 'suffixes' which cause duplicater•   rJ   r|   )ri  rh  r„  ©r   r˜   r™   r   r   rô   r%   r%   r&   Ú.test_merge_suffixes_produce_dup_columns_raises�
  s    ,r©  c                  C   sb   t g d¢g d¢gg d¢d�} t ddgddœƒ}t| |d	d
�}t g d¢gg d¢d�}t ||¡ d S )Nr¨  r©  )rJ   rK   rK   r½   r(   rO   r   r²   rJ   r|   )r(   r(   r(   r   )rJ   r¦  r¦  rj  ru   r¢  r%   r%   r&   Ú3test_merge_duplicate_columns_with_suffix_no_warning›
  s
    rª  c                  C   sn   t g d¢g d¢gg d¢d�} t ddgddœƒ}tjtd	d
�� t| |dd� W d   ƒ n1 s`0    Y  d S )N)r(   r(   r(   r(   )r   r   r   r   )rJ   rK   rK   r¦  r½   r(   rO   r   r²   r§  r•   rJ   r|   r¨  rô   r%   r%   r&   ÚItest_merge_duplicate_columns_with_suffix_causing_another_duplicate_raises¥
  s    r«  c                  C   s~   t ddgddggtddgƒd�} t dd	gd
dggddgd�}t|| dddd�}t g d¢g d¢gtg d¢ƒd�}t ||¡ d S )Nr(   r   rO   rP   rJ   ç     €\@r½   rï   r`   r&  r  r>   rÏ   r�   Trž   )rï   r`   r(   r   )r&  r  rO   rP   )r>   rÏ   rJ   r¬  ©r   r   r   rv   rw   r�  r%   r%   r&   Ú%test_merge_string_float_column_result®
  s     ÿr®  c                  C   sl   t dgdgdgd�} t dgdgdgd�}tjtdd��" t| |dgdd	� W d   ƒ n1 s^0    Y  d S )
NrÛ  rÌ  é   )r  r�   rp   iç  zCan only pass argumentr•   T)r}   rs   r¨  )Zdf_1Zdf_2r%   r%   r&   Ú/test_mergeerror_on_left_index_mismatched_dtypes¹
  s    r°  c                  C   sb   t tdƒƒ} t| tdƒdœƒ}tdtddƒiƒ}t||| dd�}t||| jdd�}t ||¡ d S )NrO   rû  rÌ  rª   r.  r—   )r
   r   r   r   Ú_datarv   rw   )Úcirq   rl   Úresrz   r%   r%   r&   Ú#test_merge_on_left_categoricalindexÁ
  s    r´  r+   r,   c                 C   sä   t ddgddgdœ| d�}t tjtjgddgdœ| d�}t||dd	d
�}t ddtjtjgddtjtjgtjtjddgdœ| d�}t ||¡ t||dd	d
�}t ddtjtjgtjtjddgddtjtjgdœ| d�}t ||¡ d S )Nr(   r   )ri   rL   r*   rO   rP   )ri   r}  ri   r¬   rÀ   )ri   rL   r}  )ri   r}  rL   r¯  )r+   rl   rq   ry   rz   r%   r%   r&   Útest_merge_outer_with_NaNÍ
  s(    ýúýúrµ  c                  C   sh   t ddgitdgdd�d�} t ddgitdgdd�d�}t| |ddd�}t dgddœƒ}t ||¡ d S )	NrJ   r(   rd   r­   ro   re   r—   )rŽ  r�  r­  r¢  r%   r%   r&   Ú test_merge_different_index_namesê
  s
    r¶  c                 C   sb   t g d¢ddœ| d�}t g d¢ddœ| d�}|j||d�}t g d¢dddœ| d�}t ||¡ d S )	Nrì   r(   r²   r*   r   rŒ  rÅ   rå   ru   ©rö  ré   rl   rq   ry   rz   r%   r%   r&   Útest_merge_eaó
  s
    r¸  c                 C   s†   t g d¢ddœ| d�}t g d¢ddœ|  ¡ d�}|j||d�}t tg d¢| d�tg d¢| d�tg d	¢|  ¡ d�d
œƒ}t ||¡ d S )Nrì   r(   r²   r*   r   rŒ  rÅ   r¨  r©  rå   )r   Úlowerr   r   rv   rw   r·  r%   r%   r&   Útest_merge_ea_and_non_eaü
  s    ýÿrº  r)   úint64[pyarrow]c                 C   sr   t  d¡ tdddgi| d�}tdddgidd�}| |¡}| ¡ }t ||¡ | |¡}| ¡ }t ||¡ d S )NÚpyarrowrJ   r(   r   r*   r»  )r˜   Úimportorskipr   r   rµ   rv   rw   )r+   r_   rU   ry   rz   r%   r%   r&   Ú!test_merge_arrow_and_numpy_dtypes  s    


r¾  r‰   )r�   rl   r¬   rq   r1   zAmerica/Chicagoc                 C   s:  t jddd| d�t jddd| d�t jddd| d�g}t|d d… dd	gd
œƒ}|d j d¡|d< t|dd … dd	gdœƒ}|d j d¡|d< t|dd	tjgtjdd	gdœƒ}|d j d¡|d< |dkrâ|jdg jdd�}n8|dkrú|jddg }n |dk�r|jddg jdd�}|j	|d|d�}t
 ||¡ d S )Niç  rQ   r  r0   é   é   r   rÈ  rÉ  )r(  rJ   r(  r<  r(   )r(  rK   r9  )r(  rJ   rK   r�   T©r—  rl   r   rq   rÀ   )r2   r3   r   rÑ   Zas_unitr   r7   Úilocr  r   rv   rw   )r1   r‰   ÚvalsrT   rU   rz   ry   r%   r%   r&   Ú(test_merge_datetime_different_resolution  s$    ý 
rÄ  c                  C   sn   t dddgiƒ} t ddgitjddgdgd�d	�}t ddgdtjgd
œƒ}| j|dgddd�}t ||¡ d S )NÚcolr.  r/  rK   rR  )r.  )rÌ  r_  )r  rp   )rÅ  rK   Trl   r‘   )r   r   rÃ  r   r7   r   rv   rw   )r_   rU   rz   ry   r%   r%   r&   Ú"test_merge_multiindex_single_level5  s    þrÆ  )rl   rq   r�   r¬   rŠ   Úon_indexÚleft_uniqueÚleft_monotonicÚright_uniqueÚright_monotonicc                 C   s.  ddg}|r |  |rdnd¡ n|  |r,dnd¡ ddg}|rR|  |rJdnd¡ n|  |r^dnd¡ td|iƒ}td|iƒ}|r | d¡}| d¡}dddœ}	nddi}	t||f| |d	œ|	¤Ž}
|rÔ| ¡ }| ¡ }| d
v �rž| dv rø|||  }}}n|||  }}}| dk�rBt|d jƒ |d j¡}|d  |¡}|| }|�rR| 	d¡}|�s |d  
¡ }|j|d jdd�}| tj¡}|d  |j¡}| ¡ }nb| dk�r |d  
¡ }|d  
¡ }|j|dd�}| tj¡}|jj |j¡}td|iƒ}| 	d¡}|�r| d¡}n|jdd�}t |
|¡ d S )Nr   rO   rP   r(   ri   Trr   r}   rÄ  )rl   rq   r�   )rl   r�   r�   )Z
fill_valuer¬   rÁ  )Úappendr   r†   r   r  Úsetr
  ÚintersectionÚisinr×  r¡   rº  rƒ   r   Zintprb  rF  Úmulrp   rv   rw   )r‰   rŠ   rÇ  rÈ  rÉ  rÊ  rË  rl   rq   Z	on_kwargsry   rz   ÚotherZother_uniqueZkeep_valuesZ	keep_maskZother_value_countsZrepeatsZleft_countsZright_countsZexpected_countsr%   r%   r&   Útest_merge_combinationsB  s^    







rÒ  c                  C   s  t dtjgt ¡ d�} t dgƒ}t dgdd�}tjtdd�� |  |¡}W d   ƒ n1 s\0    Y  t 	||¡ tjtdd�� | | ¡}W d   ƒ n1 s 0    Y  t 	|| 
d	¡¡ t dgƒ}t d
gdgdd�}|  |¡}t 	||¡ | | ¡}t 	|| 
d	¡¡ d S )NrÈ  r*   r  r   r,   rÌ   zYou are mergingr•   r›  r(   )r   r   r7   r2   Z
Int64Dtyperv   r+  rá  r   rw   rƒ   r¤  r%   r%   r&   Ú!test_merge_ea_int_and_float_numpy‹  s    
((


rÓ  c                 C   s|   t  d¡ tdddgi| d�}tdditddg| d�d�}|j|ddd	d
�}ttddg| d�dtjgdœƒ}t 	||¡ d S )Nr¼  rJ   rK   r*   r(   rd   ro   Trl   r‘   r²   )
r˜   r½  r   r   r   r   r   r7   rv   rw   )rù  rl   rq   ry   rz   r%   r%   r&   Útest_merge_arrow_string_index¢  s    
ÿrÔ  r  Úright_emptyc                 C   s¼   t ddgddgd�}t ddgg d¢d�}| r:|jd d… }|rL|jd d… }t||dgdd�}t ddgg d	¢d�}| rŠ|rŠ|jd d… }n"| rštj|d< n|r¬tj|d
dg< t ||¡ d S )Nr(   r   r.  r/  r^  )r.  rÌ  r7  r¬   rÀ   )r.  r/  rÌ  r7  rÌ  r7  )r   rÂ  r   r   r7   rv   rw   )r  rÕ  rT   rU   ry   rz   r%   r%   r&   Ú$test_merge_empty_frames_column_order®  s    rÖ  c                 C   sö   t dtdd gdd�iƒ}t dtdgdd�iƒ}d|d j› d|d j› d�}tjtt |¡d	��  |j|d| d
� W d   ƒ n1 s†0    Y  d|d j› d|d j› d�}tjtt |¡d	��  |j|d| d
� W d   ƒ n1 sè0    Y  d S )Nri   r(   zdatetime64[ns]r*   ztimedelta64[ns]rì  rí  zG columns for key 'key'. If you wish to proceed you should use pd.concatr•   rÀ   )	r   r   r+   r˜   r™   r›   rï  rð  r   )r‰   rl   rq   rœ   r%   r%   r&   Ú!test_merge_datetime_and_timedeltaÅ  s    ÿ.ÿr×  )r   r   )`r   r   r   rï  Únumpyr   r˜   Zpandas.compatr   Zpandas.core.dtypes.commonr   r   Zpandas.core.dtypes.dtypesr   Zpandasr2   r	   r
   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingrv   Zpandas.core.reshape.concatr   Zpandas.core.reshape.merger   r   r'   r4   r9   r¾  rG   rH   rI   rV   rW   rÙ   rÅ  rl   rq   r  r¶  r·  rT  r¿  rÀ  rÂ  r^  rc  rd  rl  r7   rs  rv  rx  ZTWO_GOT_THREEÚtuplery  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&   Ú<module>   sŠ  4
	



          ]  q

	  

7ýÿø

øþ
(óþ
ÿþýÿþùþ
	þ


üùþ
#
8þþ	þþ	þþ
	
		
B