Ë
    u™ãjé¡  ã                   óÆ  — d dl m 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 d-d„Z G d„ d«      Zd.d„Zd„ Zd	„ Zd
„ Zd/d„Zd„ Zej*                  j-                  ddddgfdddgfg«      d„ «       Zd„ Zej*                  j-                  dddgg d¢fddgg d¢fddgg d¢f e	j2                  d«       e	j2                  d«      g e	j2                  d«       e	j2                  d«       e	j2                  d«      gfg«      d „ «       Zej*                  j-                  d!g d"¢«      d#„ «       Zd$„ Zej*                  j-                  d%d&g d'¢fd(g d'¢fdg d'¢fd)g d*¢fg«      d+„ «       Zd,„ Zy)0é    )ÚdatetimeNc           	      ó^  — 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       úo/var/www/html/python-recuperauto-other/env/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«      ej                  jS                  d)«      d*„ «       «       Z*d+„ Z+d,„ Z,d-„ Z-d.„ Z.ej                  j                  d/g d0¢«      d1„ «       Z/ej                  j                  d/g d0¢«      d2„ «       Z0ej                  j                  d/g d3¢«      d4„ «       Z1d5„ Z2d6„ Z3d7„ Z4d8„ Z5d9„ Z6d:„ Z7y);ÚTestJoinc                 ó   — t        j                  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   é   ©ÚpdÚ	DataFramer   r   r   r   Ústandard_normal)ÚselfÚdfs     r   r$   zTestJoin.df   sr   € ä�\‰\ä%›Ü%›ÜŸ™×.Ñ.¨qÓ1×AÑAÀ"ÓEÜŸ™×.Ñ.¨qÓ1×AÑAÀ"ÓEñ	ó
ˆð ��6‘
˜Q‘ÑˆØˆ	r   c                 ó¶   — t        j                  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.df2(   sG   € ä�|‰|ä%¨Ô+Ü%¨a°2Ô6ÜŸ™×.Ñ.¨qÓ1×AÑAÀ"ÓEñó
ð 	
r   c                 óø   — g d¢g d¢g d¢t        j                  dd¬«      dœ}t        j                  |t        j                  g d¢t        ¬	«      ¬
«      }t        j                  |d   |d   dœ|d   ¬
«      }||fS )N)ç        ç      ð?ç       @ç      @ç      @)r+   r,   r+   r,   r+   )Úfoo1Úfoo2Úfoo3Úfoo4Úfoo5z1/1/2009é   )Úperiods©ÚAÚBÚCÚD)ÚaÚbÚcÚdÚe©Údtype©Úindexr8   r;   )ÚMergedAÚMergedDr:   )r    Úbdate_ranger!   ÚIndexÚobject)r#   ÚdataÚtargetÚsources       r   Útarget_sourcezTestJoin.target_source2   su   € ò +Ú*Ú9Ü—‘ 
°AÔ6ñ	
ˆô —‘ØœŸ™Ò!:Ä&ÔIô
ˆô —‘Ø˜S™	¨d°3©iÑ8ÀÀSÁ	ô
ˆð �vˆ~Ðr   c                 ó¦   — t        j                  ||d¬«      }t        |||dgd¬«       t        j                  ||«      }t        |||ddgd¬«       y )Nr   ©ÚonÚleft©Úhowr   ©r    ÚmergeÚ_check_join©r#   r$   r)   Újoined_key2Újoined_boths        r   Útest_left_outer_joinzTestJoin.test_left_outer_joinE   sK   € Ü—h‘h˜r 3¨6Ô2ˆÜ�B˜˜[¨6¨(¸Õ?ä—h‘h˜r 3Ó'ˆÜ�B˜˜[¨6°6Ð*:ÀÖGr   c                 ó¬   — t        j                  ||dd¬«      }t        |||dgd¬«       t        j                  ||d¬«      }t        |||ddgd¬«       y )Nr   Úright©rP   rS   rR   r   rT   rW   s        r   Útest_right_outer_joinzTestJoin.test_right_outer_joinL   óO   € Ü—h‘h˜r 3¨6°wÔ?ˆÜ�B˜˜[¨6¨(¸Õ@ä—h‘h˜r 3¨GÔ4ˆÜ�B˜˜[¨6°6Ð*:ÀÖHr   c                 ó¬   — t        j                  ||dd¬«      }t        |||dgd¬«       t        j                  ||d¬«      }t        |||ddgd¬«       y )Nr   Úouterr]   rR   r   rT   rW   s        r   Útest_full_outer_joinzTestJoin.test_full_outer_joinS   r_   r   c                 ó¬   — t        j                  ||dd¬«      }t        |||dgd¬«       t        j                  ||d¬«      }t        |||ddgd¬«       y )Nr   Úinnerr]   rR   r   rT   rW   s        r   Útest_inner_joinzTestJoin.test_inner_joinZ   r_   r   c                 óN   — t        j                  ||dd¬«      }d|v sJ ‚d|v sJ ‚y )Nr   ©z.fooz.bar)rP   Úsuffixesúkey1.foozkey1.bar©r    rU   ©r#   r$   r)   Újoineds       r   Útest_handle_overlapzTestJoin.test_handle_overlapa   s3   € Ü—‘˜"˜c fÐ7GÔHˆà˜VÑ#Ð#Ð#Ø˜VÑ#Ð#Ñ#r   c                 óP   — t        j                  ||ddd¬«      }d|v sJ ‚d|v sJ ‚y )Nr   r   rg   )Úleft_onÚright_onrh   ri   zkey2.barrj   rk   s       r   Ú!test_handle_overlap_arbitrary_keyz*TestJoin.test_handle_overlap_arbitrary_keyg   s=   € Ü—‘ØØØØØ%ô
ˆð ˜VÑ#Ð#Ð#Ø˜VÑ#Ð#Ñ#r   Úinfer_stringFTÚpyarrow)Úmarksc                 ó0  — |\  }}|j                  |d¬«      }t        j                  |d   |d   d¬«       t        j                  |d   |d   d¬«       t        j                  d	g d
¢i«      }t        j                  dg d¢ig d¢¬«      }|j                  |d	¬«      }t        j                  g d
¢g d¢dœ«      }	t        j
                  ||	«       t        j                  dgdgdggg d¢dg¬«      }
