Ë
    ž…jêŸ  ã                   óš  — 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 d.d„Z G d„ d«      Zd/d„Zd	„ Zd
„ Zd„ Zd0d„Zd„ Zej@                  jC                  ddddgfdddgfg«      d„ «       Z"d„ Z#ej@                  jC                  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@                  jC                  d"g d#¢«      d$„ «       Z%d%„ Z&ej@                  jC                  d&d'g d(¢fd)g d(¢fdg d(¢fd*g d+¢fg«      d,„ «       Z'd-„ Z(y)1é    )ÚdatetimeN)
ÚCategoricalÚ	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚbdate_rangeÚconcatÚmergeÚoption_contextc           	      ó^  — t        t        | «      «      }t        j                  t        j                  ||| z  «      «      }t        |«      |k  r0t        j                  t        |«      |d |t        |«      z
   z   «      }t        j                  j                  d«      j                  |«       |S )Né   )	ÚlistÚrangeÚnpÚasarrayÚtileÚlenÚrandomÚdefault_rngÚshuffle)ÚngroupsÚnÚunique_groupsÚarrs       úe/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/tests/reshape/merge/test_join.pyÚget_test_datar      s€   € Üœ˜w›Ó(€MÜ
�*‰*”R—W‘W˜]¨A°©LÓ9Ó
:€Cä
ˆ3ƒx�!‚|Ü�j‰jœ˜c› ]°>°Q¼¸S»±\Ð%BÑBÓCˆä‡I�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                  j                  d
d ej                   d ej$                  d«      ¬«      g«      d„ «       Zd„ Zd„ Zd„ Zej                  j                  dddd ej0                  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                  j                  d
d ej                   d ej$                  d«      ¬«      g«      d)„ «       Z)d*„ Z*d+„ Z+d,„ Z,d-„ Z-ej                  j                  d.g d/¢«      d0„ «       Z.ej                  j                  d.g d/¢«      d1„ «       Z/ej                  j                  d.g d2¢«      d3„ «       Z0d4„ Z1d5„ Z2d6„ Z3d7„ Z4d8„ Z5d9„ Z6y):ÚTestJoinc                 ó  — t        t        «       t        «       t        j                  j	                  d«      j                  d«      t        j                  j	                  d«      j                  d«      dœ«      }||d   dkD     }|S )Nr   é2   )Úkey1Úkey2Údata1Údata2r%   é   ©r   r   r   r   r   Ústandard_normal)ÚselfÚdfs     r   r,   zTestJoin.df&   sn   € ää%›Ü%›ÜŸ™×.Ñ.¨qÓ1×AÑAÀ"ÓEÜŸ™×.Ñ.¨qÓ1×AÑAÀ"ÓEñ	ó
ˆð ��6‘
˜Q‘ÑˆØˆ	r   c                 ó¢   — t        t        d¬«      t        dd¬«      t        j                  j	                  d«      j                  d«      dœ«      S )Né
   )r   é   )r   r   r   )r$   r%   Úvaluer)   )r+   s    r   Údf2zTestJoin.df25   sC   € ää%¨Ô+Ü%¨a°2Ô6ÜŸ™×.Ñ.¨qÓ1×AÑAÀ"Ó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)ç        ç      ð?ç       @ç      @ç      @)r3   r4   r3   r4   r3   )Úfoo1Úfoo2Úfoo3Úfoo4Úfoo5z1/1/2009é   )Úperiods©ÚAÚBÚCÚD)ÚaÚbÚcÚdÚe©Údtype©Úindexr@   rC   )ÚMergedAÚMergedDrB   )r
   r   r   Úobject)r+   ÚdataÚtargetÚsources       r   Útarget_sourcezTestJoin.target_source?   sb   € ò +Ú*Ú9Ü˜Z°Ô3ñ	
