Ë
    u™ãjL­  ã                   ó  — 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lmZ d dlmZ ej                   d„ «       Zej                   d„ «       Zej                   d„ «       Zej                   d„ «       Zej                   d„ «       Z G d	„ d
«      Z G d„ d«      Z G d„ d«      Zej2                  j5                  dej6                  ej8                  ej:                  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*y)é    N)Úconcat)Úmergec                  ó²   — g d¢} g d¢}t         j                  j                  d«      j                  t	        | «      «      }t        j                  | ||dœ«      S )z=left dataframe (not multi-indexed) for multi-index join tests)
Úbarr   r   Úfoor   Úbazr   Úquxr	   Úsnap)
ÚtwoÚoneÚthreer   r   r   r   r   r   r   é   ©Úkey1Úkey2Údata)ÚnpÚrandomÚdefault_rngÚstandard_normalÚlenÚpdÚ	DataFramer   s      úp/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/reshape/merge/test_multi.pyÚleftr      sH   € ò S€DÚU€Dä�9‰9× Ñ  Ó#×3Ñ3´C¸³IÓ>€DÜ�<‰< ¨t¸TÑBÓCÐCó    c                 óB   — | }ddg|j                   _        g d¢|_        |S )z:right dataframe (multi-indexed) for multi-index join testsr   r   )Új_oneÚj_twoÚj_three)ÚindexÚnamesÚcolumns)Ú multiindex_dataframe_random_dataÚdfs     r   Úrightr&      s%   € ð 
*€BØ˜fÐ%€B‡H�H„Nâ.€B„JØ€Ir   c                  óv   — t        j                  g d¢g d¢g d¢g d¢g d¢dœg d¢¬«      j                  g d¢«      S )	N)ÚAr(   ÚBr)   ÚC)r(   r)   r(   r*   r(   )ÚAMr+   ÚIPr+   ÚOP)ÚhbwÚnhbÚhbor/   r.   )iÃ  i?  i¦	  iÈ  i\  )ÚOriginÚDestinationÚPeriodÚTripPurpÚTrips©r#   )r1   r2   r3   r4   ©r   r   Ú	set_index© r   r   Ú
left_multir:   !   s;   € ä�<‰<â/Ú4Ú4Ú;Ú3ñ	
ò Iô	÷ �iÒ?Ó@ð	Ar   c                  óv   — t        j                  g d¢g d¢g d¢g d¢g d¢dœg d¢¬«      j                  g d¢«      S )	N)r(   r(   r)   r)   r*   r*   ÚE)r(   r)   r(   r)   r(   r)   ÚF)r+   r+   r,   r+   r-   r,   r+   )ÚaÚbÚcr?   r>   r?   r>   )éd   éP   éZ   rB   éK   é#   é7   )r1   r2   r3   ÚLinkTypeÚDistancer6   )r1   r2   r3   rG   r7   r9   r   r   Úright_multirI   /   s;   € ä�<‰<â9Ú>Ú@Ú;Ú5ñ	
ò Lô	÷ �iÒ?Ó@ð	Ar   c                  ó
   — g d¢S )N)r1   r2   r3   r9   r9   r   r   Úon_cols_multirK   =   s   € â.Ð.r   c            
       ód  — e Zd Zd„ Zej
                  j                  dd ej                  d ej                  d«      ¬«      g«      ej
                  j                  d«      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*                  ej.                  ej0                  g«      d„ «       Zej
                  j                  dddg«      d„ «       Zej6                  d„ «       Zej6                  d„ «       Zej6                  d„ «       Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#y) ÚTestMergeMultic                 ól  — ddg}|j                  |||¬«      j                  d¬«      }t        ||j                  «       ||¬«      }t        j                  ||«       |j                  |||d¬«      j                  d¬«      }t        ||j                  «       ||d¬«      }t        j                  ||«       y )Nr   r   ©ÚonÚhowT©Údrop©rP   rQ   Úsort)ÚjoinÚreset_indexr   ÚtmÚassert_frame_equal)Úselfr   r&   Ú	join_typeÚon_colsÚresultÚexpecteds          r   Útest_merge_on_multikeyz%TestMergeMulti.test_merge_on_multikeyC   s³   € Ø˜6Ð"ˆØ—‘˜5 W°)�Ó<×HÑHÈdÐHÓSˆä˜˜u×0Ñ0Ó2°wÀIÔNˆä
×Ñ˜f hÔ/à—‘˜5 W°)À$�ÓG×SÑSØð Tó 
ˆô Ø�%×#Ñ#Ó%¨'°yÀtô
ˆô 	×Ñ˜f hÕ/r   Úinfer_stringFTÚpyarrow)ÚmarkszDignore:The 'future.infer_string' option:pandas.errors.Pandas4Warningc                 óÂ  ‡‡	— t        j                  d|«      5  g d¢Š	d„ Šˆˆ	fd„}t        t        t        t        j                  t        d«      t        d«      dz   «      «      «      }t        j                  t
        j                  j                  d«      j                  |d	«      d
dg¬«      }|j                  ddt
        j                  j                  d«      j                  ddt        |«      «      j                  d«      «       |j!                  dt
        j                  j                  d«      ¬«      } ‰|«      |d<    ‰|«       |d<   |j#                  ‰	«      } ||||«       t
        j$                  |j&                  dd d…d
f<   t
        j$                  |j&                  dd d…df<   t
        j$                  |j&                  dd d…df<    ‰|«      |d<   t
        j                  j                  d«      j)                  t        |«      «      }|j*                  |d d…f   } ‰|«       |d<   |j#                  ‰	«      } ||||«       d d d «       y # 1 sw Y   y xY w)Nzfuture.infer_string)Ú1stÚ2ndÚ3rdc                 óx   ‡— d„ Šˆfd„} || d   «       || d   «      dz  z   | d   j                  d«      dz  z   S )	Nc                 ó&   — | | k7  rdS t        | «      S )Nr   )Úord)r>   s    r   ú<lambda>zNTestMergeMulti.test_left_join_multi_index.<locals>.bind_cols.<locals>.<lambda>`   s   €  a¨1¢f € ´#°a³&€ r   c                 ó>   •— | j                  ‰«      t        d«      z
  S )Nr>   )Úmapri   )ÚtsÚiords    €r   rj   zNTestMergeMulti.test_left_join_multi_index.<locals>.bind_cols.<locals>.<lambda>a   s   ø€ ˜rŸv™v d›|¬c°#«hÑ6€ r   rd   rf   g      Y@re   r   é
   )Úfillna)r%   Úfrn   s     @r   Ú	bind_colsz<TestMergeMulti.test_left_join_multi_index.<locals>.bind_cols_   sG   ø€ Ù8�Û6�Ù˜˜E™“|¡a¨¨5©	£l°SÑ&8Ñ8¸2¸e¹9×;KÑ;KÈAÓ;NÐQSÑ;SÑSÐSr   c                 óº  •— | j                  |‰d|¬«      }t        | «      t        |«      dz   k  sJ ‚|d   j                  «       j                  «       rJ ‚|d   j                  «       j                  «       rJ ‚t	        j
                  |d   |d    d¬«        ‰|j                  d d …d d…f   «      }t	        j
                  |d   |d¬«       |j                  �J ‚|r't	        j                  ||j                  ‰d	¬