t        j                  dgdggddgdg¬«      }t        j                  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)Nr:   rO   rE   r8   F)Úcheck_namesrF   r;   Úkey©r<   r<   r=   r=   r>   r(   ©r   r   r   ©r<   r=   r>   rC   )r   r   r   r   r   ©rw   r(   r   r   é   Úone©rD   ÚcolumnsÚfooÚbarÚtwoÚthreer>   z^'E'$©ÚmatchÚEzxYou 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    r!   Úassert_frame_equalr   ÚisnanÚpytestÚraisesÚKeyErrorÚ
ValueError)r#   rM   rr   rK   rL   Úmergedr$   r)   rl   ÚexpectedÚdf_aÚdf_bÚdf_cÚmsgs                 r   Útest_join_onzTestJoin.test_join_onr   sñ  € ð '‰ˆ�à—‘˜V¨�Ó,ˆÜ
×Ñ˜v iÑ0°&¸±+È5ÕQÜ
×Ñ˜v iÑ0°&¸±+È5ÕQô �\‰\˜5Ò";Ð<Ó=ˆÜ�l‰l˜G¢YÐ/²ÔGˆØ—‘˜ �Ó'ˆÜ—<‘<Ú-ºÑHó
ˆô 	×Ñ˜f hÔ/ô �|‰|˜a˜S 1 #¨ s˜O²?ÈUÈGÔTˆÜ�|‰|˜e˜W u gÐ.°q¸!°fÀuÀgÔNˆÜ�|‰|˜a˜S 1 #˜J¨q°!¨f¸w¸iÔHˆØ—‘˜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   Æ*H Ç#HÈ H	ÈHc                 óÂ  — t        j                  t        j                  j	                  d«      j                  ddgd¬«      t        j                  j	                  d«      j                  d«      dœ«      }t        j                  t        j                  j	                  d«      j                  ddgd¬«      t        j                  j	                  d«      j                  d«      dœt         j                  j                  t        d«      d	d
gg«      ¬«      }d}t        j                  t        |¬«      5  t        j                  ||dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   ÚmÚfr|   ©Úsize©r<   r=   r&   r5   r8   r9   rC   úFlen\(left_on\) must equal the number of levels in the index of "right"r„   r<   T©ro   Úright_index©r    r!   r   r   r   Úchoicer"   Ú
MultiIndexÚfrom_productr   rŒ   r�   r�   rU   ©r#   r$   r)   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Ó@ñó
ˆô �l‰lä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°c¸3°ZÀbÐ4ÓIÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸bÓAñô —-‘-×,Ñ,¬e°A«h¸¸c¸
Ð-CÓDô
ˆð XˆÜ�]‰]œ:¨SÔ1ñ 	=Ü�H‰H�R˜ c°tÕ<÷	=÷ 	=ñ 	=ús   Ä2EÅEc           	      óÐ  — t        j                  t        j                  j	                  d«      j                  ddgd¬«      t        j                  j	                  d«      j                  d«      dœt         j                  j                  t        d«      t        d«      g«      ¬«      }t        j                  t        j                  j	                  d«      j                  ddgd	¬«      t        j                  j	                  d«      j                  d	«      dœ«      }d
}t        j                  t        |¬«      5  t        j                  ||dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   r˜   r™   r|   rš   rœ   ÚabcrC   r&   zFlen\(right_on\) must equal the number of levels in the index of "left"r„   r=   T)rp   Ú
left_index)r    r!   r   r   r   r¡   r"   r¢   Úfrom_arraysr   r   rŒ   r�   r�   rU   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Ó@ñô —-‘-×+Ñ+¬U°1«X´t¸E³{Ð,CÓDô
ˆô �l‰lä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°c¸3°ZÀbÐ4ÓIÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸bÓAñó
ˆð XˆÜ�]‰]œ:¨SÔ1ñ 	=Ü�H‰H�R˜ s°tÕ<÷	=÷ 	=ñ 	=ús   Ä9EÅE%c                 óÆ  — t        j                  t        j                  j	                  d«      j                  ddgd¬«      t        j                  j	                  d«      j                  d«      dœ«      }t        j                  t        j                  j	                  d«      j                  ddgd¬«      t        j                  j	                  d«      j                  d«      dœt         j                  j                  t        d«      d	d
gg«      ¬«      }d}t        j                  t        |¬«      5  t        j                  ||dddg¬«       d d d «       y # 1 sw Y   y xY w)Nr   r˜   r™   r|   rš   rœ   r&   r5   r8   r9   rC   z)len\(right_on\) must equal len\(left_on\)r„   r<   r=   )rp   ro   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Ó@ñó
ˆô �l‰lä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°c¸3°ZÀbÐ4ÓIÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸bÓAñô —-‘-×,Ñ,¬e°A«h¸¸c¸
Ð-CÓDô
ˆð ;ˆÜ�]‰]œ:¨SÔ1ñ 	@Ü�H‰H�R˜ s°S¸#°JÕ?÷	@÷ 	@ñ 	@ús   Ä2EÅE Ú
wrong_typer   ÚstrNr   r   c                 óx  — t        j                  dddgi«      }dt        |«      › d�}t        j                  t
        |¬«      5  t        j                  ||dd¬«       d d d «       t        j                  t
        |¬«      5  t        j                  ||dd¬«       d d d «       y # 1 sw Y   ŒGxY w# 1 sw Y   y xY w)Nr<   r   z.Can only merge Series or DataFrame objects, a z was passedr„   )ro   rp   )r    r!   ÚtyperŒ   r�   Ú	TypeErrorrU   )r#   r­   r$   r•   s       r   Ú)test_join_on_fails_with_wrong_object_typez2TestJoin.test_join_on_fails_with_wrong_object_typeÐ   s°   € ô �\‰\˜3  A ˜-Ó(ˆðÜ�jÓ!Ð" +ð/ð 	ô �]‰]œ9¨CÔ0ñ 	@Ü�H‰H�Z ¨S¸3Õ?÷	@ä�]‰]œ9¨CÔ0ñ 	@Ü�H‰H�R˜¨S¸3Õ?÷	@ð 	@÷	@ð 	@ú÷	@ð 	@ús   ÁB$ÂB0Â$B-Â0B9c                 óÞ   — |\  }}|j                  |d¬«      }|j                  ddi¬«      }|g d¢   }|j                  d«      }|j                  ||¬«      }t        j                  ||«       y )Nr:   rO   Úkey_0©r   )r´   r8   r9   r;   rE   rF   )r‡   ÚrenameÚpoprˆ   rŠ   )r#   rM   rK   rL   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 )Nr:   rO   rd   r]   r   )r‡   ÚreindexÚisnaÚallrˆ   Úassert_index_equalr   r   )r#   rM   rK   rL   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        j                  dg d¢i«      }t        j                  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 )Nrw   )r<   r<   r?   r=   r=   r>   r(   r   r   r<   r=   rC   rd   r]   rO   F)Úcheck_dtype)r    r!   r‡   Únotnarˆ   r‰   r¿   rD   ©r#   r$   r)   rl   r‘   s        r   Útest_join_on_innerzTestJoin.test_join_on_inner÷   s¼   € Ü�\‰\˜5Ò"@ÐAÓBˆÜ�l‰l˜G a¨ VÐ,°S¸#°JÔ?ˆà—‘˜ ¨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        j                  dg d¢i«      }t        j                  dg d¢ig d¢¬«      }|j                  |dg¬«      }|j                  |d¬«      }t        j                  ||«       y )Nrw   rx   r(   ry   rz   rC   rO   ©r    r!   r‡   rˆ   rŠ   rÆ   s        r   Útest_join_on_singlekey_listz$TestJoin.test_join_on_singlekey_list  sc   € Ü�\‰\˜5Ò";Ð<Ó=ˆÜ�l‰l˜G¢YÐ/²ÔGˆð —‘˜ % �Ó)ˆØ—7‘7˜3 5�7Ó)ˆä