ˆô ˜4¤uÒ-FÌfÔ'UÔVˆô Ø˜S™	¨d°3©iÑ8ÀÀSÁ	ô
ˆð �vˆ~Ðr   c                 ó~   — t        ||d¬«      }t        |||dgd¬«       t        ||«      }t        |||ddgd¬«       y )Nr%   ©ÚonÚleft©Úhowr$   ©r   Ú_check_join©r+   r,   r1   Újoined_key2Újoined_boths        r   Útest_left_outer_joinzTestJoin.test_left_outer_joinP   sB   € Ü˜B ¨Ô/ˆÜ�B˜˜[¨6¨(¸Õ?ä˜B “nˆÜ�B˜˜[¨6°6Ð*:ÀÖGr   c                 ó„   — t        ||dd¬«      }t        |||dgd¬«       t        ||d¬«      }t        |||ddgd¬«       y )Nr%   Úright©rV   rY   rX   r$   rZ   r\   s        r   Útest_right_outer_joinzTestJoin.test_right_outer_joinW   óG   € Ü˜B ¨°GÔ<ˆÜ�B˜˜[¨6¨(¸Õ@ä˜B ¨Ô1ˆÜ�B˜˜[¨6°6Ð*:ÀÖHr   c                 ó„   — t        ||dd¬«      }t        |||dgd¬«       t        ||d¬«      }t        |||ddgd¬«       y )Nr%   Úouterrb   rX   r$   rZ   r\   s        r   Útest_full_outer_joinzTestJoin.test_full_outer_join^   rd   r   c                 ó„   — t        ||dd¬«      }t        |||dgd¬«       t        ||d¬«      }t        |||ddgd¬«       y )Nr%   Úinnerrb   rX   r$   rZ   r\   s        r   Útest_inner_joinzTestJoin.test_inner_joine   rd   r   c                 ó:   — t        ||dd¬«      }d|v sJ ‚d|v sJ ‚y )Nr%   ©z.fooz.bar)rV   Úsuffixesúkey1.foozkey1.bar©r   ©r+   r,   r1   Újoineds       r   Útest_handle_overlapzTestJoin.test_handle_overlapl   s/   € Ü�r˜3 6Ð4DÔEˆà˜VÑ#Ð#Ð#Ø˜VÑ#Ð#Ñ#r   c                 ó<   — t        ||ddd¬«      }d|v sJ ‚d|v sJ ‚y )Nr%   r$   rl   )Úleft_onÚright_onrm   rn   zkey2.barro   rp   s       r   Ú!test_handle_overlap_arbitrary_keyz*TestJoin.test_handle_overlap_arbitrary_keyr   s9   € ÜØØØØØ%ô
ˆð ˜VÑ#Ð#Ð#Ø˜VÑ#Ð#Ñ#r   Úinfer_stringFTÚpyarrow)Úmarksc                 ó¸  — |\  }}|j                  |d¬«      }t        j                  |d   |d   d¬«       t        j                  |d   |d   d¬«       t        d	g d
¢i«      }t        dg d¢ig d¢¬«      }|j                  |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¬«      }|
j                  |d¬«      }|j                  |d¬«      }t        j                  |d   d   «      sJ ‚t        j                  |d   d   «      sJ ‚t        j                  t        d¬«      5  |j                  |d¬«       d d d «       d}t        j                  t        |¬«      5  |j                  |d¬«       d d d «       y # 1 sw Y   ŒCxY w# 1 sw Y   y xY w)NrB   rU   rM   r@   F)Úcheck_namesrN   rC   Úkey©rD   rD   rE   rE   rF   r0   ©r   r(   r   ©rD   rE   rF   rK   )r   r   r(   r(   r   ©r|   r0   r(   r   é   Úone©rL   ÚcolumnsÚfooÚbarÚtwoÚthreerF   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+   rS   rw   rQ   rR   Úmergedr,   r1   rq   ÚexpectedÚdf_aÚdf_bÚdf_cÚmsgs                 r   Útest_join_onzTestJoin.test_join_on}   sÙ  € ð '‰ˆ�à—‘˜V¨�Ó,ˆÜ
×Ñ˜v iÑ0°&¸±+È5ÕQÜ
×Ñ˜v iÑ0°&¸±+È5ÕQô ˜Ò8Ð9Ó:ˆÜ˜¢)Ð,²OÔDˆØ—‘˜ �Ó'ˆÜÚ-ºÑHó
ˆô 	×Ñ˜f hÔ/ô ˜1˜# ˜s Q C˜²È%ÈÔQˆÜ˜5˜' E 7Ð+°A°q°6ÀEÀ7ÔKˆÜ˜1˜# ˜s˜¨A¨q¨6¸G¸9ÔEˆØ—‘˜4 E�Ó*ˆØ—‘˜T e�Ó,ˆÜ�x‰x˜˜u™ cÑ*Ô+Ð+Ð+Ü�x‰x˜˜w™¨Ñ,Ô-Ð-Ð-ô �]‰]œ8¨7Ô3ñ 	(Ø�K‰K˜ 3ˆKÔ'÷	(ð
Cð 	ô �]‰]œ:¨SÔ1ñ 	(Ø�K‰K˜ 3ˆKÔ'÷	(ð 	(÷	(ð 	(ú÷	(ð 	(ús   Å.GÆ'GÇGÇGc                 ór  — t        t        j                  j                  d«      j	                  ddgd¬«      t        j                  j                  d«      j                  d«      dœ«      }t        t        j                  j                  d«      j	                  ddgd¬«      t        j                  j                  d«      j                  d«      dœt        j                  t        d«      d	d
gg«      ¬«      }d}t        j                  t        |¬«      5  t        ||dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   ÚmÚfr�   ©Úsize©rD   rE   r.   r=   r@   rA   rK   úFlen\(left_on\) must equal the number of levels in the index of "right"r‰   rD   T©rt   Úright_index©r   r   r   r   Úchoicer*   r   Úfrom_productr   r‘   r’   r”   r   ©r+   r,   r1   rš   s       r   Ú-test_join_on_fails_with_different_right_indexz6TestJoin.test_join_on_fails_with_different_right_index¥   sþ   € Üä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°c¸3°ZÀaÐ4ÓHÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@ñó
ˆô ä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°c¸3°ZÀbÐ4ÓIÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸bÓAñô ×)Ñ)¬5°«8°c¸3°ZÐ*@ÓAô
ˆð XˆÜ�]‰]œ:¨SÔ1ñ 	:Ü�"�c 3°DÕ9÷	:÷ 	:ñ 	:ús   ÄD-Ä-D6c           	      ó€  — t        t        j                  j                  d«      j	                  ddgd¬«      t        j                  j                  d«      j                  d«      dœt        j                  t        d«      t        d«      g«      ¬«      }t        t        j                  j                  d«      j	                  ddgd	¬«      t        j                  j                  d«      j                  d	«      dœ«      }d
}t        j                  t        |¬«      5  t        ||dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   r�   rž   r�   rŸ   r¡   ÚabcrK   r.   zFlen\(right_on\) must equal the number of levels in the index of "left"r‰   rE   T)ru   Ú
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‘Y×*Ñ*¨1Ó-×4Ñ4°c¸3°ZÀaÐ4ÓHÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@ñô ×(Ñ(¬%°«(´D¸³KÐ)@ÓAô
ˆô ä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°c¸3°ZÀbÐ4ÓIÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸bÓAñó
ˆð XˆÜ�]‰]œ:¨SÔ1ñ 	:Ü�"�c C°DÕ9÷	:÷ 	:ñ 	:ús   ÄD4Ä4D=c                 óv  — t        t        j                  j                  d«      j	                  ddgd¬«      t        j                  j                  d«      j                  d«      dœ«      }t        t        j                  j                  d«      j	                  ddgd¬«      t        j                  j                  d«      j                  d«      dœt        j                  t        d«      d	d
gg«      ¬«      }d}t        j                  t        |¬«      5  t        ||dddg¬«       d d d «       y # 1 sw Y   y xY w)Nr   r�   rž   r�   rŸ   r¡   r.   r=   r@   rA   rK   z)len\(right_on\) must equal len\(left_on\)r‰   rD   rE   )ru   rt   r¥   r¨   s       r   Ú/test_join_on_fails_with_different_column_countsz8TestJoin.test_join_on_fails_with_different_column_countsÉ   s  € Üä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°c¸3°ZÀaÐ4ÓHÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@ñó
ˆô ä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°c¸3°ZÀbÐ4ÓIÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸bÓAñô ×)Ñ)¬5°«8°c¸3°ZÐ*@ÓAô
ˆð ;ˆÜ�]‰]œ:¨SÔ1ñ 	=Ü�"�c C°#°s°Õ<÷	=÷ 	=ñ 	=ús   ÄD/Ä/D8Ú
wrong_typer   ÚstrNr   r(   c                 ó<  — t        dddgi«      }dt        |«      › d�}t        j                  t        |¬«      5  t        ||dd¬«       d d d «       t        j                  t        |¬«      5  t        ||dd¬«       d d d «       y # 1 sw Y   Œ=xY w# 1 sw Y   y xY w)NrD   r(   z.Can only merge Series or DataFrame objects, a z was passedr‰   )rt   ru   )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Û   s›   € ô ˜˜a ˜V�}Ó%ˆðÜ�jÓ!Ð" +ð/ð 	ô �]‰]œ9¨CÔ0ñ 	=Ü�*˜b¨#¸Õ<÷	=ä�]‰]œ9¨CÔ0ñ 	=Ü�"�j¨#¸Õ<÷	=ð 	=÷	=ð 	=ú÷	=ð 	=ús   ºBÁ-BÂBÂBc                 óÞ   — |\  }}|j                  |d¬«      }|j                  ddi¬«      }|g d¢   }|j                  d«      }|j                  ||¬«      }t        j                  ||«       y )NrB   rU   Úkey_0©r„   )r¸   r@   rA   rC   rM   rN   )rŒ   ÚrenameÚpopr�   r�   )r+   rS   rQ   rR   r–   Újoin_colÚresults          r   Útest_join_on_pass_vectorz!TestJoin.test_join_on_pass_vectorì   sk   € Ø&‰ˆ�Ø—;‘;˜v¨#�;Ó.ˆØ—?‘?¨C°¨>�?Ó:ˆØÒJÑKˆà—:‘:˜c“?ˆØ—‘˜V¨�Ó1ˆÜ
×Ñ˜f hÕ/r   c                 ól  — |\  }}|j                  |j                  g «      d¬«      }|D ]+  }||v sJ ‚||   j                  «       j                  «       rŒ+J ‚ |j                  |j                  g «      dd¬«      }t	        j
                  |j                  |j                  «       t        |«      dk(  sJ ‚y )NrB   rU   ri   rb   r   )rŒ   ÚreindexÚisnaÚallr�   Úassert_index_equalr„   r   )r+   rS   rQ   rR   r•   ÚcolÚmerged2s          r   Útest_join_with_len0zTestJoin.test_join_with_len0ö   s©   € à&‰ˆ�Ø—‘˜VŸ^™^¨BÓ/°C�Ó8ˆØò 	,ˆCØ˜&‘=Ð �=Ø˜#‘;×#Ñ#Ó%×)Ñ)Õ+Ð+Ð+ð	,ð —+‘+˜fŸn™n¨RÓ0°S¸g�+ÓFˆÜ
×Ñ˜gŸo™o¨v¯~©~Ô>Ü�7‹|˜qÒ Ð Ñ r   c                 óŠ  — t        dg d¢i«      }t        dddgiddg¬«      }|j                  |dd	¬
«      }|j                  |d¬«      }||d   j                  «          }t        j                  |d   |d   «       t        j                  |d   |d   d¬«       t        j
                  |j                  |j                  «       y )Nr|   )rD   rD   rG   rE   rE   rF   r0   r   r(   rD   rE   rK   ri   rb   rU   F)Úcheck_dtype)r   rŒ   Únotnar�   rŽ   rÃ   rL   ©r+   r,   r1   rq   r–   s        r   Útest_join_on_innerzTestJoin.test_join_on_inner  s´   € Ü˜Ò=Ð>Ó?ˆÜ˜ 1 a &Ð)°#°s°Ô<ˆà—‘˜ ¨G�Ó4ˆà—7‘7˜3 5�7Ó)ˆØ˜H WÑ-×3Ñ3Ó5Ñ6ˆÜ
×Ñ˜v e™}¨h°u©oÔ>Ü
×Ñ˜v g™°¸Ñ0AÈuÕUÜ
×Ñ˜fŸl™l¨H¯N©NÕ;r   c                 óÂ   — t        dg d¢i«      }t        dg d¢ig d¢¬«      }|j                  |dg¬«      }|j                  |d¬«      }t        j                  ||«       y )Nr|   r}   r0   r~   r   rK   rU   ©r   rŒ   r�   r�   rÊ   s        r   Útest_join_on_singlekey_listz$TestJoin.test_join_on_singlekey_list  s[   € Ü˜Ò8Ð9Ó:ˆÜ˜¢)Ð,²OÔDˆð —‘˜ % �Ó)ˆØ—7‘7˜3 5�7Ó)ˆä
×Ñ˜f hÕ/r   c                 ó”   — |\  }}|j                  |d   d¬«      }|j                  |dg   d¬«      }t        j                  ||«       y )NrM   rB   rU   )rŒ   r�   r�   )r+   rS   rQ   rR   r½   r–   s         r   Útest_join_on_serieszTestJoin.test_join_on_series  sK   € Ø&‰ˆ�Ø—‘˜V IÑ.°3�Ó7ˆØ—;‘;˜v y kÑ2°s�;Ó;ˆÜ
×Ñ˜f hÕ/r   c                 óÐ   — t        dddgi«      }t        dgdgd¬«      }|j                  |d¬«      }t        ddgddgdœ|j                  ¬«      }t	        j
                  ||«       y )	NrD   r(   r   rE   ©rL   ÚnamerU   r¡   rK   )r   r   rŒ   rL   r�   r�   )r+   r,   Údsr½   r–   s        r   Útest_join_on_series_bugletz#TestJoin.test_join_on_series_buglet  se   € ä˜˜a ˜V�}Ó%ˆÜ�Q�C ˜s¨Ô-ˆØ—‘˜ �Ó$ˆÜ A q 6°°A°Ñ7¸r¿x¹xÔHˆÜ
