§
    {hþhØ“  ã                   óÊ  — d dl Z d dlZd dlZd dlmZ d dlmc 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 d dlmZ d1d„Z G d„ d¦  «        Zd2d„Zd„ Zd„ Zd„ Zd3d„Zd„ Z ej!         "                    ddddgfdddgfg¦  «        d„ ¦   «         Z#d„ Z$ej!         "                    dddgg d¢fddgg d¢fd d!gg d"¢f ed#¦  «         ed$¦  «        g ed#¦  «         ed$¦  «         ed$¦  «        gfg¦  «        d%„ ¦   «         Z%ej!         "                    d&g d'¢¦  «        d(„ ¦   «         Z&d)„ Z'ej!         "                    d*d+g d,¢fd-g d,¢fd	g d,¢fd.g d/¢fg¦  «        d0„ ¦   «         Z(dS )4é    N)Úusing_string_dtype)
ÚCategoricalÚ	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚbdate_rangeÚconcatÚmergeÚoption_contexté   é2   c           	      ó”  — t          t          | ¦  «        ¦  «        }t          j        t          j        ||| z  ¦  «        ¦  «        }t          |¦  «        |k     r<t          j        t          |¦  «        |d |t          |¦  «        z
  …         z   ¦  «        }t          j                             d¦  «                             |¦  «         |S )Né   )	ÚlistÚrangeÚnpÚasarrayÚtileÚlenÚrandomÚdefault_rngÚshuffle)ÚngroupsÚnÚunique_groupsÚarrs       ú[/var/www/histauto/venv/lib/python3.11/site-packages/pandas/tests/reshape/merge/test_join.pyÚget_test_datar       s™   € Ý�˜w™œÑ(Ô(€MÝ
Œ*•R”W˜]¨A°©LÑ9Ô9Ñ
:Ô
:€Cå
ˆ3�x„x�!‚|€|ÝŒj�˜c™œ ]°>°Q½¸S¹¼±\°>Ô%BÑBÑCÔCˆå„I×Ò˜!ÑÔ×$Ò$ SÑ)Ô)Ð)Ø€Jó    c            
       ó  — e Zd Zej        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zej                             d
d ej        d ej        d¦  «        ¬¦  «        g¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zej                             dddd ej        ddg¦  «        g¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd „ Z d!„ Z!ej         "                     e#¦   «         d"¬#¦  «        d$„ ¦   «         Z$d%„ Z%d&„ Z&d'„ Z'd(„ Z(d)„ Z)d*„ Z*ej                             d
d ej        d ej        d¦  «        ¬¦  «        g¦  «        d+„ ¦   «         Z+d,„ Z,d-„ Z-d.„ Z.d/„ Z/d0„ Z0d1„ Z1d2„ Z2d3„ Z3d4„ Z4d5„ Z5dS )6ÚTestJoinc                 óB  — t          t          ¦   «         t          ¦   «         t          j                             d¦  «                             d¦  «        t          j                             d¦  «                             d¦  «        dœ¦  «        }||d         dk             }|S )Nr   r   )Úkey1Úkey2Údata1Údata2r&   é   ©r   r    r   r   r   Ústandard_normal)ÚselfÚdfs     r   r-   zTestJoin.df'   s„   € åå%™œÝ%™œÝœ×.Ò.¨qÑ1Ô1×AÒAÀ"ÑEÔEÝœ×.Ò.¨qÑ1Ô1×AÒAÀ"ÑEÔEð	ð ñ
ô 
ˆð ��6”
˜Q’ÔˆØˆ	r!   c                 óÂ   — t          t          d¬¦  «        t          dd¬¦  «        t          j                             d¦  «                             d¦  «        dœ¦  «        S )Né
   )r   é   )r   r   r   )r%   r&   Úvaluer*   )r,   s    r   Údf2zTestJoin.df26   s]   € åå%¨Ð+Ñ+Ô+Ý%¨a°2Ð6Ñ6Ô6Ýœ×.Ò.¨qÑ1Ô1×AÒAÀ"ÑEÔEðð ñ
ô 
ð 	
r!   c                 óÜ   — g d¢g d¢g d¢t          dd¬¦  «        dœ}t          |t          g d¢t          ¬	¦  «        ¬
¦  «        }t          |d         |d         dœ|d         ¬
¦  «        }||fS )N)ç        ç      ð?g       @g      @g      @)r4   r5   r4   r5   r4   )Úfoo1Úfoo2Úfoo3Úfoo4Úfoo5z1/1/2009é   )Úperiods©ÚAÚBÚCÚD)ÚaÚbÚcÚdÚe©Údtype©Úindexr>   rA   )ÚMergedAÚMergedDr@   )r
   r   r   Úobject)r,   ÚdataÚtargetÚsources       r   Útarget_sourcezTestJoin.target_source@   sž   € ð +Ð*Ð*Ø*Ð*Ð*Ø9Ð9Ð9Ý˜Z°Ð3Ñ3Ô3ð	
ð 
ˆõ ˜4¥uÐ-FÐ-FÐ-FÍfÐ'UÑ'UÔ'UÐVÑVÔVˆõ Ø˜Sœ	¨d°3¬iÐ8Ð8ÀÀSÄ	ð
ñ 
ô 
ˆð �vˆ~Ðr!   c                 ó    — t          ||d¬¦  «        }t          |||dgd¬¦  «         t          ||¦  «        }t          |||ddgd¬¦  «         d S )Nr&   ©ÚonÚleft©Úhowr%   ©r   Ú_check_join©r,   r-   r2   Újoined_key2Újoined_boths        r   Útest_left_outer_joinzTestJoin.test_left_outer_joinQ   sb   € Ý˜B ¨Ð/Ñ/Ô/ˆÝ�B˜˜[¨6¨(¸Ð?Ñ?Ô?Ð?å˜B ‘n”nˆÝ�B˜˜[¨6°6Ð*:ÀÐGÑGÔGÐGÐGÐGr!   c                 ó¦   — t          ||dd¬¦  «        }t          |||dgd¬¦  «         t          ||d¬¦  «        }t          |||ddgd¬¦  «         d S )Nr&   Úright©rT   rW   rV   r%   rX   rZ   s        r   Útest_right_outer_joinzTestJoin.test_right_outer_joinX   ók   € Ý˜B ¨°GÐ<Ñ<Ô<ˆÝ�B˜˜[¨6¨(¸Ð@Ñ@Ô@Ð@å˜B ¨Ð1Ñ1Ô1ˆÝ�B˜˜[¨6°6Ð*:ÀÐHÑHÔHÐHÐHÐHr!   c                 ó¦   — t          ||dd¬¦  «        }t          |||dgd¬¦  «         t          ||d¬¦  «        }t          |||ddgd¬¦  «         d S )Nr&   Úouterr`   rV   r%   rX   rZ   s        r   Útest_full_outer_joinzTestJoin.test_full_outer_join_   rb   r!   c                 ó¦   — t          ||dd¬¦  «        }t          |||dgd¬¦  «         t          ||d¬¦  «        }t          |||ddgd¬¦  «         d S )Nr&   Úinnerr`   rV   r%   rX   rZ   s        r   Útest_inner_joinzTestJoin.test_inner_joinf   rb   r!   c                 óD   — t          ||dd¬¦  «        }d|v sJ ‚d|v sJ ‚d S )Nr&   ©z.fooz.bar)rT   Úsuffixesúkey1.foozkey1.bar©r   ©r,   r-   r2   Újoineds       r   Útest_handle_overlapzTestJoin.test_handle_overlapm   sA   € Ý�r˜3 6Ð4DÐEÑEÔEˆà˜VÐ#Ð#Ð#Ð#Ø˜VÐ#Ð#Ð#Ð#Ð#Ð#r!   c                 óF   — t          ||ddd¬¦  «        }d|v sJ ‚d|v sJ ‚d S )Nr&   r%   rj   )Úleft_onÚright_onrk   rl   zkey2.barrm   rn   s       r   Ú!test_handle_overlap_arbitrary_keyz*TestJoin.test_handle_overlap_arbitrary_keys   sO   € ÝØØØØØ%ð
ñ 
ô 
ˆð ˜VÐ#Ð#Ð#Ð#Ø˜VÐ#Ð#Ð#Ð#Ð#Ð#r!   Úinfer_stringFTÚpyarrow)Úmarksc                 óv  — |\  }}|                      |d¬¦  «        }t          j        |d         |d         d¬¦  «         t          j        |d         |d         d¬¦  «         t          d	g d
¢i¦  «        }t          dg d¢ig d¢¬¦  «        }|                      |d	¬¦  «        }t          g d
¢g d¢dœ¦  «        }	t          j        ||	¦  «         t          dgdgdggg d¢dg¬¦  «        }
t          dgdggddgdg¬¦  «        }t          dgdggddgdg¬¦  «        }|
                      |d¬¦  «        }|                      |d¬¦  «        }t          j        |d         d         ¦  «        sJ ‚t          j        |d         d         ¦  «        sJ ‚t          j        t          d¬¦  «        5  |                      |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   | 
                    ¦   «         }d}t          j        t          |¬¦  «        5  |                      |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr@   rS   rK   r>   F)Úcheck_namesrL   rA   Úkey©rB   rB   rC   rC   rD   r1   ©r   r)   r   ©rB   rC   rD   rI   )r   r   r)   r)   r   ©rz   r1   r)   r   é   Úone©rJ   ÚcolumnsÚfooÚbarÚtwoÚthreerD   z^'E'$©ÚmatchÚEzvYou are trying to merge on float64 and object|str columns for key 'A'. If you wish to proceed you should use pd.concat)ÚjoinÚtmÚassert_series_equalr   Úassert_frame_equalr   ÚisnanÚpytestÚraisesÚKeyErrorÚcopyÚ