×Ñ˜f hÕ/r   c                 ó”   — |\  }}|j                  |d   d¬«      }|j                  |dg   d¬«      }t        j                  ||«       y )NrE   r:   rO   )r‡   rˆ   rŠ   )r#   rM   rK   rL   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        j                  dddgi«      }t        j                  dgdgd¬«      }|j                  |d¬«      }t        j                  ddgddgdœ|j                  ¬«      }t        j                  ||«       y )	Nr<   r   r   r=   ©rD   ÚnamerO   rœ   rC   )r    r!   ÚSeriesr‡   rD   rˆ   rŠ   )r#   r$   Údsr¹   r‘   s        r   Útest_join_on_series_bugletz#TestJoin.test_join_on_series_buglet  sq   € ä�\‰\˜3  A ˜-Ó(ˆÜ�Y‰Y˜�s 1 #¨CÔ0ˆØ—‘˜ �Ó$ˆÜ—<‘< q¨! f°A°q°6Ñ :À"Ç(Á(ÔKˆÜ
×Ñ˜f hÕ/r   c                 ó®  — t        j                  t        j                  d«      ¬«      }d|d<   d|d<   t        j                  t        j                  dd«      ¬«      }d	|d
<   d|d<   |j	                  ||¬«      }t        |||¬«      }t        j                  ||«       |j	                  ||¬«      }t        |||¬«      }t        j                  ||«       y )Nr&   rC   TÚboolr€   Ústringr5   é   r   Úintr,   ÚfloatrR   )r    r!   r   Úaranger‡   Ú_join_by_handrˆ   rŠ   )r#   Ú	join_typeÚdf1r)   rl   r‘   s         r   Útest_join_index_mixedzTestJoin.test_join_index_mixed  sµ   € ä�l‰l¤§¡¨2£Ô/ˆØˆˆF‰ØˆˆH‰ä�l‰l¤§¡¨1¨bÓ!1Ô2ˆØˆˆE‰
ØˆˆG‰à—‘˜# 9�Ó-ˆÜ   c¨yÔ9ˆÜ
×Ñ˜f hÔ/à—‘˜# 9�Ó-ˆÜ   c¨yÔ9ˆÜ
×Ñ˜f hÕ/r   c                 óò  — t        j                  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        j                  dddddœt        j                  d
dd«      g d¢¬«      }|j                  |d¬«      }g d¢}|d d |_        |dd  |_        t        ||«      }t        j                  ||«       y )Nr,   r   r€   Tr7   r&   r~   r9   r;   r   )Ú_oneÚ_two©rh   )ÚA_oneÚB_oneÚC_oneÚD_oneÚA_twoÚB_twoÚC_twoÚD_twor'   )r    r!   r   rÙ   rB   Úint64Úbool_r‡   r   rÚ   rˆ   rŠ   )r#   rÜ   r)   rl   Úexpected_columnsr‘   s         r   Útest_join_index_mixed_overlapz&TestJoin.test_join_index_mixed_overlap-  sä   € Ü�l‰lØ˜A E°Ñ5Ü—)‘)˜B“-Ú(ô
ˆð
 �3‰x�~‰~¤§¡Ò)Ð)Ð)Ø�3‰x�~‰~¤§¡Ò)Ð)Ð)ä�l‰lØ˜A E°Ñ5Ü—)‘)˜A˜r 1Ó%Ú(ô
ˆð —‘˜#Ð(8�Ó9ˆò	
Ðð ' r¨Ð*ˆŒØ& q rÐ*ˆŒÜ   cÓ*ˆÜ
×Ñ˜f hÕ/r   c                 ó„   — t        j                  «       }|j                  t        j                  dgdgdg¬«      d¬«       y )Nr|   r   r8   r~   ra   rR   )r    r!   r‡   )r#   Úxs     r   Útest_join_empty_bugzTestJoin.test_join_empty_bugM  s0   € ä�L‰L‹NˆØ	�‰Œr�|‰|˜Q˜C¨ s°S°EÔ:ÀˆÕHr   c                 óæ  — t        j                  t        j                  j	                  d«      j                  d«      ddg¬«      }t        j                  t        j                  j	                  d«      j                  d«      «      }||d<   t        j                  t        j                  j	                  d«      j                  d«      d	g¬«      }|j                  |«       |j                  |«       y )
Nr   )é   r   r<   r=   rµ   rò   r>   )rò   r   Úq)r    r!   r   r   r   r"   rÐ   r‡   )r#   r<   r>   r?   s       r   Útest_join_unconsolidatedz!TestJoin.test_join_unconsolidatedR  s­   € ä�L‰LÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÈÈSÀzô
ˆô �I‰I”b—i‘i×+Ñ+¨AÓ.×>Ñ>¸rÓBÓCˆØˆˆ#‰Ü�L‰LÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÈÀuô
ˆð
 	
�‰ˆqŒ	Ø	�‰ˆq�	r   c                 óø  — t         j                  j                  g d¢g d¢gddg¬«      }t         j                  j                  g d¢g d¢gddg¬«      }t        j                  t        j
                  j                  d«      j                  d«      |d	g¬
«      }t        j                  t        j
                  j                  d«      j                  d«      |dg¬
«      }|j                  d¬«      }|j                  d¬«      }|j                  |d¬«      }t        j                  |j                  «      j                  t        j                  |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                  «      j                  t        j                  |j                  «      «      }|j                  |«      j                  |j                  |«      «      }|j                  |j                  _        t!        j"                  ||«       |j                  j                  |j                  k(  sJ ‚y )N)r<   r<   r<   r=   r=   r=   )r   r   r|   r   r   r|   ÚfirstÚsecond©Únames)r=   r=   r=   r>   r>   r>   r   é   zvar X)rJ   rD   r   zvar Yr   )Úlevelra   rR   r   )r    r¢   r©   r!   r   r   r   r"   Ú
sort_indexr‡   rH   ÚvaluesÚunionr¼   rù   rD   rˆ   rŠ   )r#   Úindex1Úindex2rÜ   r)   rl   Úex_indexr‘   s           r   Útest_join_multiindexzTestJoin.test_join_multiindexa  sF  € Ü—‘×*Ñ*Ú+Ò-?Ð@Ø˜HÐ%ð +ó 
ˆô
 —‘×*Ñ*Ú+Ò-?Ð@Ø˜HÐ%ð +ó 
ˆô
 �l‰lÜ—‘×&Ñ& qÓ)×9Ñ9¸!Ó<ØØ�Iô
ˆô
 �l‰lÜ—‘×&Ñ& qÓ)×9Ñ9¸!Ó<ØØ�Iô
ˆð �n‰n 1ˆnÓ%ˆØ�n‰n 1ˆnÓ%ˆà—‘˜# 7�Ó+ˆÜ—8‘8˜FŸM™MÓ*×0Ñ0´·±¸&¿-¹-Ó1HÓIˆØ—;‘;˜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Ó?ˆÜ—8‘8˜FŸM™MÓ*×0Ñ0´·±¸&¿-¹-Ó1HÓIˆØ—;‘;˜xÓ(×-Ñ-¨c¯k©k¸(Ó.CÓDˆØ%Ÿ|™|ˆ�‰Ôä
×Ñ˜f hÔ/Ø�|‰|×!Ñ! V§\¡\Ò1Ð1Ñ1r   c                 ó0  — g d¢}g d¢}t         j                  j                  d«      j                  t	        |«      «      }t        j                  |||dœ«      }|}t        j                  t         j                  j                  d«      j                  d«      |g d¢¬«      }|j                  |dd	gd
¬«      }t        j                  ||j                  «       dd	gddgd
d¬«      }t        j                  ||dd	gdd
d¬«      }	t        j                  ||	j                  |«      «       t        j                  ||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   rJ   )r&   r|   )Új_oneÚj_twoÚj_threer~   r   r   rd   r]   rö   r÷   F)ro   rp   rS   ÚsortT)rp   r¨   rS   r
  r   ©Úaxis)r   r   r   r"   r   r    r!   r‡   rU   Úreset_indexrˆ   rŠ   Úreindex_likeÚdroprD   Úis_monotonic_increasing)
r#   Ú%lexsorted_two_level_string_multiindexr   r   rJ   rD   Úto_joinrl   r‘   Ú	expected2s
             r   Útest_join_inner_multiindexz#TestJoin.test_join_inner_multiindexŒ  s|  € ÚVˆò