×Ñ˜f hÕ/r   c                 ó†  — t        t        j                  d«      ¬«      }d|d<   d|d<   t        t        j                  dd«      ¬«      }d	|d
<   d|d<   |j                  ||¬«      }t	        |||¬«      }t        j                  ||«       |j                  ||¬«      }t	        |||¬«      }t        j                  ||«       y )Nr.   rK   TÚboolr…   Ústringr=   é   r(   Úintr4   ÚfloatrX   )r   r   ÚarangerŒ   Ú_join_by_handr�   r�   )r+   Ú	join_typeÚdf1r1   rq   r–   s         r   Útest_join_index_mixedzTestJoin.test_join_index_mixed&  s­   € äœbŸi™i¨›mÔ,ˆØˆˆF‰ØˆˆH‰äœbŸi™i¨¨2Ó.Ô/ˆØˆˆE‰
ØˆˆG‰à—‘˜# 9�Ó-ˆÜ   c¨yÔ9ˆÜ
×Ñ˜f hÔ/à—‘˜# 9�Ó-ˆÜ   c¨yÔ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¢¬«      }|j                  |dd¬«      }g d¢}|d d |_        |dd  |_        t        ||«      }t        j                  ||«       y )Nr4   r   r…   Tr?   r.   rƒ   rA   rC   r   Ú_oneÚ_two©ÚlsuffixÚrsuffix)ÚA_oneÚB_oneÚC_oneÚD_oneÚA_twoÚB_twoÚC_twoÚD_twor/   )r   r   rÜ   rJ   Úint64Úbool_rŒ   r„   rÝ   r�   r�   )r+   rß   r1   rq   Úexpected_columnsr–   s         r   Útest_join_index_mixed_overlapz&TestJoin.test_join_index_mixed_overlap8  sÝ   € ÜØ˜A E°Ñ5Ü—)‘)˜B“-Ú(ô
ˆð
 �3‰x�~‰~¤§¡Ò)Ð)Ð)Ø�3‰x�~‰~¤§¡Ò)Ð)Ð)äØ˜A E°Ñ5Ü—)‘)˜A˜r 1Ó%Ú(ô
ˆð —‘˜# v°v�Ó>ˆò	
Ðð ' r¨Ð*ˆŒØ& q rÐ*ˆŒÜ   cÓ*ˆÜ
×Ñ˜f hÕ/r   c                 ó\   — t        «       }|j                  t        dgdgdg¬«      d¬«       y )Nr�   r   r@   rƒ   rf   rX   )r   rŒ   )r+   Úxs     r   Útest_join_empty_bugzTestJoin.test_join_empty_bugX  s(   € ä‹KˆØ	�‰Œy˜!˜ Q C°#°Ô7¸WˆÕEr   c                 óª  — t        t        j                  j                  d«      j	                  d«      ddg¬«      }t        t        j                  j                  d«      j	                  d«      «      }||d<   t        t        j                  j                  d«      j	                  d«      d	g¬«      }|j                  |«       |j                  |«       y )
Nr   )é   r   rD   rE   r¹   r÷   rF   )r÷   r(   Úq)r   r   r   r   r*   r   rŒ   )r+   rD   rF   rG   s       r   Útest_join_unconsolidatedz!TestJoin.test_join_unconsolidated]  s    € äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÈÈSÀzô
ˆô ”2—9‘9×(Ñ(¨Ó+×;Ñ;¸BÓ?Ó@ˆØˆˆ#‰Ü”b—i‘i×+Ñ+¨AÓ.×>Ñ>¸wÓGÐRUÐQVÔWˆð 	
�‰ˆqŒ	Ø	�‰ˆq�	r   c                 óX  — t        j                  g d¢g d¢gddg¬«      }t        j                  g d¢g d¢gddg¬«      }t        t        j                  j                  d«      j                  d«      |d	g¬
«      }t        t        j                  j                  d«      j                  d«      |dg¬
«      }|j                  d¬«      }|j                  d¬«      }|j                  |d¬«      }t        |j                  «      j                  t        |j                  «      «      }|j                  |«      j                  |j                  |«      «      }|j                  |j                  _        t        j                   ||«       |j                  j                  |j                  k(  sJ ‚|j                  d¬«      }|j                  d¬«      }|j                  |d¬«      j                  d¬«      }t        |j                  «      j                  t        |j                  «      «      }|j                  |«      j                  |j                  |«      «      }|j                  |j                  _        t        j                   ||«       |j                  j                  |j                  k(  sJ ‚y )N)rD   rD   rD   rE   rE   rE   )r(   r   r�   r(   r   r�   ÚfirstÚsecond©Únames)rE   rE   rE   rF   rF   rF   r   é   zvar X)rP   rL   r„   zvar Yr   )Úlevelrf   rX   r(   )r   r­   r   r   r   r   r*   Ú
sort_indexrŒ   r   ÚvaluesÚunionrÀ   rþ   rL   r�   r�   )r+   Úindex1Úindex2rß   r1   rq   Ú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±MÓ.BÓCˆØ—;‘;˜xÓ(×-Ñ-¨c¯k©k¸(Ó.CÓDˆØ%Ÿ|™|ˆ�‰ÔÜ
×Ñ˜f hÔ/Ø�|‰|×!Ñ! V§\¡\Ò1Ð1Ð1à�n‰n 1ˆnÓ%ˆØ�n‰n 1ˆnÓ%ˆà—‘˜# 7�Ó+×6Ñ6¸QÐ6Ó?ˆÜ˜Ÿ™Ó'×-Ñ-¬e°F·M±MÓ.BÓCˆØ—;‘;˜xÓ(×-Ñ-¨c¯k©k¸(Ó.CÓDˆØ%Ÿ|™|ˆ�‰Ôä
×Ñ˜f hÔ/Ø�|‰|×!Ñ! V§\¡\Ò1Ð1Ñ1r   c                 óÌ  — g d¢}g d¢}t         j                  j                  d«      j                  t	        |«      «      }t        |||dœ«      }|}t        t         j                  j                  d«      j                  d«      |g d¢¬«      }|j                  |dd	gd
¬«      }t        ||j                  «       dd	gddgd
d¬«      }t        ||dd	gdd
d¬«      }	t        j                  ||	j                  |«      «       t        ||dd	gdd
d¬«      }	|j                  ddgd¬«      }|j                  |_        |j                  j                  sJ ‚t        j                  ||«       y )N)
r†   r†   r†   r…   r…   Úbazr	  Úquxr
  Úsnap)
r‡   r‚   rˆ   r‚   r‡   r‚   r‡   r‡   rˆ   r‚   r   )r$   r%   rP   )r.   r�   )Új_oneÚj_twoÚj_threerƒ   r$   r%   ri   rb   rû   rü   F)rt   ru   rY   ÚsortT)ru   r¬   rY   r  r(   ©Úaxis)r   r   r   r*   r   r   rŒ   r   Úreset_indexr�   r�   Úreindex_likeÚdroprL   Úis_monotonic_increasing)
r+   Ú%lexsorted_two_level_string_multiindexr$   r%   rP   rL   Úto_joinrq   r–   Ú	expected2s
             r   Útest_join_inner_multiindexz#TestJoin.test_join_inner_multiindex•  sh  € ÚVˆò