«      «       t        | |j                  «       ‰|d¬«      }t        j                  t        |«      «      |_        t	        j                  ||«       y )Nr   rT   é   Ú4thÚ5thF)Úcheck_nameséþÿÿÿÚ	mergesort©Úkind)rP   rU   rQ   )rV   r   ÚisnaÚanyrX   Úassert_series_equalÚilocÚnamerY   Úsort_valuesr   rW   r   Ú
RangeIndexr!   )r   r&   rU   Úresr]   Úoutrr   Úicolss         €€r   Úrun_assertsz>TestMergeMulti.test_left_join_multi_index.<locals>.run_assertsd   s*  ø€ Ø—i‘i ¨%°VÀ$�iÓG�ä˜4“y¤3 s£8¨a¡<Ò/Ð/Ð/Ø˜u™:Ÿ?™?Ó,×0Ñ0Ô2Ð2Ð2Ø˜u™:Ÿ?™?Ó,×0Ñ0Ô2Ð2Ð2ä×&Ñ& s¨5¡z°C¸±J°;ÈEÕRÙ" 3§8¡8ªA¨s°¨s¨FÑ#3Ó4�Ü×&Ñ& s¨5¡z°6ÀuÕMØ—{‘{Ð*Ð*Ð*áÜ×)Ñ)¨#¨s¯©¸uÈ;¨Ó/WÔXä˜D %×"3Ñ"3Ó"5¸%ÀdÐPVÔW�äŸM™M¬#¨c«(Ó3�”	Ü×%Ñ% c¨3Õ/r   r>   Úzrt   r   )é2   r   rd   rf   r6   re   r   ro   Úfloat)ÚfracÚrandom_stateru   rv   é   é   é   é   éÿÿÿÿ)r   Úoption_contextÚlistrl   Úchrr   Úarangeri   r   r   r   ÚchoiceÚinsertÚintegersr   ÚastypeÚsampler8   ÚnanÚlocÚpermutationr   )
rZ   rU   r`   r†   Úlcr   r&   Úirr   r…   s
           @@r   Útest_left_join_multi_indexz)TestMergeMulti.test_left_join_multi_indexU   sÿ  ù€ ô ×ÑÐ4°lÓCñ 9	+Ú)ˆEòTõ
0ô( ”cœ#œrŸy™y¬¨S«´3°s³8¸a±<Ó@ÓAÓBˆBÜ—<‘<Ü—	‘	×%Ñ% aÓ(×/Ñ/°°GÓ<ÀuÈeÀnôˆDð �K‰KØØÜ—	‘	×%Ñ% aÓ(×1Ñ1°!°R¼¸T»ÓC×JÑJÈ7ÓSôð
 —K‘K Q´R·Y±Y×5JÑ5JÈ1Ó5M�KÓNˆEá# D›/ˆD�‰KÙ% eÓ,Ð,ˆE�%‰LØ—O‘O EÓ*ˆEá˜˜e TÔ*ô %'§F¡FˆD�H‰H�Q�T˜�T˜5�[Ñ!Ü$&§F¡FˆD�H‰H�Q�T˜�T˜5�[Ñ!Ü$&§F¡FˆD�H‰H�Q�T˜�T˜5�[Ñ!Ù# D›/ˆD�‰Kä—	‘	×%Ñ% aÓ(×4Ñ4´S¸³YÓ?ˆAØ—I‘I˜a  " ˜fÑ%ˆEÙ% eÓ,Ð,ˆE�%‰LØ—O‘O EÓ*ˆEá˜˜e TÔ*÷s9	+÷ 9	+ñ 9	+ús   ™H3IÉIc                 ó®   — ddg}|j                  ||dd|¬«      }|j                  ||dd|¬«      }||j                     }t        j                  ||«       y )Nr   r   Tr   )Úleft_onÚright_indexrQ   rU   r&   )Úright_onÚ
left_indexrQ   rU   )r   r#   rX   rY   )rZ   r   r&   rU   r\   Úmerged_left_rightÚmerge_right_lefts          r   Útest_merge_right_vs_leftz'TestMergeMulti.test_merge_right_vs_left—   sr   € à˜6Ð"ˆØ ŸJ™JØ˜7°¸&Àtð 'ó 
Ðð !Ÿ;™;Ø˜7¨t¸Àtð 'ó 
Ðð
 ,Ð,=×,EÑ,EÑFÐä
×ÑÐ/Ð1AÕBr   c                 ó¨  — t        j                  t        d«      t         j                  j	                  ddgg d¢gddg¬«      d¬	«      }t        j
                  t        d
«      g d¢ddœ«      }t        ||j                  «       ddg¬«      }t        j
                  t        d
«      g d¢dgdz  t        d«      dœ«      }t        j                  ||«       y )Nr�   r(   r)   ©rt   r   rŽ   Úlev1Úlev2©r"   ÚAmount)r€   ÚAAABBB)rt   r   rŽ   rt   r   rŽ   r   )rª   r«   Úcol©rP   )rª   r«   r¯   r­   )r   ÚSeriesÚrangeÚ
MultiIndexÚfrom_productr   r’   r   rW   rX   rY   )rZ   Úsr%   r]   r^   s        r   Ú.test_merge_multiple_cols_with_mixed_cols_indexz=TestMergeMulti.test_merge_multiple_cols_with_mixed_cols_index§   s¸   € ä�I‰IÜ�!‹HÜ�M‰M×&Ñ&¨¨c¨
²IÐ'>ÀvÈvÐFVÐ&ÓWØô
ˆô
 �\‰\Ü˜(“^Ò-?ÈÑJó
ˆô �r˜1Ÿ=™=›?°¸Ð/?Ô@ˆÜ—<‘<ä˜X›Ú*Ø�s˜Q‘wÜ ›(ñ	ó
ˆô 	×Ñ˜f hÕ/r   c                 óÔ  — t        d«      D �cg c]  }t        |«      ‘Œ }}t        j                  |d«      }|d d d…   }t	        j
                  ||t        j                  j                  d«      j                  d«      dœ«      }t	        j
                  |d d d…   |d d d…   t        j                  j                  d«      j                  d«      dœ«      }t        ||d¬«       y c c}w )	Ni'  r   r�   i N  )r   r   Úvalue1)r   r   Úvalue2Úouter©rQ   )
r²   Ústrr   Útiler   r   r   r   r   r   )rZ   rž   r   r   r%   Údf2s         r   Ú test_compress_group_combinationsz/TestMergeMulti.test_compress_group_combinations¼   sË   € ä % e£Ö-˜1”�A•Ð-ˆÐ-Ü�w‰w�t˜QÓˆØ‘D�b�D‰zˆä�\‰\àØÜŸ)™)×/Ñ/°Ó2×BÑBÀ5ÓIñó
ˆô �l‰là™S˜q˜S™	Ø™S˜q˜S™	ÜŸ)™)×/Ñ/°Ó2×BÑBÀ5ÓIñó
ˆô 	ˆb�#˜7Ö#ùò+ .s   ŽC%c           
      óF  — ddg}t        j                  g d¢dz  ddgdz  t        j                  t        j                  d«      t        j
                  ¬	«      d
œ«      }t         j                  j                  ddg«      }t        j                  dddgi|¬«      }|j                  ||¬«      }|j                  «       }t        j                  |d<   d|j                  |j                  dk(  |j                  dk(  z  df<   d|j                  |j                  dk(  |j                  dk(  z  df<   t        j                  ||«       |j                  ||d¬«      }|j!                  |d¬«      }t        j                  ||«       t        j                  g d¢dz  ddgdz  t        j                  g d¢dz  t        j"                  ¬	«      t        j                  t        j                  d«      t        j$                  ¬	«      dœ«      }t         j                  j                  ddg«      }t        j                  dddgi|¬«      }|j                  ||¬«      }|j                  «       }t        j                  |d<   d|j                  |j                  dk(  |j                  dk(  z  df<   d|j                  |j                  dk(  |j                  dk(  z  df<   t        j                  ||«       |j!                  |d¬«      }|j                  ||d¬«      }t        j                  ||«       y )NÚk1Úk2©r   rt   r   é   r   r   é   é   ©Údtype)rÁ   rÂ   Úv)r   r   )rt   r   Úv2r�   é   ©r!   r°   r   rt   T)rP   rU   ry   rz   )rÁ   rÂ   Úk3rÉ   )r   r   r   Úarrayr”   Úint64r³   Úfrom_tuplesrV   Úcopyrš   r›   rÁ   rÂ   rX   rY   r�   Úfloat32Úint32)rZ   r\   r   r!   r&   r]   r^   s          r   Ú#test_left_join_index_preserve_orderz2TestMergeMulti.test_left_join_index_preserve_orderÕ   s—  € Ø˜�,ˆÜ�|‰|â !‘mØ˜e�n rÑ)Ü—X‘XœbŸi™i¨›m´2·8±8Ô<ñó
ˆô —‘×)Ñ)¨:°zÐ*BÓCˆÜ—‘˜d Q¨ F˜^°5Ô9ˆà—‘˜5 W�Ó-ˆà—9‘9“;ˆÜŸ™ˆ�‰ØJKˆ�‰�h—k‘k QÑ&¨8¯;©;¸%Ñ+?Ñ@À$ÐFÑGØJKˆ�‰�h—k‘k QÑ&¨8¯;©;¸%Ñ+?Ñ@À$ÐFÑGä
×Ñ˜f hÔ/à—‘˜5 W°4�Ó8ˆØ×'Ñ'¨°kÐ'ÓBˆä
×Ñ˜f hÔ/ô �|‰|â !‘mØ˜e�n rÑ)Ü—h‘hšy¨1™}´B·J±JÔ?Ü—X‘XœbŸi™i¨›m´2·8±8Ô<ñ	ó
ˆô —‘×)Ñ)¨:°zÐ*BÓCˆÜ—‘˜d Q¨ F˜^°5Ô9ˆà—‘˜5 W�Ó-ˆà—9‘9“;ˆÜŸ™ˆ�‰ØJKˆ�‰�h—k‘k QÑ&¨8¯;©;¸%Ñ+?Ñ@À$ÐFÑGØJKˆ�‰�h—k‘k QÑ&¨8¯;©;¸%Ñ+?Ñ@À$ÐFÑGä
×Ñ˜f hÔ/à×#Ñ# G°+Ð#Ó>ˆØ—9‘9˜U w°T�9Ó:ˆä
×Ñ˜f hÕ/r   c                 óÌ  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g
g d¢g d¢¬«      }t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gg d¢¬«      j                  g d¢«      }|j                  |g d¢d ¬!«      }t        j                  g d"¢g d#¢d$d%d&d't        j
                  gg d(¢g d)¢g d*¢d+d%d,d-t        j
                  gg d.¢g d/¢g d0¢g d1¢g d2¢g d3¢g d4¢gg d5¢g d6¢¬«      }t        j                  ||«       |j                  |g d¢d d7¬8«      }|j                  g d¢d9¬:«      }t        j                  ||«       y );N)ÚXÚYr*   r>   )ÚWr×   r*   Úe)ÚVÚQr(   Úh)rÚ   ÚRÚDrž   )rÖ   r×   rÞ   r?   )rÖ   r×   r(   r@   )rØ   rÛ   r)   rq   )rØ   rÝ   r*   Úg)rÚ   r×   r*   Új)rÖ   r×   r)   Úd)ÚcolaÚcolbÚcolcÚtag)
rŽ   r   r   rt   rË   r�   rŒ   r�   é	   rÄ   ©r#   r!   )rØ   rÝ   r*   r   )rØ   rÛ   r)   rŽ   )rØ   rÛ   r)   rÄ   )rÖ   r×   r(   rt   )rÖ   r×   r(   rŒ   )rÖ   r×   r)   r�   )rÖ   r×   r*   r�   )rÖ   r×   r*   ræ   )rÖ   rÛ   r*   iúÿÿÿ)rÖ   rÝ   r*   i÷ÿÿÿ)rÚ   r×   r*   rË   )rÚ   rÝ   rÞ   r   )rÚ   rÝ   rÞ   r�   )rÚ   rÛ   r(   éýÿÿÿ)Úcol1Úcol2Úcol3Úvalr6   )ré   rê   rë   )râ   rã   rä   r   rO   )rÖ   r×   r*   r>   r�   )rÖ   r×   r*   r>   ræ   rØ   r×   r*   rÙ   )rÚ   rÛ   r(   rÜ   rè   )rÚ   rÝ   rÞ   rž   r   )rÚ   rÝ   rÞ   rž   r�   rÖ   rÞ   r?   )rÖ   r×   r(   r@   rt   )rÖ   r×   r(   r@   rŒ   )rØ   rÛ   r)   rq   rŽ   )rØ   rÛ   r)   rq   rÄ   )rØ   rÝ   r*   rß   r   )rÚ   r×   r*   rà   rË   )rÖ   r×   r)   rá   r�   )râ   rã   rä   rå   rì   )rŽ   rŽ   r   r   rt   rt   rË   r�   r�   rŒ   rŒ   r�   ræ   rÄ   TrT   ry   rz   )	r   r   r8   rV   r   rš   rX   rY   r�   ©rZ   r   r&   r]   r^   s        r   Ú+test_left_join_index_multi_match_multiindexz:TestMergeMulti.test_left_join_index_multi_match_multiindex  sY  € Ü�|‰|â$Ú$Ú$Ú$Ú$Ú$Ú$Ú$Ú$Ú$ðò 4Ú0ô
ˆô" —‘â"Ú"Ú"Ú"Ú"Ú"Ú"Ú"Ú#Ú#Ú"Ú"Ú#Ú#ðò  4ô#
÷$ ‰)Ò,Ó
-ð% 	ð( —‘˜5Ò%=À6�ÓJˆä—<‘<â'Ú'Ø�c˜3 ¤R§V¡VÐ,Ú(Ú'Ú(Ø�c˜3 ¤R§V¡VÐ,Ú'Ú'Ú'Ú'Ú'Ú'Ú'ðò  ;Ú<ô%
ˆô* 	×Ñ˜f hÔ/à—‘˜5Ò%=À6ÐPT�ÓUˆà×'Ñ'Ò(@À{Ð'ÓSˆä
×Ñ˜f hÕ/r   c                 óô  — t        j                  ddgddgddgddggdd	gg d
¢¬«      }t        j                  ddgddgddgddgddgddgddgddggddg¬«      j                  d«      }|j                  |dd¬«      }t        j                  g d¢g d¢g d¢g d¢ddt        j
                  gg d¢g d¢ddt        j
                  ggg d ¢g d!¢¬«      }t        j                  ||«       |j                  |ddd"¬#«      }|j                  dd$¬%«      }t        j                  ||«       t        ||j                  «       dd¬&«      }t        j                  t        |«      «      |_        t        j                  ||«       y )'Nr@   r   r?   rt   r>   r   rŽ   rå   rì   )r   r   rt   rŽ   rç   rÉ   ÚwÚxrá   Úyr‡   ÚrrÙ   Úqrµ   Úcharr6   r   rO   )r@   r   rð   )r@   r   rñ   )r@   r   ró   )r@   r   rµ   )r>   r   rÉ   )r>   r   r‡   )rå   rì   rõ   )r   r   r   r   r   rt   rt   rŽ   TrT   ry   rz   ©rQ   rP   )r   r   r8   rV   r   rš   rX   rY   r�   r   rW   r‚   r   r!   )rZ   r   r&   r]   r^   Ú	expected2s         r   Ú test_left_join_index_multi_matchz/TestMergeMulti.test_left_join_index_multi_matchP  s†  € Ü�|‰|Ø�1ˆX˜˜Q�x # q ¨C°¨8Ð4Ø˜E�NÚô
ˆô —‘à�c�
Ø�c�
Ø�c�
Ø�c�
Ø�c�
Ø�c�
Ø�c�
Ø�c�
ð	ð ˜F�Oô
÷ ‰)�EÓ
ð 	ð —‘˜5 U°�Ó7ˆä—<‘<âÚÚÚØ�aœŸ™Ð ÚÚØ�aœŸ™Ð ð	ò +Ú*ô
ˆô 	×Ñ˜f hÔ/à—‘˜5 U°¸T�ÓBˆØ×(Ñ(¨°[Ð(ÓAˆ	ä
×Ñ˜f iÔ0ô �t˜U×.Ñ.Ó0°fÀÔGˆÜŸ™¤s¨8£}Ó5ˆŒÜ
×Ñ˜f hÕ/r   c           	      óî  — t        j                  t        d«      t        j                  j                  d«      j                  d«      t        j                  j                  d«      j                  d«      t        d«      t        j                  j                  d«      j                  d«      dœg d¢¬«      }t        j                  ddt        j                  t        j                  t        j                  gdd	t        j                  t        j                  t        j                  gd
œ«      }t        ||dd¬«      }|j                  dgd¬«      }|j                  |«      }t        j                  ||«       y )NÚabcder   r�   )ÚidÚv1rÊ   ÚdummyÚv3r6   r>   r?   gX9´Èv¾ó?gƒÀÊ¡E¶@)rû   Úsv3rû   r   rO   rt   )Úaxis)r   r   r’   r   r   r   r   rš   r   rS   rV   rX   rY   )rZ   r   r&   r]   Úrdfr^   s         r   Útest_left_merge_na_bugletz(TestMergeMulti.test_left_merge_na_buglet‚  s  € Ü�|‰|ä˜7“mÜ—i‘i×+Ñ+¨AÓ.×>Ñ>¸qÓAÜ—i‘i×+Ñ+¨AÓ.×>Ñ>¸qÓAÜ˜g›Ü—i‘i×+Ñ+¨AÓ.×>Ñ>¸qÓAñò 6ô	
ˆô —‘à˜C¤§¡¬¯©´·±Ð8Ø˜u¤b§f¡f¬b¯f©f´b·f±fÐ=ñó
ˆô �t˜U t°Ô8ˆà�j‰j˜$˜ aˆjÓ(ˆØ—9‘9˜S“>ˆÜ
×Ñ˜f hÕ/r   c           
      ó®  — g d¢g d¢g d¢ddt         j                  gg d¢g d¢ddt         j                  gg d	¢g d
¢g	}t        j                  |g d¢¬«      }ddt         j                  gddt         j                  gddt         j                  gddt         j                  gddt         j                  gddt         j                  gg}t        j                  |g d¢¬«      }|j	                  |d¬«      }|j                  d«      j	                  |j                  d«      d¬«      }|j                  dt         j                  «      }t        j                  ||«       y )N)éž  r(   ç      ø?)r  r)   r  )é£  r)   r  i¨  r)   )é²  r)   ç      @)r  r*   r  r*   )é­  r*   ç      @)r  r*   r  )ÚyearÚpanelr   r6   r(   r  r  r	  rº   r»   iüÿÿ)	r   rš   r   r   r   rp   ÚreplacerX   rY   )rZ   r   ÚframeÚ
other_dataÚotherr]   r^   s          r   Útest_merge_na_keysz!TestMergeMulti.test_merge_na_keysš  s  € âÚÚØ�3œŸ™ÐÚÚØ�3œŸ™ÐÚÚð

ˆô —‘˜TÒ+DÔEˆð �3œŸ™ÐØ�3œŸ™ÐØ�3œŸ™ÐØ�3œŸ™ÐØ�3œŸ™ÐØ�3œŸ™Ðð
ˆ
ô —‘˜ZÒ1JÔKˆà—‘˜U¨�Ó0ˆà—<‘< Ó%×+Ñ+¨E¯L©L¸Ó,>ÀGÐ+ÓLˆØ×#Ñ# D¬"¯&©&Ó1ˆä
×Ñ˜f hÕ/r   ÚklassNc                 óX  — t        j                  g d¢g d¢dg¬«      }t        j                  |j                  «      |_        |j                  j                  }|� ||«      }t        j                  g d¢t
        j                  ¬«      }t        j                  g d¢|dœ«      }|j                  |d|gd¬	«      }t        j                  ||«       t        j                  |g d¢g d¢d
œ«      }|j                  ||j                  j                  gd¬	«      }t        j                  ||«       y ©Nr©   )z
2016-01-01z
2017-01-01z
2018-01-01r>   r6   )ià  iá  iâ  rÇ   )r>   Úkey_1ÚinnerrO   )Úkey_0Úa_xÚa_y©r   r   Úto_datetimer!   r  r   rÎ   rÓ   r   rX   rY   )rZ   r  r%   Ú	on_vectorÚ	exp_yearsr^   r]   s          r   Útest_merge_datetime_indexz(TestMergeMulti.test_merge_datetime_indexº  sè   € ô �\‰\ÚÒAÈCÈ5ô
ˆô —>‘> "§(¡(Ó+ˆŒØ—H‘H—M‘Mˆ	àÐÙ˜iÓ(ˆIä—H‘HÒ/´r·x±xÔ@ˆ	Ü—<‘<¢i¸)Ñ DÓEˆà—‘˜" # yÐ!1°w�Ó?ˆÜ
×Ñ˜f hÔ/ä—<‘<Øª	º)ÑDó
ˆð —‘˜" "§(¡(§-¡- °g�Ó>ˆÜ
×Ñ˜f hÕ/r   Ú
merge_typer   r&   c           	      ó8  — t        j                  dddgit         j                  j                  t        j                  d«      dgt        j                  d«      dggddg¬	«      ¬
«      }t        j                  t         j                  j                  g ddg¬	«      dg¬«      }t         j                  j                  t        j                  d«      dgt        j                  d«      dggddg¬	«      }|dk(  r}t        j                  ddgt        j                  t
        j                  t
        j                  gt        ¬«      dœ|¬
«      }|j                  |dddg¬«      }|j                  |d¬«      }n|t        j                  t        j                  t
        j                  t
        j                  gt        ¬«      ddgdœ|¬
«      }|j                  |dddg¬«      }|j                  |d¬«      }t        j                  ||«       t        j                  ||«       y )Nr   r  z
1950-01-01r(   z
1950-01-02r)   Údater  r¬   )r   r!   Ústate)r!   r#   r   rÇ   )r   r"  rö   r»   )r"  r   r&   )r   r   r³   rÐ   Ú	Timestampr   rÎ   rš   Úobjectr   rV   rX   rY   )rZ   r  r   r&   Úexpected_indexr^   Úresults_mergeÚresults_joins           r   Ú(test_merge_datetime_multi_index_empty_dfz7TestMergeMulti.test_merge_datetime_multi_index_empty_dfÓ  sÖ  € ô �|‰|à˜˜c˜
ðô —-‘-×+Ñ+Ü—,‘,˜|Ó,¨cÐ2´R·\±\À,Ó5OÐQTÐ4UÐVØ˜wÐ'ð ,ó ô	
ˆô —‘Ü—-‘-×+Ñ+¨B°v¸wÐ6GÐ+ÓHØ�Iô
ˆô
 Ÿ™×2Ñ2Ü�l‰l˜<Ó(¨#Ð.´·±¸lÓ1KÈSÐ0QÐRØ˜7Ð#ð 3ó 
ˆð
 ˜ÒÜ—|‘|à  #˜JÜŸX™X¤r§v¡v¬r¯v©vÐ&6¼fÔEñð %ôˆHð !ŸJ™J u°&¸fÀgÐ=N˜JÓOˆMØŸ9™9 U°˜9Ó7‰Lä—|‘|äŸX™X¤r§v¡v¬r¯v©vÐ&6¼fÔEØ  #˜Jñð %ôˆHð "ŸK™K¨°'¸vÀwÐ>O˜KÓPˆMØ Ÿ:™: d°˜:Ó8ˆLä
×Ñ˜m¨XÔ6Ü
×Ñ˜l¨HÕ5r   c                 ój   — t        j                  g d¢g d¢g d¢dœg d¢¬«      j                  d«      }|S )Nr©   ©r   rt   r   )çffffºïAçÍÌÌÌúPAi^ )Úhousehold_idÚmaleÚwealthr6   r-  r7   )rZ   Ú	households     r   r0  zTestMergeMulti.household  s:   € ä—L‘Lâ )Ú!Ú6ñò
 7ô
÷ ‰)�NÓ
#ð 	ð Ðr   c                 óÀ   — t        j                  g d¢ddddddt        j                  gddd	d	d
dt        j                  gg d¢dœg d¢¬«      j	                  ddg«      }|S )N©rt   r   r   rŽ   rŽ   rŽ   rŒ   Únl0000301109Únl0000289783Úgb00b03mlx29Úlu0197800237Únl0000289965úABN AmroÚRobecoúRoyal Dutch ShellúAAB Eastern Europe Equity FundúPostbank BioTech Fonds©ç      ð?çš™™™™™Ù?ç333333ã?ç333333Ã?r@  ç      Ð?r>  )r-  Úasset_idr€   Úsharer6   r-  rC  )r   r   r   rš   r8   )rZ   Ú	portfolios     r   rE  zTestMergeMulti.portfolio  s}   € ä—L‘Lâ 5à"Ø"Ø"Ø"Ø"Ø"Ü—F‘Fðð ØØ'Ø'Ø4Ø,Ü—F‘Fðò ?ñ)ò, Bô/
÷0 ‰)�^ ZÐ0Ó
1ð1 	ð2 Ðr   c           	      óœ   — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢dœ«      j                  dd	g«      j                  g d
¢¬«      }|S )N)r   rt   rt   r   r   r   )r+  r,  r,  ç    xýArG  rG  )r8  r9  r:  r:  r;  r<  )r>  r?  r@  rA  r@  rB  )rt   r   r   rŽ   rŽ   rŽ   )r3  r4  r5  r5  r6  r7  )r.  r/  r€   rD  r-  rC  r-  rC  )r.  r/  r€   rD  r6   )r   r   r8   Úreindex)rZ   r^   s     r   r^   zTestMergeMulti.expected,  s\   € ô �L‰Lâ.òòò BÚ$6ò!ñ)ó÷> ‰Y˜¨
Ð3Ó4ß‰WÒ@ˆWÓAðC 	ðF ˆr   c                 ó–   — |j                  «       }|j                  «       }|j                  |d¬«      }t        j                  ||«       y )Nr  r»   )rÑ   rV   rX   rY   ©rZ   rE  r0  r^   r]   s        r   Útest_join_multi_levelsz%TestMergeMulti.test_join_multi_levelsS  s>   € Ø—N‘NÓ$ˆ	Ø—N‘NÓ$ˆ	ð —‘ 	¨w�Ó7ˆÜ
×Ñ˜f hÕ/r   c                 óê   — |j                  «       }|j                  «       }t        |j                  «       |j                  «       dgd¬«      j                  ddg«      }t	        j
                  ||«       y )Nr-  r  rO   rC  )rÑ   r   rW   r8   rX   rY   rJ  s        r   Ú(test_join_multi_levels_merge_equivalencez7TestMergeMulti.test_join_multi_levels_merge_equivalence\  sm   € Ø—N‘NÓ$ˆ	Ø—N‘NÓ$ˆ	ô Ø×!Ñ!Ó#Ø×!Ñ!Ó#ØÐØô	
÷
 ‰)�^ ZÐ0Ó
1ð 	ô 	×Ñ˜f hÕ/r   c                 ó‚  — |j                  «       }|j                  «       }|j                  |d¬«      }t        |t        j                  ddgit        j
                  j                  dt        j                  fgddg¬«      ¬	«      gd
d¬«      j                  |j                  ¬«      }t        j                  ||d¬«       y )Nrº   r»   rD  r>  rŒ   r-  rC  r¬   rÌ   r   T)r   rU   r6   F)Úcheck_index_type)rÑ   rV   r   r   r   r³   rÐ   r   rš   rH  r#   rX   rY   rJ  s        r   Útest_join_multi_levels_outerz+TestMergeMulti.test_join_multi_levels_outeri  s²   € Ø—N‘NÓ$ˆ	Ø—N‘NÓ$ˆ	à—‘ 	¨w�Ó7ˆÜàä—L‘LØ  4 &Ð)Ü Ÿm™m×7Ñ7Ø¤§¡˜[˜M°.À*Ð1Mð 8ó ôð
ð Øô
÷ ‰'˜(×*Ñ*ˆ'Ó
+ð 	ô 	×Ñ˜f hÀÖGr   c                 óÌ  — |j                  «       }|j                  «       }d|j                  _        t        j                  t
        d¬«      5  |j                  |d¬«       d d d «       |j                  «       }|j                  j                  ddg«       t        j                  t
        d¬«      5  |j                  |d¬«       d d d «       y # 1 sw Y   ŒnxY w# 1 sw Y   y xY w)Nr   z+cannot join with no overlapping index names)Úmatchr  r»   r-  z'columns overlap but no suffix specified)rÑ   r!   r€   ÚpytestÚraisesÚ
ValueErrorrV   Ú	set_names)rZ   rE  r0  Ú
portfolio2s       r   Útest_join_multi_levels_invalidz-TestMergeMulti.test_join_multi_levels_invalid  sÁ   € Ø—N‘NÓ$ˆ	Ø—N‘NÓ$ˆ	ð  %ˆ	�‰Ôä�]‰]ÜÐKô
ñ 	3ð �N‰N˜9¨'ˆNÔ2÷	3ð
 —^‘^Ó%ˆ
Ø×Ñ×"Ñ" N°EÐ#:Ô;ä�]‰]œ:Ð-VÔWñ 	4Ø�O‰O˜I¨7ˆOÔ3÷	4ð 	4÷	3ð 	3ú÷	4ð 	4ús   ÁCÂ1CÃCÃC#c           
      ó^  — t        j                  g d¢ddddddt        j                  gg d¢dœg d¢¬«      j	                  d	d
g«      }t        j                  g d¢g d¢g d¢dœ«      j	                  d
dg«      }t        j                  g d¢g d¢g d¢g d¢g d¢dœ«      j	                  g d¢«      j                  ddg¬«      }t        |j                  «       |j                  «       d
gd¬«      j	                  g d¢«      }t        j                  ||«       t        j                  g d¢g d¢g d¢g d¢g d¢dœ«      j	                  g d¢«      j                  ddg¬«      }t        |j                  «       |j                  «       d
gd ¬«      j	                  g d¢«      }t        j                  ||«       y )!Nr2  r3  r5  r6  r7  r=  )r-  rC  rD  r6   r-  rC  )r5  r5  r5  r6  r6  )éé   éê   éë   é´   éµ   )ç¢Sãç·–¸?ç×D�­¡³°¿ç ×>²ó¢?ç�
ûž?çH¨REñ¢?)rC  ÚtÚ
log_returnrd  )r   r   r   rŽ   rŽ   rŽ   rŽ   rŽ   )r5  r5  r5  r5  r5  r5  r6  r6  )rZ  r[  r\  rZ  r[  r\  r]  r^  )r@  r@  r@  rA  rA  rA  r@  r@  )r_  r`  ra  r_  r`  ra  rb  rc  )r-  rC  rd  rD  re  )r-  rC  rd  rD  re  r  rO   )r   r   r   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rt   r   rŒ   )r5  r5  r5  r5  r5  r5  r6  r6  r7  r3  r3  N)rZ  r[  r\  rZ  r[  r\  r]  r^  NNNN)r@  r@  r@  rA  rA  rA  r@  r@  rB  r>  r?  r>  )r_  r`  ra  r_  r`  ra  rb  rc  NNNNrº   )
r   r   r   rš   r8   rH  r   rW   rX   rY   )rZ   r0  re  r^   r]   s        r   Útest_join_multi_levels2z&TestMergeMulti.test_join_multi_levels2‘  sÈ  € ô —L‘Lâ 5à"Ø"Ø"Ø"Ø"Ø"Ü—F‘Fðò ?ñò :ô
÷ ‰)�^ ZÐ0Ó
1ð 	ô" —\‘\òò /òñó
÷$ ‰)�Z Ð%Ó
&ð% 	ô* �L‰Lâ$<ò	!ò BÚHò	#ñó÷6 ‰YÒ8Ó9ß‰W˜g |Ð4ˆWÓ5ð; 	ôB Ø×!Ñ!Ó#Ø×"Ñ"Ó$Øˆ|Øô	
÷
 ‰)Ò5Ó
6ð 	ô 	×Ñ˜f hÔ/ô �L‰Lâ$Hò!òòò#ñY:ó<÷z ‰YÒ8Ó9ß‰W˜g |Ð4ˆWÓ5ð 	ôD Ø×!Ñ!Ó#Ø×"Ñ"Ó$Øˆ|Øô	
÷
 ‰)Ò5Ó
6ð 	ô 	×Ñ˜f hÕ/r   )$Ú__name__Ú
__module__Ú__qualname__r_   rS  ÚmarkÚparametrizeÚparamÚtdÚ
skip_if_noÚfilterwarningsrŸ   r§   r¶   r¿   rÔ   rî   rø   r  r  r   Úasarrayr   r±   ÚIndexr  r(  Úfixturer0  rE  r^   rK  rM  rP  rX  rf  r9   r   r   rM   rM   B   sa  „ ò0ð$ ‡[�[×ÑØ˜  §¡¨T¸¸¿¹ÀyÓ9QÔ RÐSóð ‡[�[×ÑØNóñ:+óóð:+òxCò 0ò*$ò240òlC0òJ00òd0ò00ð@ ‡[�[×Ñ˜W t¨R¯Z©Z¸¿¹ÀBÇHÁHÐ&MÓNñ0ó Oð0ð0 ‡[�[×Ñ˜\¨F°GÐ+<Ó=ñ-6ó >ð-6ð^ ‡^�^ñ	ó ð	ð ‡^�^ñó ðð8 ‡^�^ñ$ó ð$òL0ò0òHò,4ó$Z0r   rM   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestMergeMultiIndexNaNc                 ó²  — t        j                  dt        j                  dgg d¢g d¢dœ«      }t        j                  dg d¢it         j                  j                  dt        j                  dgg d¢gdd	g¬
«      ¬«      }t        ||dd	gd¬«      }t        j                  dt        j                  dgg d¢g d¢g d¢dœ«      }t        j                  ||«       y )Nr>  r
  ©r>   r?   r@   ©ro   é   é   ©r   r   rì   r   ©rA   éÈ   i,  r   r   r¬   rÌ   T)r¡   r¢   )r   r   rì   r   )	r   r   r   rš   r³   Úfrom_arraysr   rX   rY   rí   s        r   Ú%test_merge_multiindex_nan_right_indexz<TestMergeMultiIndexNaN.test_merge_multiindex_nan_right_index/  sÃ   € ô �|‰|Øœ2Ÿ6™6 3Ð'²ÊÑVó
ˆô —‘Ø’_Ð%Ü—-‘-×+Ñ+Ø”r—v‘v˜sÐ#¢_Ð5¸fÀfÐ=Mð ,ó ô
ˆô �t˜U¨V°VÐ,<È$ÔOˆÜ—<‘<àœbŸf™f cÐ*Ú'Ú#Ú'ñ	ó
ˆô 	×Ñ˜f hÕ/r   c                 ó²  — t        j                  dg d¢it         j                  j                  dt        j
                  dgg d¢gddg¬«      ¬	«      }t        j                  dt        j
                  dgg d¢g d
¢dœ«      }t        ||dddg¬«      }t        j                  g d¢dt        j
                  dgg d¢g d
¢dœ«      }t        j                  ||«       y )Nr   r{  r>  r
  rv  r   r   r¬   rÌ   rw  rz  T)r¤   r£   )r   r   r   rì   )	r   r   r³   r}  r   rš   r   rX   rY   rí   s        r   Ú$test_merge_multiindex_nan_left_indexz;TestMergeMultiIndexNaN.test_merge_multiindex_nan_left_indexG  sÃ   € ô �|‰|Ø’_Ð%Ü—-‘-×+Ñ+Ø”r—v‘v˜sÐ#¢_Ð5¸fÀfÐ=Mð ,ó ô
ˆô —‘Øœ2Ÿ6™6 3Ð'²ÊÑVó
ˆô �t˜U¨t¸vÀvÐ>NÔOˆÜ—<‘<â'ØœbŸf™f cÐ*Ú'Ú#ñ	ó
ˆô 	×Ñ˜f hÕ/r   N)rg  rh  ri  r~  r€  r9   r   r   rt  rt  .  s   „ ò0ó00r   rt  c                   ó¬   — e Zd Zd„ Zd„ Zej                  j                  ddej                  e
j                  e
j                  g«      d„ «       Zd„ Zd„ Zy)ÚTestJoinMultiMultic                 ó¶  — |j                   j                  }|j                   j                  }|dk(  r||j                  |«      z   }n||j                  |«      z   }t        |j	                  «       |j	                  «       ||¬«      j                  |«      j                  «       }|j                  ||¬«      j                  «       }	t        j                  |	|«       y )Nr&   rö   r»   )
r!   r"   Ú
differencer   rW   r8   Ú
sort_indexrV   rX   rY   ©
rZ   r:   rI   r[   rK   Ú
left_namesÚright_namesÚlevel_orderr^   r]   s
             r   Útest_join_multi_multiz(TestJoinMultiMulti.test_join_multi_multi`  sÃ   € Ø×%Ñ%×+Ñ+ˆ
