Ë
    ¤ehÂ’  ã                   óˆ  — 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d.d„Zd„ Zej>                  jA                  ddddgfdddgfg«      d„ «       Z!d„ Z"ej>                  jA                  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>                  jA                  d!g d"¢«      d#„ «       Z$d$„ Z%ej>                  jA                  d%d&g d'¢fd(g d'¢fdg d'¢fd)g d*¢fg«      d+„ «       Z&y)/é    N)
Ú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       úb/var/www/skyplay_api_hub/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-d.„ Z.d/„ Z/d0„ Z0d1„ Z1d2„ Z2d3„ Z3y)4Ú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.df24   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)ç        ç      ð?g       @g      @g      @)r2   r3   r2   r3   r2   )Úfoo1Úfoo2Úfoo3Úfoo4Úfoo5z1/1/2009é   )Úperiods©ÚAÚBÚCÚD)ÚaÚbÚcÚdÚe©Údtype©Úindexr<   r?   )ÚMergedAÚMergedDr>   )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+   r0   Újoined_key2Újoined_boths        r   Útest_left_outer_joinzTestJoin.test_left_outer_joinO   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©rR   rU   rT   r#   rV   rX   s        r   Útest_right_outer_joinzTestJoin.test_right_outer_joinV   ó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$   Úouterr^   rT   r#   rV   rX   s        r   Útest_full_outer_joinzTestJoin.test_full_outer_join]   r`   r   c                 ó„   — t        ||dd¬«      }t        |||dgd¬«       t        ||d¬«      }t        |||ddgd¬«       y )Nr$   Úinnerr^   rT   r#   rV   rX   s        r   Útest_inner_joinzTestJoin.test_inner_joind   r`   r   c                 ó:   — t        ||dd¬«      }d|v sJ ‚d|v sJ ‚y )Nr$   ©z.fooz.bar)rR   Úsuffixesúkey1.foozkey1.bar©r   ©r*   r+   r0   Újoineds       r   Útest_handle_overlapzTestJoin.test_handle_overlapk   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#   rh   )Úleft_onÚright_onri   rj   zkey2.barrk   rl   s       r   Ú!test_handle_overlap_arbitrary_keyz*TestJoin.test_handle_overlap_arbitrary_keyq   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 «       |j                  «       }d}t        j                  t        |¬«      5  |j                  |d¬«       d d d «       y # 1 sw Y   ŒSxY w# 1 sw Y   y xY w)Nr>   rQ   rI   r<   F)Úcheck_namesrJ   r?   Úkey©r@   r@   rA   rA   rB   r/   ©r   r'   r   ©r@   rA   rB   rG   )r   r   r'   r'   r   ©rx   r/   r'   r   é   Úone©rH   ÚcolumnsÚfooÚbarÚtwoÚthreerB   z^'E'$©ÚmatchÚEzyYou are trying to merge on float64 and object|string columns for key 'A'. If you wish to proceed you should use pd.concat)ÚjoinÚtmÚassert_series_equalr   Úassert_frame_equalr   ÚisnanÚpytestÚraisesÚKeyErrorÚcopyÚ
ValueError)r*   rO   rs   rM   rN   Úmergedr+   r0   rm   ÚexpectedÚdf_aÚdf_bÚdf_cÚsource_copyÚmsgs                  r   Útest_join_onzTestJoin.test_join_on|   sæ  € ð '‰ˆ�à—‘˜V¨�Ó,ˆÜ
×Ñ˜v iÑ0°&¸±+È5ÕQÜ
×Ñ˜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Ô'÷	(ð —k‘k“mˆðCð 	ô �]‰]œ:¨SÔ1ñ 	-Ø�K‰K˜¨ˆKÔ,÷	-ð 	-÷	(ð 	(ú÷	-ð 	-ús   Å.GÆ7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©r@   rA   r-   r9   r<   r=   rG   úFlen\(left_on\) must equal the number of levels in the index of "right"r…   r@   T©rp   Úright_index©r   r   r   r   Úchoicer)   r   Úfrom_productr   r�   rŽ   r‘   r   ©r*   r+   r0   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Ÿ   ÚabcrG   r-   zFlen\(right_on\) must equal the number of levels in the index of "left"r…   rA   T)rq   Ú
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-   r9   r<   r=   rG   z)len\(right_on\) must equal len\(left_on\)r…   r@   rA   )rq   rp   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)Nr@   r'   z.Can only merge Series or DataFrame objects, a z was passedr…   )rp   rq   )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 )Nr>   rQ   Úkey_0©r€   )r¶   r<   r=   r?   rI   rJ   )rˆ   ÚrenameÚpopr‰   r‹   )r*   rO   rM   rN   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>   rQ   re   r^   r   )rˆ   ÚreindexÚisnaÚallr‰   Úassert_index_equalr€   r   )r*   rO   rM   rN   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 )Nrx   )r@   r@   rC   rA   rA   rB   r/   r   r'   r@   rA   rG   re   r^   rQ   F)Úcheck_dtype)r   rˆ   Únotnar‰   rŠ   rÁ   rH   ©r*   r+   r0   rm   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 )Nrx   ry   r/   rz   r{   rG   rQ   ©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 )NrI   r>   rQ   )rˆ   r‰   r‹   )r*   rO   rM   rN   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 )	Nr@   r'   r   rA   ©rH   ÚnamerQ   rŸ   rG   )r   r   rˆ   rH   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-   rG   TÚboolr�   Ústringr9   é   r'   Úintr3   ÚfloatrT   )r   r   Úarangerˆ   Ú_join_by_handr‰   r‹   )r*   Ú	join_typeÚdf1r0   rm   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 )Nr3   r   r�   Tr;   r-   r   r=   r?   r   Ú_oneÚ_two©ÚlsuffixÚrsuffix)ÚA_oneÚB_oneÚC_oneÚD_oneÚA_twoÚB_twoÚC_twoÚD_twor.   )r   r   rÚ   rF   Úint64Úbool_rˆ   r€   rÛ   r‰   r‹   )r*   rÝ   r0   rm   Ú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   rb   rT   )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   r@   rA   r·   rõ   rB   )rõ   r'   Úq)r   r   r   r   r)   r   rˆ   )r*   r@   rB   rC   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)r@   r@   r@   rA   rA   rA   )r'   r   r}   r'   r   r}   ÚfirstÚsecond©Únames)rA   rA   rA   rB   rB   rB   r   é   zvar X)rL   rH   r€   zvar Yr   )Úlevelrb   rT   r'   )r   r«   r   r   r   r   r)   Ú
sort_indexrˆ   r   ÚvaluesÚunionr¾   rü   rH   r‰   r‹   )r*   Úindex1Úindex2rÝ   r0   rm   Ú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$   rL   )r-   r}   )Új_oneÚj_twoÚj_threer   r#   r$   re   r^   rù   rú   F)rp   rq   rU   ÚsortT)rq   rª   rU   r  r'   ©Úaxis)r   r   r   r)   r   r   rˆ   r   Úreset_indexr‰   r‹   Úreindex_likeÚdroprH   Úis_monotonic_increasing)
r*   Ú%lexsorted_two_level_string_multiindexr#   r$   rL   rH   Úto_joinrm   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.   r9   rý   r{   r·   r@   rA   ÚmeanÚsum)é   r-   rý   ©r@   rA   rC   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   r@   rA   ©r€   rF   )r-   r'   rB   Úfloat64Úfloat32r   r9   éd   rí   r{   Úmdr·   Tr¡   )r   r   r   r   r)   r*  r+  rˆ   ÚdtypesÚintegersÚastyper   r‰   r‹   )
r*   r@   rA   rm   rB   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   r,  éÈ   r  éè  éÐ  )r@   rA   rD   r@   rA   rb   rT   r^   rí   )r'   r'   r'   )r-   r7  rõ   )r'   r'   r   )r,  r8  i,  )r9  r:  i¸  re   )r�   r‚   r�   r‚   r�   r‚   r�   r�   )r~   r~   rƒ   r„   rƒ   rƒ   r~   r„   é   r;   ÚTESTrÐ   rS   r]   )r   r!  rˆ   r   r  r€   r@   r0  rA   r‰   r‹   Úlocr   r   r   r)   r   ÚrepeatrÚ   )r*   rÝ   r0   Údf3Úidf1Úidf2Úidf3r»   Údf_partially_mergedr“   r+   r2  re   rb   rS   r]   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�   rG   rx   T)rR   r  )r‚   r  r�   r�   )r   r}   r'   r.   )r@   rA   rB   rB   )rx   r/   rG  )r'   r   r   r}   Fr.   )Úexact)	r   r   rˆ   r‰   r‹   rÁ   rH   r   r   )r*   rs   rS   r]   rm   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 )Nr@   rF  )r'   r   r}   r@   rG   rA   )r9   rý   r  r;  )r'   r}   r}   r.   )r'   r   r}   r}   r.   r9   rý   r  rŸ   )r'   r   r}   r}   r@   )r'   r   r   r@   )r   rˆ   r   Únanr‰   r‹   )r*   rÝ   r0   r»   r“   r?  Ú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   re   Ú_df2)rU   rä   rE   r   éÿÿÿÿr'   Úpnum_df2©r€   rH   )r"  Úperiod_ranger   r   r   r   r
   rˆ   r   r   rÚ   rí   r>  Úreshaperÿ   rH   r‰   r‹   )r*   rH   r+   r0   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
