§
    tŠtjêŸ  ã                   óÐ  — d dl m Z  d dlZd dlZd dl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 d2d„Z G d„ d¦  «        Zd3d„Zd„ Zd„ Zd„ Zd4d„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'd1„ Z(dS )5é    )ÚdatetimeN)
Ú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       úb/var/www/html/CA-Chatbot/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!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-ej                             d.g d/¢¦  «        d0„ ¦   «         Z.ej                             d.g d/¢¦  «        d1„ ¦   «         Z/ej                             d.g d2¢¦  «        d3„ ¦   «         Z0d4„ Z1d5„ Z2d6„ Z3d7„ Z4d8„ Z5d9„ Z6dS ):Ú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.df25   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)ç        ç      ð?ç       @ç      @ç      @)r4   r5   r4   r5   r4   )Úfoo1Úfoo2Úfoo3Úfoo4Úfoo5z1/1/2009é   )Úperiods©ÚAÚBÚCÚD)ÚaÚbÚcÚdÚe©Údtype©ÚindexrA   rD   )ÚMergedAÚMergedDrC   )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_joinP   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©rW   rZ   rY   r%   r[   r]   s        r   Útest_right_outer_joinzTestJoin.test_right_outer_joinW   ó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&   Úouterrc   rY   r%   r[   r]   s        r   Útest_full_outer_joinzTestJoin.test_full_outer_join^   re   r!   c                 ó¦   — t          ||dd¬¦  «        }t          |||dgd¬¦  «         t          ||d¬¦  «        }t          |||ddgd¬¦  «         d S )Nr&   Úinnerrc   rY   r%   r[   r]   s        r   Útest_inner_joinzTestJoin.test_inner_joine   re   r!   c                 óD   — t          ||dd¬¦  «        }d|v sJ ‚d|v sJ ‚d S )Nr&   ©z.fooz.bar)rW   Úsuffixesúkey1.foozkey1.bar©r   ©r,   r-   r2   Újoineds       r   Útest_handle_overlapzTestJoin.test_handle_overlapl   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%   rm   )Úleft_onÚright_onrn   ro   zkey2.barrp   rq   s       r   Ú!test_handle_overlap_arbitrary_keyz*TestJoin.test_handle_overlap_arbitrary_keyr   sO   € ÝØØØØØ%ð
ñ 
ô 
ˆð ˜VÐ#Ð#Ð#Ð#Ø˜VÐ#Ð#Ð#Ð#Ð#Ð#r!   Úinfer_stringFTÚpyarrow)Úmarksc                 óN  — |\  }}|                      |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 )NrC   rV   rN   rA   F)Úcheck_namesrO   rD   Úkey©rE   rE   rF   rF   rG   r1   ©r   r)   r   ©rE   rF   rG   rL   )r   r   r)   r)   r   ©r}   r1   r)   r   é   Úone©rM   ÚcolumnsÚfooÚbarÚtwoÚthreerG   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Ú
ValueError)r,   rT   rx   rR   rS   Úmergedr-   r2   rr   ÚexpectedÚdf_aÚdf_bÚdf_cÚ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Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð
Cð 	õ Œ]�:¨SÐ1Ñ1Ô1ð 	(ð 	(Ø�KŠK˜ 3ˆKÑ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s$   Æ)GÇGÇGÇ5HÈHÈ!H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©rE   rF   r/   r>   rA   rB   rL   úFlen\(left_on\) must equal the number of levels in the index of "right"rŠ   rE   T©ru   Ú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¢   ÚabcrL   r/   zFlen\(right_on\) must equal the number of levels in the index of "left"rŠ   rF   T)rv   Ú
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>   rA   rB   rL   z)len\(right_on\) must equal len\(left_on\)rŠ   rE   rF   )rv   ru   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 )NrE   r)   z.Can only merge Series or DataFrame objects, a z was passedrŠ   )ru   rv   )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 )NrC   rV   Úkey_0©r…   )r¹   rA   rB   rD   rN   rO   )r�   ÚrenameÚpoprŽ   r�   )r,   rT   rR   rS   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 )NrC   rV   rj   rc   r   )r�   ÚreindexÚisnaÚallrŽ   Úassert_index_equalr…   r   )r,   rT   rR   rS   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 )Nr}   )rE   rE   rH   rF   rF   rG   r1   r   r)   rE   rF   rL   rj   rc   rV   F)Úcheck_dtype)r   r�   ÚnotnarŽ   r�   rÄ   rM   ©r,   r-   r2   rr   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 )Nr}   r~   r1   r   r€   rL   rV   ©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 )NrN   rC   rV   ©r�   rŽ   r�   )r,   rT   rR   rS   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 )	NrE   r)   r   rF   ©rM   ÚnamerV   r¢   rL   )r   r   r�   rM   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/   rL   TÚboolr†   Ústringr>   é   r)   Úintr5   ÚfloatrY   )r   r   Úaranger�   Ú_join_by_handrŽ   r�   )r,   Ú	join_typeÚdf1r2   rr   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„   rB   rD   r   Ú_oneÚ_two©ÚlsuffixÚrsuffix)ÚA_oneÚB_oneÚC_oneÚD_oneÚA_twoÚB_twoÚC_twoÚD_twor0   )r   r   rÞ   rK   Úint64Úbool_r�   r…   rß   rŽ   r�   )r,   rá   r2   rr   Úexpected_columnsr—   s         r   Útest_join_index_mixed_overlapz&TestJoin.test_join_index_mixed_overlap8  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!   c                 óv   — t          ¦   «         }|                     t          dgdgdg¬¦  «        d¬¦  «         d S )Nr‚   r   rA   r„   rg   rY   )r   r�   )r,   Úxs     r   Útest_join_empty_bugzTestJoin.test_join_empty_bugX  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   rE   rF   rº   rù   rG   )rù   r)   Úq)r   r   r   r   r+   r   r�   )r,   rE   rG   rH   s       r   Útest_join_unconsolidatedz!TestJoin.test_join_unconsolidated]  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)rE   rE   rE   rF   rF   rF   )r)   r   r‚   r)   r   r‚   ÚfirstÚsecond©Únames)rF   rF   rF   rG   rG   rG   r   é   zvar X)rQ   rM   r…   zvar Yr   )Úlevelrg   rY   r)   )r   r®   r   r   r   r   r+   Ú
sort_indexr�   r   ÚvaluesÚunionrÁ   r   rM   rŽ   r�   )r,   Úindex1Úindex2rá   r2   rr   Úex_indexr—   s           r   Útest_join_multiindexzTestJoin.test_join_multiindexj  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&   rQ   )r/   r‚   )Új_oneÚj_twoÚj_threer„   r%   r&   rj   rc   rý   rþ   F)ru   rv   rZ   ÚsortT)rv   r­   rZ   r  r)   ©Úaxis)r   r   r   r+   r   r   r�   r   Úreset_indexrŽ   r�   Úreindex_likeÚdroprM   Úis_monotonic_increasing)
r,   Ú%lexsorted_two_level_string_multiindexr%   r&   rQ   rM   Úto_joinrr   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º   rE   rF   ÚmeanÚsum)é   r/   r  ©rE   rF   rH   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   rE   rF   ©r…   rK   )r/   r)   rG   Úfloat64Úfloat32r   r>   éd   rñ   r€   Úmdrº   Tr¤   )r   r   r   r   r+   r0  r1  r�   ÚdtypesÚintegersÚastyper   rŽ   r�   )
r,   rE   rF   rr   rG   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   r2  éÈ   r"  éè  éÐ  )rE   rF   rI   rE   rF   rg   rY   rc   rñ   )r)   r)   r)   )r/   r=  rù   )r)   r)   r   )r2  r>  i,  )r?  r@  i¸  rj   )r†   r‡   r†   r‡   r†   r‡   r†   r†   )rƒ   rƒ   rˆ   r‰   rˆ   rˆ   rƒ   r‰   r   r@   ÚTESTrÔ   rX   rb   )r   r'  r�   r   r  r…   rE   r6  rF   rŽ   r�   Úlocr   r   r   r+   r   ÚrepeatrÞ   )r,   rá   r2   Údf3Úidf1Úidf2Úidf3r¾   Údf_partially_mergedr—   r-   r8  rj   rg   rX   rb   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†   rL   r}   T)rW   r  )r‡   r  r†   r†   )r   r‚   r)   r0   )rE   rF   rG   rG   )r}   r1   rL  )r)   r   r   r‚   Fr0   )Úexact)	r   r   r�   rŽ   r�   rÄ   rM   r   r   )r,   rx   rX   rb   rr   r—   s         r   Útest_join_sortzTestJoin.test_join_sort7  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 )NrE   rK  )r)   r   r‚   rE   rL   rF   )r>   r  r!  r   )r)   r‚   r‚   r0   )r)   r   r‚   r‚   r0   r>   r  r!  r¢   )r)   r   r‚   r‚   rE   )r)   r   r   rE   )r   r�   r   ÚnanrŽ   r�   )r,   rá   r2   r¾   r—   rD  Údf4s          r   Ú test_join_mixed_non_unique_indexz)TestJoin.test_join_mixed_non_unique_indexP  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„   rj   Ú_df2)rZ   rè   rJ   r   éÿÿÿÿr)   Úpnum_df2©r…   rM   )r(  Úperiod_ranger   r   r   r   r   r�   r   r   rÞ   rñ   rC  Úreshaper  rM   rŽ   r�   )r,   rM   r-   r2   r¾   r—   s         r   Ú!test_join_non_unique_period_indexz*TestJoin.test_join_non_unique_period_indexc  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  )rE   rF   rG   rH   rI   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_suffixp  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º   rE   rF   rG   rH   rI   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¾   rv  Ú	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!   rg   rY   rj   r   z?Joining multiple DataFrames only supported for joining on indexrŠ   rV   )r   r   r   r   r+   r   r�   rŽ   r�   rM   r’   r“   r•   )r,   r-   rx  rr   rz  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!rZ   )rX   rb   rj   rg   c                 ól  — t          dg d¢ig d¢¬¦  «        }t          dg d¢ig d¢¬¦  «        }|dk    rt          g d	¢g d¢d
œg d¢¬¦  «        }nt          g d¢g d¢d
œg d¢¬¦  «        }|dk    s|r|                     ¦   «         }|                     |g||¬¦  «        }t          j        ||¦  «         d S )NrE   r  )r)   r   r   rL   rF   r  ©r   r   r)   rb   )r‚   r   r)   r¢   )r  r>   r0   rg   ©rZ   r  )r   r  r�   rŽ   r�   ©r,   rZ   r  r-   r2   r—   r¾   s          r   Útest_join_many_sort_uniquez#TestJoin.test_join_many_sort_unique£  sé   € õ ˜˜Y˜Y˜YÐ'¨y¨y¨yÐ9Ñ9Ô9ˆÝ˜˜i˜i˜iÐ(°	°	°	Ð:Ñ:Ô:ˆØ�'Š>ˆ>Ý  y y y°y°y°yÐ!AÐ!AÈÈÈÐSÑSÔSˆHˆHå  y y y°y°y°yÐ!AÐ!AÈÈÈÐSÑSÔSˆHØ�'Š>ˆ>˜Tˆ>à×*Ò*Ñ,Ô,ˆHØ—’˜#˜ C¨d�Ñ3Ô3ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   c                 ón  — t          dg d¢ig d¢¬¦  «        }t          dg d¢ig d¢¬¦  «        }|dk    rt          d	d
gddgdœddg¬¦  «        }n¡|dk    r&t          g d¢t          j        ddgdœg d¢¬¦  «        }nu|dk    r1t          t          j        ddt          j        gg d¢dœg d¢¬¦  «        }n>t          ddt          j        t          j        dgddddt          j        gdœg d¢¬¦  «        }|r|                     ¦   «         }|                     |g||¬¦  «        }t          j        ||¦  «         d S )NrE   r  )r‚   r   r   rL   rF   r  r}  rj   r   r‚   r>   r¢   r   rX   g      @rb   r6   r7   )r0   r>   r>   r  )r   r   r   r)   r5   g      @r8   )r   r   r)   r   r‚   r~  )r   r   rP  r  r�   rŽ   r�   r  s          r   Útest_join_many_sort_nonuniquez&TestJoin.test_join_many_sort_nonunique²  s‹  € õ ˜˜Y˜Y˜YÐ'¨y¨y¨yÐ9Ñ9Ô9ˆÝ˜˜i˜i˜iÐ(°	°	°	Ð:Ñ:Ô:ˆØ�'Š>ˆ>Ý ¨¨1 v°Q¸°FÐ!;Ð!;ÀAÀqÀ6ÐJÑJÔJˆHˆHØ�FŠ]ˆ]Ý Ø�i�i¥r¤v¨s°CÐ&8Ð9Ð9ÀÀÀðñ ô ˆHˆHð �GŠ^ˆ^Ý Ý”v˜s C­¬Ð0°|°|°|ÐDÐDÈLÈLÈLðñ ô ˆHˆHõ !à˜s¥B¤F­B¬F°CÐ8Ø˜s C¨­b¬fÐ5ðð ð &�o�oðñ ô ˆHð ð 	-Ø×*Ò*Ñ,Ô,ˆHØ—’˜#˜ C¨d�Ñ3Ô3ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   )rj   rg   rX   rb   c                 óœ  — t          t          ddd¦  «        t          ddd¦  «        g¦  «        }t          dddgi|¬¦  «        }t          dddgi|¬¦  «        }|                     |g|¬¦  «        }|dk    r't          ddgddgd	œ|d         |d
         g¬¦  «        }nt          ddgddgd	œ|¬¦  «        }t	          j        ||¦  «         d S )Niè  r)   r   rE   rL   rF   rY   rg   r¢   r   )r   r   r   r�   rŽ   r�   )r,   rZ   rM   r-   r2   r¾   r—   s          r   Ú test_join_many_datetime_unsortedz)TestJoin.test_join_many_datetime_unsortedÎ  sï   € õ •x  a¨Ñ+Ô+­X°d¸A¸qÑ-AÔ-AÐBÑCÔCˆÝ˜˜a ˜V�}¨EÐ2Ñ2Ô2ˆÝ˜˜q !˜f˜¨UÐ3Ñ3Ô3ˆØ—’˜#˜ C�Ñ(Ô(ˆØ�'Š>ˆ>å ¨¨1 v°Q¸°FÐ!;Ð!;ÀEÈ!ÄHÈeÐTUÌhÐCWÐXÑXÔXˆHˆHå ¨¨1 v°Q¸°FÐ!;Ð!;À5ÐIÑIÔIˆHÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r!   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   r}   rA   rB   rC   rD   )	r   r   r   r   r+   rB  r�   rŽ   r�   )r,   r-   rá   r2   rD  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   )rA   rA   rB   rB   rº   r   r/   r=  r    rA   rC   r)   r  Ú_2rd  )r0   r   rö   ÚyTr$  rg   )r­   r¥   rZ   z0Passing 'suffixes' which cause duplicate columnsrŠ   )r   r   r   r   r   r+   r5  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é   rL   Úv2c                 ó   — g | ]}d |z  ‘ŒS )r2  rt  )ru  Úis     r   rw  z5TestJoin.test_join_multi_to_multi.<locals>.<listcomp>   s   € Ð!?Ð!?Ð!?¨a #¨¡'Ð!?Ð!?Ð!?r!   r!  rc   r£   rŠ   )r   r¨   r   r   r   r�   r  r   r'  rŽ   r�   r’   r“   r•   )	r,   rà   Ú	leftindexrX   Ú