Ø!×'Ñ'×-Ñ-ˆØ˜ÒØ%¨
×(=Ñ(=¸kÓ(JÑJ‰Kà$ {×'=Ñ'=¸jÓ'IÑIˆKô Ø×&Ñ&Ó(Ø×'Ñ'Ó)ØØ ô	÷ ‰Y�{Ó#ß‰Z‹\ð 	ð —‘ °)�Ó<×GÑGÓIˆÜ
×Ñ˜f hÕ/r   c                 ó&  — |j                  |j                  ¬«      }|j                  |j                  ¬«      }|j                  j                  }|j                  j                  }|dk(  r||j	                  |«      z   }n||j	                  |«      z   }t        |j                  «       |j                  «       ||¬«      j                  |«      j                  «       }|j                  ||¬«      j                  «       }	t        j                  |	|«       y )Nr6   r&   rö   r»   )rS   r#   r!   r"   r„  r   rW   r8   r…  rV   rX   rY   r†  s
             r   Útest_join_multi_empty_framesz/TestJoinMultiMulti.test_join_multi_empty_framesv  sô   € ð  —_‘_¨Z×-?Ñ-?�_Ó@ˆ
Ø!×&Ñ&¨{×/BÑ/BÐ&ÓCˆà×%Ñ%×+Ñ+ˆ
Ø!×'Ñ'×-Ñ-ˆØ˜ÒØ%¨
×(=Ñ(=¸kÓ(JÑJ‰Kà$ {×'=Ñ'=¸jÓ'IÑIˆKô Ø×&Ñ&Ó(Ø×'Ñ'Ó)ØØ ô	÷ ‰Y�{Ó#ß‰Z‹\ð 	ð —‘ °)�Ó<×GÑGÓIˆÜ
×Ñ˜f hÕ/r   ÚboxNc                 óX  — t        j                  g d¢g d¢dg¬«      }t        j                  |j                  «      |_        |j                  j                  }|� ||«      }t        j                  g d¢t
        j                  ¬«      }t        j                  g d¢|dœ«      }|j                  |d|gd¬	«      }t        j                  ||«       t        j                  |g d¢g d¢d