ˆô �y‰y×$Ñ$ QÓ'×7Ñ7¼¸D»	ÓBˆÜ�|‰| T°4ÀÑFÓGˆà5ˆÜ—,‘,Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ØÚ1ô
ˆð —‘˜7¨°Ð'7¸W�ÓEˆÜ—8‘8ØØ×ÑÓ!Ø˜VÐ$Ø˜xÐ(ØØô
ˆô —H‘HØØØ˜fÐ%ØØØô
ˆ	ô 	×Ñ˜f i×&<Ñ&<¸VÓ&DÔEä—H‘HØØØ˜fÐ%ØØØô
ˆ	ð —=‘= '¨8Ð!4¸1�=Ó=ˆØŸ™ˆŒà�|‰|×3Ò3Ð3Ð3Ü
×Ñ˜f hÕ/r   c                 ó–  — t        j                  ddgg d¢¬«      }|j                  dg«      j                  dddgi«      }t        j                  dd	gg d
¢¬«      }|j	                  d«      }t        j                  t         j                  j                  d¬«      5  t        j                  ||dd¬«       d d d «       y # 1 sw Y   y xY w)N©r   r   r|   ©r'   r5   rú   rz   rµ   r<   r=   ÚmeanÚsum)é   r&   rú   ©r<   r=   r?   z-Not allowed to merge between different levelsr„   T©r¨   rŸ   )
r    r!   ÚgroupbyÚaggÚ	set_indexrŒ   r�   ÚerrorsÚ
MergeErrorrU   )r#   r$   Únew_dfÚother_dfs       r   Ú#test_join_hierarchical_mixed_raisesz,TestJoin.test_join_hierarchical_mixed_raisesÊ  s«   € ô �\‰\˜9 iÐ0º/ÔJˆØ—‘˜S˜EÓ"×&Ñ&¨¨f°e¨_Ð'=Ó>ˆÜ—<‘< ¨JÐ 7ÂÔQˆØ×%Ñ% cÓ*ˆä�]‰]Ü�I‰I× Ñ Ð(Wô
ñ 	Jô �H‰H�V˜X°$ÀDÕI÷	J÷ 	Jñ 	Jús   ÂB?Â?Cc                 ó„  — t        j                  t        j                  j	                  d«      j                  d«      ddgt        j                  ¬«      }t        j                  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        j                  |||dœ«      }t        j                  |||dœ«      }t        j                  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   r<   r=   ©r   rB   )r&   r   r>   Úfloat64Úfloat32r   r5   éd   rê   rz   Úmdrµ   Trž   )r    r!   r   r   r   r"   r'  r(  r‡   ÚdtypesÚintegersÚastyperU   rˆ   rŠ   )
r#   r<   r=   rl   r>   r$   ÚxpdfÚsÚrsÚxps
             r   Útest_join_float64_float32z"TestJoin.test_join_float64_float32×  s@  € Ü�L‰LÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=Ø˜#�JÜ—*‘*ô
ˆô
 �L‰LÜ�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ˆÜ�\‰\ ¨°Ñ2Ó3ˆÜ�|‰| !¨!°!Ñ4Ó5ˆÜ�L‰LÜ�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        j                  ddgddgddgdœ«      }t        j                  ddgddgddgdœ«      }t        j                  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        j                  ||ddgd¬«      }t        j                  ||ddgd¬«      }	|j                  «       }|	|j                     }	|	j                  j                  d«      |	d<   |	j                  j                  d«      |	d<   t        j                  ||	«       t        j                  g d¢g d¢g d¢dœ«      }t        j                  g d¢g d¢g d¢dœ«      }t        j                  g d¢g d¢g d¢dœ«      }|j                  ddg«      }|j                  ddg«      }|j                  ddg«      }|j                  ||gd¬«      }t        j                  ||ddgd¬«      }t        j                  ||ddgd¬«      }	|j                  «       }t        j                  ||	j                  d d …|j                  f   «       t        j                  g d¢g d¢t        j                  j                  d«      j!                  d«      t        j                  j                  d«      j!                  d«      dœ«      }
t        j"                  t        j$                  t        j&                  d«      d«      t        j$                  t        j&                  dt        j(                  ¬«      d«      d¬«      }|
j                  |d¬«      }|
j                  |d¬«      }|
j                  |d¬«      }|
j                  |d ¬«      }t        j                  ||«       t        j                  ||«       t        j                  ||«       y )!Nr   r&   é   rz   r   r)  éÈ   r  éè  éÐ  )r<   r=   r@   r<   r=   ra   rR   r]   rê   )r   r   r   )r&   r4  rò   )r   r   r   )r)  r5  i,  )r6  r7  i¸  rd   )r€   r�   r€   r�   r€   r�   r€   r€   )r}   r}   r‚   rƒ   r‚   r‚   r}   rƒ   é   r7   rA   ÚTESTrÎ   rQ   r\   )r    r!   r  r‡   rU   r  r   r<   r-  r=   rˆ   rŠ   Úlocr   r   r   r"   rÐ   ÚrepeatrÙ   rê   )r#   rÜ   r)   Údf3Úidf1Úidf2Úidf3r¹   Údf_partially_mergedr‘   r$   r/  rd   ra   rQ   r\   s                   r   Útest_join_many_non_unique_indexz(TestJoin.test_join_many_non_unique_indexø  sB  € Ü�l‰l ! Q ¨q°!¨f¸BÀ¸8ÑDÓEˆÜ�l‰l ! Q ¨q°!¨f¸CÀ¸:ÑFÓGˆÜ�l‰l ! Q ¨q°!¨f¸DÀ$¸<ÑHÓIˆØ�}‰}˜c 3˜ZÓ(ˆØ�}‰}˜c 3˜ZÓ(ˆØ�}‰}˜c 3˜ZÓ(ˆà—‘˜D $˜<¨W�Ó5ˆä Ÿh™h s¨C°S¸#°JÀGÔLÐÜ—8‘8Ð/°¸#¸s¸ÈÔQˆà×#Ñ#Ó%ˆØ˜FŸN™NÑ+ˆØ Ÿ
™
×)Ñ)¨'Ó2ˆ�‰Ø Ÿ
™
×)Ñ)¨'Ó2ˆ�‰Ü
×Ñ˜f hÔ/ä�l‰l¢²ÂÑNÓOˆÜ�l‰l¢²ÂÑQÓRˆÜ�l‰l¢²ÒASÑTÓUˆØ�}‰}˜c 3˜ZÓ(ˆØ�}‰}˜c 3˜ZÓ(ˆØ�}‰}˜c 3˜ZÓ(ˆØ—‘˜D $˜<¨W�Ó5ˆä Ÿh™h s¨C°S¸#°JÀGÔLÐÜ—8‘8Ð/°¸#¸s¸ÈÔQˆà×#Ñ#Ó%ˆä
×Ñ˜f h§l¡l²1°f·n±nÐ3DÑ&EÔFô �\‰\âMÚQÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@Ü—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@ñ	ó
ˆô �I‰IÜ�I‰I”b—i‘i “l AÓ&Ü—)‘)œBŸI™I a¬r¯x©xÔ8¸!Ó<Øô
ˆð
 —‘˜˜w�Ó'ˆØ—‘˜˜w�Ó'ˆØ�w‰w�q˜fˆwÓ%ˆØ—‘˜˜w�Ó'ˆÜ
×Ñ˜e UÔ+Ü
×Ñ˜e TÔ*Ü
×Ñ˜e UÕ+r   zDignore:The 'future.infer_string' option:pandas.errors.Pandas4Warningc           	      ó
  — t        j                  d|«      5  t        j                  g d¢g d¢dœ«      }t        j                  dg d¢ig d¢¬«      }|j                  |d	d