ˆô �y‰y×$Ñ$ QÓ'×7Ñ7¼¸D»	ÓBˆÜ $°¸dÑCÓDˆà5ˆÜÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ØÚ1ô
ˆð —‘˜7¨°Ð'7¸W�ÓEˆÜØØ×ÑÓ!Ø˜VÐ$Ø˜xÐ(ØØô
ˆô ØØØ˜fÐ%ØØØô
ˆ	ô 	×Ñ˜f i×&<Ñ&<¸VÓ&DÔEäØØØ˜fÐ%ØØØô
ˆ	ð —=‘= '¨8Ð!4¸1�=Ó=ˆØŸ™ˆŒà�|‰|×3Ò3Ð3Ð3Ü
×Ñ˜f hÕ/r   c                 ó^  — t        ddgg d¢¬«      }|j                  dg«      j                  dddgi«      }t        dd	gg d
¢¬«      }|j                  dd¬«       t	        j
                  t        j                  j                  d¬«      5  t        ||dd¬«       d d d «       y # 1 sw Y   y xY w)N©r(   r   r�   ©r/   r=   rÿ   r   r¹   rD   rE   ÚmeanÚsum)é   r.   rÿ   ©rD   rE   rG   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Ó  s¢   € ô ˜	 9Ð-²ÔGˆØ—‘˜S˜EÓ"×&Ñ&¨¨f°e¨_Ð'=Ó>ˆÜ˜i¨Ð4ºoÔNˆØ×Ñ˜3¨ÐÔ-ä�]‰]Ü�I‰I× Ñ Ð(Wô
ñ 	Gô �&˜(¨tÀÕF÷	G÷ 	Gñ 	Gús   Â
B#Â#B,c                 ó   — t        t        j                  j                  d«      j	                  d«      ddgt        j
                  ¬«      }t        t        j                  j                  d«      j	                  d«      dgt        j                  ¬«      }|j                  |«      }|j                  d   dk(  sJ ‚|j                  d   dk(  sJ ‚|j                  d   d	k(  sJ ‚t        j                  j                  d«      j                  d
dd«      j                  d«      }t        j                  j                  d«      j                  d«      j                  d«      }t        j                  j                  d«      j                  d«      j                  d	«      }t        |||dœ«      }t        |||dœ«      }t        t        j                  j                  d«      j                  d«      j                  d	«      dg¬«      }|j                  |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 ‚|j                  |dd¬«      }	t        j                  ||	«       y )Nr   )r.   r   rD   rE   ©r„   rJ   )r.   r(   rF   Úfloat64Úfloat32r   r=   éd   rï   r   Úmdr¹   Tr£   )r   r   r   r   r*   r.  r/  rŒ   ÚdtypesÚintegersÚastyper   r�   r�   )
r+   rD   rE   rq   rF   r,   ÚxpdfÚsÚrsÚxps
             r   Útest_join_float64_float32z"TestJoin.test_join_float64_float32à  s,  € ÜÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=Ø˜#�JÜ—*‘*ô
ˆô
 Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=Ø�EÜ—*‘*ô
ˆð
 —‘˜“ˆØ�}‰}˜SÑ! YÒ.Ð.Ð.Ø�}‰}˜SÑ! YÒ.Ð.Ð.Ø�}‰}˜SÑ! YÒ.Ð.Ð.ä�I‰I×!Ñ! !Ó$×-Ñ-¨a°°CÓ8×?Ñ?ÀÓHˆÜ�I‰I×!Ñ! !Ó$×+Ñ+¨CÓ0×7Ñ7¸	ÓBˆÜ�I‰I×!Ñ! !Ó$×+Ñ+¨CÓ0×7Ñ7¸	ÓBˆÜ˜Q Q¨QÑ/Ó0ˆÜ˜q q¨qÑ1Ó2ˆÜÜ�I‰I×!Ñ! !Ó$×+Ñ+¨AÓ.×5Ñ5°iÓ@È4È&ô
ˆð �X‰X�a °$ˆXÓ7ˆØ�y‰y˜‰~ Ò(Ð(Ð(Ø�y‰y˜‰~ Ò*Ð*Ð*Ø�y‰y˜‰~ Ò*Ð*Ð*Ø�y‰y˜‰ )Ò+Ð+Ð+à�Z‰Z˜ 3°DˆZÓ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œ«      }|j                  ddg«      }|j                  ddg«      }|j                  ddg«      }|j                  ||gd¬«      }t        ||ddgd¬«      }t        ||ddgd¬«      }	|j	                  «       }|	|j
                     }	|	j                  j                  d«      |	d<   |	j                  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œ«      }|j                  ddg«      }|j                  ddg«      }|j                  ddg«      }|j                  ||gd¬«      }t        ||ddgd¬«      }t        ||ddgd¬«      }	|j	                  «       }t        j                  ||	j                  d d …|j
                  f   «       t        g d¢g d¢t        j                  j                  d«      j                  d«      t        j                  j                  d«      j                  d«      dœ«      }
t!        t        j"                  t        j$                  d«      d«      t        j"                  t        j$                  d«      d«      d¬«      }|
j                  |d¬«      }|
j                  |d¬«      }|
j                  |d¬«      }|
j                  |d¬«      }t        j                  ||«       t        j                  ||«       t        j                  ||«       y ) Nr(   r.   é   r   r   r0  éÈ   r   éè  éÐ  )rD   rE   rH   rD   rE   rf   rX   rb   rï   )r(   r(   r(   )r.   r;  r÷   )r(   r(   r   )r0  r<  i,  )r=  r>  i¸  ri   )r…   r†   r…   r†   r…   r†   r…   r…   )r‚   r‚   r‡   rˆ   r‡   r‡   r‚   rˆ   é   r?   ÚTESTrÒ   rW   ra   )r   r%  rŒ   r   r  r„   rD   r4  rE   r�   r�   Úlocr   r   r   r*   r   ÚrepeatrÜ   )r+   rß   r1   Údf3Úidf1Úidf2Úidf3r½   Údf_partially_mergedr–   r,   r6  ri   rf   rW   ra   s                   r   Útest_join_many_non_unique_indexz(TestJoin.test_join_many_non_unique_index  s	  € Ü˜q !˜f¨A¨q¨6¸¸R¸ÑAÓBˆÜ˜q !˜f¨A¨q¨6¸¸c¸
ÑCÓDˆÜ˜q !˜f¨A¨q¨6¸¸t¸ÑEÓFˆØ�}‰}˜c 3˜ZÓ(ˆØ�}‰}˜c 3˜ZÓ(ˆØ�}‰}˜c 3˜ZÓ(ˆà—‘˜D $˜<¨W�Ó5ˆä# C¨°#°s°ÀÔIÐÜÐ,¨c°s¸C°jÀgÔNˆà×#Ñ#Ó%ˆØ˜FŸN™NÑ+ˆØ Ÿ
™
×)Ñ)¨'Ó2ˆ�‰Ø Ÿ
™
×)Ñ)¨'Ó2ˆ�‰Ü
×Ñ˜f hÔ/äšiªiºlÑKÓLˆÜšiªiºoÑNÓOˆÜšiªiÒ>PÑQÓRˆØ�}‰}˜c 3˜ZÓ(ˆØ�}‰}˜c 3˜ZÓ(ˆØ�}‰}˜c 3˜ZÓ(ˆØ—‘˜D $˜<¨W�Ó5ˆä# C¨°#°s°ÀÔIÐÜÐ,¨c°s¸C°jÀgÔNˆà×#Ñ#Ó%ˆä
×Ñ˜f h§l¡l²1°f·n±nÐ3DÑ&EÔFô âMÚQÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@Ü—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@ñ	ó
ˆô Ü�I‰I”b—i‘i “l AÓ&¬b¯i©i¼¿	¹	À!»ÀaÓ.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¢¬«      }|j                  |d	d
¬«      }t        g d¢g d¢g d¢dœg d¢¬«      }t        j                  ||«       |j                  |d	d¬«      }t        j
                  |j                  t        t        d«      «      d
¬«       d d d «       y # 1 sw Y   y xY w)Nzfuture.infer_string)r…   r†   r	  r…   ©r(   r   r�   r/   r€   Úvalue2r   )r†   r	  r…   rK   r|   T)rV   r  )r†   r	  r…   r…   )r   r�   r(   r/   )rD   rE   rF   rF   )r|   r0   rK  )r(   r   r   r�   Fr/   )Úexact)	r   r   rŒ   r�   r�   rÃ   rL   r   r   )r+   rw   rW   ra   rq   r–   s         r   Útest_join_sortzTestJoin.test_join_sort7  sÅ   € ô Ð1°<Ó@ñ 	MÜÚ4º|ÑLóˆDô ˜xªÐ9ÒAVÔWˆEà—Y‘Y˜u¨°T�YÓ:ˆFÜ â7Ú)Ú2ñò
 #ôˆHô ×!Ñ! &¨(Ô3ð —Y‘Y˜u¨°U�YÓ;ˆFÜ×!Ñ! &§,¡,´´e¸A³h³ÀtÕL÷'	M÷ 	Mñ 	Mús   �B1CÃCc                 óî  — t        dg d¢ig d¢¬«      }t        dg d¢ig d¢¬«      }|j                  |«      }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¢¬«      }|j                  |«      }t        g d¢d	d