ValueError)r,   rQ   ru   rO   rP   Úmergedr-   r2   ro   ÚexpectedÚdf_aÚdf_bÚdf_cÚsource_copyÚmsgs                  r   Útest_join_onzTestJoin.test_join_on~   sî  € ð '‰ˆ�à—’˜V¨�Ñ,Ô,ˆÝ
Ô˜v iÔ0°&¸´+È5ÐQÑQÔQÐQÝ
Ô˜v iÔ0°&¸´+È5ÐQÑQÔQÐQõ ˜Ð8Ð8Ð8Ð9Ñ:Ô:ˆÝ˜ ) ) )Ð,°O°O°OÐDÑDÔDˆØ—’˜ �Ñ'Ô'ˆÝØ-Ð-Ð-¸¸¸ÐHÐHñ
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/õ ˜1˜# ˜s Q C˜°°°È%ÈÐQÑQÔQˆÝ˜5˜' E 7Ð+°A°q°6ÀEÀ7ÐKÑKÔKˆÝ˜1˜# ˜s˜¨A¨q¨6¸G¸9ÐEÑEÔEˆØ—’˜4 E�Ñ*Ô*ˆØ—’˜T e�Ñ,Ô,ˆÝŒx˜˜uœ cÔ*Ñ+Ô+Ð+Ð+Ð+ÝŒx˜˜wœ¨Ô,Ñ-Ô-Ð-Ð-Ð-õ Œ]�8¨7Ð3Ñ3Ô3ð 	(ð 	(Ø�KŠK˜ 3ˆKÑ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð —k’k‘m”mˆðCð 	õ Œ]�:¨SÐ1Ñ1Ô1ð 	-ð 	-Ø�KŠK˜¨ˆKÑ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s$   Æ)GÇGÇGÈ	H.È.H2È5H2c                 óº  — t          t          j                             d¦  «                             ddgd¬¦  «        t          j                             d¦  «                             d¦  «        dœ¦  «        }t          t          j                             d¦  «                             ddgd¬¦  «        t          j                             d¦  «                             d¦  «        dœt          j        t          d¦  «        d	d
gg¦  «        ¬¦  «        }d}t          j
        t          |¬¦  «        5  t          ||dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ÚmÚfr   ©Úsize©rB   rC   r/   r;   r>   r?   rI   úFlen\(left_on\) must equal the number of levels in the index of "right"r‡   rB   T©rr   Úright_index©r   r   r   r   Úchoicer+   r   Úfrom_productr   r�   r�   r“   r   ©r,   r-   r2   rš   s       r   Ú-test_join_on_fails_with_different_right_indexz6TestJoin.test_join_on_fails_with_different_right_index§   sˆ  € Ýå”Y×*Ò*¨1Ñ-Ô-×4Ò4°c¸3°ZÀaÐ4ÑHÔHÝ”Y×*Ò*¨1Ñ-Ô-×=Ò=¸aÑ@Ô@ðð ñ
ô 
ˆõ å”Y×*Ò*¨1Ñ-Ô-×4Ò4°c¸3°ZÀbÐ4ÑIÔIÝ”Y×*Ò*¨1Ñ-Ô-×=Ò=¸bÑAÔAðð õ Ô)­5°©8¬8°c¸3°ZÐ*@ÑAÔAð
ñ 
ô 
ˆð XˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	:ð 	:Ý�"�c 3°DÐ9Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s   Ä/EÅEÅEc           	      óÐ  — t          t          j                             d¦  «                             ddgd¬¦  «        t          j                             d¦  «                             d¦  «        dœt          j        t          d¦  «        t          d¦  «        g¦  «        ¬¦  «        }t          t          j                             d¦  «                             ddgd	¬¦  «        t          j                             d¦  «                             d	¦  «        dœ¦  «        }d
}t          j        t          |¬¦  «        5  t          ||dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r�   rž   r   rŸ   r¡   ÚabcrI   r/   zFlen\(right_on\) must equal the number of levels in the index of "left"r‡   rC   T)rs   Ú
left_index)r   r   r   r   r¦   r+   r   Úfrom_arraysr   r   r�   r�   r“   r   r¨   s       r   Ú,test_join_on_fails_with_different_left_indexz5TestJoin.test_join_on_fails_with_different_left_index¹   sŠ  € Ýå”Y×*Ò*¨1Ñ-Ô-×4Ò4°c¸3°ZÀaÐ4ÑHÔHÝ”Y×*Ò*¨1Ñ-Ô-×=Ò=¸aÑ@Ô@ðð õ Ô(­%°©(¬(µD¸±K´KÐ)@ÑAÔAð
ñ 
ô 
ˆõ å”Y×*Ò*¨1Ñ-Ô-×4Ò4°c¸3°ZÀbÐ4ÑIÔIÝ”Y×*Ò*¨1Ñ-Ô-×=Ò=¸bÑAÔAðð ñ
ô 
ˆð XˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	:ð 	:Ý�"�c C°DÐ9Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s   Ä:EÅEÅ"Ec                 ó¾  — t          t          j                             d¦  «                             ddgd¬¦  «        t          j                             d¦  «                             d¦  «        dœ¦  «        }t          t          j                             d¦  «                             ddgd¬¦  «        t          j                             d¦  «                             d¦  «        dœt          j        t          d¦  «        d	d
gg¦  «        ¬¦  «        }d}t          j
        t          |¬¦  «        5  t          ||dddg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r�   rž   r   rŸ   r¡   r/   r;   r>   r?   rI   z)len\(right_on\) must equal len\(left_on\)r‡   rB   rC   )rs   rr   r¥   r¨   s       r   Ú/test_join_on_fails_with_different_column_countsz8TestJoin.test_join_on_fails_with_different_column_countsË   s‹  € Ýå”Y×*Ò*¨1Ñ-Ô-×4Ò4°c¸3°ZÀaÐ4ÑHÔHÝ”Y×*Ò*¨1Ñ-Ô-×=Ò=¸aÑ@Ô@ðð ñ