¬«      }t        j                  g d¢g d¢g d¢dœg d¢¬«      }t	        j
                  ||«       |j                  |d	d¬«      }t	        j                  |j                  t        j                  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{   Úvalue2rz   )r�   r  r€   rC   rw   T)rP   r
  )r�   r  r€   r€   )r   r|   r   r'   )r<   r=   r>   r>   )rw   r(   rD  )r   r   r   r|   Fr'   )Úexact)
r    Úoption_contextr!   r‡   rˆ   rŠ   r¿   rD   rH   r   )r#   rr   rQ   r\   rl   r‘   s         r   Útest_join_sortzTestJoin.test_join_sort0  sá   € ô ×ÑÐ4°lÓCñ 	PÜ—<‘<Ú4º|ÑLóˆDô —L‘LØš?Ð+Ò3HôˆEð —Y‘Y˜u¨°T�YÓ:ˆFÜ—|‘|â7Ú)Ú2ñò
 #ôˆHô ×!Ñ! &¨(Ô3ð —Y‘Y˜u¨°U�YÓ;ˆFÜ×!Ñ! &§,¡,´·±¼¸q»Ó0BÈ$ÕO÷+	P÷ 	Pñ 	Pús   —CC9Ã9Dc                 óf  — t        j                  dg d¢ig d¢¬«      }t        j                  dg d¢ig d¢¬«      }|j                  |«      }t        j                  g d¢d	t        j                  d
dt        j                  gdœg d¢¬«      }t        j                  ||«       t        j                  dg d¢ig d¢¬«      }t        j                  dg d¢ig d¢¬«      }|j                  |«      }t        j                  g d¢d	d
d
t        j                  gdœg d¢¬«      }t        j                  ||«       y )Nr<   rC  )r   r   r|   r<   rC   r=   )r5   rú   r  r8  )r   r|   r|   r'   )r   r   r|   r|   r'   r5   rú   r  rœ   )r   r   r|   r|   r<   )r   r   r   r<   )r    r!   r‡   r   Únanrˆ   rŠ   )r#   rÜ   r)   r¹   r‘   r<  Údf4s          r   Ú test_join_mixed_non_unique_indexz)TestJoin.test_join_mixed_non_unique_indexN  så   € ä�l‰l˜C¢Ð.²nÔEˆÜ�l‰l˜C¢Ð.²lÔCˆØ—‘˜#“ˆÜ—<‘<Ú!¨¬B¯F©F°A°q¼"¿&¹&Ð(AÑBÚ#ô
ˆô 	×Ñ˜f hÔ/ä�l‰l˜C¢Ð.²nÔEˆÜ�l‰l˜C¢Ð.²lÔCˆØ—‘˜#“ˆÜ—<‘<Ú a¨¨A¬r¯v©vÐ%6Ñ7º~ô
ˆô 	×Ñ˜f hÕ/r   c           	      ó.  — t        j                  ddd¬«      }t        j                  t        t	        t        |«      «      «      |dg¬«      }t        j                  ||g«      }|j                  |dd¬	«      }t        j                  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)r6   ÚfreqÚpnumr~   rd   )Ú Ú_df2©rS   rh   rA   r   éÿÿÿÿr   Úpnum_df2©r   rD   )r    Úperiod_ranger!   r   r   r   Úconcatr‡   r   r
   rÙ   rê   r;  Úreshaperü   rD   rˆ   rŠ   )r#   rD   r$   r)   r¹   r‘   s         r   Ú!test_join_non_unique_period_indexz*TestJoin.test_join_non_unique_period_indexa  sÉ   € ä—‘ °b¸sÔCˆÜ�\‰\œ$œu¤S¨£ZÓ0Ó1¸ÈÈÔQˆÜ�i‰i˜˜R˜Ó!ˆØ—‘˜ '°L�ÓAˆÜ—<‘<Ü�G‰G”B—I‘I˜b¬¯©Ô1×8Ñ8¸Ó;×CÑCÀBÈÓJÈAÓNØ˜ZÐ(Ø—.‘.Ó"×(Ñ(ô
ˆô
 	×Ñ˜f hÕ/r   c                 óf  — t        j                  t        j                  j	                  d«      j                  d«      g d¢¬«      }|j                  ddd«       |j                  ddd	«       |j                  d«      }|j                  d
¬«      }|j                  «       }|j                  |d¬«       y )Nr   )r4  rú   )r<   r=   r>   r?   r@   r™   rµ   r   Úidr5   Údtr€   T)Únumeric_only)rQ  Ú_rightrá   )r    r!   r   r   r   r"   Úinsertr  r  Úcountr‡   )r#   r$   ÚgroupedÚmnÚcns        r   Ú test_mixed_type_join_with_suffixz)TestJoin.test_mixed_type_join_with_suffixn  s�   € ä�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=Ú2ô
ˆð 	�	‰	�!�T˜1ÔØ
�	‰	�!�T˜5Ô!à—*‘*˜TÓ"ˆØ�\‰\ tˆ\Ó,ˆØ�]‰]‹_ˆð 	�‰�˜^ˆÕ,r   c                 ó
  — t        j                  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µ   r<   r=   r>   r?   r@   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ra   rR   rd   r8  z?Joining multiple DataFrames only supported for joining on indexr„   rO   )r    r!   r   r   r   r"   r   r‡   rˆ   rŠ   rD   rŒ   r�   r�   )r#   r$   rk  rl   rn  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   ÅE9Å9FrS   )rQ   r\   rd   ra   c                 óˆ  — t        j                  dg d¢ig d¢¬«      }t        j                  dg d¢ig d¢¬«      }|dk(  r!t        j                  g d	¢g d¢d
œg d¢¬«      }n t        j                  g d¢g d¢d
œg d¢¬«      }|dk(  s|r|j                  «       }|j                  |g||¬«      }t	        j
                  ||«       y )Nr<   r  )r   r   r   rC   r=   r  ©r   r   r   r\   )r|   r   r   rœ   )rú   r5   r'   ra   ©rS   r
  )r    r!   rü   r‡   rˆ   rŠ   ©r#   rS   r
  r$   r)   r‘   r¹   s          r   Útest_join_many_sort_uniquez#TestJoin.test_join_many_sort_uniqueœ  sœ   € ô �\‰\˜3¢	Ð*²)Ô<ˆÜ�l‰l˜C¢Ð+²9Ô=ˆØ�'Š>Ü—|‘|ª)º)Ñ$DÊIÔV‰Hä—|‘|ª)º)Ñ$DÊIÔVˆHØ�'Š>™Tà×*Ñ*Ó,ˆHØ—‘˜#˜ C¨d�Ó3ˆÜ