d
t        j                  gdœg d¢¬«      }t	        j
                  ||«       y )NrD   rJ  )r(   r   r�   rD   rK   rE   )r=   rÿ   r  r?  )r(   r�   r�   r/   )r(   r   r�   r�   r/   r=   rÿ   r  r¡   )r(   r   r�   r�   rD   )r(   r   r   rD   )r   rŒ   r   Únanr�   r�   )r+   rß   r1   r½   r–   rC  Údf4s          r   Ú test_join_mixed_non_unique_indexz)TestJoin.test_join_mixed_non_unique_indexP  sÍ   € ä˜šlÐ+²>ÔBˆÜ˜šlÐ+²<Ô@ˆØ—‘˜#“ˆÜÚ!¨¬B¯F©F°A°q¼"¿&¹&Ð(AÑBÚ#ô
ˆô 	×Ñ˜f hÔ/ä˜šlÐ+²>ÔBˆÜ˜šlÐ+²<Ô@ˆØ—‘˜#“ˆÜÚ a¨¨A¬r¯v©vÐ%6Ñ7º~ô
ˆô 	×Ñ˜f hÕ/r   c           	      óò  — t        j                  ddd¬«      }t        t        t	        t        |«      «      «      |dg¬«      }t        ||g«      }|j                  |dd¬	«      }t        t        j                  t        j                  dt        j                  ¬
«      j                  d«      j                  dd«      d«      ddg|j                  «       j                  ¬«      }t!        j"                  ||«       y )Nz
2016-01-01é   ÚM)r>   ÚfreqÚpnumrƒ   ri   Ú_df2)rY   ræ   rI   r   éÿÿÿÿr(   Úpnum_df2©r„   rL   )r&  Úperiod_ranger   r   r   r   r   rŒ   r   r   rÜ   rï   rB  Úreshaper  rL   r�   r�   )r+   rL   r,   r1   r½   r–   s         r   Ú!test_join_non_unique_period_indexz*TestJoin.test_join_non_unique_period_indexc  s½   € ä—‘ °b¸sÔCˆÜ”tœE¤# e£*Ó-Ó.°eÀfÀXÔNˆÜ�b˜"�XÓˆØ—‘˜ '°6�Ó:ˆÜÜ�G‰G”B—I‘I˜b¬¯©Ô1×8Ñ8¸Ó;×CÑCÀBÈÓJÈAÓNØ˜ZÐ(Ø—.‘.Ó"×(Ñ(ô
ˆô
 	×Ñ˜f hÕ/r   c                 ó  — t        t        j                  j                  d«      j	                  d«      g d¢¬«      }|j                  ddd«       |j                  ddd	«       |j                  d«      }t        j                  d
«      }|rd}t        j                  t        |¬«      5  |j                  «        d d d «       |j                  d¬«      }|j                  «       }|j                  |d¬«       y # 1 sw Y   Œ?xY w)Nr   )r;  rÿ   )rD   rE   rF   rG   rH   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  sÌ   € äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=Ú2ô
ˆð 	�	‰	�!�T˜1ÔØ
�	‰	�!�T˜5Ô!à—*‘*˜TÓ"ˆÜ�i‰iÐ@ÓAˆÙØAˆCÜ�]‰]œ9¨CÔ0ñ 	Ø�L‰LŒN÷	à�\‰\ tˆ\Ó,ˆØ�]‰]‹_ˆð 	�‰�˜HˆÕ%÷	ð 	ús   Â'C6Ã6C?c                 óö  — t        t        j                  j                  d«      j	                  d«      t        d«      ¬«      }|ddg   |ddg   |d	d
g   g}|d   j                  |dd  «      }t        j                  ||«       |ddg   d d |ddg   dd  |d	d
g   dd g}d„ }|d   j                  |dd  d¬«      } ||||j                  «       |d   j                  |dd  «      } ||||d   j                  «       |d   j                  |dd  d¬«      } ||||j                  dd «       d}t        j                  t        |¬«      5  |d   j                  |dd  d¬«       d d d «       y # 1 sw Y   y xY w)Nr   )r.   rÿ   Úabcdefr¹   rD   rE   rF   rG   rH   rž   r   r(   éþÿÿÿé	   c                 ó¤   — | D �cg c]  }|j                  |«      ‘Œ }}|d   j                  |dd  «      }t        j                  ||«       y c c}w )Nr   r(   )rÀ   rŒ   r�   r�   )Údf_listr½   Ú	exp_indexrô   Ú	reindexedr–   s         r   Ú_check_diff_indexz2TestJoin.test_join_many.<locals>._check_diff_index�  sN   € Ø7>Ö?°!˜Ÿ™ 9Õ-Ð?ˆIÐ?Ø  ‘|×(Ñ(¨°1°2¨Ó7ˆHÜ×!Ñ! &¨(Õ3ùò @s   …Arf   rX   ri   r?  z?Joining multiple DataFrames only supported for joining on indexr‰   rU   )r   r   r   r   r*   r   rŒ   r�   r�   rL   r‘   r’   r”   )r+   r,   rr  rq   ru  rš   s         r   Útest_join_manyzTestJoin.test_join_many…  s‹  € ÜÜ�I‰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Ð(:¸BÀÀS¸z¹NÈ1ÈQÐ<OÐPˆò	4ð ˜‘—‘ ¨¨ °'�Ó:ˆÙ˜' 6¨2¯8©8Ô4à˜‘—‘ ¨¨ Ó-ˆÙ˜' 6¨7°1©:×+;Ñ+;Ô<à˜‘—‘ ¨¨ °'�Ó:ˆÙ˜' 6¨2¯8©8°A°a¨=Ô9àOˆÜ�]‰]œ:¨SÔ1ñ 	1Ø�A‰J�O‰O˜G A B˜K¨CˆOÔ0÷	1÷ 	1ñ 	1ús   ÅE/Å/E8rY   )rW   ra   ri   rf   c                 ó8  — 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|j                  «       }|j                  |g||¬«      }t        j                  ||«       y )NrD   r  )r(   r   r   rK   rE   r  ©r   r   r(   ra   )r�   r   r(   r¡   )rÿ   r=   r/   rf   ©rY   r  )r   r  rŒ   r�   r�   ©r+   rY   r  r,   r1   r–   r½   s          r   Útest_join_many_sort_uniquez#TestJoin.test_join_many_sort_unique£  sŒ   € ô ˜šYÐ'ªyÔ9ˆÜ˜šiÐ(²	Ô:ˆØ�'Š>Ü ¢y²yÑ!AÊÔS‰Hä ¢y²yÑ!AÊÔSˆHØ�'Š>™Tà×*Ñ*Ó,ˆHØ—‘˜#˜ C¨d�Ó3ˆÜ
×Ñ˜f hÕ/r   c                 óX  — 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¢¬«      }n€|dk(  r5t        t        j                  ddt        j                  gg d¢dœg d¢¬«      }nFt        ddt        j                  t        j                  dgddddt        j                  gdœg d¢¬«      }|r|j                  «       }|j	                  |g||¬«      }t        j                  ||«       y )NrD   r  )r�   r   r   rK   rE   r  rx  ri   r   r�   r=   r¡   r   rW   g      @ra   r5   r6   )r/   r=   r=   rÿ   )r   r   r   r(   r4   g      @r7   )r   r   r(   r   r�   ry  )r   r   rO  r  rŒ   r�   r�   rz  s          r   Útest_join_many_sort_nonuniquez&TestJoin.test_join_many_sort_nonunique²  s  € ô ˜šYÐ'ªyÔ9ˆÜ˜šiÐ(²	Ô:ˆØ�'Š>Ü ¨¨1 v°Q¸°FÑ!;ÀAÀqÀ6ÔJ‰HØ�FŠ]Ü Ú¤r§v¡v¨s°CÐ&8Ñ9Âô‰Hð �GŠ^Ü Ü—v‘v˜s C¬¯©Ð0²|ÑDÊLô‰Hô !à˜s¤B§F¡F¬B¯F©F°CÐ8Ø˜s C¨¬b¯f©fÐ5ñò &ôˆHñ Ø×*Ñ*Ó,ˆHØ—‘˜#˜ C¨d�Ó3ˆÜ
×Ñ˜f hÕ/r   )ri   rf   rW   ra   c                 óN  — t        t        ddd«      t        ddd«      g«      }t        dddgi|¬«      }t        dddgi|¬«      }|j                  |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
                  ||«       y )Niè  r(   r   rD   rK   rE   rX   rf   r¡   r   )r   r   r   rŒ   r�   r�   )r+   rY   rL   r,   r1   r½   r–   s          r   Ú test_join_many_datetime_unsortedz)TestJoin.test_join_many_datetime_unsortedÎ  s¸   € ô ”x  a¨Ó+¬X°d¸A¸qÓ-AÐBÓCˆÜ˜˜a ˜V�}¨EÔ2ˆÜ˜˜q !˜f˜¨UÔ3ˆØ—‘˜#˜ C�Ó(ˆØ�'Š>ä ¨¨1 v°Q¸°FÑ!;ÀEÈ!ÁHÈeÐTUÉhÐCWÔX‰Hä ¨¨1 v°Q¸°FÑ!;À5ÔIˆHÜ