ô 
ˆõ å”Y×*Ò*¨1Ñ-Ô-×4Ò4°c¸3°ZÀbÐ4ÑIÔIÝ”Y×*Ò*¨1Ñ-Ô-×=Ò=¸bÑAÔAðð õ Ô)­5°©8¬8°c¸3°ZÐ*@ÑAÔAð
ñ 
ô 
ˆð ;ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	=ð 	=Ý�"�c C°#°s°Ð<Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   Ä/EÅEÅEÚ
wrong_typer   ÚstrNr   r)   c                 ól  — t          dddgi¦  «        }dt          |¦  «        › d�}t          j        t          |¬¦  «        5  t          ||dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          ||dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrB   r)   z.Can only merge Series or DataFrame objects, a z was passedr‡   )rr   rs   )r   Útyper�   r�   Ú	TypeErrorr   )r,   r±   r-   rš   s       r   Ú)test_join_on_fails_with_wrong_object_typez2TestJoin.test_join_on_fails_with_wrong_object_typeÝ   sP  € õ ˜˜a ˜V�}Ñ%Ô%ˆð/Ý�jÑ!Ô!ð/ð /ð /ð 	õ Œ]�9¨CÐ0Ñ0Ô0ð 	=ð 	=Ý�*˜b¨#¸Ð<Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=åŒ]�9¨CÐ0Ñ0Ô0ð 	=ð 	=Ý�"�j¨#¸Ð<Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s$   ÁA"Á"A&Á)A&ÂB)Â)B-Â0B-c                 ó  — |\  }}|                      |d¬¦  «        }|                     ddi¬¦  «        }|g d¢         }|                     d¦  «        }|                      ||¬¦  «        }t          j        ||¦  «         d S )Nr@   rS   Úkey_0©r‚   )r¸   r>   r?   rA   rK   rL   )rŠ   ÚrenameÚpopr‹   r�   )r,   rQ   rO   rP   r•   Újoin_colÚresults          r   Útest_join_on_pass_vectorz!TestJoin.test_join_on_pass_vectorî   s…   € Ø&‰ˆ�Ø—;’;˜v¨#�;Ñ.Ô.ˆØ—?’?¨C°¨>�?Ñ:Ô:ˆØÐJÐJÐJÔKˆà—:’:˜c‘?”?ˆØ—’˜V¨�Ñ1Ô1ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c                 ó”  — |\  }}|                      |                     g ¦  «        d¬¦  «        }|D ]6}||v sJ ‚||                              ¦   «                              ¦   «         sJ ‚Œ7|                      |                     g ¦  «        dd¬¦  «        }t	          j        |j        |j        ¦  «         t          |¦  «        dk    sJ ‚d S )Nr@   rS   rg   r`   r   )rŠ   ÚreindexÚisnaÚallr‹   Úassert_index_equalr‚   r   )r,   rQ   rO   rP   r”   ÚcolÚmerged2s          r   Útest_join_with_len0zTestJoin.test_join_with_len0ø   sÊ   € à&‰ˆ�Ø—’˜VŸ^š^¨BÑ/Ô/°C�Ñ8Ô8ˆØð 	,ð 	,ˆCØ˜&�=�=�=�=Ø˜#”;×#Ò#Ñ%Ô%×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+à—+’+˜fŸnšn¨RÑ0Ô0°S¸g�+ÑFÔFˆÝ
Ô˜gœo¨v¬~Ñ>Ô>Ð>Ý�7‰|Œ|˜qÒ Ð Ð Ð Ð Ð r!   c                 ó¾  — t          dg d¢i¦  «        }t          dddgiddg¬¦  «        }|                     |dd	¬
¦  «        }|                     |d¬¦  «        }||d                              ¦   «                  }t          j        |d         |d         ¦  «         t          j        |d         |d         d¬¦  «         t          j        |j        |j        ¦  «         d S )Nrz   )rB   rB   rE   rC   rC   rD   r1   r   r)   rB   rC   rI   rg   r`   rS   F)Úcheck_dtype)r   rŠ   Únotnar‹   rŒ   rÃ   rJ   ©r,   r-   r2   ro   r•   s        r   Útest_join_on_innerzTestJoin.test_join_on_inner  sÚ   € Ý˜Ð=Ð=Ð=Ð>Ñ?Ô?ˆÝ˜ 1 a &Ð)°#°s°Ð<Ñ<Ô<ˆà—’˜ ¨G�Ñ4Ô4ˆà—7’7˜3 5�7Ñ)Ô)ˆØ˜H WÔ-×3Ò3Ñ5Ô5Ô6ˆÝ
Ô˜v eœ}¨h°u¬oÑ>Ô>Ð>Ý
Ô˜v gœ°¸Ô0AÈuÐUÑUÔUÐUÝ
Ô˜fœl¨H¬NÑ;Ô;Ð;Ð;Ð;r!   c                 óâ   — t          dg d¢i¦  «        }t          dg d¢ig d¢¬¦  «        }|                     |dg¬¦  «        }|                     |d¬¦  «        }t          j        ||¦  «         d S )Nrz   r{   r1   r|   r}   rI   rS   ©r   rŠ   r‹   r�   rÊ   s        r   Útest_join_on_singlekey_listz$TestJoin.test_join_on_singlekey_list  s�   € Ý˜Ð8Ð8Ð8Ð9Ñ:Ô:ˆÝ˜ ) ) )Ð,°O°O°OÐDÑDÔDˆð —’˜ % �Ñ)Ô)ˆØ—7’7˜3 5�7Ñ)Ô)ˆå
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c                 ó°   — |\  }}|                      |d         d¬¦  «        }|                      |dg         d¬¦  «        }t          j        ||¦  «         d S )NrK   r@   rS   ©rŠ   r‹   r�   )r,   rQ   rO   rP   r½   r•   s         r   Útest_join_on_serieszTestJoin.test_join_on_series  sZ   € Ø&‰ˆ�Ø—’˜V IÔ.°3�Ñ7Ô7ˆØ—;’;˜v y kÔ2°s�;Ñ;Ô;ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c                 óæ   — t          dddgi¦  «        }t          dgdgd¬¦  «        }|                     |d¬¦  «        }t          ddgddgdœ|j        ¬¦  «        }t	          j        ||¦  «         d S )	NrB   r)   r   rC   ©rJ   ÚnamerS   r¡   rI   )r   r   rŠ   rJ   r‹   r�   )r,   r-   Údsr½   r•   s        r   Útest_join_on_series_bugletz#TestJoin.test_join_on_series_buglet   s�   € å˜˜a ˜V�}Ñ%Ô%ˆÝ�Q�C ˜s¨Ð-Ñ-Ô-ˆØ—’˜ �Ñ$Ô$ˆÝ A q 6°°A°Ð7Ð7¸r¼xÐHÑHÔHˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c                 ó°  — t          t          j        d¦  «        ¬¦  «        }d|d<   d|d<   t          t          j        dd¦  «        ¬¦  «        }d	|d
<   d|d<   |                     ||¬¦  «        }t	          |||¬¦  «        }t          j        ||¦  «         |                     ||¬¦  «        }t	          |||¬¦  «        }t          j        ||¦  «         d S )Nr/   rI   TÚboolrƒ   Ústringr;   é   r)   Úintr5   ÚfloatrV   )r   r   ÚarangerŠ   Ú_join_by_handr‹   r�   )r,   Ú	join_typeÚdf1r2   ro   r•   s         r   Útest_join_index_mixedzTestJoin.test_join_index_mixed(  sØ   € å�bœi¨™mœmÐ,Ñ,Ô,ˆØˆˆF‰ØˆˆH‰å�bœi¨¨2Ñ.Ô.Ð/Ñ/Ô/ˆØˆˆE‰
ØˆˆG‰à—’˜# 9�Ñ-Ô-ˆÝ   c¨yÐ9Ñ9Ô9ˆÝ
Ô˜f hÑ/Ô/Ð/à—’˜# 9�Ñ-Ô-ˆÝ   c¨yÐ9Ñ9Ô9ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c                 óè  — t          dddddœt          j        d¦  «        g d¢¬¦  «        }|d         j        t          j        k    sJ ‚|d	         j        t          j        k    sJ ‚t          dddddœt          j        d
dd¦  «        g d¢¬¦  «        }|                     |dd¬¦  «        }g d¢}|d d…         |_        |dd …         |_        t          ||¦  «        }t          j
        ||¦  «         d S )Nr5   r   rƒ   Tr=   r/   r�   r?   rA   r   Ú_oneÚ_two©ÚlsuffixÚrsuffix)ÚA_oneÚB_oneÚC_oneÚD_oneÚA_twoÚB_twoÚC_twoÚD_twor0   )r   r   rÝ   rH   Úint64Úbool_rŠ   r‚   rÞ   r‹   r�   )r,   rà   r2   ro   Úexpected_columnsr•   s         r   Útest_join_index_mixed_overlapz&TestJoin.test_join_index_mixed_overlap:  s  € ÝØ˜A E°Ð5Ð5Ý”)˜B‘-”-Ø(Ð(Ð(ð
ñ 
ô 
ˆð
 �3ŒxŒ~¥¤Ò)Ð)Ð)Ð)Ø�3ŒxŒ~¥¤Ò)Ð)Ð)Ð)åØ˜A E°Ð5Ð5Ý”)˜A˜r 1Ñ%Ô%Ø(Ð(Ð(ð
ñ 
ô 
ˆð —’˜# v°v�Ñ>Ô>ˆð	
ð 	
ð 	
Ðð ' r¨ rÔ*ˆŒØ& q r rÔ*ˆŒÝ   cÑ*Ô*ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   zTODO(infer_string))Úreasonc                 óv   — t          ¦   «         }|                     t          dgdgdg¬¦  «        d¬¦  «         d S )Nr   r   r>   r�   rd   rV   )r   rŠ   )r,   Úxs     r   Útest_join_empty_bugzTestJoin.test_join_empty_bug[  s>   € õ ‰KŒKˆØ	�Š�y˜!˜ Q C°#°Ð7Ñ7Ô7¸WˆÑEÔEÐEÐEÐEr!   c                 óì  — t          t          j                             d¦  «                             d¦  «        ddg¬¦  «        }t          t          j                             d¦  «                             d¦  «        ¦  «        }||d<   t          t          j                             d¦  «                             d¦  «        d	g¬¦  «        }|                     |¦  «         |                     |¦  «         d S )
Nr   )é   r   rB   rC   r¹   rù   rD   )rù   r)   Úq)r   r   r   r   r+   r   rŠ   )r,   rB   rD   rE   s       r   Útest_join_unconsolidatedz!TestJoin.test_join_unconsolidateda  sË   € åÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=ÈÈSÀzð
ñ 
ô 
ˆõ •2”9×(Ò(¨Ñ+Ô+×;Ò;¸BÑ?Ô?Ñ@Ô@ˆØˆˆ#‰Ý•b”i×+Ò+¨AÑ.Ô.×>Ò>¸wÑGÔGÐRUÐQVÐWÑWÔWˆð 	
�Šˆq‰	Œ	ˆ	Ø	�Šˆq‰	Œ	ˆ	ˆ	ˆ	r!   c                 ó‚  — t          j        g d¢g d¢gddg¬¦  «        }t          j        g d¢g d¢gddg¬¦  «        }t          t          j                             d¦  «                             d¦  «        |d	g¬
¦  «        }t          t          j                             d¦  «                             d¦  «        |dg¬
¦  «        }|                     d¬¦  «        }|                     d¬¦  «        }|                     |d¬¦  «        }t          |j
        ¦  «                             t          |j
        ¦  «        ¦  «        }|                     |¦  «                             |                     |¦  «        ¦  «        }|j        |j        _        t          j        ||¦  «         |j        j        |j        k    sJ ‚|                     d¬¦  «        }|                     d¬¦  «        }|                     |d¬¦  «                             d¬¦  «        }t          |j
        ¦  «                             t          |j
        ¦  «        ¦  «        }|                     |¦  «                             |                     |¦  «        ¦  «        }|j        |j        _        t          j        ||¦  «         |j        j        |j        k    sJ ‚d S )N)rB   rB   rB   rC   rC   rC   )r)   r   r   r)   r   r   ÚfirstÚsecond©Únames)rC   rC   rC   rD   rD   rD   r   é   zvar X)rN   rJ   r‚   zvar Yr   )Úlevelrd   rV   r)   )r   r­   r   r   r   r   r+   Ú
sort_indexrŠ   r   ÚvaluesÚunionrÀ   r   rJ   r‹   r�   )r,   Úindex1Úindex2rà   r2   ro   Úex_indexr•   s           r   Útest_join_multiindexzTestJoin.test_join_multiindexn  s‹  € ÝÔ'Ø+Ð+Ð+Ð-?Ð-?Ð-?Ð@Ø˜HÐ%ð
ñ 
ô 
ˆõ
 Ô'Ø+Ð+Ð+Ð-?Ð-?Ð-?Ð@Ø˜HÐ%ð
ñ 
ô 
ˆõ
 Ý”×&Ò& qÑ)Ô)×9Ò9¸!Ñ<Ô<ØØ�Ið
ñ 
ô 
ˆõ
 Ý”×&Ò& qÑ)Ô)×9Ò9¸!Ñ<Ô<ØØ�Ið
ñ 
ô 
ˆð �nŠn 1ˆnÑ%Ô%ˆØ�nŠn 1ˆnÑ%Ô%ˆà—’˜# 7�Ñ+Ô+ˆÝ˜œÑ'Ô'×-Ò-­e°F´MÑ.BÔ.BÑCÔCˆØ—;’;˜xÑ(Ô(×-Ò-¨c¯kªk¸(Ñ.CÔ.CÑDÔDˆØ%œ|ˆŒÔÝ
Ô˜f hÑ/Ô/Ð/ØŒ|Ô! V¤\Ò1Ð1Ð1Ð1à�nŠn 1ˆnÑ%Ô%ˆØ�nŠn 1ˆnÑ%Ô%ˆà—’˜# 7�Ñ+Ô+×6Ò6¸QÐ6Ñ?Ô?ˆÝ˜œÑ'Ô'×-Ò-­e°F´MÑ.BÔ.BÑCÔCˆØ—;’;˜xÑ(Ô(×-Ò-¨c¯kªk¸(Ñ.CÔ.CÑDÔDˆØ%œ|ˆŒÔå
Ô˜f hÑ/Ô/Ð/ØŒ|Ô! V¤\Ò1Ð1Ð1Ð1Ð1Ð1r!   c                 ó  — g d¢}g d¢}t           j                             d¦  «                             t	          |¦  «        ¦  «        }t          |||dœ¦  «        }|}t          t           j                             d¦  «                             d¦  «        |g d¢¬¦  «        }|                     |dd	gd
¬¦  «        }t          ||                     ¦   «         dd	gddgd
d¬¦  «        }t          ||dd	gdd
d¬¦  «        }	t          j
        ||	                     |¦  «        ¦  «         t          ||dd	gdd
d¬¦  «        }	|                     ddgd¬¦  «        }|j        |_        |j        j        sJ ‚t          j
        ||¦  «         d S )N)
r„   r„   r„   rƒ   rƒ   Úbazr  Úquxr  Úsnap)
r…   r€   r†   r€   r…   r€   r…   r…   r†   r€   r   )r%   r&   rN   )r/   r   )Új_oneÚj_twoÚj_threer�   r%   r&   rg   r`   rý   rþ   F)rr   rs   rW   ÚsortT)rs   r¬   rW   r  r)   ©Úaxis)r   r   r   r+   r   r   rŠ   r   Úreset_indexr‹   r�   Úreindex_likeÚdroprJ   Úis_monotonic_increasing)
r,   Ú%lexsorted_two_level_string_multiindexr%   r&   rN   rJ   Úto_joinro   r•   Ú	expected2s
             r   Útest_join_inner_multiindexz#TestJoin.test_join_inner_multiindex™  sÊ  € ØVÐVÐVˆð