œ«      }|j                  ||j                  j                  gd¬	«      }t        j                  ||«       y r  r  )rZ   r�  r%   r  r  r^   r]   s          r   r  z,TestJoinMultiMulti.test_merge_datetime_index‘  sæ   € ô �\‰\ÚÒAÈCÈ5ô
ˆô —>‘> "§(¡(Ó+ˆŒØ—H‘H—M‘Mˆ	àˆ?Ù˜I›ˆIä—H‘HÒ/´r·x±xÔ@ˆ	Ü—<‘<¢i¸)Ñ DÓEˆà—‘˜" # yÐ!1°w�Ó?ˆÜ
×Ñ˜f hÔ/ä—<‘<Øª	º)ÑDó
ˆð —‘˜" "§(¡(§-¡- °g�Ó>ˆÜ
×Ñ˜f hÕ/r   c                 óØ  — t         j                  j                  g d¢ddg¬«      }t        j                  g d¢g d¢dœ|¬«      }t         j                  j                  g d	¢dd
g¬«      }t        j                  g d¢g d¢dœ|¬«      }|j	                  |«      }t        |j                  «       |j                  «       dgd¬«      j                  g d¢«      }t        j                  ||«       y )N))ÚK0ÚX0)r�  ÚX1)ÚK1ÚX2ÚkeyrÖ   r¬   )ÚA0ÚA1ÚA2)ÚB0ÚB1ÚB2)r(   r)   rÌ   ))r�  ÚY0)r“  ÚY1)ÚK2ÚY2)rž  ÚY3r×   )ÚC0ÚC1ÚC2ÚC3)ÚD0ÚD1ÚD2ÚD3)r*   rÞ   r  rO   )r•  rÖ   r×   )
r   r³   rÐ   r   rV   r   rW   r8   rX   rY   )rZ   Ú
index_leftr   Úindex_rightr&   r]   r^   s          r   Útest_single_common_levelz+TestJoinMultiMulti.test_single_common_levelª  s×   € Ü—]‘]×.Ñ.Ú6¸uÀc¸lð /ó 
ˆ
ô �|‰|Ú$Ò+=Ñ>Àjô
ˆô —m‘m×/Ñ/ÚDÈUÐTWÈLð 0ó 
ˆô —‘Ú*Ò1IÑJØô
ˆð
 —‘˜5Ó!ˆÜØ×ÑÓ × 1Ñ 1Ó 3¸¸ÀWô