×Ñ˜f hÕ/r   c                 ó\  — t        t        j                  j                  d«      j	                  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   }|j                  ||g«      }t        j                  ||«       y )Nr   )r?  r/   r?   r¹   r…   r†   r/   r|   r@   rA   rB   rC   )	r   r   r   r   r*   rA  rŒ   r�   r�   )r+   r,   rß   r1   rC  r½   s         r   Útest_join_many_mixedzTestJoin.test_join_many_mixedÜ  s¢   € ÜÜ�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Ú(ô
ˆð ˜E�N QÑ&ˆˆ5‰	Ø�f‰f’Q˜˜c˜
�]Ñ#ˆØ�f‰f’Q˜˜c˜
�]Ñ#ˆØ�f‰f’Q˜˜�ZÑ ˆà—‘˜3 ˜*Ó%ˆÜ
×Ñ˜f bÕ)r   c           
      ó”  — t        t        t        j                  j	                  d«      j                  d«      g d¢¬«      t        t        j                  j	                  d«      j                  ddd¬«      j                  dd«      d	d
g¬«      gd¬«      }t        ||gd¬«      }|j                  |d¬«      }|j                  |_	        t        j                  ||«       t        t        j                  j	                  d«      j                  d«      ddg¬«      }t        t        j                  j	                  d«      j                  d«      ddg¬«      }t        t        j                  j	                  d«      j                  d«      ddg¬«      }t        t        j                  j	                  d«      j                  d«      ddg¬«      }|j                  |dd¬«      j                  |ddd¬«      }t        j                  t        j                   j"                  d¬«      5  |j                  |dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   )r.   r/   )r@   r@   rA   rA   r¹   r   r.   r;  rŸ   r@   rB   r(   r  Ú_2rc  )r/   r   rô   ÚyTr"  rf   )r¬   r¤   rY   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‘I×)Ñ)¨!Ó,×<Ñ<¸WÓEÚ0ôô Ü—I‘I×)Ñ)¨!Ó,×5Ñ5°a¸À"Ð5ÓE×MÑMÈbÐRSÓTØ  #˜Jôð	ð ô
ˆô ˜2˜r˜(¨Ô+ˆØ—‘˜ T�Ó*ˆØ!×)Ñ)ˆŒÜ
×Ñ˜f hÔ/ô Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<ÀsÈCÀjô
ˆô Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<ÀsÈCÀjô
ˆô Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<ÀsÈCÀjô
ˆô Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<ÀsÈCÀjô
ˆð �g‰g�a D°dˆgÓ;×AÑAØ˜$¨D°gð Bó 
ˆô �]‰]Ü�I‰I× Ñ ØDô
ñ 	<ð �I‰I�a D°dˆIÔ;÷		<÷ 	<ñ 	<ús   È H>È>Ic                 óB  — 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
t	        dd«      D �cg c]  }d|z  ‘Œ	 c}i|¬	«      }|j                  |ddg|¬«      }|j                  «       j                  |j                  «       ddg|¬«      j                  g d¢«      }t        j                  ||«       d}	t        j                  t        |	¬«      5  |j                  |d|¬«       d d d «       t        j                  t        |	¬«      5  |j                  |ddg|¬«       d d d «       y c c}w # 1 sw Y   ŒIxY w# 1 sw Y   y xY w)Nr«   Úxyr(   r   )r«   rŠ  Únumrý   Úv1é   rK   Úv2r  r0  rb   r¢   r‰   )r   r§   r   r   r   rŒ   r  r   r%  r�   r�   r‘   r’   r”   )
r+   rÞ   Ú	leftindexrW   Ú
rightindexÚira   r½   r–   rš   s
             r   Útest_join_multi_to_multiz!TestJoin.test_join_multi_to_multi  ss  € ä×+Ñ+Ü�%‹[œ$˜t›* q¨! fÐ-Ò5Iô
ˆ	ô ˜$¤ b£	Ð*°)Ô<ˆä×,Ñ,Ü�%‹[œ$˜t›*Ð%¨e°T¨]ô
ˆ
ô ˜4´5¸¸A³;Ö!?¨a #¨£'Ò!?Ð@È
ÔSˆà—‘˜5 e¨T ]¸	�ÓBˆà×ÑÓß‰U�5×$Ñ$Ó&¨E°4¨=¸iˆUÓHß‰YÒ+Ó,ð 	ô
 	×Ñ˜h¨Ô/àWˆÜ�]‰]œ:¨SÔ1ñ 	5Ø�I‰I�e ¨)ˆIÔ4÷	5ô �]‰]œ:¨SÔ1ñ 	>Ø�J‰J�t ¨ °9ˆJÔ=÷	>ð 	>ùò "@÷	5ð 	5ú÷	>ð 	>ús   Â
F
Ä,F	Å$FÆ	FÆFc                 ó   — t        t        j                  ddd¬«      t        d«      dœ«      }t        t        j                  ddd¬«      t        d«      d	œ«      }|j	                  |j                  d
«      d
¬«      }|j                  «       }t        t        j                  gdz  t        d«      z   «      |d<   t        j                  ||«       y )Nz
2018-01-01r=   zAmerica/Chicago)Ústartr>   ÚtzÚabcde)ÚdateÚvalsz
2018-01-03Útuvwx)r—  Úvals_2r—  rU   r   Útuvrš  )r   r&  Ú
date_ranger   rŒ   r%  Úcopyr   r   rO  r�   r�   )r+   rß   r1   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¡V H¨q¡L´4¸³;Ñ$>Ó?ˆ�ÑÜ
×Ñ˜f hÕ/r   c                 ó  — t        g d¢g d¢g d¢g d¢gg d¢¬«      }t        j                  |d   «      j                  d«      |d<   t        g d	¢g d
¢gg d¢ddg¬«      }t        j                  |d   «      j                  d«      |d<   |j	                  |j                  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   j                  d«      |d<   t        j                  ||«       y )N)ú
2012-08-02ÚLr.   )r   ÚJrÙ   )ú
2013-04-06r¡  r;  )r£  r¢  é   )rô   r„  rD   r¹   rô   zM8[ns])r   r¢  r(   )r£  r¡  r   )rô   r„  r†  r   r/   rZ  r„  rU   z2012-08-02 00:00:00r¢  r(   rÙ   z2013-04-06 00:00:00r¡  r;  )rô   r„  r†  rD   rƒ   )	r   r&  Úto_datetimer4  rŒ   r%  r	   r�   r�   )r+   ÚdfaÚdfbr½   r–   s        r   Útest_join_datetime_stringz"TestJoin.test_join_datetime_stringI  s  € äâ'Ú'Ú'Ú'ð	ò $ô
ˆô —>‘> # c¡(Ó+×2Ñ2°8Ó<ˆˆC‰ÜÚ#Ò%;Ð<Ú#Ø�a�&ô
ˆô
 —>‘> # c¡(Ó+×2Ñ2°8Ó<ˆˆC‰Ø—‘˜#Ÿ-™-¨¨c¨