ð 
ð 
ˆõ Œy×$Ò$ QÑ'Ô'×7Ò7½¸D¹	¼	ÑBÔBˆÝ $°¸dÐCÐCÑDÔDˆà5ˆÝÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=ØØ1Ð1Ð1ð
ñ 
ô 
ˆð —’˜7¨°Ð'7¸W�ÑEÔEˆÝØØ×ÒÑ!Ô!Ø˜VÐ$Ø˜xÐ(ØØð
ñ 
ô 
ˆõ ØØØ˜fÐ%ØØØð
ñ 
ô 
ˆ	õ 	Ô˜f i×&<Ò&<¸VÑ&DÔ&DÑEÔEÐEåØØØ˜fÐ%ØØØð
ñ 
ô 
ˆ	ð —=’= '¨8Ð!4¸1�=Ñ=Ô=ˆØœˆŒàŒ|Ô3Ð3Ð3Ð3Ý
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c                 ó„  — t          ddgg d¢¬¦  «        }|                     dg¦  «                             dddgi¦  «        }t          dd	gg d
¢¬¦  «        }|                     dd¬¦  «         t	          j        t          j        j        d¬¦  «        5  t          ||dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r)   r   r   )r0   r;   r  r}   r¹   rB   rC   ÚmeanÚsum)é   r/   r  ©rB   rC   rE   T)Úinplacez-Not allowed to merge between different levelsr‡   ©r¬   r¤   )
r   ÚgroupbyÚaggÚ	set_indexr�   r�   ÚpdÚerrorsÚ
MergeErrorr   )r,   r-   Únew_dfÚother_dfs       r   Ú#test_join_hierarchical_mixed_raisesz,TestJoin.test_join_hierarchical_mixed_raises×  s0  € õ ˜	 9Ð-°°°ÐGÑGÔGˆØ—’˜S˜EÑ"Ô"×&Ò&¨¨f°e¨_Ð'=Ñ>Ô>ˆÝ˜i¨Ð4¸o¸o¸oÐNÑNÔNˆØ×Ò˜3¨ÐÑ-Ô-Ð-åŒ]ÝŒIÔ Ð(Wð
ñ 
ô 
ð 	Gð 	Gõ �&˜(¨tÀÐFÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs   ÂB5Â5B9Â<B9c                 ó’  — t          t          j                             d¦  «                             d¦  «        ddgt          j        ¬¦  «        }t          t          j                             d¦  «                             d¦  «        dgt          j        ¬¦  «        }|                     |¦  «        }|j        d         dk    sJ ‚|j        d         dk    sJ ‚|j        d         d	k    sJ ‚t          j                             d¦  «         	                    d
dd¦  «         
                    d¦  «        }t          j                             d¦  «                             d¦  «         
                    d¦  «        }t          j                             d¦  «                             d¦  «         
                    d	¦  «        }t          |||dœ¦  «        }t          |||dœ¦  «        }t          t          j                             d¦  «                             d¦  «         
                    d	¦  «        dg¬¦  «        }|                     |dd¬¦  «        }|j        d         dk    sJ ‚|j        d         dk    sJ ‚|j        d         d	k    sJ ‚|j        d         d	k    sJ ‚|                     |dd¬¦  «        }	t          j        ||	¦  «         d S )Nr   )r/   r   rB   rC   ©r‚   rH   )r/   r)   rD   Úfloat64Úfloat32r   r;   éd   rð   r}   Úmdr¹   Tr£   )r   r   r   r   r+   r.  r/  rŠ   ÚdtypesÚintegersÚastyper   r‹   r�   )
r,   rB   rC   ro   rD   r-   ÚxpdfÚsÚrsÚxps
             r   Útest_join_float64_float32z"TestJoin.test_join_float64_float32ä  sŽ  € ÝÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=Ø˜#�JÝ”*ð
ñ 
ô 
ˆõ
 ÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=Ø�EÝ”*ð
ñ 
ô 
ˆð
 —’˜‘”ˆØŒ}˜SÔ! YÒ.Ð.Ð.Ð.ØŒ}˜SÔ! YÒ.Ð.Ð.Ð.ØŒ}˜SÔ! YÒ.Ð.Ð.Ð.åŒI×!Ò! !Ñ$Ô$×-Ò-¨a°°CÑ8Ô8×?Ò?ÀÑHÔHˆÝŒI×!Ò! !Ñ$Ô$×+Ò+¨CÑ0Ô0×7Ò7¸	ÑBÔBˆÝŒI×!Ò! !Ñ$Ô$×+Ò+¨CÑ0Ô0×7Ò7¸	ÑBÔBˆÝ˜Q Q¨QÐ/Ð/Ñ0Ô0ˆÝ˜q q¨qÐ1Ð1Ñ2Ô2ˆÝÝŒI×!Ò! !Ñ$Ô$×+Ò+¨AÑ.Ô.×5Ò5°iÑ@Ô@È4È&ð
ñ 
ô 
ˆð �XŠX�a °$ˆXÑ7Ô7ˆØŒy˜Œ~ Ò(Ð(Ð(Ð(ØŒy˜Œ~ Ò*Ð*Ð*Ð*ØŒy˜Œ~ Ò*Ð*Ð*Ð*ØŒy˜Œ )Ò+Ð+Ð+Ð+à�ZŠZ˜ 3°DˆZÑ9Ô9ˆÝ
Ô˜b "Ñ%Ô%Ð%Ð%Ð%r!   c                 óŠ  — t          ddgddgddgdœ¦  «        }t          ddgddgddgdœ¦  «        }t          ddgddgd	d
gdœ¦  «        }|                     ddg¦  «        }|                     ddg¦  «        }|                     ddg¦  «        }|                     ||gd¬¦  «        }t          ||ddgd¬¦  «        }t          ||ddgd¬¦  «        }	|                     ¦   «         }|	|j                 }	|	j                             d¦  «        |	d<   |	j                             d¦  «        |	d<   t          j
        ||	¦  «         t          g d¢g d¢g d¢dœ¦  «        }t          g d¢g d¢g d¢dœ¦  «        }t          g d¢g d¢g d¢dœ¦  «        }|                     ddg¦  «        }|                     ddg¦  «        }|                     ddg¦  «        }|                     ||gd¬¦  «        }t          ||ddgd¬¦  «        }t          ||ddgd¬¦  «        }	|                     ¦   «         }t          j
        ||	j        d d …|j        f         ¦  «         t          g d¢g d¢t          j                             d¦  «                             d¦  «        t          j                             d¦  «                             d¦  «        dœ¦  «        }