ç
‰)Ò%Ó
&ð 	ô 	×Ñ˜f hÕ/r   c                 ó¶  — t         j                  j                  ddgddggddg¬«      }t         j                  j                  g d¢ddg¬«      }t        j                  |d	g d
¢i¬«      }t        j                  |dg d¢i¬«      }|j                  |«      }t        j                  |g d
¢dddt        j                  gdœ¬«      }t        j                  ||«       y )Nrt   r   rŽ   rŒ   r>   r?   r¬   ))rŒ   rt   )rŽ   r   )rŽ   rt   rñ   )ro   rx  ry  é(   )r!   r   rò   )r   r   Úfingr®  r   r   )rñ   rò   )
r   r³   r´   rÐ   r   rV   r   rš   rX   rY   )rZ   Úmidx1Úmidx3r   r&   r]   r^   s          r   Útest_join_multi_wrong_orderz.TestJoinMultiMulti.test_join_multi_wrong_orderÃ  s¿   € ô —‘×*Ñ*¨Q°¨F°Q¸°FÐ+;ÀCÈÀ:Ð*ÓNˆÜ—‘×)Ñ)Ò*BÈ3ÐPSÈ*Ð)ÓUˆä�|‰| %¨sÒ4DÐ.EÔFˆÜ—‘ 5°Ò5KÐ/LÔMˆà—‘˜5Ó!ˆä—<‘<ØÚ'¨v°u¸eÄRÇVÁVÐ.LÑMô
ˆô
 	×Ñ˜f hÕ/r   )rg  rh  ri  rŠ  rŒ  rS  rj  rk  r   rp  r   r±   rq  r  r«  r±  r9   r   r   r‚  r‚  _  sQ   „ ò0ò,0ð6 ‡[�[×Ñ˜U T¨2¯:©:°r·y±yÀ"Ç(Á(Ð$KÓLñ0ó Mð0ò00ó20r   r‚  rÈ   c                 ón  — t        j                  t        j                  g d¢| ¬«      t        j                  g d¢| ¬«      g d¢dœ«      }t        j                  t        j                  g d¢| ¬«      t        j                  g d¢| ¬«      g d¢d	œ«      }t	        ||d
dg|d¬«      }|j                  d
dg«      j                  j                  sJ ‚|dk(  rct        j                  t        j                  ddg| ¬«      t        j                  ddg| ¬«      ddgddgdœ«      }t        j                  ||«       y y )N)rŽ   rt   rŽ   r   rÇ   )ro   rx  r�   rx  ©r   rt   r   rŽ   ©rÁ   rÂ   Úlval)rŽ   r   rŒ   )r�   rx  rt   rÃ   ©rÁ   rÂ   ÚrvalrÁ   rÂ   TrT   r  r   rŽ   rx  r�   rt   r   ©rÁ   rÂ   rµ  r·  )
r   r   r   rÎ   r   r8   r!   Úis_monotonic_increasingrX   rY   )rÈ   r[   r   r&   r]   r^   s         r   Útest_merge_multi_int_keys_sortrº  ×  s
  € ô �<‰<ä—(‘(š<¨uÔ5Ü—(‘(š?°%Ô8Ú ñ	
ó€Dô �L‰Lä—(‘(š9¨EÔ2Ü—(‘(š:¨UÔ3Úñ	
ó€Eô �4˜ D¨$ <°YÀTÔJ€FØ×Ñ˜T 4˜LÓ)×/Ñ/×GÒGÐGÐGà�GÒÜ—<‘<ä—h‘h  1˜v¨UÔ3Ü—h‘h  A˜w¨eÔ4Ø˜A˜Ø˜A˜ñ	ó
ˆô 	×Ñ˜f hÕ/ð r   c                  ó*  — t        j                  t         j                  «      j                  } t	        j
                  t        j                  | | dz   | dz   gt         j                  ¬«      t        j                  g d¢t         j                  ¬«      g d¢dœ«      }t	        j
                  t        j                  | dz   | gt         j                  ¬«      t        j                  ddgt         j                  ¬«      d	d
gdœ«      }t        ||ddgd¬«      }t	        j
                  t        j                  | | dz   gt         j                  ¬«      t        j                  ddgt         j                  ¬«      d	d
gd
d	gdœ«      }t        j                  ||«       y )Nr�   rŽ   rÇ   )r�   rx   r�   rÃ   r´  rx   r�   r   rt   r¶  rÁ   rÂ   r  rO   r¸  )
r   ÚiinforÏ   Úminr   r   rÎ   r   rX   rY   )Úiminr   r&   r]   r^   s        r   Ú%test_merge_multi_int64_extreme_valuesr¿  ø  s*  € ä�8‰8”B—H‘HÓ×!Ñ!€DÜ�<‰<ä—(‘(˜D $¨¡(¨D°1©HÐ5¼R¿X¹XÔFÜ—(‘(š<¬r¯x©xÔ8Úñ	
ó€Dô �L‰Lä—(‘(˜D 1™H dÐ+´2·8±8Ô<Ü—(‘(˜B ˜8¬2¯8©8Ô4Ø˜�Fñ	
ó€Eô �4˜ D¨$ <°WÔ=€FÜ�|‰|ä—(‘(˜D $¨¡(Ð+´2·8±8Ô<Ü—(‘(˜B ˜8¬2¯8©8Ô4Ø˜�FØ˜�Fñ		
ó€Hô ×Ñ˜& (Õ+r   c                  ó*  — t        j                  t         j                  «      j                  } t	        j
                  t        j                  | | dz
  | dz
  gt         j                  ¬«      t        j                  g d¢t         j                  ¬«      g d¢dœ«      }t	        j
                  t        j                  | dz
  | gt         j                  ¬«      t        j                  ddgt         j                  ¬«      d	dgd
œ«      }t        ||ddgd¬«      }t	        j
                  t        j                  | | dz
  gt         j                  ¬«      t        j                  ddgt         j                  ¬«      d	dgdd	gdœ«      }t        j                  ||«       y )Nr�   rŽ   rÇ   r©   rÃ   r´  r   rt   r   r¶  rÁ   rÂ   r  rO   r¸  )
r   r¼  Úuint64Úmaxr   r   rÎ   r   rX   rY   )Úumaxr   r&   r]   r^   s        r   Ú&test_merge_multi_uint64_extreme_valuesrÄ    s*  € ä�8‰8”B—I‘IÓ×"Ñ"€DÜ�<‰<ä—(‘(˜D $¨¡(¨D°1©HÐ5¼R¿Y¹YÔGÜ—(‘(š9¬B¯I©IÔ6Úñ	
ó€Dô �L‰Lä—(‘(˜D 1™H dÐ+´2·9±9Ô=Ü—(‘(˜A˜q˜6¬¯©Ô3Ø˜�Fñ	
ó€Eô �4˜ D¨$ <°WÔ=€FÜ�|‰|ä—(‘(˜D $¨¡(Ð+´2·9±9Ô=Ü—(‘(˜A˜q˜6¬¯©Ô3Ø˜�FØ˜�Fñ		
ó€Hô ×Ñ˜& (Õ+r   c                  ó¶  — t        j                  t        j                  g d¢t        j                  ¬«      t        j                  g d¢t        j                  ¬«      g d¢dœ«      } t        j                  t        j                  g d¢t        j                  ¬«      t        j                  g d¢t        j                  ¬«      g d¢dœ«      }t        | |d	d
gd¬«      }t        j                  t        j                  g d¢t        j                  ¬«      t        j                  g d¢t        j                  ¬«      g d¢g d¢dœ«      }t        j                  ||«       y )N)r   ì            r�   rÇ   )r   ì            rË   rÃ   r´  )r�   r   rÆ  )rË   r   rÇ  r¶  rÁ   rÂ   r  rO   )rt   r   r   r¸  ©r   r   r   rÎ   rÏ   r   rX   rY   ©r   r&   r]   r^   s       r   Ú#test_merge_multi_int_keys_wide_spanrÊ  2  sß   € ô �<‰<ä—(‘(š=´·±Ô9Ü—(‘(š=´·±Ô9Úñ	
ó€Dô �L‰Lä—(‘(š=´·±Ô9Ü—(‘(š=´·±Ô9Úñ	
ó€Eô �4˜ D¨$ <°WÔ=€FÜ�|‰|ä—(‘(š=´·±Ô9Ü—(‘(š=´·±Ô9ÚÚñ		
ó€Hô ×Ñ˜& (Õ+r   c                  ón  — d} d}t        | «      D �ci c]!  }d|› �t        j                  |«      d|z   z  “Œ# }}t        j                  i |¥dt        j                  |«      i¥«      }|j
                  d d d…   j                  dg¬«      j                  «       }t        j                  t        |«      «      dz  |d	<   t        ||t        |«      d
¬«      }|j
                  d d d…   j                  d¬«      }t        j                  t        |«      «      dz  |d	<   t        j                  ||«       y c c}w )Né   éx   Úkéa   rµ  r   r6   ro   r·  r  rO   TrR   )r²   r   r”   r   r   r   rS   rÑ   r   r   r’   rW   rX   rY   )Ún_keysÚn_rowsrž   Úkeysr   r&   r]   r^   s           r   Ú)test_merge_multi_many_keys_int64_overflowrÓ  O  s  € ð €FØ€Fô <AÀ»=ÖI°aˆa�ˆsˆG”R—Y‘Y˜vÓ&¨"¨q©&Ñ1Ñ1ÐI€DÐIÜ�<‰<Ð;˜4Ð; ¬¯©°6Ó):Ñ;Ó<€DØ�I‰I‘c˜�c‰N×Ñ¨¨ÐÓ1×6Ñ6Ó8€EÜ—I‘Iœc %›jÓ)¨BÑ.€Eˆ&�Mä�4˜¤4¨£:°7Ô;€Fà�y‰y™˜1˜‰~×)Ñ)¨tÐ)Ó4€HÜ—y‘y¤ X£Ó/°"Ñ4€HˆVÑÜ×Ñ˜& (Õ+ùò Js   ’&D2c                  ó  — t        j                  g d¢«      } t        j                  | t        j                  g d¢t        j
                  ¬«      g d¢dœ«      }t        j                  | d d t        j                  ddgt        j
                  ¬«      ddgd	œ«      }t        ||d
dgd¬«      }t        j                  | t        j                  g d¢t        j
                  ¬«      g d¢g d¢dœ«      }t        j                  ||«       y )N©ú
2020-01-01ú
2020-01-02rÖ  ©rt   r   rt   rÇ   rÃ   r´  r   rt   r   r¶  rÁ   rÂ   r  rO   r*  r¸  ©	r   r  r   r   rÎ   rÏ   r   rX   rY   ©Údtir   r&   r]   r^   s        r   Ú"test_merge_multi_datetime_int_keysrÜ  d  sÅ   € ä
�.‰.ÒCÓ
D€CÜ�<‰<Øœ"Ÿ(™(¢9´B·H±HÔ=ÂyÑQó€Dô �L‰LØ�2�AˆwœbŸh™h¨¨1 v´R·X±XÔ>ÈÈAÈÑOó€Eô �4˜ D¨$ <°WÔ=€FÜ�|‰|àÜ—(‘(š9¬B¯H©HÔ5ÚÚñ		
ó€Hô ×Ñ˜& (Õ+r   c                  ó  — t        j                  g d¢«      } t        j                  | t        j                  g d¢t        j
                  ¬«      g d¢dœ«      }t        j                  | d d t        j                  ddgt        j
                  ¬«      ddgd	œ«      }t        ||d