Ó3¸¸c¸
�ÓCˆÜäÐ0Ó1°3¸¸2Ð>ÜÐ0Ó1°3¸¸2Ð>ðð �a�&Ú(ô
ˆð ! ™×,Ñ,¨XÓ6ˆ�‰Ü
×Ñ˜f hÕ/r   c                 ó‚  — ddg}t        j                  ||¬«      }t        j                  t        |«      t        |«      ¬«      }t        d|i|¬«      }t        dt        |«      i|¬«      }|j	                  |«      }t        ddgddgdœt        j                  ddgddg¬«      ¬«      }t        j                  ||«       y )NrD   rE   ©Ú
categoriesÚc1rK   Úc2)r¬  r­  )r&  ÚCategoricalIndexÚreversedr   rŒ   r�   r�   )r+   ÚixÚid1Úid2rß   r1   r½   r–   s           r   Ú test_join_with_categorical_indexz)TestJoin.test_join_with_categorical_indexg  s­   € à�3ˆZˆÜ×!Ñ! "°Ô4ˆÜ×!Ñ!¤(¨2£,¼8ÀB»<ÔHˆä˜˜r˜
¨#Ô.ˆÜ˜œx¨›|Ð,°CÔ8ˆØ—‘˜#“ˆÜØ˜�: c¨3 ZÑ0Ü×%Ñ% s¨C j¸cÀ3¸ZÔHô
ˆô 	×Ñ˜f hÕ/r   )7Ú__name__Ú
__module__Ú__qualname__r‘   Úfixturer,   r1   rS   r_   rc   rg   rj   rr   rv   Ú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+  r9  rH  rM  rQ  r]  rl  rv  r{  r}  r  r�  rˆ  r’  rž  r¨  r³  © r   r   r!   r!   $   s>  „ à‡^�^ñó ðð ‡^�^ñ
ó ð
ð ‡^�^ñó ðò HòIòIòIò$ò	$ð ‡[�[×ÑØ˜  §¡¨T¸¸¿¹ÀyÓ9QÔ RÐSóñ#(óð#(òJ:ò$:ò$=ð$ ‡[�[×Ñ˜\¨A¨u°d¸H¸B¿H¹HÀaÈÀVÓ<LÐ+MÓNñ=ó Oð=ò 0ò
!ò
<ò0ò0ò0ò0ò$0ò@Fò
ò)2òV:0ò|Gò&òB4,ðl ‡[�[×ÑØ˜  §¡¨T¸¸¿¹ÀyÓ9QÔ RÐSóñMóðMò,0ò&0ò&ò*1ð< ‡[�[×Ñ˜UÒ$GÓHñ0ó Ið0ð ‡[�[×Ñ˜UÒ$GÓHñ0ó Ið0ð6 ‡[�[×Ñ˜UÒ$GÓHñ0ó Ið0ò*ò+<òZ>ò60ò00ó<0r   r!   rW   c                 ó¦  — |D ]%  }||   j                  «       j                  «       rŒ%J ‚ | j                  |«      }|j                  |«      }	|j                  |«      D ]o  \  }
}t        || j                  |«      }t        ||j                  |«      }	 |j                  |
«      }t        ||«       	 |	j                  |
«      }t        ||«       Œq y # t        $ r5}|dv rt        d|
› d�«      |‚t        || j                  |«       Y d }~ŒZd }~ww xY w# t        $ r5}|dv rt        d|
› d�«      |‚t        ||j                  |«       Y d }~Œíd }~ww xY w)N)rW   ri   zkey z! should not have been in the join)ra   ri   )
rÉ   rÂ   r#  Ú_restrict_to_columnsr„   Ú	get_groupÚ_assert_same_contentsr“   ÚAssertionErrorÚ_assert_all_na)rW   ra   r½   r¼   rY   rå   ræ   rF   Úleft_groupedÚright_groupedÚ	group_keyÚgroupÚl_joinedÚr_joinedÚlgroupÚerrÚrgroups                    r   r[   r[   w  sh  € àò 'ˆØ�a‰y�‰Ó ×$Ñ$Õ&Ð&Ð&ð'ð —<‘< Ó)€LØ—M‘M (Ó+€Mà"ŸN™N¨8Ó4ò 4Ñˆ	�5Ü'¨¨t¯|©|¸WÓEˆÜ'¨¨u¯}©}¸gÓFˆð
	4Ø!×+Ñ+¨IÓ6ˆFô " (¨FÔ3ð
	4Ø"×,Ñ,¨YÓ7ˆFô " (¨FÕ3ñ54øô ò 	=ØÐ'Ñ'Ü$Ø˜9˜+Ð%FÐGóàðô ˜8 T§\¡\°8×<Ñ<ûð	=ûô ò 	>ØÐ(Ñ(Ü$Ø˜9˜+Ð%FÐGóàðô ˜8 U§]¡]°H×=Ñ=ûð	>ús0   ÂCÂ1DÃ	DÃ+D
Ä
DÄ	EÄ+EÅEc                 óì   ‡— | j                   D �cg c]  }||v s|j                  ‰d«      |v sŒ|‘Œ }}| j                  d d …|f   } | j                  ˆfd„¬«      } | j                  d d …|f   } | S c c}w )NÚ c                 ó(   •— | j                  ‰d«      S )NrÏ  )Úreplace)rô   Úsuffixs    €r   ú<lambda>z&_restrict_to_columns.<locals>.<lambda>¥  s   ø€ ¨1¯9©9°V¸RÓ+@€ r   r¹   )r„   rÑ  rA  rº   )rÈ  r„   rÒ  rF   Úfounds     `  r   rÀ  rÀ  œ  s~   ø€ à—=‘=öØ A¨¡L°A·I±I¸fÀbÓ4IÈWÒ4TŠð€Eð ð
 �I‰I’a˜�hÑ€Eð �L‰LÓ!@ˆLÓA€Eð �I‰I’a˜�jÑ!€Eà€Lùòs
   �A1®A1c                 óH  ‡— d}| j                  |«      j                  «       j                  }|j                  |«      j                  «       j                  }|D �ch c]  }t        |«      ’Œ c}Št	        ‰«      t	        |«      k(  sJ ‚t        ˆfd„|D «       «      sJ ‚y c c}w )Niy)íÿc              3   ó8   •K  — | ]  }t        |«      ‰v –— Œ y ­w©N)Útuple)Ú.0ÚrowÚrowss     €r   ú	<genexpr>z(_assert_same_contents.<locals>.<genexpr>µ  s   øè ø€ Ò5 cŒu�S‹z˜TÔ!Ñ5ùs   ƒ)ÚfillnaÚdrop_duplicatesr  rØ  r   rÂ   )Ú
join_chunkrR   ÚNA_SENTINELÚjvaluesÚsvaluesrÚ  rÛ  s         @r   rÂ  rÂ  ­  s‡   ø€ Ø€Kà×Ñ Ó,×<Ñ<Ó>×EÑE€GØ�m‰m˜KÓ(×8Ñ8Ó:×AÑA€Gà")Ö*˜3ŒE�#�JÒ*€DÜˆt‹9œ˜F›Ò#Ð#Ð#ÜÓ5¨WÔ5Ô5Ð5Ñ5ùò +s   ÁBc                 ób   — |D ]*  }||v rŒ| |   j                  «       j                  «       rŒ*J ‚ y r×  )rÁ   rÂ   )rß  Úsource_columnsr¼   rF   s       r   rÄ  rÄ  ¸  s:   € Øò *ˆØ�‰=ØØ˜!‰}×!Ñ!Ó#×'Ñ'Õ)Ð)Ð)ñ*r   c                 ó<  — | j                   j                  |j                   |¬«      }| j                  |«      }|j                  |«      }| j                  j	                  |j                  «      }|j                  «       D ]
  \  }}|||<   Œ |j                  |¬«      S )NrX   r¹   )rL   rŒ   rÀ   r„   ÚappendÚitems)	rD   rE   rY   Ú
join_indexÚa_reÚb_reÚresult_columnsrÄ   r6  s	            r   rÝ   rÝ   ¿  sƒ   € Ø—‘—‘˜aŸg™g¨3�Ó/€Jà�9‰9�ZÓ €DØ�9‰9�ZÓ €Dà—Y‘Y×%Ñ% a§i¡iÓ0€Nà—*‘*“,ò ‰ˆˆQØˆˆSŠ	ðà�<‰< ˆ<Ó/Ð/r   c                  ó:  — t        ddit        j                  dgd¬«      ¬«      } t        ddit        j                  d	gd
¬«      ¬«      }| j                  |d¬«      }t        dgdgdœt        j                  dgd¬«      ¬«      }t	        j
                  ||«       y )NrH   r=   )r(   r   r/   r   rý   ©rP   rL   rž   rÿ   )r   r�   )rE   rF   ri   rX   )rH   rž   )r(   r   r/   r�   )rD   rE   rG   rF   rK   ©r   r   Úfrom_tuplesrŒ   r�   r�   )rW   ra   r½   r–   s       r   Ú.test_join_inner_multiindex_deterministic_orderrð  Ì  s˜   € äØ�1ˆXÜ×$Ñ$ i [¸ÔHô€Dô Ø�1ˆXœZ×3Ñ3°V°HÀJÔOô€Eð �Y‰Y�u 'ˆYÓ*€FÜØˆc˜˜ÑÜ×$Ñ$ l ^Ð;OÔPô€Hô ×Ñ˜& (Õ+r   )Ú	input_colÚoutput_colsrE   rD   Úa_xÚa_yc                 óÈ   — t        dddgi«      }t        | ddgi«      }|j                  |ddd¬«      }t        |d	   g d
¢|d   g d¢i«      }t        j                  ||«       y )NrD   r(   r�   r/   ÚcrossÚ_xÚ_y)rY   rå   ræ   r   )r(   r(   r�   r�   )r�   r/   r�   r/   rÍ   )rñ  rò  rW   ra   r½   r–   s         r   Útest_join_crossrù  Ý  sj   € ô
 �c˜A˜q˜6�]Ó#€DÜ�y 1 a &Ð)Ó*€EØ�Y‰Y�u '°4ÀˆYÓF€FÜ˜+ a™.ª,¸ÀA¹ÊÐUÓV€HÜ×Ñ˜& (Õ+r   c                 óž  — t        ddit        j                  dgd¬«      ¬«      }t        ddit        j                  d	gd
¬«      ¬«      }|j                  || ¬«      }| 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
                  ||«       y )NrF   r�   )r(   r   r¡   rý   rí  rG   r/   )r   )rE   rX   ra   )rF   rG   )r   r(   rE   rD   rK   rî  )rÞ   rW   ra   r½   r–   s        r   Útest_join_multiindex_one_levelrû  é  sÌ   € äØ�1ˆXœZ×3Ñ3°V°HÀJÔOô€Dô ˜C ˜8¬:×+AÑ+AÀ4À&ÐPVÔ+WÔX€EØ�Y‰Y�u )ˆYÓ,€FØ�GÒÜØ�#˜Q˜CÑ Ü×(Ñ(¨&¨¸#¸s¸ÔDô
‰ô
 Ø�#˜Q˜CÑ Ü×(Ñ(¨&¨¸#¸s¸Ô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                 óx  — t        ddgt        | | ¬«      ddgdœ«      j                  ddg«      }t        g d¢t        || ¬«      g d	¢dœ«      j                  ddg«      }|j                  |d
d¬«      }t        ddgt        | | ¬«      ddgddgdœ«      j                  ddg«      }t	        j
                  ||«       y )Nr@   rª  r(   r   )rû   rü   r0   rû   rü   )r@   r@   rA   )r�   r/   r=   Ú_leftrb  rä   r�   r/   )rû   rü   Ú
value_leftÚvalue_right©r   r   r%  rŒ   r�   r�   )r«  r  rW   ra   r½   r–   s         r   Ú1test_join_multiindex_not_alphabetical_categoricalr  ý  sÞ   € ô à˜3�ZÜ! *¸ÔDØ˜�Vñ	
ó÷ �i�˜(Ð#Ó$ð 	ô â$Ü! &°ZÔ@Úñ	
ó÷ �i�˜(Ð#Ó$ð 
ð �Y‰Y�u g°xˆYÓ@€Fäà˜3�ZÜ! *¸ÔDØ˜a˜&Ø˜q˜6ñ		
ó÷ �i�˜(Ð#Ó$ð ô ×Ñ˜& (Õ+r   zleft_empty, how, exp)
)FrW   rW   )Fra   Úempty)Fri   r  )Frf   rW   )Frö  r  )TrW   r  )Tra   ra   )Tri   r  )Trf   ra   )Trö  r  c                 ó¤  — t        ddgddgdœd¬«      j                  d«      }t        dgd	gd
œd¬«      j                  d«      }| r|j                  d«      }n|j                  d«      }|j                  ||¬«      }|dk(  rCt        ddgddgt        j
                  t        j
                  gdœ«      }|j                  d«      }na|dk(  r2t        t        j
                  gdgd	gdœ«      }|j                  d«      }n*|dk(  r%t        ddgd¬«      }|dk7  r|j                  d«      }|dk(  rj                  «       }t        j                  |«       y )Nr   r(   r�   r/   ©r@   rA   rï   rI   r@   r=   )r@   rB   r   rX   rW   )r@   rA   rB   ra   )rA   r@   rB   r  rA   rB   r-  rö  rf   )
r   r%  ÚheadrŒ   r   rO  Úrename_axisr  r�   r�   )Ú
left_emptyrY   ÚexprW   ra   r½   r–   s          r   Útest_join_emptyr  &  s9  € ô  ˜A˜q˜6¨¨A¨Ñ/°wÔ?×IÑIÈ#ÓN€DÜ˜Q˜C q cÑ*°'Ô:×DÑDÀSÓI€EáØ�y‰y˜‹|‰à—
‘
˜1“ˆà�Y‰Y�u #ˆYÓ&€Fà
ˆf‚}Ü A q 6°°A°¼b¿f¹fÄbÇfÁfÐ=MÑNÓOˆØ×%Ñ% cÓ*‰Ø	�ŠÜ¤B§F¡F 8°1°#¸Q¸CÑ@ÓAˆØ×%Ñ% cÓ*‰Ø	�ŠÜ c¨3 Z°wÔ?ˆØ�'Š>Ø×+Ñ+¨CÓ0ˆHØ
ˆg‚~Ø×&Ñ&Ó(ˆä×Ñ˜& (Õ+r   c                  óB  — 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                  ||«       y )NÚtestr¹   r…   ©r†   r	  )r  r…   r  )r   r�   r�   )rß   r1   rC  r½   r–   s        r   Ú$test_join_empty_uncomparable_columnsr  P  s•   € ä
‹+€CÜ
˜V˜HÔ
%€CÜ
˜U NÐ3Ô
4€Cà�3‰Y€FÜ & Ô*€HÜ×Ñ˜& (Ô+à�3‰Y€FÜÒ!@ÔA€HÜ×Ñ˜& (Ô+à�3‰Y€FÜ .°%Ð!8Ô9€HÜ×Ñ˜& (Õ+r   zhow, valuesri   r~   rf   ra   ©r   r   r(   c                 óœ  — t        t        g d¢«      t        g d¢«      g d¢dœ«      j                  ddg«      }t        t        g d¢«      t        g d¢«      g d¢dœ«      j                  ddg«      }t        t        |«      t        |«      ||dœ«      j                  ddg«      }|j                  || ¬«      }t	        j
                  ||«       y )	Nr~   r   rD   rE   r  r   )rD   rE   rF   rG   rX   r  )rY   r  rß   r1   r–   r½   s         r   Ú3test_join_multiindex_categorical_output_index_dtyper  c  sÎ   € ô äšYÓ'ÜšYÓ'Úñ	
ó÷ �i��c�
Óð ô äš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¬«      ¬«      }| j                  |«      }t        dgdgd	œt        j                  dgdd g¬«      ¬«      }t	        j
                  ||«       |j                  | «      }t        dgdgd
œt        j                  dgd dg¬«      ¬«      }t	        j
                  ||«       y )Nr@   r(   )r�   r�   rý  rý   rK   rA   r   r  )rA   r@   rî  )rß   r1   Úresult12Ú
expected12Úresult21Ú
expected21s         r   Ú'test_join_multiindex_with_none_as_labelr  ‹  sî   € ä
Ø	ˆqˆcˆ
Ü×$Ñ$ f X°c¸4°[ÔAô€Cô Ø	ˆqˆcˆ
Ü×$Ñ$ f X°d¸C°[ÔAô€Cð
 �x‰x˜‹}€HÜØˆc˜˜ÑÜ×$Ñ$ f X°c¸4°[ÔAô€Jô ×Ñ˜( JÔ/à�x‰x˜‹}€HÜØˆc˜˜ÑÜ×$Ñ$ f X°d¸C°[ÔAô€Jô ×Ñ˜( JÕ/r   )r?  r#   )rW   r÷  rø  )rW   ))r   re  Ú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  r¾  r   r   ú<module>r"     s¢  ðÝ Û 	ã Û ç )Ð )ã ÷÷ ÷ õ ó÷P0ñ P0óf"4òJò"6ò*ó
0ò,ð" ‡�×ÑØ  C¨#¨s¨Ð#4°s¸UÀE¸NÐ6KÐ"Lóñ,óð,ò,ð( ‡�×ÑØà
ˆsˆ’_Ð%Ø
ˆQˆ’ÐØ
ˆsˆ’_Ð%á�|Ó$¡i°Ó&=Ð>Ù�|Ó$¡i°Ó&=¹yÈÓ?VÐWð	
ð	óñ,óð,ð: ‡�×ÑØòóñ,óð,ò6,ð& ‡�×ÑØà	’)ÐØ	’)ÐØ	’ÐØ	’)Ðð	óñ,óð,ó>0r   