«      }t        j                  t        |¬«      5  |j                  «        d d d «       |j                  d¬«      }|j                  «       }|j                  |d¬«       y # 1 sw Y   Œ?xY w)Nr   )r7  rý   )r@   rA   rB   rC   rD   rœ   r·   r   Úidr9   Údtr�   z&agg function failed [how->mean,dtype->r…   T)Únumeric_onlyÚ_right©rä   )r   r   r   r   r)   Úinsertr  ÚreÚescaper�   rŽ   r³   r  Úcountrˆ   )r*   r+   Ú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ˆÜ�]‰]œ9¨CÔ0ñ 	Ø�L‰LŒN÷	à�\‰\ tˆ\Ó,ˆØ�]‰]‹_ˆð 	�‰�˜HˆÕ%÷	ð 	ús   Â#C2Ã2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·   r@   rA   rB   rC   rD   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rb   rT   re   r;  z?Joining multiple DataFrames only supported for joining on indexr…   rQ   )r   r   r   r   r)   r   rˆ   r‰   r‹   rH   r�   rŽ   r‘   )r*   r+   rm  rm   rp  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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.   rx   r<   r=   r>   r?   )	r   r   r   r   r)   r=  rˆ   r‰   r‹   )r*   r+   rÝ   r0   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           
      ó”  — 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<   r=   r=   r·   r   r-   r7  r�   r<   r>   r'   r  Ú_2r_  )r.   r   rò   ÚyTr  rb   )rª   r¢   rU   z0Passing 'suffixes' which cause duplicate columnsr…   )r
   r   r   r   r   r)   r/  rX  rˆ   r€   r‰   r‹   r   r�   rŽ   r"  r#  r$  )	r*   r+   r“   r»   Úwrò   rv  Ú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é   rG   Úv2r  r,  r^   r    r…   )r   r¥   r   r   r   rˆ   r  r   r!  r‰   r‹   r�   rŽ   r‘   )