dgd¬«      }t        j                  | d d t        j                  ddgt        j
                  ¬«      ddgddgdœ«      }t        j                  ||«       y )N)rÖ  ÚNaTr×  r©   rÇ   rÃ   r´  r   rt   r   r¶  rÁ   rÂ   r  rO   r¸  rÙ  rÚ  s        r   Ú'test_merge_multi_datetime_keys_with_natrß  y  s×   € ä
�.‰.Ò<Ó
=€CÜ�<‰<Øœ"Ÿ(™(¢9´B·H±HÔ=ÂyÑQó€Dô �L‰LØ�2�AˆwœbŸh™h¨¨1 v´R·X±XÔ>ÈÈAÈÑOó€Eô �4˜ D¨$ <°WÔ=€FÜ�|‰|à�b�q�'Ü—(‘(˜A˜q˜6¬¯©Ô2Ø˜�FØ˜�Fñ		
ó€Hô ×Ñ˜& (Õ+r   c                  ó:  — t        j                  g d¢«      j                  d«      } t        j                  | t	        j
                  g d¢t        j                  ¬«      g d¢dœ«      }t        j                  | ddg   t	        j
                  d	dgt        j                  ¬«      ddgd
œ«      }t        ||ddgdd¬«      }t        j                  | g d¢   t	        j
                  g d¢t        j                  ¬«      g d¢g d¢dœ«      }t        j                  ||«       y )N)z