×Ñ˜f hÕ/r   c                 óÐ  — t        j                  dg d¢ig d¢¬«      }t        j                  dg d¢ig d¢¬«      }|dk(  r!t        j                  d	d
gddgdœddg¬«      }nÉ|dk(  r0t        j                  g d¢t        j                  ddgdœg d¢¬«      }n”|dk(  r?t        j                  t        j                  ddt        j                  gg d¢dœg d¢¬«      }nPt        j                  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 )Nr<   r  )r|   r   r   rC   r=   r  rq  rd   r   r|   r5   rœ   r   rQ   g      @r\   r-   r.   )r'   r5   r5   rú   )r   r   r   r   r,   g      @r/   )r   r   r   r   r|   rr  )r    r!   r   rI  rü   r‡   rˆ   rŠ   rs  s          r   Útest_join_many_sort_nonuniquez&TestJoin.test_join_many_sort_nonunique«  s-  € ô �\‰\˜3¢	Ð*²)Ô<ˆÜ�l‰l˜C¢Ð+²9Ô=ˆØ�'Š>Ü—|‘|¨1¨a¨&¸¸1°vÑ$>ÀqÈ!ÀfÔM‰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   )rd   ra   rQ   r\   c                 ó²  — t        j                  t        ddd«      t        ddd«      g«      }t        j                  dddgi|¬«      }t        j                  dddgi|¬«      }|j	                  |g|¬«      }|dk(  r't        j                  ddgddgd	œ|d   |d
   g¬«      }nt        j                  ddgddgd	œ|¬«      }t        j                  ||«       y )Niè  r   r   r<   rC   r=   rR   ra   rœ   r   )r    rH   r   r!   r‡   rˆ   rŠ   )r#   rS   rD   r$   r)   r¹   r‘   s          r   Ú test_join_many_datetime_unsortedz)TestJoin.test_join_many_datetime_unsortedÇ  sÐ   € ô —‘œ( 4¨¨AÓ.´¸¸qÀ!Ó0DÐEÓFˆÜ�\‰\˜3  A ˜-¨uÔ5ˆÜ�l‰l˜C ! Q ˜=°Ô6ˆØ—‘˜#˜ C�Ó(ˆØ�'Š>ä—|‘|Ø˜!�f A q 6Ñ*°5¸±8¸UÀ1¹XÐ2Fô‰Hô —|‘|¨1¨a¨&¸¸1°vÑ$>ÀeÔLˆHÜ
×Ñ˜f hÕ/r   c                 óp  — t        j                  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   )r8  r'   r7   rµ   r€   r�   r'   rw   r8   r9   r:   r;   )
r    r!   r   r   r   r"   r:  r‡   rˆ   rŠ   )r#   r$   rÜ   r)   r<  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           
      ó4  — t        j                  t        j                  t        j                  j                  d«      j                  d«      g d¢¬«      t        j                  t        j                  j                  d«      j                  ddd¬«      j                  dd«      d	d
g¬«      gd¬«      }t        j                  ||gd¬«      }|j                  |d¬«      }|j                  |_
        t        j                  ||«       t        j                  t        j                  j                  d«      j                  d«      ddg¬«      }t        j                  t        j                  j                  d«      j                  d«      ddg¬«      }t        j                  t        j                  j                  d«      j                  d«      ddg¬«      }t        j                  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'   )r8   r8   r9   r9   rµ   r   r&   r4  rš   r8   r:   r   r  )rQ  Ú_2rá   )r'   r   rï   ÚyTr  ra   )r¨   rŸ   rS   z0Passing 'suffixes' which cause duplicate columnsr„   )r    rX  r!   r   r   r   r"   r,  rY  r‡   r   rˆ   rŠ   rU   rŒ   r�   r   r!  )	r#   r$   r‘   r¹   Úwrï   r}  ÚzÚdtas	            r   Útest_join_dupszTestJoin.test_join_dupsä  s  € ä�Y‰Yä—‘Ü—I‘I×)Ñ)¨!Ó,×<Ñ<¸WÓEÚ0ôô —‘Ü—I‘I×)Ñ)¨!Ó,×5Ñ5°a¸À"Ð5ÓE×MÑMÈbÐRSÓTØ  #˜Jôð	ð ô
ˆô —9‘9˜b "˜X¨AÔ.ˆØ—‘˜ j�Ó1ˆØ!×)Ñ)ˆŒÜ
×Ñ˜f hÔ/ô �L‰LÜ�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<ÀsÈCÀjô
ˆô �L‰LÜ�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<ÀsÈCÀjô
ˆô �L‰LÜ�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<ÀsÈCÀjô
ˆô �L‰LÜ�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   É0JÊJc                 ó’  — t         j                  j                  t        d«      t        d«      ddggg d¢¬«      }t        j                  dt        d«      i|¬	«      }t         j                  j                  t        d«      t        d«      gddg¬«      }t        j                  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é   rC   Úv2r  r)  r]   r�   r„   )r    r¢   r£   r   r!   r   r‡   r  rU   r  rˆ   rŠ   rŒ   r�   r�   )
r#   rÛ   Ú	leftindexrQ   Ú
rightindexÚir\   r¹   r‘   r•   s
             r   Útest_join_multi_to_multiz!TestJoin.test_join_multi_to_multi  s�  € ä—M‘M×.Ñ.Ü�%‹[œ$˜t›* q¨! fÐ-Ò5Ið /ó 
ˆ	ô �|‰|˜T¤5¨£9Ð-°YÔ?ˆä—]‘]×/Ñ/Ü�%‹[œ$˜t›*Ð%¨e°T¨]ð 0ó 
ˆ
ô —‘˜d´e¸A¸q³kÖ$B° S¨1£WÒ$BÐCÈ:ÔVˆà—‘˜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Ô=÷	>ð 	>ùò %C÷	5ð 	5ú÷	>ð 	>ús   Â2F,
ÅF1ÆF=Æ1F:Æ=Gc                 óÜ  — t        j                  t        j                  ddd¬«      t        d«      dœ«      }t        j                  t        j                  ddd¬«      t        d«      d	œ«      }|j	                  |j                  d
«      d
¬«      }|j                  «       }t        j                  t        j                  gdz  t        d«      z   «      |d<   t        j                  ||«       y )Nz
2018-01-01r5   zAmerica/Chicago)Ústartr6   ÚtzÚabcde)ÚdateÚvalsz
2018-01-03Útuvwx)r�  Úvals_2r�  rO   r   Útuvr“  )r    r!   Ú
date_ranger   r‡   r  ÚcopyrÐ   r   rI  rˆ   rŠ   )r#   rÜ   r)   r¹   r‘   s        r   Ú#test_join_on_tz_aware_datetimeindexz,TestJoin.test_join_on_tz_aware_datetimeindex,  sÂ   € ä�l‰läŸ™Ø&°Ð6Gôô ˜W›ñ	ó
ˆô �l‰läŸ™Ø&°Ð6Gôô ˜w›-ñ	ó
ˆð —‘˜#Ÿ-™-¨Ó/°F�Ó;ˆØ—8‘8“:ˆÜŸY™Y¬¯© x°!¡|´d¸5³kÑ'AÓBˆ�ÑÜ
×Ñ˜f hÕ/r   c                 óx  — t        j                  g d¢g d¢g d¢g d¢gg d¢¬«      }t        j                  |d   «      j                  d«      |d<   t        j                  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        j                  t        j                  d«      dddgt        j                  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š  r4  )rœ  r›  é   )rï   r}  r<   rµ   rï   zM8[ns])r™  r›  r   )rœ  rš  r   )rï   r}  r  r   r'   rV  r}  rO   z2012-08-02 00:00:00r›  r   rÖ   z2013-04-06 00:00:00rš  r4  )rï   r}  r  r<   r~   )	r    r!   Úto_datetimer-  r‡   r  Ú	Timestamprˆ   rŠ   )r#   ÚdfaÚdfbr¹   r‘   s        r   Útest_join_datetime_stringz"TestJoin.test_join_datetime_stringD  s%  € ä�l‰lâ'Ú'Ú'Ú'ð	ò $ô
ˆô —>‘> # c¡(Ó+×2Ñ2°8Ó<ˆˆC‰Ü�l‰lÚ#Ò%;Ð<Ú#Ø�a�&ô
ˆô
 —>‘> # c¡(Ó+×2Ñ2°8Ó<ˆˆC‰Ø—‘˜#Ÿ-™-¨¨c¨