r*   rÜ   Ú	leftindexrS   Ú
rightindexÚir]   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-01r9   zAmerica/Chicago)Ústartr:   ÚtzÚabcde)ÚdateÚvalsz
2018-01-03Útuvwx)r‰  Úvals_2r‰  rQ   r   ÚtuvrŒ  )r   r"  Ú
date_ranger   rˆ   r!  r�   r   r   rK  r‰   r‹   )r*   rÝ   r0   r»   r“   s        r   Ú#test_join_on_tz_aware_datetimeindexz,TestJoin.test_join_on_tz_aware_datetimeindexö  s¶   € ääŸ™Ø&°Ð6Gôô ˜W›ñ	ó
ˆô äŸ™Ø&°Ð6Gôô ˜w›-ñ	ó
ˆð —‘˜#Ÿ-™-¨Ó/°F�Ó;ˆØ—8‘8“:ˆÜ#¤R§V¡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’  r7  )r”  r“  é   )rò   rv  r@   r·   rò   zM8[ns])r‘  r“  r'   )r”  r’  r   )rò   rv  rx  r   r.   rV  rv  rQ   z2012-08-02 00:00:00r“  r'   r×   z2013-04-06 00:00:00r’  r7  )rò   rv  rx  r@   r   )	r   r"  Úto_datetimer0  rˆ   r!  r   r‰   r‹   )r*   ÚdfaÚdfbr»   r“   s        r   Útest_join_datetime_stringz"TestJoin.test_join_datetime_string  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 )Nr@   rA   ©Ú
categoriesÚc1rG   Úc2)r�  rž  )r"  ÚCategoricalIndexÚreversedr   rˆ   r‰   r‹   )r*   ÚixÚid1Úid2rÝ   r0   r»   r“   s           r   Ú test_join_with_categorical_indexz)TestJoin.test_join_with_categorical_index,  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   )4Ú__name__Ú
__module__Ú__qualname__r�   Úfixturer+   r0   rO   r[   r_   rc   rf   rn   rr   Ú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'  r5  rD  rI  rM  rY  rg  rq  rs  rz  r„  r�  r™  r¤  © r   r   r    r    #   sÉ  „ à‡^�^ñó ðð ‡^�^ñ
ó ð
ð ‡^�^ñó ðò HòIòIòIò$ò	$ð ‡[�[×ÑØ˜  §¡¨T¸¸¿¹ÀyÓ9QÔ RÐSóñ$-óð$-òL:ò$:ò$=ð$ ‡[�[×Ñ˜\¨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ò<*ò+<òZ>ò60ò00ó<0r   r    rS   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)rS   re   zkey z! should not have been in the join)r]   re   )
rÇ   rÀ   r  Ú_restrict_to_columnsr€   Ú	get_groupÚ_assert_same_contentsr�   ÚAssertionErrorÚ_assert_all_na)rS   r]   r»   rº   rU   rã   rä   rB   Úleft_groupedÚright_groupedÚ	group_keyÚgroupÚl_joinedÚr_joinedÚlgroupÚerrÚrgroups                    r   rW   rW   <  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>j  s   ø€ ¨1¯9©9°V¸RÓ+@€ r   r·   )r€   rÂ  r=  r¸   )r¹  r€   rÃ  rB   Úfounds     `  r   r±  r±  a  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>z  s   øè ø€ Ò5 cŒu�S‹z˜TÔ!Ñ5ùs   ƒ)ÚfillnaÚdrop_duplicatesr   rÉ  r   rÀ   )Ú
join_chunkrN   ÚNA_SENTINELÚjvaluesÚsvaluesrË  rÌ  s         @r   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º   rB   s       r   rµ  rµ  }  s:   € Øò *ˆØ�‰=ØØ˜!‰}×!Ñ!Ó#×'Ñ'Õ)Ð)Ð)ñ*r   c                 ó<  — | j                   j                  |j                   |¬«      }| j                  |«      }|j                  |«      }| j                  j	                  |j                  «      }|j                  «       D ]
  \  }}|||<   Œ |j                  |¬«      S )NrT   r·   )rH   rˆ   r¾   r€   ÚappendÚitems)	r@   rA   rU   Ú
join_indexÚa_reÚb_reÚresult_columnsrÂ   r2  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 )NrD   r9   )r'   r   r.   r  rû   ©rL   rH   rœ   rý   )r   r}   )rA   rB   re   rT   )rD   rœ   )r'   r   r.   r}   )r@   rA   rC   rB   rG   ©r   r   Úfrom_tuplesrˆ   r‰   r‹   )rS   r]   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_colsrA   r@   Ú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 )Nr@   r'   r}   r.   ÚcrossÚ_xÚ_y)rU   rã   rä   r   )r'   r'   r}   r}   )r}   r.   r}   r.   rË   )râ  rã  rS   r]   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 )NrB   r}   )r'   r   rŸ   rû   rÞ  rC   r.   )r   )rA   rT   r]   )rB   rC   )r   r'   rA   r@   rG   rß  )rÜ   rS   r]   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ú   r/   rù   rú   )r<   r<   r=   )r}   r.   r9   Ú_leftr^  râ   r}   r.   )rù   rú   Ú
value_leftÚvalue_right©r   r   r!  rˆ   r‰   r‹   )rœ  r   rS   r]   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)
)FrS   rS   )Fr]   Úempty)Fre   r÷  )Frb   rS   )Frç  r÷  )TrS   r÷  )Tr]   r]   )Tre   r÷  )Trb   r]   )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<   r=   rí   rE   r<   r9   )r<   r>   r   rT   rS   )r<   r=   r>   r]   )r=   r<   r>   r÷  r=   r>   r)  rç  rb   )
r   r!  Úheadrˆ   r   rK  Úrename_axisrÿ   r‰   r‹   )Ú
left_emptyrU   ÚexprS   r]   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Ý   r0   r?  r»   r“   s        r   Ú$test_join_empty_uncomparable_columnsr    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, valuesre   rz   rb   r]   ©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 )	Nrz   r{   r@   rA   r  r  )r@   rA   rB   rC   rT   rõ  )rU   r   rÝ   r0   r“   r»   s         r   Ú3test_join_multiindex_categorical_output_index_dtyper  (  sÎ   € ô äšYÓ'ÜšYÓ'Úñ	
ó÷ �i��c�
Óð ô äšYÓ'ÜšYÓ'Úñ	
ó÷ �i��c�
Óð ô ä˜VÓ$Ü˜VÓ$ØØñ		
ó÷ �i��c�
Óð ð �X‰X�c˜sˆXÓ#€FÜ×Ñ˜& (Õ+r   )r;  r"   )rS   rè  ré  )rS   )'ra  Ú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    rW   r±  r³  rµ  rÛ   rá  r©  rª  rê  rì  rö  rý  r  r  r¯  r   r   ú<module>r     sš  ðÛ 	ã Û ç )Ð )ã ÷÷ ÷ õ ó÷V0ñ V0ór"4òJò"6ò*ó
0ò,ð" ‡�×ÑØ  C¨#¨s¨Ð#4°s¸UÀE¸NÐ6KÐ"Lóñ,óð,ò,ð( ‡�×ÑØà
ˆsˆ’_Ð%Ø
ˆQˆ’ÐØ
ˆsˆ’_Ð%á�|Ó$¡i°Ó&=Ð>Ù�|Ó$¡i°Ó&=¹yÈÓ?VÐWð	
ð	óñ,óð,ð: ‡�×ÑØòóñ,óð,ò6,ð& ‡�×ÑØà	’)ÐØ	’)ÐØ	’ÐØ	’)Ðð	óñ,óñ,r   