1680-01-01rÞ  z
1680-01-03rÞ  Úns©rt   r   rŽ   r   rÇ   r³  r´  rt   r   r   r¶  rÁ   rÂ   r  TrT   )rt   rt   r   )r   r   rt   )rt   rŽ   r   )r   r   rt   r¸  )
r   r  Úas_unitr   r   rÎ   rÏ   r   rX   rY   rÚ  s        r   Ú(test_merge_multi_datetime_nat_fused_sorträ  Ž  sÛ   € ô �.‰.ÒCÓ
D×
LÑ
LÈTÓ
R€CÜ�<‰<Øœ"Ÿ(™(¢<´r·x±xÔ@Ê,ÑWó€Dô �L‰LØ�A�q�6‰{¤"§(¡(¨A¨q¨6¼¿¹Ô"BÈQÐPQÈFÑSó€Eô �4˜ D¨$ <°WÀ4ÔH€FÜ�|‰|à’i‘.Ü—(‘(š9¬B¯H©HÔ5ÚÚñ		
ó€Hô ×Ñ˜& (Õ+r   c                  ó*  — t        j                  g d¢«      j                  d«      } t        j                  | t	        j
                  g d¢t        j                  ¬«      g d¢dœ«      }t        j                  | d d t	        j
                  ddgt        j                  ¬«      d	dgd
œ«      }t        ||ddgd¬«      }t        j                  | t	        j
                  g d¢t        j                  ¬«      g d¢g d¢dœ«      }t        j                  ||«       y )NrÕ  z