Ó3¸¸c¸
�ÓCˆÜ—<‘<ä—‘Ð3Ó4°c¸1¸bÐAÜ—‘Ð3Ó4°c¸1¸bÐAðð �a�&Ú(ô
ˆð ! ™×,Ñ,¨XÓ6ˆ�‰Ü
×Ñ˜f hÕ/r   c                 ó¾  — ddg}t        j                  ||¬«      }t        j                  t        |«      t        |«      ¬«      }t        j                  d|i|¬«      }t        j                  dt        |«      i|¬«      }|j	                  |«      }t        j                  ddgddgdœt        j                  ddgddg¬«      ¬«      }t        j                  ||«       y )Nr<   r=   ©Ú
categoriesÚc1rC   Úc2)r¦  r§  )r    ÚCategoricalIndexÚreversedr!   r‡   rˆ   rŠ   )r#   ÚixÚid1Úid2rÜ   r)   r¹   r‘   s           r   Ú test_join_with_categorical_indexz)TestJoin.test_join_with_categorical_indexb  s¹   € à�3ˆZˆÜ×!Ñ! "°Ô4ˆÜ×!Ñ!¤(¨2£,¼8ÀB»<ÔHˆä�l‰l˜D "˜:¨SÔ1ˆÜ�l‰l˜D¤(¨2£,Ð/°sÔ;ˆØ—‘˜#“ˆÜ—<‘<Ø˜�: c¨3 ZÑ0Ü×%Ñ% s¨C j¸cÀ3¸ZÔHô
ˆô 	×Ñ˜f hÕ/r   )8Ú__name__Ú
__module__Ú__qualname__rŒ   Úfixturer$   r)   rM   rZ   r^   rb   re   rm   rq   Ú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$  r2  rA  ÚfilterwarningsrG  rK  rZ  re  ro  rt  rv  rx  rz  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ò@Iò
ò)2òV:0ò|Jò&òB6,ðp ‡[�[×ÑØ˜  §¡¨T¸¸¿¹ÀyÓ9QÔ RÐSóð ‡[�[×ÑØNóñPóóðPò0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   rQ   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)rQ   rd   zkey z! should not have been in the join)r\   rd   )
rÅ   r¾   r  Ú_restrict_to_columnsr   Ú	get_groupÚ_assert_same_contentsrŽ   ÚAssertionErrorÚ_assert_all_na)rQ   r\   r¹   r¸   rS   ÚlsuffixÚrsuffixr>   Úleft_groupedÚright_groupedÚ	group_keyÚgroupÚl_joinedÚr_joinedÚlgroupÚerrÚrgroups                    r   rV   rV   r  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 )NrQ  c                 ó(   •— | j                  ‰d«      S )NrQ  )Úreplace)rï   Úsuffixs    €r   ú<lambda>z&_restrict_to_columns.<locals>.<lambda>   s   ø€ ¨1¯9©9°V¸RÓ+@€ r   rµ   )r   rÍ  r:  r¶   )rÅ  r   rÎ  r>   Ú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_chunkrL   Ú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¸   r>   s       r   r¿  r¿  ³  s:   € Øò *ˆØ�‰=ØØ˜!‰}×!Ñ!Ó#×'Ñ'Õ)Ð)Ð)ñ*r   c                 ó<  — | j                   j                  |j                   |¬«      }| j                  |«      }|j                  |«      }| j                  j	                  |j                  «      }|j                  «       D ]
  \  }}|||<   Œ |j                  |¬«      S )NrR   rµ   )rD   r‡   r¼   r   ÚappendÚitems)	r<   r=   rS   Ú
join_indexÚa_reÚb_reÚresult_columnsrÀ   r/  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        j                  ddit         j                  j                  dgd¬«      ¬«      } t        j                  ddit         j                  j                  d	gd
¬«      ¬«      }| j	                  |d¬«      }t        j                  dgdgdœt         j                  j                  dgd¬«      ¬«      }t        j                  ||«       y )Nr@   r5   )r   r   r'   r  rø   ©rJ   rD   r™   rú   )r   r|   )r=   r>   rd   rR   )r@   r™   )r   r   r'   r|   )r<   r=   r?   r>   rC   ©r    r!   r¢   Úfrom_tuplesr‡   rˆ   rŠ   )rQ   r\   r¹   r‘   s       r   Ú.test_join_inner_multiindex_deterministic_orderrì  Ç  s¹   € ä�<‰<Ø�1ˆXÜ�m‰m×'Ñ'¨¨¸?Ð'ÓKô€Dô �L‰LØ�1ˆXœRŸ]™]×6Ñ6¸°xÀzÐ6ÓRô€Eð �Y‰Y�u 'ˆYÓ*€FÜ�|‰|Øˆc˜˜ÑÜ�m‰m×'Ñ'¨¨Ð>RÐ'ÓSô€Hô ×Ñ˜& (Õ+r   )Ú	input_colÚoutput_colsr=   r<   Úa_xÚa_yc                 ó  — t        j                  dddgi«      }t        j                  | ddgi«      }|j                  |dd¬«      }t        j                  |d   g d	¢|d   g d
¢i«      }t        j                  ||«       y )Nr<   r   r|   r'   Úcross)Ú_xÚ_yrS  r   )r   r   r|   r|   )r|   r'   r|   r'   rÉ   )rí  rî  rQ   r\   r¹   r‘   s         r   Útest_join_crossrõ  Ø  sy   € ô
 �<‰<˜˜q !˜f˜Ó&€DÜ�L‰L˜) a¨ VÐ,Ó-€EØ�Y‰Y�u '°LˆYÓA€FÜ�|‰|Ø	�Q‰š {°1¡~²|ÐDó€Hô ×Ñ˜& (Õ+r   c                 ó>  — t        j                  ddit         j                  j                  dgd¬«      ¬«      }t        j                  ddit         j                  j                  d	gd
¬«      ¬«      }|j	                  || ¬«      }| dk(  r?t        j                  dgdgdœt         j                  j                  dgddg¬«      ¬«      }n>t        j                  dgdgdœt         j                  j                  dgddg¬«      ¬«      }t        j                  ||«       y )Nr>   r|   )r   r   rœ   rø   ré  r?   r'   )r   )r=   rR   r\   )r>   r?   )r   r   r=   r<   rC   rê  )rÛ   rQ   r\   r¹   r‘   s        r   Útest_join_multiindex_one_levelr÷  æ  sü   € ä�<‰<Ø�1ˆXœRŸ]™]×6Ñ6¸°xÀzÐ6ÓRô€Dô �L‰LØ�1ˆXœRŸ]™]×6Ñ6¸°vÀVÐ6ÓLô€Eð �Y‰Y�u )ˆYÓ,€FØ�GÒÜ—<‘<Ø�#˜Q˜CÑ Ü—-‘-×+Ñ+¨V¨H¸SÀ#¸JÐ+ÓGô
‰ô
 —<‘<Ø�#˜Q˜CÑ Ü—-‘-×+Ñ+¨V¨H¸SÀ#¸JÐ+ÓGô