t!          t          j        t          j        d¦  «        d¦  «        t          j        t          j        d¦  «        d¦  «        d¬¦  «        }|
                     |d¬¦  «        }|
                     |d¬¦  «        }|
                     |d¬¦  «        }|
                     |d¬¦  «        }t          j
        ||¦  «         t          j
        ||¦  «         t          j
        ||¦  «         d S ) Nr)   r/   é   r}   r   r0  éÈ   r   éè  éÐ  )rB   rC   rF   rB   rC   rd   rV   r`   rð   )r)   r)   r)   )r/   r;  rù   )r)   r)   r   )r0  r<  i,  )r=  r>  i¸  rg   )rƒ   r„   rƒ   r„   rƒ   r„   rƒ   rƒ   )r€   r€   r…   r†   r…   r…   r€   r†   r   r=   ÚTESTrÓ   rU   r_   )r   r%  rŠ   r   r  r‚   rB   r4  rC   r‹   r�   Úlocr   r   r   r+   r   ÚrepeatrÝ   )r,   rà   r2   Údf3Úidf1Úidf2Úidf3r½   Údf_partially_mergedr•   r-   r6  rg   rd   rU   r_   s                   r   Útest_join_many_non_unique_indexz(TestJoin.test_join_many_non_unique_index  sÔ  € Ý˜q !˜f¨A¨q¨6¸¸R¸ÐAÐAÑBÔBˆÝ˜q !˜f¨A¨q¨6¸¸c¸
ÐCÐCÑDÔDˆÝ˜q !˜f¨A¨q¨6¸¸t¸ÐEÐEÑFÔFˆØ�}Š}˜c 3˜ZÑ(Ô(ˆØ�}Š}˜c 3˜ZÑ(Ô(ˆØ�}Š}˜c 3˜ZÑ(Ô(ˆà—’˜D $˜<¨W�Ñ5Ô5ˆå# C¨°#°s°ÀÐIÑIÔIÐÝÐ,¨c°s¸C°jÀgÐNÑNÔNˆà×#Ò#Ñ%Ô%ˆØ˜FœNÔ+ˆØ œ
×)Ò)¨'Ñ2Ô2ˆ�‰Ø œ
×)Ò)¨'Ñ2Ô2ˆ�‰Ý
Ô˜f hÑ/Ô/Ð/å˜i˜i˜i¨i¨i¨i¸l¸l¸lÐKÐKÑLÔLˆÝ˜i˜i˜i¨i¨i¨i¸o¸o¸oÐNÐNÑOÔOˆÝ˜i˜i˜i¨i¨i¨iÐ>PÐ>PÐ>PÐQÐQÑRÔRˆØ�}Š}˜c 3˜ZÑ(Ô(ˆØ�}Š}˜c 3˜ZÑ(Ô(ˆØ�}Š}˜c 3˜ZÑ(Ô(ˆØ—’˜D $˜<¨W�Ñ5Ô5ˆå# C¨°#°s°ÀÐIÑIÔIÐÝÐ,¨c°s¸C°jÀgÐNÑNÔNˆà×#Ò#Ñ%Ô%ˆå
Ô˜f h¤l°1°1°1°f´nÐ3DÔ&EÑFÔFÐFõ àMÐMÐMØQÐQÐQÝ”Y×*Ò*¨1Ñ-Ô-×=Ò=¸aÑ@Ô@Ý”Y×*Ò*¨1Ñ-Ô-×=Ò=¸aÑ@Ô@ð	ð ñ
ô 
ˆõ ÝŒI•b”i ‘l”l AÑ&Ô&­b¬i½¼	À!¹¼ÀaÑ.HÔ.HÈvð
ñ 
ô 
ˆð —’˜˜w�Ñ'Ô'ˆØ—’˜˜w�Ñ'Ô'ˆØ�wŠw�q˜fˆwÑ%Ô%ˆØ—’˜˜w�Ñ'Ô'ˆÝ
Ô˜e UÑ+Ô+Ð+Ý
Ô˜e TÑ*Ô*Ð*Ý
Ô˜e UÑ+Ô+Ð+Ð+Ð+r!   c           	      óâ  — t          d|¦  «        5  t          g d¢g d¢dœ¦  «        }t          dg d¢ig d¢¬¦  «        }|                     |d	d
¬¦  «        }t          g d¢g d¢g d¢dœg d¢¬¦  «        }t          j        ||¦  «         |                     |d	d¬¦  «        }t          j        |j        t          t          d¦  «        ¦  «        d
¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzfuture.infer_string)rƒ   r„   r  rƒ   ©r)   r   r   r0   r~   Úvalue2r}   )r„   r  rƒ   rI   rz   T)rT   r  )r„   r  rƒ   rƒ   )r   r   r)   r0   )rB   rC   rD   rD   )rz   r1   rJ  )r)   r   r   r   Fr0   )Úexact)	r   r   rŠ   r‹   r�   rÃ   rJ   r   r   )r,   ru   rU   r_   ro   r•   s         r   Útest_join_sortzTestJoin.test_join_sort;  s€  € õ Ð1°<Ñ@Ô@ð 	Mð 	MÝØ4Ð4Ð4¸|¸|¸|ÐLÐLñô ˆDõ ˜x¨¨¨Ð9ÐAVÐAVÐAVÐWÑWÔWˆEà—Y’Y˜u¨°T�YÑ:Ô:ˆFÝ à7Ð7Ð7Ø)˜\˜\Ø2Ð2Ð2ðð ð
 #�l�lðñ ô ˆHõ Ô! &¨(Ñ3Ô3Ð3ð —Y’Y˜u¨°U�YÑ;Ô;ˆFÝÔ! &¤,µµe¸A±h´h±´ÀtÐLÑLÔLÐLð'	Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	Mð 	Mð 	Ms   ‘CC$Ã$C(Ã+C(c                 ó  — t          dg d¢ig d¢¬¦  «        }t          dg d¢ig d¢¬¦  «        }|                     |¦  «        }t          g d¢d	t          j        d
dt          j        gdœg d¢¬¦  «        }t	          j        ||¦  «         t          dg d¢ig d¢¬¦  «        }t          dg d¢ig d¢¬¦  «        }|                     |¦  «        }t          g d¢d	d
d
t          j        gdœg d¢¬¦  «        }t	          j        ||¦  «         d S )NrB   rI  )r)   r   r   rB   rI   rC   )r;   r  r  r   )r)   r   r   r0   )r)   r   r   r   r0   r;   r  r  r¡   )r)   r   r   r   rB   )r)   r   r   rB   )r   rŠ   r   Únanr‹   r�   )r,   rà   r2   r½   r•   rB  Údf4s          r   Ú test_join_mixed_non_unique_indexz)TestJoin.test_join_mixed_non_unique_indexT  s;  € å˜˜l˜l˜lÐ+°>°>°>ÐBÑBÔBˆÝ˜˜l˜l˜lÐ+°<°<°<Ð@Ñ@Ô@ˆØ—’˜#‘”ˆÝØ!�/�/¨­B¬F°A°q½"¼&Ð(AÐBÐBØ#Ð#Ð#ð
ñ 
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/å˜˜l˜l˜lÐ+°>°>°>ÐBÑBÔBˆÝ˜˜l˜l˜lÐ+°<°<°<Ð@Ñ@Ô@ˆØ—’˜#‘”ˆÝØ�,�, a¨¨A­r¬vÐ%6Ð7Ð7¸~¸~¸~ð
ñ 
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c           	      ó*  — t          j        ddd¬¦  «        }t          t          t	          t          |¦  «        ¦  «        ¦  «        |dg¬¦  «        }t          ||g¦  «        }|                     |dd¬	¦  «        }t          t          j	        t          j
        dt          j        ¬
¦  «                             d¦  «                             dd¦  «        d¦  «        ddg|                     ¦   «         j        ¬¦  «        }t!          j        ||¦  «         d S )Nz
2016-01-01é   ÚM)r<   ÚfreqÚpnumr�   rg   Ú_df2)rW   rç   rG   r   éÿÿÿÿr)   Úpnum_df2©r‚   rJ   )r&  Úperiod_ranger   r   r   r   r   rŠ   r   r   rÝ   rð   rA  Úreshaper  rJ   r‹   r�   )r,   rJ   r-   r2   r½   r•   s         r   Ú!test_join_non_unique_period_indexz*TestJoin.test_join_non_unique_period_indexg  sñ   € å” °b¸sÐCÑCÔCˆÝ•t�E¥# e¡*¤*Ñ-Ô-Ñ.Ô.°eÀfÀXÐNÑNÔNˆÝ�b˜"�XÑÔˆØ—’˜ '°6�Ñ:Ô:ˆÝÝŒG•B”I˜b­¬Ð1Ñ1Ô1×8Ò8¸Ñ;Ô;×CÒCÀBÈÑJÔJÈAÑNÔNØ˜ZÐ(Ø—.’.Ñ"Ô"Ô(ð
ñ 
ô 
ˆõ
 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c                 óR  — t          t          j                             d¦  «                             d¦  «        g d¢¬¦  «        }|                     ddd¦  «         |                     ddd	¦  «         |                     d¦  «        }t          j        d
¦  «        }|rd}t          j
        t          |¬¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |                     d¬¦  «        }|                     ¦   «         }|                     |d¬¦  «         d S )Nr   )r;  r  )rB   rC   rD   rE   rF   rž   r¹   r   Úidr;   Údtrƒ   z&agg function failed [how->mean,dtype->z-dtype 'str' does not support operation 'mean'r‡   T)Únumeric_onlyÚ_right©rç   )r   r   r   r   r+   Úinsertr#  ÚreÚescaper�   r�   rµ   r  ÚcountrŠ   )r,   Úusing_infer_stringr-   Úgroupedrš   ÚmnÚcns          r   Ú test_mixed_type_join_with_suffixz)TestJoin.test_mixed_type_join_with_suffixt  sR  € åÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=Ø2Ð2Ð2ð
ñ 
ô 
ˆð 	�	Š	�!�T˜1ÑÔÐØ
�	Š	�!�T˜5Ñ!Ô!Ð!à—*’*˜TÑ"Ô"ˆÝŒiÐ@ÑAÔAˆØð 	BØAˆCÝŒ]�9¨CÐ0Ñ0Ô0ð 	ð 	Ø�LŠL‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�\Š\ tˆ\Ñ,Ô,ˆØ�]Š]‰_Œ_ˆð 	�Š�˜HˆÑ%Ô%Ð%Ð%Ð%s   Â:CÃCÃ"Cc                 óÔ  — t          t          j                             d¦  «                             d¦  «        t          d¦  «        ¬¦  «        }|ddg         |ddg         |d	d
g         g}|d                              |dd …         ¦  «        }t          j        ||¦  «         |ddg         d d…         |ddg         dd …         |d	d
g         dd…         g}d„ }|d                              |dd …         d¬¦  «        } ||||j	        ¦  «         |d                              |dd …         ¦  «        } ||||d         j	        ¦  «         |d                              |dd …         d¬¦  «        } ||||j	        dd…         ¦  «         d}t          j        t          |¬¦  «        5  |d                              |dd …         d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )r/   r  Úabcdefr¹   rB   rC   rD   rE   rF   rž   r   r)   éþÿÿÿé	   c                 ó”   ‡— ˆfd„| D ¦   «         }|d                               |dd …         ¦  «        }t          j        ||¦  «         d S )Nc                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS © )rÀ   )Ú.0rö   Ú	exp_indexs     €r   ú
<listcomp>zFTestJoin.test_join_many.<locals>._check_diff_index.<locals>.<listcomp>•  s%   ø€ Ð?Ð?Ð?°!˜Ÿš 9Ñ-Ô-Ð?Ð?Ð?r!   r   r)   rÐ   )Údf_listr½   rt  Ú	reindexedr•   s     `  r   Ú_check_diff_indexz2TestJoin.test_join_many.<locals>._check_diff_index”  sT   ø€ Ø?Ð?Ð?Ð?°wÐ?Ñ?Ô?ˆIØ  ”|×(Ò(¨°1°2°2¬Ñ7Ô7ˆHÝÔ! &¨(Ñ3Ô3Ð3Ð3Ð3r!   rd   rV   rg   r   z?Joining multiple DataFrames only supported for joining on indexr‡   rS   )r   r   r   r   r+   r   rŠ   r‹   r�   rJ   r�   r�   r“   )r,   r-   rv  ro   rx  rš   s         r   Útest_join_manyzTestJoin.test_join_many‰  s6  € ÝÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=ÅtÈHÁ~Ä~ð
ñ 
ô 
ˆð �s˜C�j”> 2 s¨C j¤>°2°s¸C°j´>ÐBˆà˜”—’ ¨¨¨¤Ñ-Ô-ˆÝ
Ô˜f bÑ)Ô)Ð)à�s˜C�j”> # 2 #Ô&¨¨C°¨:¬°q°r°rÔ(:¸BÀÀS¸z¼NÈ1ÈQÈ3Ô<OÐPˆð	4ð 	4ð 	4ð ˜”—’ ¨¨¨¤°'�Ñ:Ô:ˆØÐ˜' 6¨2¬8Ñ4Ô4Ð4à˜”—’ ¨¨¨¤Ñ-Ô-ˆØÐ˜' 6¨7°1¬:Ô+;Ñ<Ô<Ð<à˜”—’ ¨¨¨¤°'�Ñ:Ô:ˆØÐ˜' 6¨2¬8°A°a°C¬=Ñ9Ô9Ð9àOˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	1ð 	1Ø�AŒJ�OŠO˜G A B BœK¨CˆOÑ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   Æ*&GÇG!Ç$G!c                 óh  — t          t          j                             d¦  «                             d¦  «        g d¢¬¦  «        }ddgdz  |d<   |j        d d …d	d
gf         }|j        d d …ddgf         }|j        d d …dgf         }|                     ||g¦  «        }t          j        ||¦  «         d S )Nr   )r   r0   r=   r¹   rƒ   r„   r0   rz   r>   r?   r@   rA   )	r   r   r   r   r+   r@  rŠ   r‹   r�   )r,   r-   rà   r2   rB  r½   s         r   Útest_join_many_mixedzTestJoin.test_join_many_mixed§  sÈ   € ÝÝŒI×!Ò! !Ñ$Ô$×4Ò4°VÑ<Ô<Ø(Ð(Ð(ð
ñ 
ô 
ˆð ˜E�N QÑ&ˆˆ5‰	ØŒf�Q�Q�Q˜˜c˜
�]Ô#ˆØŒf�Q�Q�Q˜˜c˜
�]Ô#ˆØŒf�Q�Q�Q˜˜�ZÔ ˆà—’˜3 ˜*Ñ%Ô%ˆÝ
Ô˜f bÑ)Ô)Ð)Ð)Ð)r!   c           
      ó  — t          t          t          j                             d¦  «                             d¦  «        g d¢¬¦  «        t          t          j                             d¦  «                             ddd¬¦  «                             dd¦  «        d	d