US/PacificrØ  rÇ   rÃ   r´  r   rt   r   r¶  rÁ   rÂ   r  rO   r*  r¸  )
r   r  Útz_localizer   r   rÎ   rÏ   r   rX   rY   rÚ  s        r   Ú$test_merge_multi_datetimetz_int_keysrç  ¥  sÕ   € ä
�.‰.ÒCÓ
D×
PÑ
PØó€Cô �<‰<Øœ"Ÿ(™(¢9´B·H±HÔ=ÂyÑQó€Dô �L‰LØ�2�AˆwœbŸh™h¨¨1 v´R·X±XÔ>ÈÈAÈÑOó€Eô �4˜ D¨$ <°WÔ=€FÜ�|‰|àÜ—(‘(š9¬B¯H©HÔ5ÚÚñ		
ó€Hô ×Ñ˜& (Õ+r   c                  ó  — t        j                  g d¢d¬«      } t        j                  | t        j                  g d¢t        j
                  ¬«      g d¢dœ«      }t        j                  | d d t        j                  ddgt        j
                  ¬«      d	dgd
œ«      }t        ||ddgd¬«      }t        j                  | t        j                  g d¢t        j
                  ¬«      g d¢g d¢dœ«      }t        j                  ||«       y )NrØ  rµ   )ÚunitrÇ   rÃ   r´  r   rt   r   r¶  rÁ   rÂ   r  rO   r*  r¸  )	r   Úto_timedeltar   r   rÎ   rÏ   r   rX   rY   )Útdir   r&   r]   r^   s        r   Ú#test_merge_multi_timedelta_int_keysrì  ¼  sÆ   € ä
�/‰/š)¨#Ô
.€CÜ�<‰<Øœ"Ÿ(™(¢9´B·H±HÔ=ÂyÑQó€Dô �L‰LØ�2�AˆwœbŸh™h¨¨1 v´R·X±XÔ>ÈÈAÈÑOó€Eô �4˜ D¨$ <°WÔ=€FÜ�|‰|àÜ—(‘(š9¬B¯H©HÔ5ÚÚñ		
ó€Hô ×Ñ˜& (Õ+r   c                  ó¶  — t        j                  t        j                  g d¢t        j                  ¬«      t        j                  g d¢t        j
                  ¬«      g d¢dœ«      } t        j                  t        j                  ddgt        j
                  ¬«      t        j                  ddgt        j                  ¬«      d	dgd
œ«      }t        | |ddgd¬«      }t        j                  t        j                  ddgt        j                  ¬«      t        j                  ddgt        j
                  ¬«      ddgd	dgdœ«      }t        j                  ||«       y )Nrâ  rÇ   ©rt   rt   r   r   r³  r´  r   rŽ   rt   r   r¶  rÁ   rÂ   r  rO   r¸  )	r   r   r   rÎ   rÓ   rÏ   r   rX   rY   rÉ  s       r   Ú!test_merge_multi_mixed_int_dtypesrï  Ñ  sû   € ä�<‰<ä—(‘(š<¬r¯x©xÔ8Ü—(‘(š<¬r¯x©xÔ8Ú ñ	
ó€Dô �L‰Lä—(‘(˜A˜q˜6¬¯©Ô2Ü—(‘(˜A˜q˜6¬¯©Ô2Ø˜�Fñ	
ó€Eô �4˜ D¨$ <°WÔ=€FÜ�|‰|ô —(‘(˜A˜q˜6¬¯©Ô2Ü—(‘(˜A˜q˜6¬¯©Ô2Ø˜�FØ˜�Fñ	
ó€Hô ×Ñ˜& (Õ+r   c                  óV  — t        j                  t        j                  g d¢«      t        j                  g d¢t        j                  ¬«      g d¢dœ«      } t        j                  t        j                  ddg«      t        j                  dd	gt        j                  ¬«      d
d	gdœ«      }t        | |ddgd¬«      }t        j                  t        j                  ddg«      t        j                  d	dgt        j                  ¬«      d	dgd	d
gdœ«      }t        j                  ||«       y )N)TFTFrî  rÇ   r³  r´  TFr   rt   r   r¶  rÁ   rÂ   r  rO   r¸  rÈ  rÉ  s       r   Útest_merge_multi_bool_int_keysrñ  î  sè   € ä�<‰<ä—(‘(Ò5Ó6Ü—(‘(š<¬r¯x©xÔ8Ú ñ	
ó€Dô �L‰Lä—(‘(˜D %˜=Ó)Ü—(‘(˜A˜q˜6¬¯©Ô2Ø˜�Fñ	
ó€Eô �4˜ D¨$ <°WÔ=€FÜ�|‰|ä—(‘(˜E 4˜=Ó)Ü—(‘(˜A˜q˜6¬¯©Ô2Ø˜�FØ˜�Fñ		
ó€Hô ×Ñ˜& (Õ+r   c                  ó<  — t         j                  j                  g d¢g d¢¬«      } t        j                  dg d¢i| ¬«      }t         j                  j                  ddgg d¢¬«      }t        j                  d	d
dgi|¬«      }|j	                  |ddd¬«      }t         j                  j                  g d¢g d¢¬«      }t        j                  t
        j                  dddgd
t
        j                  t
        j                  dgdœ|¬«      }t        j                  ||«       y )N)©r   ÚTV©Útrainrì   ©rt   rô  rõ  ©r   ÚTest)Útest)ÚepochÚstageÚslr¬   r>   )çš™™™™™¹?çš™™™™™É?ç333333Ó?rÌ   ©r   ÚReval)Úrevalrø  r?   g¸…ëQ¸ž?gÍÌÌÌÌÌì?rº   T)rQ   r¤   r¢   )r  ró  r÷  rø  rþ  rÿ  r   )r>   r?   )	r   r³   rÐ   r   r   r   rš   rX   rY   )Úa_idxÚa_dfÚb_idxÚb_dfr]   Úexpected_idxr^   s          r   Ú-test_merge_multiindex_with_tuple_valued_levelr	  
  s  € ô �M‰M×%Ñ%ò	
ò
 'ð &ó €Eô �<‰<˜šoÐ.°eÔ<€DÜ�M‰M×%Ñ%Ø	!Ð#9Ð:Ú&ð &ó €Eô �<‰<˜˜t S˜kÐ*°%Ô8€DØ�Z‰Z˜ '°dÈˆZÓM€FÜ—=‘=×,Ñ,ò	
ò 'ð -ó €Lô �|‰|Ü�v‰v�s˜C Ð%¨T´2·6±6¼2¿6¹6À3Ð,GÑHØô€Hô ×Ñ˜& (Õ+r   )+Únumpyr   rS  Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsrm  Úpandasr   Úpandas._testingÚ_testingrX   Úpandas.core.reshape.concatr   Úpandas.core.reshape.merger   rr  r   r&   r:   rI   rK   rM   rt  r‚  rj  rk  rÏ   rÓ   Úuint16rº  r¿  rÄ  rÊ  rÓ  rÜ  rß  rä  rç  rì  rï  rñ  r	  r9   r   r   ú<module>r     s6  ðÛ Û ç )Ð )ã Ý Ý -Ý +ð ‡�ñDó ðDð ‡�ñó ðð ‡�ñ
Aó ð
Að ‡�ñ
Aó ð
Að ‡�ñ/ó ð/÷i0ñ i0÷X.0ñ .0÷bu0ñ u0ðp ‡�×Ñ˜ 2§8¡8¨R¯X©X°r·y±yÐ"AÓBñ0ó Cð0ò@,ò:,ò:,ò:,ò*,ò*,ò*,ò.,ò.,ò*,ò:,ó8,r   