rightindexrb   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�  rV   r   Útuvr   )r   r(  Ú
date_ranger   r�   r'  Úcopyr   r   rP  rŽ   r�   )r,   rá   r2   r¾   r—   s        r   Ú#test_join_on_tz_aware_datetimeindexz,TestJoin.test_join_on_tz_aware_datetimeindex1  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‰  rE   rº   rö   zM8[ns])r¦  r¨  r)   )r©  r§  r   )rö   r‰  r‹  r   r0   r[  r‰  rV   z2012-08-02 00:00:00r¨  r)   rÛ   z2013-04-06 00:00:00r§  r=  )rö   r‰  r‹  rE   r„   )	r   r(  Úto_datetimer6  r�   r'  r	   rŽ   r�   )r,   ÚdfaÚdfbr¾   r—   s        r   Útest_join_datetime_stringz"TestJoin.test_join_datetime_stringI  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 )NrE   rF   ©Ú
categoriesÚc1rL   Ú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_indexg  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!   )7Ú__name__Ú
__module__Ú__qualname__r’   Úfixturer-   r2   rT   r`   rd   rh   rk   rs   rw   ÚmarkÚparametrizeÚparamÚtdÚ
skip_if_norœ   rª   r¯   r±   r   Úarrayr·   r¿   rÇ   rÌ   rÏ   rÒ   r×   râ   rô   r÷   rû   r	  r  r-  r;  rI  rN  rR  r^  rm  r{  r€  r‚  r„  r†  r�  r˜  r¤  r®  r¹  rt  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ñô ð#(ð #(ñô ð#(ðJ:ð :ð :ð$:ð :ð :ð$=ð =ð =ð$ „[×Ò˜\¨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ð@Fð Fð 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ð< „[×Ò˜UÐ$GÐ$GÐ$GÑHÔHð0ð 0ñ IÔHð0ð „[×Ò˜UÐ$GÐ$GÐ$GÑHÔHð0ð 0ñ IÔHð0ð6 „[×Ò˜UÐ$GÐ$GÐ$GÑHÔHð0ð 0ñ IÔHð0ð*ð *ð *ð+<ð +<ð +<ðZ>ð >ð >ð60ð 0ð 0ð00ð 0ð 0ð<0ð 0ð 0ð 0ð 0r!   r#   rX   Ú_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)rX   rj   zkey z! should not have been in the join)rb   rj   )
rÊ   rÃ   r%  Ú_restrict_to_columnsr…   Ú	get_groupÚ_assert_same_contentsr”   ÚAssertionErrorÚ_assert_all_na)rX   rb   r¾   r½   rZ   rç   rè   rG   Úleft_groupedÚright_groupedÚ	group_keyÚgroupÚl_joinedÚr_joinedÚlgroupÚerrÚrgroups                    r   r\   r\   w  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)ru  rG   r…   Úsuffixs     €€r   rw  z(_restrict_to_columns.<locals>.<listcomp>�  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>¥  s   ø€ ¨1¯9ª9°V¸RÑ+@Ô+@€ r!   rº   )r…   rB  r»   )rÏ  r…   rÚ  Úfounds    `` r   rÇ  rÇ  œ  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 rt  ©Útuple)ru  Úrows     r   ú	<setcomp>z(_assert_same_contents.<locals>.<setcomp>³  s   € Ð*Ð*Ð*˜3�E�#‰JŒJÐ*Ð*Ð*r!   c              3   ó:   •K  — | ]}t          |¦  «        ‰v V — Œd S ©Nrà  )ru  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_chunkrS   ÚNA_SENTINELÚjvaluesÚsvaluesræ  s        @r   rÉ  rÉ  ­  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½   rG   s       r   rË  rË  ¸  sR   € Øð *ð *ˆØ�ˆ=ˆ=ØØ˜!Œ}×!Ò!Ñ#Ô#×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)ð*ð *r!   c                 ó@  — | j                              |j         |¬¦  «        }|                      |¦  «        }|                     |¦  «        }| j                             |j        ¦  «        }|                     ¦   «         D ]
\  }}|||<   Œ|                     |¬¦  «        S )NrY   rº   )rM   r�   rÁ   r…   ÚappendÚitems)	rE   rF   rZ   Ú
join_indexÚa_reÚb_reÚresult_columnsrÅ   r8  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 )NrI   r>   )r)   r   r0   r"  rÿ   ©rQ   rM   rŸ   r  )r   r‚   )rF   rG   rj   rY   )rI   rŸ   )r)   r   r0   r‚   )rE   rF   rH   rG   rL   ©r   r   Úfrom_tuplesr�   rŽ   r�   )rX   rb   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_colsrF   rE   Ú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 )NrE   r)   r‚   r0   ÚcrossrÄ  rÅ  )rZ   rç   rè   r   )r)   r)   r‚   r‚   )r‚   r0   r‚   r0   rÎ   )rü  rý  rX   rb   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 )NrG   r‚   )r)   r   r¢   rÿ   rø  rH   r0   )r   )rF   rY   rb   )rG   rH   )r   r)   rF   rE   rL   rù  )rà   rX   rb   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 )NrA   r°  r)   r   )rý   rþ   r1   rý   rþ   )rA   rA   rB   )r‚   r0   r>   Ú_leftrc  ræ   r‚   r0   )rý   rþ   Ú
value_leftÚvalue_right©r   r   r'  r�   rŽ   r�   )r±  r  rX   rb   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)
)FrX   rX   )Frb   Úempty)Frj   r  )Frg   rX   )Fr  r  )TrX   r  )Trb   rb   )Trj   r  )Trg   rb   )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   ©rA   rB   rñ   rJ   rA   r>   )rA   rC   r   rY   rX   )rA   rB   rC   rb   )rB   rA   rC   r  rB   rC   r/  r  rg   )
r   r'  Úheadr�   r   rP  Úrename_axisr  rŽ   r�   )Ú
left_emptyrZ   ÚexprX   rb   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   rD  r¾   r—   s        r   Ú$test_join_empty_uncomparable_columnsr  P  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, valuesrj   r   rg   rb   ©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€   rE   rF   r  r"  )rE   rF   rG   rH   rY   r  )rZ   r  rá   r2   r—   r¾   s         r   Ú3test_join_multiindex_categorical_output_index_dtyper  c  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!   c                  ó  — t          ddgit          j        dgdd g¬¦  «        ¬¦  «        } t          ddgit          j        dgd dg¬¦  «        ¬¦  «        }|                      |¦  «        }t          dgdgd	œt          j        dgdd g¬¦  «        ¬¦  «        }t	          j        ||¦  «         |                     | ¦  «        }t          dgdgd
œt          j        dgd dg¬¦  «        ¬¦  «        }t	          j        ||¦  «         d S )NrA   r)   )r‚   r‚   r  rÿ   rL   rB   r   r  )rB   rA   rù  )rá   r2   Úresult12Ú
expected12Úresult21Ú
expected21s         r   Ú'test_join_multiindex_with_none_as_labelr#  ‹  s8  € å
Ø	ˆqˆcˆ
ÝÔ$ f X°c¸4°[ÐAÑAÔAðñ ô €Cõ Ø	ˆqˆcˆ
ÝÔ$ f X°d¸C°[ÐAÑAÔAðñ ô €Cð
 �xŠx˜‰}Œ}€HÝØˆc˜˜ÐÐÝÔ$ f X°c¸4°[ÐAÑAÔAðñ ô €Jõ Ô˜( JÑ/Ô/Ð/à�xŠx˜‰}Œ}€HÝØˆc˜˜ÐÐÝÔ$ f X°d¸C°[ÐAÑAÔAðñ ô €Jõ Ô˜( JÑ/Ô/Ð/Ð/Ð/r!   )r   r   )rX   rÄ  rÅ  )rX   ))r   rf  Únumpyr   r’   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsrÁ  Úpandasr(  r   r   r   r   r   r	   r
   r   r   r   Úpandas._testingÚ_testingrŽ   r    r#   r\   rÇ  rÉ  rË  rß   rû  r¾  r¿  r  r  r  r  r  r  r#  rt  r!   r   ú<module>r+     sp  ðØ Ð Ð Ð Ð Ð Ø 	€	€	€	à Ð Ð Ð Ø €€€à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ðð ð ð ðP0ð P0ð P0ð P0ð P0ñ P0ô P0ð P0ðf"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,ð ,ð ,ð& „×ÒØà	�)�)�)ÐØ	�)�)�)ÐØ	���ÐØ	�)�)�)Ðð	ñô ð,ð ,ñô ð,ð>0ð 0ð 0ð 0ð 0r!   