g¬¦  «        gd¬¦  «        }t          ||gd¬¦  «        }|                     |d¬¦  «        }|j	        |_	        t          j        ||¦  «         t          t          j                             d¦  «                             d¦  «        ddg¬¦  «        }t          t          j                             d¦  «                             d¦  «        ddg¬¦  «        }t          t          j                             d¦  «                             d¦  «        ddg¬¦  «        }t          t          j                             d¦  «                             d¦  «        ddg¬¦  «        }|                     |dd¬¦  «                             |ddd¬¦  «        }t          j        t          j        j        d¬¦  «        5  |                     |dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )r/   r0   )r>   r>   r?   r?   r¹   r   r/   r;  rŸ   r>   r@   r)   r  Ú_2rb  )r0   r   rö   ÚyTr"  rd   )r¬   r¤   rW   z0Passing 'suffixes' which cause duplicate columnsr‡   )r   r   r   r   r   r+   r3  r[  rŠ   r‚   r‹   r�   r   r�   r�   r&  r'  r(  )	r,   r-   r•   r½   Úwrö   r~  ÚzÚdtas	            r   Útest_join_dupszTestJoin.test_join_dups´  sÈ  € ååÝ”I×)Ò)¨!Ñ,Ô,×<Ò<¸WÑEÔEØ0Ð0Ð0ðñ ô õ Ý”I×)Ò)¨!Ñ,Ô,×5Ò5°a¸À"Ð5ÑEÔE×MÒMÈbÐRSÑTÔTØ  #˜Jðñ ô ð	ð ð
ñ 
ô 
ˆõ ˜2˜r˜(¨Ð+Ñ+Ô+ˆØ—’˜ T�Ñ*Ô*ˆØ!Ô)ˆŒÝ
Ô˜f hÑ/Ô/Ð/õ ÝŒI×!Ò! !Ñ$Ô$×4Ò4°VÑ<Ô<ÀsÈCÀjð
ñ 
ô 
ˆõ ÝŒI×!Ò! !Ñ$Ô$×4Ò4°VÑ<Ô<ÀsÈCÀjð
ñ 
ô 
ˆõ ÝŒI×!Ò! !Ñ$Ô$×4Ò4°VÑ<Ô<ÀsÈCÀjð
ñ 
ô 
ˆõ ÝŒI×!Ò! !Ñ$Ô$×4Ò4°VÑ<Ô<ÀsÈCÀjð
ñ 
ô 
ˆð �gŠg�a D°dˆgÑ;Ô;×AÒAØ˜$¨D°gð Bñ 
ô 
ˆõ Œ]ÝŒIÔ ØDð
ñ 
ô 
ð 	<ð 	<ð �IŠI�a D°dˆIÑ;Ô;Ð;ð		<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s   ÉI>É>JÊJc                 ó¬  — t          j        t          d¦  «        t          d¦  «        ddggg d¢¬¦  «        }t          dt	          d¦  «        i|¬	¦  «        }t          j        t          d¦  «        t          d¦  «        gddg¬¦  «        }t          d
d„ t	          dd¦  «        D ¦   «         i|¬	¦  «        }|                     |ddg|¬¦  «        }|                     ¦   «                              |                     ¦   «         ddg|¬¦  «                             g d¢¦  «        }t          j
        ||¦  «         d}t          j        t          |¬¦  «        5  |                     |d|¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  |                     |ddg|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr«   Úxyr)   r   )r«   r„  Únumrÿ   Úv1é   rI   Úv2c                 ó   — g | ]}d |z  ‘ŒS )r0  rr  )rs  Úis     r   ru  z5TestJoin.test_join_multi_to_multi.<locals>.<listcomp>ë  s   € Ð!?Ð!?Ð!?¨a #¨¡'Ð!?Ð!?Ð!?r!   r  r`   r¢   r‡   )r   r§   r   r   r   rŠ   r  r   r%  r‹   r�   r�   r�   r“   )	r,   rß   Ú	leftindexrU   Ú
rightindexr_   r½   r•   rš   s	            r   Útest_join_multi_to_multiz!TestJoin.test_join_multi_to_multiá  sU  € åÔ+Ý�%‰[Œ[�$˜t™*œ* q¨! fÐ-Ð5IÐ5IÐ5Ið
ñ 
ô 
ˆ	õ ˜$¥ b¡	¤	Ð*°)Ð<Ñ<Ô<ˆåÔ,Ý�%‰[Œ[�$˜t™*œ*Ð%¨e°T¨]ð
ñ 
ô 
ˆ
õ ˜4Ð!?Ð!?µ5¸¸A±;´;Ð!?Ñ!?Ô!?Ð@È
ÐSÑSÔSˆà—’˜5 e¨T ]¸	�ÑBÔBˆà×ÒÑÔßŠU�5×$Ò$Ñ&Ô&¨E°4¨=¸iˆUÑHÔHßŠYÐ+Ð+Ð+Ñ,Ô,ð 	õ
 	Ô˜h¨Ñ/Ô/Ð/àWˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	5ð 	5Ø�IŠI�e ¨)ˆIÑ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5õ Œ]�:¨SÐ1Ñ1Ô1ð 	>ð 	>Ø�JŠJ�t ¨ °9ˆJÑ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>s$   ÅE;Å;E?ÆE?Æ!G	Ç	GÇGc                 óÜ  — t          t          j        ddd¬¦  «        t          d¦  «        dœ¦  «        }t          t          j        ddd¬¦  «        t          d¦  «        d	œ¦  «        }|                     |                     d
¦  «        d
¬¦  «        }|                     ¦   «         }t          t          j	        gdz  t          d¦  «        z   ¦  «        |d<   t          j        ||¦  «         d S )Nz
2018-01-01r;   zAmerica/Chicago)Ústartr<   ÚtzÚabcde)ÚdateÚvalsz
2018-01-03Útuvwx)r’  Úvals_2r’  rS   r   Útuvr•  )r   r&  Ú
date_ranger   rŠ   r%  r’   r   r   rN  r‹   r�   )r,   rà   r2   r½   r•   s        r   Ú#test_join_on_tz_aware_datetimeindexz,TestJoin.test_join_on_tz_aware_datetimeindexü  sò   € ååœØ&°Ð6Gðñ ô õ ˜W™œð	ð ñ
ô 
ˆõ åœØ&°Ð6Gðñ ô õ ˜w™-œ-ð	ð ñ
ô 
ˆð —’˜#Ÿ-š-¨Ñ/Ô/°F�Ñ;Ô;ˆØ—8’8‘:”:ˆÝ#¥R¤V H¨q¡Lµ4¸±;´;Ñ$>Ñ?Ô?ˆ�ÑÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c                 ór  — t          g d¢g d¢g d¢g d¢gg d¢¬¦  «        }t          j        |d         ¦  «                             d¦  «        |d<   t          g d	¢g d
¢gg d¢ddg¬¦  «        }t          j        |d         ¦  «                             d¦  «        |d<   |                     |                     ddg¦  «        ddg¬¦  «        }t          t          d¦  «        dddgt          d¦  «        dddggddgg d¢¬¦  «        }|d                              d¦  «        |d<   t          j        ||¦  «         d S )N)ú
2012-08-02ÚLr/   )rš  ÚJrÚ   )ú
2013-04-06r›  r;  )r�  rœ  é   )rö   r~  rB   r¹   rö   zM8[ns])rš  rœ  r)   )r�  r›  r   )rö   r~  r€  r   r0   rY  r~  rS   z2012-08-02 00:00:00rœ  r)   rÚ   z2013-04-06 00:00:00r›  r;  )rö   r~  r€  rB   r�   )	r   r&  Úto_datetimer4  rŠ   r%  r	   r‹   r�   )r,   ÚdfaÚdfbr½   r•   s        r   Útest_join_datetime_stringz"TestJoin.test_join_datetime_string  s�  € åà'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'ð	ð $�O�Oð
ñ 
ô 
ˆõ ”> # c¤(Ñ+Ô+×2Ò2°8Ñ<Ô<ˆˆC‰ÝØ#Ð#Ð#Ð%;Ð%;Ð%;Ð<Ø#�O�OØ�a�&ð
ñ 
ô 
ˆõ
 ”> # c¤(Ñ+Ô+×2Ò2°8Ñ<Ô<ˆˆC‰Ø—’˜#Ÿ-š-¨¨c¨