ˆô ×Ñ˜& (Õ+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        j                  ddgt        j                  | | ¬«      ddgdœ«      j                  ddg«      }t        j                  g d¢t        j                  || ¬«      g d	¢dœ«      j                  ddg«      }|j	                  |d
¬«      }t        j                  ddgt        j                  | | ¬«      ddgddgdœ«      j                  ddg«      }t        j                  ||«       y )Nr8   r¤  r   r   )rö   r÷   r(   rö   r÷   )r8   r8   r9   )r|   r'   r5   )Ú_leftr_  rá   r|   r'   )rö   r÷   Ú
value_leftÚvalue_right©r    r!   ÚCategoricalr  r‡   rˆ   rŠ   )r¥  rý   rQ   r\   r¹   r‘   s         r   Ú1test_join_multiindex_not_alphabetical_categoricalr  ü  sõ   € ô$ �<‰<à˜3�ZÜ—n‘n Z¸JÔGØ˜�Vñ	
ó÷ �i�˜(Ð#Ó$ð 	ô �L‰Lâ$Ü—n‘n V¸
ÔCÚñ	
ó÷ �i�˜(Ð#Ó$ð 
ð �Y‰Y�uÐ':ˆYÓ;€Fä�|‰|à˜3�ZÜ—n‘n Z¸JÔGØ˜a˜&Ø˜q˜6ñ		
ó÷ �i�˜(Ð#Ó$ð ô ×Ñ˜& (Õ+r   zleft_empty, how, exp)
)FrQ   rQ   )Fr\   Úempty)Frd   r  )Fra   rQ   )Frò  r  )TrQ   r  )Tr\   r\   )Trd   r  )Tra   r\   )Trò  r  c                 ó  — t        j                  ddgddgdœd¬«      j                  d«      }t        j                  dgd	gd
œd¬«      j                  d«      }| r|j                  d«      }n|j                  d«      }|j	                  ||¬«      }|dk(  rMt        j                  ddgddgt
        j                  t
        j                  gdœ«      }|j                  d«      }nu|dk(  r<t        j                  t
        j                  gdgd	gdœ«      }|j                  d«      }n4|dk(  r/t        j                  ddgd¬«      }|dk7  r|j                  d«      }|dk(  rj                  «       }t        j                  |«       y )Nr   r   r|   r'   ©r8   r9   rê   rA   r8   r5   )r8   r:   r   rR   rQ   )r8   r9   r:   r\   )r9   r8   r:   r  r9   r:   r&  rò  ra   )r    r!   r  Úheadr‡   r   rI  Úrename_axisrü   rˆ   rŠ   )Ú
left_emptyrS   ÚexprQ   r\   r¹   r‘   s          r   Útest_join_emptyr
  )  sM  € ô  �<‰<˜q !˜f¨A¨q¨6Ñ2¸'ÔB×LÑLÈSÓQ€DÜ�L‰L ˜s¨!¨Ñ-°WÔ=×GÑGÈÓL€EáØ�y‰y˜‹|‰à—
‘
˜1“ˆà�Y‰Y�u #ˆYÓ&€Fà
ˆf‚}Ü—<‘< q¨! f°A°q°6ÄÇÁÌÏÉÐ@PÑ QÓRˆØ×%Ñ% cÓ*‰Ø	�ŠÜ—<‘<¤r§v¡v h°a°SÀ¸sÑ CÓDˆØ×%Ñ% cÓ*‰Ø	�ŠÜ—<‘<¨¨c¨
¸'ÔBˆØ�'Š>Ø×+Ñ+¨CÓ0ˆHØ
ˆg‚~Ø×&Ñ&Ó(ˆä×Ñ˜& (Õ+r   c                  óº  — t        j                  «       } t        j                  dg¬«      }t        j                  ddg¬«      }| |z   }t        j                  dg¬«      }t        j                  ||«       ||z   }t        j                  g d¢¬«      }t        j                  ||«       | |z   }t        j                  ddg¬«      }t        j                  ||«       y )NÚtestrµ   r€   ©r�   r  )r  r€   r  )r    r!   rˆ   rŠ   )rÜ   r)   r<  r¹   r‘   s        r   Ú$test_join_empty_uncomparable_columnsr  S  s­   € ä
�,‰,‹.€CÜ
�,‰, ˜xÔ
(€CÜ
�,‰,  ~Ð6Ô
7€Cà�3‰Y€FÜ�|‰| V HÔ-€HÜ×Ñ˜& (Ô+à�3‰Y€FÜ�|‰|Ò$CÔD€HÜ×Ñ˜& (Ô+à�3‰Y€FÜ�|‰| ^°UÐ$;Ô<€HÜ×Ñ˜& (Õ+r   zhow, valuesrd   ry   ra   r\   ©r   r   r   c                 óP  — t        j                  t        j                  g d¢«      t        j                  g d¢«      g d¢dœ«      j                  ddg«      }t        j                  t        j                  g d¢«      t        j                  g d¢«      g d¢dœ«      j                  ddg«      }t        j                  t        j                  |«      t        j                  |«      ||dœ«      j                  ddg«      }|j	                  || ¬«      }t        j                  ||«       y )	Nry   rz   r<   r=   r  r  )r<   r=   r>   r?   rR   r   )rS   rý   rÜ   r)   r‘   r¹   s         r   Ú3test_join_multiindex_categorical_output_index_dtyper  f  sò   € ô �,‰,ä—‘¢	Ó*Ü—‘¢	Ó*Úñ	
ó÷ �i��c�
Óð ô �,‰,ä—‘¢	Ó*Ü—‘¢	Ó*Úñ	
ó÷ �i��c�
Óð ô �|‰|ä—‘ Ó'Ü—‘ Ó'ØØñ		
ó÷ �i��c�
Óð ð �X‰X�c˜sˆXÓ#€FÜ×Ñ˜& (Õ+r   c                  óˆ  — t        j                  ddgit         j                  j                  dgdd g¬«      ¬«      } t        j                  ddgit         j                  j                  dgd dg¬«      ¬«      }| j	                  |«      }t        j                  dgdgd	œt         j                  j                  dgdd g¬«      ¬«      }t        j                  ||«       |j	                  | «      }t        j                  dgdgd
œt         j                  j                  dgd dg¬«      ¬«      }t        j                  ||«       y )Nr8   r   )r|   r|   rù  rø   rC   r9   r   r  )r9   r8   rê  )rÜ   r)   Úresult12Ú
expected12Úresult21Ú
expected21s         r   Ú'test_join_multiindex_with_none_as_labelr  Ž  s  € ä
�,‰,Ø	ˆqˆcˆ
Ü�m‰m×'Ñ'¨¨¸¸d¸Ð'ÓDô€Cô �,‰,Ø	ˆqˆcˆ
Ü�m‰m×'Ñ'¨¨¸¸s¸Ð'ÓDô€Cð
 �x‰x˜‹}€HÜ—‘Øˆc˜˜ÑÜ�m‰m×'Ñ'¨¨¸¸d¸Ð'ÓDô€Jô ×Ñ˜( JÔ/à�x‰x˜‹}€HÜ—‘Øˆc˜˜ÑÜ�m‰m×'Ñ'¨¨¸¸s¸Ð'ÓDô€Jô ×Ñ˜( JÕ/r   )r8  r   )rQ   ró  rô  )rQ   )r   Únumpyr   rŒ   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsrµ  Úpandasr    Úpandas._testingÚ_testingrˆ   r   r   rV   r»  r½  r¿  rÚ   rì  r²  r³  rõ  r÷  rŸ  r  r
  r  r  r  r¹  r   r   ú<module>r     s°  ðÝ ã Û ç )Ð )ã Ý ó÷X0ñ X0óv"4òJò"6ò*ó
0ò,ð" ‡�×ÑØ  C¨#¨s¨Ð#4°s¸UÀE¸NÐ6KÐ"Lóñ,óð,ò,ð, ‡�×ÑØà
ˆsˆ’_Ð%Ø
ˆQˆ’ÐØ
ˆsˆ’_Ð%àˆR�\‰\˜,Ó'¨¨¯©°lÓ)CÐDà�—‘˜\Ó*Ø�—‘˜\Ó*Ø�—‘˜\Ó*ðð	
ð	óñ ,ó!ð ,ð: ‡�×ÑØòóñ,óð,ò6,ð& ‡�×ÑØà	’)ÐØ	’)ÐØ	’ÐØ	’)Ðð	óñ,óð,ó>0r   