Ñ3Ô3¸¸c¸
�ÑCÔCˆÝåÐ0Ñ1Ô1°3¸¸2Ð>ÝÐ0Ñ1Ô1°3¸¸2Ð>ðð �a�&Ø(Ð(Ð(ð
ñ 
ô 
ˆð ! œ×,Ò,¨XÑ6Ô6ˆ�‰Ý
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c                 ó´  — ddg}t          j        ||¬¦  «        }t          j        t          |¦  «        t          |¦  «        ¬¦  «        }t          d|i|¬¦  «        }t          dt          |¦  «        i|¬¦  «        }|                     |¦  «        }t          ddgddgdœt          j        ddgddg¬¦  «        ¬¦  «        }t          j        ||¦  «         d S )NrB   rC   ©Ú
categoriesÚc1rI   Úc2)r¦  r§  )r&  ÚCategoricalIndexÚreversedr   rŠ   r‹   r�   )r,   ÚixÚid1Úid2rà   r2   r½   r•   s           r   Ú test_join_with_categorical_indexz)TestJoin.test_join_with_categorical_index2  sà   € à�3ˆZˆÝÔ! "°Ð4Ñ4Ô4ˆÝÔ!¥(¨2¡,¤,½8ÀB¹<¼<ÐHÑHÔHˆå˜˜r˜
¨#Ð.Ñ.Ô.ˆÝ˜�x¨™|œ|Ð,°CÐ8Ñ8Ô8ˆØ—’˜#‘”ˆÝØ˜�: c¨3 ZÐ0Ð0ÝÔ% s¨C j¸cÀ3¸ZÐHÑHÔHð
ñ 
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   )6Ú__name__Ú
__module__Ú__qualname__r�   Úfixturer-   r2   rQ   r]   ra   re   rh   rp   rt   ÚmarkÚparametrizeÚparamÚtdÚ
skip_if_nor›   r©   r®   r°   r   Úarrayr¶   r¾   rÆ   rË   rÎ   rÑ   rÖ   rá   ró   Úxfailr   r÷   rû   r	  r  r+  r9  rG  rL  rP  r\  rk  ry  r{  r‚  r�  r˜  r¢  r­  rr  r!   r   r#   r#   %   s§  € € € € € à„^ðð ñ „^ðð „^ð
ð 
ñ „^ð
ð „^ðð ñ „^ðð Hð Hð HðIð Ið IðIð Ið IðIð Ið Ið$ð $ð $ð	$ð 	$ð 	$ð „[×ÒØ˜  ¤¨T¸¸¼ÀyÑ9QÔ9QÐ RÑ RÔ RÐSñô ð$-ð $-ñô ð$-ðL:ð :ð :ð$:ð :ð :ð$=ð =ð =ð$ „[×Ò˜\¨A¨u°d¸H¸B¼HÀaÈÀVÑ<LÔ<LÐ+MÑNÔNð=ð =ñ OÔNð=ð 0ð 0ð 0ð
!ð 
!ð 
!ð
<ð 
<ð 
<ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð$0ð 0ð 0ðB „[×ÒÐ)Ð)Ñ+Ô+Ð4HÐÑIÔIðFð Fñ JÔIðFð
ð ð ð)2ð )2ð )2ðV:0ð :0ð :0ð|Gð Gð Gð&ð &ð &ðB4,ð 4,ð 4,ðl „[×ÒØ˜  ¤¨T¸¸¼ÀyÑ9QÔ9QÐ RÑ RÔ RÐSñô ðMð Mñô ðMð,0ð 0ð 0ð&0ð 0ð 0ð&ð &ð &ð*1ð 1ð 1ð<*ð *ð *ð+<ð +<ð +<ðZ>ð >ð >ð60ð 0ð 0ð00ð 0ð 0ð<0ð 0ð 0ð 0ð 0r!   r#   rU   Ú_xÚ_yc                 ó   — |D ]0}||                               ¦   «                              ¦   «         sJ ‚Œ1|                      |¦  «        }|                     |¦  «        }	|                     |¦  «        D �]	\  }
}t          || j        |¦  «        }t          ||j        |¦  «        }	 |                     |
¦  «        }t          ||¦  «         nE# t          $ r8}|dv rt          d|
› d�¦  «        |‚t          || j        |¦  «         Y d }~nd }~ww xY w	 |	                     |
¦  «        }t          ||¦  «         ŒÅ# t          $ r9}|dv rt          d|
› d�¦  «        |‚t          ||j        |¦  «         Y d }~�Œd }~ww xY wd S )N)rU   rg   zkey z! should not have been in the join)r_   rg   )
rÉ   rÂ   r#  Ú_restrict_to_columnsr‚   Ú	get_groupÚ_assert_same_contentsr‘   ÚAssertionErrorÚ_assert_all_na)rU   r_   r½   r¼   rW   ræ   rç   rD   Úleft_groupedÚright_groupedÚ	group_keyÚgroupÚl_joinedÚr_joinedÚlgroupÚerrÚrgroups                    r   rY   rY   B  sð  € àð 'ð 'ˆØ�aŒy�ŠÑ Ô ×$Ò$Ñ&Ô&Ð&Ð&Ð&Ð&à—<’< Ñ)Ô)€LØ—M’M (Ñ+Ô+€Mà"ŸNšN¨8Ñ4Ô4ð 4ñ 4Ñˆ	�5Ý'¨¨t¬|¸WÑEÔEˆÝ'¨¨u¬}¸gÑFÔFˆð
	4Ø!×+Ò+¨IÑ6Ô6ˆFõ " (¨FÑ3Ô3Ð3Ð3øõ ð 	=ð 	=ð 	=ØÐ'Ð'Ð'Ý$ØG˜9ÐGÐGÐGñô àðõ ˜8 T¤\°8Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<øøøøð	=øøøð
	4Ø"×,Ò,¨YÑ7Ô7ˆFõ " (¨FÑ3Ô3Ð3Ð3øõ ð 	>ð 	>ð 	>ØÐ(Ð(Ð(Ý$ØG˜9ÐGÐGÐGñô àðõ ˜8 U¤]°HÑ=Ô=Ð=Ð=Ð=Ð=Ð=Ñ=øøøøð	>øøøð%4ð 4s0   Â&CÃ
DÃ.D	Ä	DÄD8Ä8
E;Å.E6Å6E;c                 ó¨   ‡‡— ˆˆfd„| j         D ¦   «         }| j        d d …|f         } |                      ˆfd„¬¦  «        } | j        d d …‰f         } | S )Nc                 óL   •— g | ] }|‰v s|                      ‰d ¦  «        ‰v ¯|‘Œ!S )Ú ©Úreplace)rs  rD   r‚   Úsuffixs     €€r   ru  z(_restrict_to_columns.<locals>.<listcomp>h  s@   ø€ ð ð ð Ø A¨ L L°A·I²I¸fÀbÑ4IÔ4IÈWÐ4TÐ4TˆÐ4TÐ4TÐ4Tr!   c                 ó0   •— |                       ‰d¦  «        S )NrÌ  rÍ  )rö   rÏ  s    €r   ú<lambda>z&_restrict_to_columns.<locals>.<lambda>p  s   ø€ ¨1¯9ª9°V¸RÑ+@Ô+@€ r!   r¹   )r‚   r@  rº   )rÄ  r‚   rÏ  Úfounds    `` r   r¼  r¼  g  sƒ   øø€ ðð ð ð ð Ø”=ðñ ô €Eð
 ŒI�a�a�a˜�hÔ€Eð �LŠLÐ!@Ð!@Ð!@Ð!@ˆLÑAÔA€Eð ŒI�a�a�a˜�jÔ!€Eà€Lr!   c                 óR  ‡— d}|                       |¦  «                             ¦   «         j        }|                      |¦  «                             ¦   «         j        }d„ |D ¦   «         Št          ‰¦  «        t          |¦  «        k    sJ ‚t	          ˆfd„|D ¦   «         ¦  «        sJ ‚d S )Niy)íÿc                 ó,   — h | ]}t          |¦  «        ’ŒS rr  ©Útuple)rs  Úrows     r   ú	<setcomp>z(_assert_same_contents.<locals>.<setcomp>~  s   € Ð*Ð*Ð*˜3�E�#‰JŒJÐ*Ð*Ð*r!   c              3   ó:   •K  — | ]}t          |¦  «        ‰v V — Œd S ©NrÕ  )rs  r×  Úrowss     €r   ú	<genexpr>z(_assert_same_contents.<locals>.<genexpr>€  s.   øè è € Ð5Ð5 c�u�S‰zŒz˜TÐ!Ð5Ð5Ð5Ð5Ð5Ð5r!   )ÚfillnaÚdrop_duplicatesr  r   rÂ   )Ú
join_chunkrP   ÚNA_SENTINELÚjvaluesÚsvaluesrÛ  s        @r   r¾  r¾  x  s©   ø€ Ø€Kà×Ò Ñ,Ô,×<Ò<Ñ>Ô>ÔE€GØ�mŠm˜KÑ(Ô(×8Ò8Ñ:Ô:ÔA€Gà*Ð* 'Ð*Ñ*Ô*€DÝˆt‰9Œ9�˜F™œÒ#Ð#Ð#Ð#ÝÐ5Ð5Ð5Ð5¨WÐ5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5r!   c                 óv   — |D ]5}||v rŒ| |                               ¦   «                              ¦   «         sJ ‚Œ6d S rÚ  )rÁ   rÂ   )rß  Úsource_columnsr¼   rD   s       r   rÀ  rÀ  ƒ  sR   € Øð *ð *ˆØ�ˆ=ˆ=ØØ˜!Œ}×!Ò!Ñ#Ô#×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)ð*ð *r!   c                 ó@  — | j                              |j         |¬¦  «        }|                      |¦  «        }|                     |¦  «        }| j                             |j        ¦  «        }|                     ¦   «         D ]
\  }}|||<   Œ|                     |¬¦  «        S )NrV   r¹   )rJ   rŠ   rÀ   r‚   ÚappendÚitems)	rB   rC   rW   Ú
join_indexÚa_reÚb_reÚresult_columnsrÄ   r6  s	            r   rÞ   rÞ   Š  sŽ   € Ø”—’˜aœg¨3�Ñ/Ô/€Jà�9Š9�ZÑ Ô €DØ�9Š9�ZÑ Ô €Dà”Y×%Ò% a¤iÑ0Ô0€Nà—*’*‘,”,ð ð ‰ˆˆQØˆˆS‰	ˆ	Ø�<Š< ˆ<Ñ/Ô/Ð/r!   c                  óT  — t          ddit          j        dgd¬¦  «        ¬¦  «        } t          ddit          j        d	gd
¬¦  «        ¬¦  «        }|                      |d¬¦  «        }t          dgdgdœt          j        dgd¬¦  «        ¬¦  «        }t	          j        ||¦  «         d S )NrF   r;   )r)   r   r0   r   rÿ   ©rN   rJ   rž   r  )r   r   )rC   rD   rg   rV   )rF   rž   )r)   r   r0   r   )rB   rC   rE   rD   rI   ©r   r   Úfrom_tuplesrŠ   r‹   r�   )rU   r_   r½   r•   s       r   Ú.test_join_inner_multiindex_deterministic_orderrð  —  sÎ   € åØ�1ˆXÝÔ$ i [¸ÐHÑHÔHðñ ô €Dõ Ø�1ˆX�ZÔ3°V°HÀJÐOÑOÔOðñ ô €Eð �YŠY�u 'ˆYÑ*Ô*€FÝØˆc˜˜ÐÐÝÔ$ l ^Ð;OÐPÑPÔPðñ ô €Hõ Ô˜& (Ñ+Ô+Ð+Ð+Ð+r!   )Ú	input_colÚoutput_colsrC   rB   Úa_xÚa_yc                 óô   — t          dddgi¦  «        }t          | ddgi¦  «        }|                     |ddd¬¦  «        }t          |d	         g d
¢|d         g d¢i¦  «        }t          j        ||¦  «         d S )NrB   r)   r   r0   Úcrossr¹  rº  )rW   ræ   rç   r   )r)   r)   r   r   )r   r0   r   r0   rÍ   )rñ  rò  rU   r_   r½   r•   s         r   Útest_join_crossr÷  ¨  s‡   € õ
 �c˜A˜q˜6�]Ñ#Ô#€DÝ�y 1 a &Ð)Ñ*Ô*€EØ�YŠY�u '°4ÀˆYÑFÔF€FÝ˜+ aœ.¨,¨,¨,¸ÀA¼ÈÈÈÐUÑVÔV€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r!   c                 óÀ  — t          ddit          j        dgd¬¦  «        ¬¦  «        }t          ddit          j        d	gd
¬¦  «        ¬¦  «        }|                     || ¬¦  «        }| dk    r.t          dgdgdœt          j        dgddg¬¦  «        ¬¦  «        }n-t          dgdgdœt          j        dgddg¬¦  «        ¬¦  «        }t	          j        ||¦  «         d S )NrD   r   )r)   r   r¡   rÿ   rí  rE   r0   )r   )rC   rV   r_   )rD   rE   )r   r)   rC   rB   rI   rî  )rß   rU   r_   r½   r•   s        r   Útest_join_multiindex_one_levelrù  ´  s  € åØ�1ˆX�ZÔ3°V°HÀJÐOÑOÔOðñ ô €Dõ ˜C ˜8­:Ô+AÀ4À&ÐPVÐ+WÑ+WÔ+WÐXÑXÔX€EØ�YŠY�u )ˆYÑ,Ô,€FØ�GÒÐÝØ�#˜Q˜CÐ Ð ÝÔ(¨&¨¸#¸s¸ÐDÑDÔDð
ñ 
ô 
ˆˆõ
 Ø�#˜Q˜CÐ Ð ÝÔ(¨&¨¸#¸s¸ÐDÑDÔDð
ñ 
ô 
ˆõ Ô˜& (Ñ+Ô+Ð+Ð+Ð+r!   zcategories, valuesÚYÚX)rú  rû  rû  r   r)   )r   r)   r)   ç      @ç      ø?)rü  rý  rý  z
2020-12-31z
2019-12-31c                 óÈ  — t          ddgt          | | ¬¦  «        ddgdœ¦  «                             ddg¦  «        }t          g d¢t          || ¬¦  «        g d	¢dœ¦  «                             ddg¦  «        }|                     |d
d¬¦  «        }t          ddgt          | | ¬¦  «        ddgddgdœ¦  «                             ddg¦  «        }t	          j        ||¦  «         d S )Nr>   r¤  r)   r   )rý   rþ   r1   rý   rþ   )r>   r>   r?   )r   r0   r;   Ú_leftra  rå   r   r0   )rý   rþ   Ú
value_leftÚvalue_right©r   r   r%  rŠ   r‹   r�   )r¥  r  rU   r_   r½   r•   s         r   Ú1test_join_multiindex_not_alphabetical_categoricalr  È  s+  € õ à˜3�ZÝ! *¸ÐDÑDÔDØ˜�Vð	
ð 	
ñô ÷ ‚i�˜(Ð#Ñ$Ô$ð 	õ à$�_�_Ý! &°ZÐ@Ñ@Ô@Ø�Y�Yð	
ð 	
ñô ÷ ‚i�˜(Ð#Ñ$Ô$ð 
ð �YŠY�u g°xˆYÑ@Ô@€Fåà˜3�ZÝ! *¸ÐDÑDÔDØ˜a˜&Ø˜q˜6ð		
ð 	
ñô ÷ ‚i�˜(Ð#Ñ$Ô$ð õ Ô˜& (Ñ+Ô+Ð+Ð+Ð+r!   zleft_empty, how, exp)
)FrU   rU   )Fr_   Úempty)Frg   r  )Frd   rU   )Frö  r  )TrU   r  )Tr_   r_   )Trg   r  )Trd   r_   )Trö  r  c                 ó  — t          ddgddgdœd¬¦  «                             d¦  «        }t          dgd	gd
œd¬¦  «                             d¦  «        }| r|                     d¦  «        }n|                     d¦  «        }|                     ||¬¦  «        }|dk    rCt          ddgddgt          j        t          j        gdœ¦  «        }|                     d¦  «        }np|dk    r6t          t          j        gdgd	gdœ¦  «        }|                     d¦  «        }n4|dk    r.t          ddgd¬¦  «        }|dk    r|                     d¦  «        }|dk    r|                     ¦   «         }t          j	        ||¦  «         d S )Nr   r)   r   r0   )r>   r?   rð   rG   r>   r;   )r>   r@   r   rV   rU   )r>   r?   r@   r_   )r?   r>   r@   r  r?   r@   r-  rö  rd   )
r   r%  ÚheadrŠ   r   rN  Úrename_axisr  r‹   r�   )Ú
left_emptyrW   ÚexprU   r_   r½   r•   s          r   Útest_join_emptyr
  ñ  sŽ  € õ  ˜A˜q˜6¨¨A¨Ð/Ð/°wÐ?Ñ?Ô?×IÒIÈ#ÑNÔN€DÝ˜Q˜C q cÐ*Ð*°'Ð:Ñ:Ô:×DÒDÀSÑIÔI€Eàð Ø�yŠy˜‰|Œ|ˆˆà—
’
˜1‘”ˆà�YŠY�u #ˆYÑ&Ô&€Fà
ˆf‚}€}Ý A q 6°°A°½b¼fÅbÄfÐ=MÐNÐNÑOÔOˆØ×%Ò% cÑ*Ô*ˆˆØ	�ŠˆÝ¥B¤F 8°1°#¸Q¸CÐ@Ð@ÑAÔAˆØ×%Ò% cÑ*Ô*ˆˆØ	�ŠˆÝ c¨3 Z°wÐ?Ñ?Ô?ˆØ�'Š>ˆ>Ø×+Ò+¨CÑ0Ô0ˆHØ
ˆg‚~€~Ø×&Ò&Ñ(Ô(ˆåÔ˜& (Ñ+Ô+Ð+Ð+Ð+r!   c                  ón  — t          ¦   «         } t          dg¬¦  «        }t          ddg¬¦  «        }| |z   }t          dg¬¦  «        }t          j        ||¦  «         ||z   }t          g d¢¬¦  «        }t          j        ||¦  «         | |z   }t          ddg¬¦  «        }t          j        ||¦  «         d S )NÚtestr¹   rƒ   ©r„   r  )r  rƒ   r  )r   r‹   r�   )rà   r2   rB  r½   r•   s        r   Ú$test_join_empty_uncomparable_columnsr    sÊ   € å
‰+Œ+€CÝ
˜V˜HÐ
%Ñ
%Ô
%€CÝ
˜U NÐ3Ð
4Ñ
4Ô
4€Cà�3‰Y€FÝ & Ð*Ñ*Ô*€HÝÔ˜& (Ñ+Ô+Ð+à�3‰Y€FÝÐ!@Ð!@Ð!@ÐAÑAÔA€HÝÔ˜& (Ñ+Ô+Ð+à�3‰Y€FÝ .°%Ð!8Ð9Ñ9Ô9€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r!   zhow, valuesrg   r|   rd   r_   ©r   r   r)   c                 ó  — t          t          g d¢¦  «        t          g d¢¦  «        g d¢dœ¦  «                             ddg¦  «        }t          t          g d¢¦  «        t          g d¢¦  «        g d¢dœ¦  «                             ddg¦  «        }t          t          |¦  «        t          |¦  «        ||dœ¦  «                             ddg¦  «        }|                     || ¬¦  «        }t	          j        ||¦  «         d S )	Nr|   r}   rB   rC   r  r   )rB   rC   rD   rE   rV   r  )rW   r  rà   r2   r•   r½   s         r   Ú3test_join_multiindex_categorical_output_index_dtyper  .  s+  € õ å˜Y˜Y˜YÑ'Ô'Ý˜Y˜Y˜YÑ'Ô'Ø��ð	
ð 	
ñô ÷ ‚i��c�
ÑÔð õ å˜Y˜Y˜YÑ'Ô'Ý˜Y˜Y˜YÑ'Ô'Ø��ð	
ð 	
ñô ÷ ‚i��c�
ÑÔð õ å˜VÑ$Ô$Ý˜VÑ$Ô$ØØð		
ð 	
ñô ÷ ‚i��c�
ÑÔð ð �XŠX�c˜sˆXÑ#Ô#€FÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r!   )r   r   )rU   r¹  rº  )rU   ))rd  Únumpyr   r�   Úpandas._configr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsrµ  Úpandasr&  r   r   r   r   r   r	   r
   r   r   r   Úpandas._testingÚ_testingr‹   r    r#   rY   r¼  r¾  rÀ  rÞ   rð  r²  r³  r÷  rù  r  r
  r  r  rr  r!   r   ú<module>r     sa  ðØ 	€	€	€	à Ð Ð Ð Ø €€€à -Ð -Ð -Ð -Ð -Ð -à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ðð ð ð ðZ0ð Z0ð Z0ð Z0ð Z0ñ Z0ô Z0ð Z0ðz"4ð "4ð "4ð "4ðJð ð ð"6ð 6ð 6ð*ð *ð *ð
0ð 
0ð 
0ð 
0ð,ð ,ð ,ð" „×ÒØ  C¨#¨s¨Ð#4°s¸UÀE¸NÐ6KÐ"Lñô ð,ð ,ñô ð,ð,ð ,ð ,ð( „×ÒØà
ˆsˆ�_�_�_Ð%Ø
ˆQˆ���ÐØ
ˆsˆ�_�_�_Ð%àˆY�|Ñ$Ô$ i i°Ñ&=Ô&=Ð>ØˆY�|Ñ$Ô$ i i°Ñ&=Ô&=¸y¸yÈÑ?VÔ?VÐWð	
ð	ñô ð,ð ,ñô ð,ð: „×ÒØðð ð ñô ð,ð ,ñô ð,ð6,ð ,ð ,ð& „×ÒØà	�)�)�)ÐØ	�)�)�)ÐØ	���ÐØ	�)�)�)Ðð	ñô ð,ð ,ñô ð,ð ,ð ,r!   