Ë
    u™ãjÜJ  ã                   ó‚  — d dl m Z  d dlZd dlZd dlZd dlZd dlmZ d dl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(                  j+                  d	d
d e	j,                  ddgddgdœddg¬«      fd
d e	j,                  ddgddgdœddg¬«      fdd e	j,                  g d¢ddej.                  gdœg d¢¬«      fdd e	j,                  g d¢ej.                  ddgdœg d¢¬«      fdd e	j,                  ej.                  ddgg d¢dœg d¢¬«      fdd e	j,                  ddej.                  gg d¢dœg d¢¬«      fdd e	j,                  d ddej.                  gej.                  ddd gdœg d!¢¬«      fdd e	j,                  d ddej.                  gej.                  ddd gdœg d!¢¬«      fg«      d"„ «       Zd#„ Zd$„ Zd%„ Zej(                  j+                  d&d'd(g«      d)„ «       Zd*„ Zd+„ Zd,„ Zd-„ Z d.„ Z!d/„ Z"d0„ Z#d1„ Z$d2„ Z%d3„ Z& G d4„ d5«      Z'y)6é    )ÚdatetimeN)Ú
MergeError)Úconcatc                  óP   — t        j                  g d¢g d¢dœt        d«      ¬«      S )N©ÚaÚbÚcÚd©ÚcatÚdogÚweaselÚhorse©r   r	   é   ©Úindex)ÚpdÚ	DataFrameÚrange© ó    úo/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/frame/methods/test_join.pyÚleft_no_dupr      s#   € ä�<‰<Ú"Ò)JÑKÜ�A‹hôð r   c                  ón   — t        j                  g d¢g d¢dœt        d«      ¬«      j                  d«      S )N)r   r	   r
   r   Úe)ÚmeowÚbarkúum... weasel noise?ÚnayÚchirp©r   r
   é   r   r   )r   r   r   Ú	set_indexr   r   r   Úright_no_dupr&      s2   € ä�<‰<â*ÚHñ	
ô �A‹hô÷ �i�ƒnðr   c                 óV   — t        | t        j                  dgdgdœdg¬«      gd¬«      S )Nr   Úcowr   é   r   T)Úsort)r   r   r   )r   s    r   Úleft_w_dupsr+   "   s0   € äØ	”b—l‘l¨#¨°e°WÑ#=ÀaÀSÔIÐJÐQUôð r   c                 óp   — t        | t        j                  dgdgdœdg¬«      g«      j                  d«      S )Nr   Úmoor#   r)   r   r   )r   r   r   r%   )r&   s    r   Úright_w_dupsr.   )   s6   € äØ	”r—|‘|¨3¨%°u°gÑ$>ÀqÀcÔJÐKóç�i�ƒnðr   zhow, sort, expectedÚinnerFé   é
   éÈ   éd   r   é   é   r   TÚleft©r0   r1   r   ©r4   r5   r   ©r   r1   r0   )r   r5   r4   Úright©é,  r3   r2   ©r)   r5   r4   ©r3   r2   r<   ©r5   r4   r)   Úouterr<   )r   r5   r4   r)   c                 óÎ   — t        j                  dg d¢ig d¢¬«      }t        j                  dg d¢ig d¢¬«      }|j                  || |d¬	«      }t        j                  ||«       y )
Nr   r7   r8   r   r	   r;   r=   ú1:1)Úhowr*   Úvalidate)r   r   ÚjoinÚtmÚassert_frame_equal)rC   r*   Úexpectedr6   r:   Úresults         r   Ú	test_joinrJ   0   sU   € ô` �<‰<˜škÐ*²)Ô<€DÜ�L‰L˜#šÐ/²yÔA€EØ�Y‰Y�u #¨D¸5ˆYÓA€FÜ×Ñ˜& (Õ+r   c                  ó>  — t        j                  dg d¢i«      } t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }d}t        j                  t        |¬«      5  | j                  |gd	¬
«       d d d «       t        j                  t        |¬«      5  | j                  ||gd¬
«       d d d «       t        j                  t        |¬«      5  | j                  ||gd¬
«       d d d «       t        j                  t        d¬«      5  | j                  ||g«       d d d «       | j                  |g«      }| j                  |«      }t        j                  ||«       y # 1 sw Y   ŒìxY w# 1 sw Y   Œ¿xY w# 1 sw Y   Œ’xY w# 1 sw Y   ŒgxY w)NÚkey)r5   r4   r)   r   r$   )r5   é   r)   r4   r$   )rL   Úv1)r$   r4   r)   r   r5   )ÚkeysÚv2z7Suffixes not supported when joining multiple DataFrames©Úmatch)ÚyÚ ©Úsuffixes)rT   Úx)rS   rW   zIndexes have overlapping values)r   r   ÚpytestÚraisesÚ
ValueErrorrE   rF   rG   )ÚfirstÚsecondÚthirdÚmsgÚ
arr_joinedÚnorm_joineds         r   Útest_suffix_on_list_joinra   f   sJ  € Ü�L‰L˜%¢Ð1Ó2€EÜ�\‰\¢/ºÑIÓJ€FÜ�L‰L¢/ºÑIÓJ€Eð D€CÜ	�‰”z¨Ô	-ñ 1Ø�
‰
�F�8 iˆ
Ô0÷1ä	�‰”z¨Ô	-ñ 8Ø�
‰
�F˜E�?¨Yˆ
Ô7÷8ä	�‰”z¨Ô	-ñ 9Ø�
‰
�F˜E�?¨Zˆ
Ô8÷9ä	�‰”zÐ)JÔ	Kñ $Ø�
‰
�F˜E�?Ô#÷$ð —‘˜U˜GÓ$€JØ—*‘*˜UÓ#€KÜ×Ñ˜* kÕ2÷1ð 1ú÷8ð 8ú÷9ð 9ú÷$ð $ús0   Á/E/Â'E;Ã FÄFÅ/E8Å;FÆFÆFc                  ó  — t        j                  ddgddgdœ«      } t        j                  ddgdd	gd
œ«      }d}t        j                  t         j                  j
                  |¬«      5  | j                  |dd¬«      }d d d «       | j                  |d¬«      }t        j                  |«       t        j                  t         j                  j
                  |¬«      5  | j                  |d¬«      }d d d «       | j                  |d¬«      }t        j                  ||«       t        j                  t        d¬«      5  | j                  |dd¬«       d d d «       y # 1 sw Y   ŒßxY w# 1 sw Y   ŒwxY w# 1 sw Y   y xY w)Nr5   r4   r)   r   r   r$   é   é   rM   )r	   r
   zEThe 'lsuffix' and 'rsuffix' keywords in DataFrame.join are deprecatedrQ   Ú_leftÚ_right)ÚlsuffixÚrsuffix)re   rf   rU   )rg   )re   rT   zCannot specify both)rg   rV   )r   r   rF   Úassert_produces_warningÚerrorsÚPandas4WarningrE   rG   rX   rY   rZ   )Údf1Údf2r^   rI   rH   s        r   Ú$test_join_lsuffix_rsuffix_deprecatedrn   |   sO  € ä
�,‰,˜a ˜V¨1¨a¨&Ñ1Ó
2€CÜ
�,‰,˜a ˜V¨1¨a¨&Ñ1Ó
2€Cà
Q€CÜ	×	#Ñ	#¤B§I¡I×$<Ñ$<ÀCÔ	Hñ BØ—‘˜# w¸�ÓAˆ÷Bà�x‰x˜Ð&9ˆxÓ:€HÜ×Ñ˜& (Ô+ô 
×	#Ñ	#¤B§I¡I×$<Ñ$<ÀCÔ	Hñ 0Ø—‘˜# w�Ó/ˆ÷0à�x‰x˜ mˆxÓ4€HÜ×Ñ˜& (Ô+ô 
�‰”zÐ)>Ô	?ñ EØ�‰�˜gÐ0CˆÔD÷Eð E÷Bð Bú÷0ð 0ú÷Eð Eús$   Á*EÃE)Ä?E5ÅE&Å)E2Å5E>c                 ó�   — d}t        j                  t        |¬«      5  | j                  |dd¬«       d d d «       y # 1 sw Y   y xY w)Nz—"invalid" is not a valid argument. Valid arguments are:
- "1:1"
- "1:m"
- "m:1"
- "m:m"
- "one_to_one"
- "one_to_many"
- "many_to_one"
- "many_to_many"rQ   r   Úinvalid©ÚonrD   )rX   rY   rZ   Úmerge)r   r&   r^   s      r   Útest_join_invalid_validatert   ’   sJ   € ð		ð ô 
�‰”z¨Ô	-ñ DØ×Ñ˜,¨3¸ÐÔC÷D÷ Dñ Dús	   ž<¼AÚdtypeÚobjectústring[pyarrow]c                 óN  — |dk(  rt        j                  d«       | j                  |«      } |j                  j                  |«      |_        | j	                  |dd¬«       d}t        j
                  t        |¬«      5  | j	                  |dd¬«       d d d «       y # 1 sw Y   y xY w)	Nrw   Úpyarrowr   Úone_to_manyrq   zBMerge keys are not unique in right dataset; not a one-to-one mergerQ   Ú
one_to_one)rX   ÚimportorskipÚastyper   rE   rY   r   )r   r.   ru   r^   s       r   Ú$test_join_on_single_col_dup_on_rightr~   ¥   s§   € ð Ð!Ò!Ü×Ñ˜IÔ&Ø×$Ñ$ UÓ+€KØ%×+Ñ+×2Ñ2°5Ó9€LÔØ×ÑØØØð ô ð O€CÜ	�‰”z¨Ô	-ñ 
Ø×ÑØØØ!ð 	ô 	
÷
÷ 
ñ 
ús   Á=BÂB$c                 ó¸   — | j                  |dd¬«       d}t        j                  t        |¬«      5  | j                  |dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   Úmany_to_onerq   zAMerge keys are not unique in left dataset; not a one-to-one mergerQ   r{   ©rE   rX   rY   r   )r+   r&   r^   s      r   Ú#test_join_on_single_col_dup_on_leftr‚   ½   sg   € ð ×ÑØØØð ô ð N€CÜ	�‰”z¨Ô	-ñ 
Ø×ÑØØØ!ð 	ô 	
÷
÷ 
ñ 
ús   ²AÁAc                 óD  — | j                  |dd¬«       d}t        j                  t        |¬«      5  | j                  |dd¬«       d d d «       d}t        j                  t        |¬«      5  | j                  |dd¬«       d d d «       y # 1 sw Y   ŒDxY w# 1 sw Y   y xY w)	Nr   Úmany_to_manyrq   zCMerge keys are not unique in right dataset; not a many-to-one mergerQ   r€   zBMerge keys are not unique in left dataset; not a one-to-many mergerz   r�   )r+   r.   r^   s      r   Ú#test_join_on_single_col_dup_on_bothr…   Ð   s¬   € ð ×Ñ�\ c°NÐÔCð P€CÜ	�‰”z¨Ô	-ñ 
Ø×ÑØØØ"ð 	ô 	
÷
ð O€CÜ	�‰”z¨Ô	-ñ 
Ø×ÑØØØ"ð 	ô 	
÷
ð 
÷
ð 
ú÷
ð 
ús   ²B
Á,BÂ
BÂBc                  óÀ  — t        j                  g d¢g d¢g d¢dœt        d«      ¬«      j                  ddg«      } t        j                  g d	¢g d
¢g d¢dœt        d«      ¬«      j                  ddg«      }t        j                  g d	¢g d
¢g d¢g d¢dœt        d«      ¬«      j                  ddg«      }| j	                  |dd¬«      }t        j                  ||«       y )N)r   r   r	   r	   )r   r5   r   r5   r   ©r   r	   r
   r   r   r   r	   )r   r   r	   )r   r5   r   )r   r   r    )r   r	   r   r)   )r   r   r   r   r/   rB   )rC   rD   )r   r   r   r%   rE   rF   rG   )r6   r:   Úexpected_multirI   s       r   Ú test_join_on_multi_col_check_dupr‰   è   sÙ   € ô �<‰<â%ÚÚ2ñ	
ô
 �A‹hô÷ �i��c�
Óð 	ô �L‰Lâ ÚÚ8ñ	
ô
 �A‹hô÷ �i��c�
Óð 
ô —\‘\â ÚÚ)Ú8ñ		
ô �A‹hô÷ �i��c�
Óð ð �Y‰Y�u '°EˆYÓ:€FÜ×Ñ˜& .Õ1r   c                 óf  — | j                   | j                  d d ddgf   }| j                   | j                  dd  ddgf   j                  d d d…   }|j                  |«      }t	        j
                  |j                  |j                  «       t        j                  g d¢«      }t	        j
                  |j                  |«       |j                  |d	¬
«      }t	        j
                  |j                  |j                  «       t	        j
                  |j                  |«       |j                  |d¬
«      }t	        j
                  |j                  |j                  «       t	        j
                  |j                  |«       |j                  |d¬
«      }t	        j
                  |j                  |j                  dd «       t	        j
                  |j                  |«       |j                  |d¬
«      }t	        j
                  |j                  | j                  j                  «       «       t	        j
                  |j                  |«       |j                  |d¬
«      }t	        j
                  |j                  | j                  d d «       t	        j
                  |j                  |«       |j                  |d¬
«      }t	        j
                  |j                  | j                  dd  d d d…   «       t	        j
                  |j                  |«       d}t        j                  t        t        j                  |«      ¬«      5  |j                  |d¬
«       d d d «       d}dD ]9  }t        j                  t        |¬«      5  | j                  | |¬
«       d d d «       Œ; y # 1 sw Y   ŒJxY w# 1 sw Y   ŒRxY w)Nr1   ÚAÚBr$   ÚCÚDéÿÿÿÿ)r‹   rŒ   r�   rŽ   r6   ©rC   r:   r/   r@   Ú	left_antiÚ
right_antiz^'foo' is not a valid Merge type: left, right, inner, outer, left_anti, right_anti, cross, asofrQ   Úfoozcolumns overlap but no suffix)r@   r6   r/   )Úlocr   ÚilocrE   rF   Úassert_index_equalr   ÚIndexÚcolumnsÚsort_valuesrX   rY   rZ   ÚreÚescape)Úfloat_frameÚfÚf2ÚjoinedÚexpected_columnsÚjoin_msgr^   rC   s           r   Útest_join_indexr¢     sì  € ð 	�‰˜×)Ñ)¨#¨2Ð.°°c°
Ð:Ñ;€AØ	�‰˜×*Ñ*¨1¨2Ð.°°c°
Ð:Ñ	;×	@Ñ	@ÁÀ2ÀÑ	F€Bà�V‰V�B‹Z€FÜ×Ñ˜!Ÿ'™' 6§<¡<Ô0Ü—x‘xÒ 4Ó5ÐÜ×Ñ˜&Ÿ.™.Ð*:Ô;à�V‰V�B˜FˆVÓ#€FÜ×Ñ˜&Ÿ,™,¨¯©Ô0Ü×Ñ˜&Ÿ.™.Ð*:Ô;à�V‰V�B˜GˆVÓ$€FÜ×Ñ˜&Ÿ,™,¨¯©Ô1Ü×Ñ˜&Ÿ.™.Ð*:Ô;ð �V‰V�B˜GˆVÓ$€FÜ×Ñ˜&Ÿ,™,¨¯©°°"¨Ô6Ü×Ñ˜&Ÿ.™.Ð*:Ô;ð �V‰V�B˜GˆVÓ$€FÜ×Ñ˜&Ÿ,™,¨×(9Ñ(9×(EÑ(EÓ(GÔHÜ×Ñ˜&Ÿ.™.Ð*:Ô;ð �V‰V�B˜KˆVÓ(€FÜ×Ñ˜&Ÿ,™,¨×(9Ñ(9¸"¸1Ð(=Ô>Ü×Ñ˜&Ÿ.™.Ð*:Ô;ð �V‰V�B˜LˆVÓ)€FÜ×Ñ˜&Ÿ,™,¨×(9Ñ(9¸"¸#Ð(>¹tÀ¸tÑ(DÔEÜ×Ñ˜&Ÿ.™.Ð*:Ô;ð	-ð ô 
�‰”z¬¯©°8Ó)<Ô	=ñ Ø	�‰ˆr�uˆÔ÷ð *€CØ)ò 3ˆÜ�]‰]œ:¨SÔ1ñ 	3Ø×Ñ˜[¨cÐÔ2÷	3ð 	3ñ3÷ð ú÷	3ð 	3ús   Ì>NÍ<N'ÎN$Î'N0	c                 óæ  — | j                   d d …ddgf   }| j                   d d d…ddgf   }|j                  «       }| d   d d d…   |d<   | d   d d d…   |d<   |j                  |«      }t        j                  ||«       |j                  |d¬«      }t        j                  ||d d d…   «       |j                  |d¬«      }t        j                  ||j                   d d …|j
                  f   «       y )Nr‹   rŒ   r4   r�   rŽ   r:   r�   )r”   ÚcopyrE   rF   rG   r˜   )rœ   ÚafÚbfrH   rI   s        r   Útest_join_index_morer§   C  sæ   € Ø	�‰š˜S #˜J˜Ñ	'€BØ	�‰™˜1˜˜s C˜j˜Ñ	)€Bà�w‰w‹y€HØ Ñ$¡S q SÑ)€HˆS�MØ Ñ$¡S q SÑ)€HˆS�Mà�W‰W�R‹[€FÜ×Ñ˜& (Ô+à�W‰W�R˜WˆWÓ%€FÜ×Ñ˜& (©3¨Q¨3¡-Ô0à�W‰W�R˜WˆWÓ%€FÜ×Ñ˜& (§,¡,ªq°&·.±.Ð/@Ñ"AÕBr   c                 ó>  — | j                  «       }|j                  | j                  d   «      }|j                  |«      }t	        j
                  || «       d |_        t        j                  t        d¬«      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Nr�   zmust have a namerQ   )
r¤   Úpopr˜   rE   rF   rG   ÚnamerX   rY   rZ   )rœ   ÚdfÚserrŸ   s       r   Útest_join_index_seriesr­   U  s|   € Ø	×	Ñ	Ó	€BØ
�&‰&�×$Ñ$ RÑ(Ó
)€CØ�W‰W�S‹\€Fä×Ñ˜& +Ô.à€C„HÜ	�‰”zÐ);Ô	<ñ Ø
�‰�Œ÷÷ ñ ús   Á8BÂBc                 óÚ  — | j                   d d …g d¢f   }| j                   d d …g d¢f   }|j                  |d¬«      }|j                   d d …ddgf   j                  d«      }|j                   d d …ddgf   j                  d«      }| j                   d d …d	d
gf   }|j                  |«      j                  |«      }t        j                  ||j                   d d …|j
                  f   «       y )N)r‹   rŒ   r�   )rŒ   r�   rŽ   )Ú_df1Ú_df2rU   rŒ   r�   r¯   r°   r‹   rŽ   )r”   rE   Ú
add_suffixrF   rG   r˜   )rœ   rl   rm   rŸ   Údf1_sufÚdf2_sufÚ
no_overlaprH   s           r   Útest_join_overlaprµ   a  sÐ   € Ø
�/‰/š!š_Ð,Ñ
-€CØ
�/‰/š!š_Ð,Ñ
-€Cà�X‰X�cÐ$4ˆXÓ5€FØ�g‰g’a˜#˜s˜�mÑ$×/Ñ/°Ó7€GØ�g‰g’a˜#˜s˜�mÑ$×/Ñ/°Ó7€Gà—‘¢ S¨# J Ñ/€JØ�|‰|˜GÓ$×)Ñ)¨*Ó5€Hô ×Ñ˜& (§,¡,ªq°&·.±.Ð/@Ñ"AÕBr   c            	      ó  — t        j                  t        j                  d«      j	                  dd«      t        d«      t        j                  ddd¬«      ¬«      } | j                  d	„ ¬
«      }t        j                  | j                  gdz  d¬«      }| j                  j                  |j                  «      }| j                  |«      }t        j                  ||| j                  ¬«      }t        j                  ||«       y )Nr0   r   r$   ÚabcdeÚ2000ÚY)ÚstartÚfreqÚperiods)Údatar˜   r   c                 ó   — | › | › �S )Nr   )rL   s    r   ú<lambda>z(test_join_period_index.<locals>.<lambda>v  s   € À#ÀÀsÀe¸}€ r   ©r˜   r4   r5   )Úaxis)r   r   ÚnpÚarangeÚreshapeÚlistÚperiod_rangeÚrenameÚconcatenateÚvaluesr˜   ÚappendrE   r   rF   rG   )Úframe_with_period_indexÚotherÚjoined_valuesÚjoined_colsrŸ   rH   s         r   Útest_join_period_indexrÏ   p  sÍ   € Ü Ÿl™lÜ�Y‰Y�r‹]×"Ñ" 1 aÓ(Ü�W“Ü�o‰o F°¸aÔ@ôÐð
 $×*Ñ*Ñ3LÐ*ÓM€Eä—N‘NÐ$;×$BÑ$BÐ#CÀaÑ#GÈaÔP€Mà)×1Ñ1×8Ñ8¸¿¹ÓG€Kà$×)Ñ)¨%Ó0€FÜ�|‰|Ø KÐ7N×7TÑ7Tô€Hô ×Ñ˜& (Õ+r   c                  óª  — t        j                  dg d¢ig d¢¬«      } t        j                  dg d¢ig d¢¬«      }t        j                  dg d	¢ig d
¢¬«      }| j                  ||gd¬«      }t        j                  g d¢t        j                  dddgt        j                  ddt        j                  gdœg d¢¬«      }t        j                  ||«       y )Nr   r9   r?   r   r	   r>   )r   r)   r4   r
   )é�  éô  iX  )r4   r4   r   r6   r�   )r   r1   r1   r0   r<   r2   rÑ   rÒ   r‡   )r5   r4   r4   r)   )r   r   rE   rÂ   ÚnanrF   rG   )rl   rm   Údf3rŸ   rH   s        r   Ú(test_join_left_sequence_non_unique_indexrÕ   „  s¨   € ä
�,‰,˜š[Ð)²Ô
;€CÜ
�,‰,˜š_Ð-²YÔ
?€CÜ
�,‰,˜š_Ð-²YÔ
?€Cà�X‰X�s˜C�j fˆXÓ-€Fä�|‰|â Ü—&‘&˜#˜s CÐ(Ü—&‘&˜#˜s¤B§F¡FÐ+ñ	
ò
 ô€Hô ×Ñ˜& (Õ+r   c                 ó¬   — | j                   j                  «       }| j                  | ddg   g}|j                  |«      }t	        j
                  || «       y )Nr�   rŽ   )r‹   Úto_framerŒ   rE   rF   rG   )rœ   r6   r:   rI   s       r   Útest_join_list_seriesrØ   ˜  sK   € ð �=‰=×!Ñ!Ó#€DØ�]‰]˜K¨¨c¨
Ñ3Ð4€EØ�Y‰Y�uÓ€FÜ×Ñ˜& +Õ.r   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestDataFrameJoinc                 óp  — |}|j                   |j                  d d dgf   }|j                   |j                  dd  ddgf   }|j                  |d¬«      j                  |j                  «      }|j	                  «       j
                  j	                  «       }t        j                  |t        j                  |j
                  «      <   t        j                  ||j                  |j                  ¬«      }t        j                  |j
                  «      j                  «       rJ ‚t        j                  ||«       y )	Nr$   r‹   r4   rŒ   r�   r@   r�   ©r   r˜   )r”   r   rE   Úreindexr¤   rÉ   rÂ   rÓ   Úisnanr   r   r˜   ÚallrF   rG   )ÚselfÚ multiindex_dataframe_random_dataÚframer   r	   rŸ   rH   s          r   rJ   zTestDataFrameJoin.test_join¢  sæ   € Ø0ˆà�I‰I�e—k‘k " 1�o¨ uÐ,Ñ-ˆØ�I‰I�e—k‘k ! "�o¨¨S zÐ1Ñ2ˆà—‘˜˜w�Ó'×/Ñ/°·±Ó<ˆØ—:‘:“<×&Ñ&×+Ñ+Ó-ˆÜ,.¯F©Fˆ”—‘˜&Ÿ-™-Ó(Ñ)Ü—<‘< °·±ÀUÇ]Á]ÔSˆä—8‘8˜FŸM™MÓ*×.Ñ.Ô0Ð0Ð0ä
×Ñ˜f hÕ/r   c                 ó   — t        j                  ddgddgddgdœ«      }t        j                  ddgddgddgdœ«      }|j                  ddg«      }|j                  ddg«      }dD ]  }|j                  ||¬«       Œ y )	Nr5   r4   )r   r	   rW   )r   r	   rS   r   r	   )r6   r:   r@   r�   )r   r   r%   rE   )rà   rl   rm   rC   s       r   Útest_join_segfaultz$TestDataFrameJoin.test_join_segfault±  s‡   € ä�l‰l ! Q ¨q°!¨f¸A¸q¸6ÑBÓCˆÜ�l‰l ! Q ¨q°!¨f¸A¸q¸6ÑBÓCˆØ�m‰m˜S #˜JÓ'ˆØ�m‰m˜S #˜JÓ'ˆà-ò 	#ˆCØ�H‰H�S˜cˆHÕ"ñ	#r   c                 ó  — ddg}t        ddd«      t        ddd«      g}t        j                  |t        d«      dg¬«      }t        j                  d	dgd
dgg||¬«      }|j	                  |d¬«      }t        |j                  «      d
k(  sJ ‚y )NÚ20120209Ú20120222iÜ  r4   é	   é   ÚaarÜ   r5   r)   r   ©rr   )r   r   r   r   rE   Úlenr˜   )rà   Ú	str_datesÚdt_datesr‹   r�   Útsts         r   Útest_join_str_datetimez(TestDataFrameJoin.test_join_str_datetime»  sˆ   € Ø Ð,ˆ	Ü˜T 1 aÓ(¬(°4¸¸BÓ*?Ð@ˆä�L‰L˜¬%°«(¸T¸FÔCˆÜ�L‰L˜1˜a˜& 1 a &Ð)°ÀHÔMˆà�f‰f�Q˜4ˆfÓ ˆä�3—;‘;Ó 1Ò$Ð$Ñ$r   c                 ó´  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g	g d
¢¬«      j                  ddg«      }t        j                  ddgddggddg¬«      j                  dg«      }t        j                  ddgddgddgddgddgddgdt        j                  gdt        j                  gdt        j                  gg	|j
                  ddg¬«      }t        j                  |j                  |d¬«      |«       t        j                  |j                  |d ¬«      |ddg   «       t         j                  j                  ddgg d!¢gddg¬"«      }t        j                  ddgddgddgddgddgddgg|ddg¬«      }t        j                  |j                  |d ¬«      |«       t        j                  |j                  |d¬«      |ddg   «       y )#N)r   rW   çR
º½¤1Þ?)r   rS   ç¡­ÜÌè?)r   Úzç¼<�+J	â?)r	   rW   çµá°4ð£Ö¿)r	   rS   ç^Ÿ9ëSŽ×?)r	   rô   ç?�¨Œû¿)r
   rW   r5   )r
   rS   r4   )r
   rô   r)   )r[   r\   Úvalue1rÀ   r[   r\   r   r1   r	   r0   Úvalue2rò   ró   rõ   rö   r÷   rø   g      ð?g       @g      @rù   rÜ   r6   r�   r:   )rW   rS   rô   ©Únames)r   r   r%   rÂ   rÓ   r   rF   rG   rE   Ú
MultiIndexÚfrom_product)rà   rl   rm   ÚexpÚexp_idxs        r   Útest_join_multiindex_leftrightz0TestDataFrameJoin.test_join_multiindex_leftrightÆ  s÷  € ä�l‰lâ$Ú$Ú$Ú%Ú$Ú%ÚÚÚð
ò 2ô
÷ ‰)�W˜hÐ'Ó
(ð 	ô �l‰lØ�2ˆY˜˜b˜	Ð"¨W°hÐ,?ô
ç
‰)�W�IÓ
ð 	ô �l‰là˜2�Ø˜2�Ø˜2�Ø˜B�Ø˜2�Ø˜B�Øœ2Ÿ6™6Ð"Øœ2Ÿ6™6Ð"Øœ2Ÿ6™6Ð"ð
ð —)‘)Ø˜xÐ(ô
ˆô" 	×Ñ˜cŸh™h s°˜hÓ7¸Ô=Ü
×Ñ˜cŸh™h s°˜hÓ8¸#¸xÈÐ>RÑ:SÔTä—-‘-×,Ñ,Ø�3ˆZšÐ)°'¸8Ð1Dð -ó 
ˆô �l‰là˜2�Ø˜2�Ø˜2�Ø˜B�Ø˜2�Ø˜B�ðð Ø˜xÐ(ô
ˆô 	×Ñ˜cŸh™h s°˜hÓ8¸#Ô>Ü
×Ñ˜cŸh™h s°˜hÓ7¸¸hÈÐ=QÑ9RÕSr   c                 ó¨  — t        j                  ddd«      j                  «       }t         j                  j	                  d|fgddg¬«      }t        j
                  ddgi|¬«      }t         j                  j	                  d|fgddg¬«      }t        j
                  d	dgi|¬«      }t         j                  j	                  d|fgddg¬«      }t        j
                  d
dgi|¬«      }|j                  ||g«      }t         j                  j	                  d|fgddg¬«      }	t        j
                  dgdgdgdœ|	¬«      }
t        j                  ||
«       y )NiÐ  r5   r   Úindex_0Údaterû   Úcol1r   Úcol2Úcol3)r  r  r  )	r   Ú	Timestampr  rý   Úfrom_tuplesr   rE   rF   Úassert_equal)rà   r  Ú	df1_indexrl   Ú	df2_indexrm   Ú	df3_indexrÔ   rI   Úexpected_indexrH   s              r   Útest_join_multiindex_datesz,TestDataFrameJoin.test_join_multiindex_dates  s8  € ä�|‰|˜D ! QÓ'×,Ñ,Ó.ˆä—M‘M×-Ñ-°°4¨y¨kÀ)ÈVÐATÐ-ÓUˆ	Ü�l‰l˜F Q C˜=°	Ô:ˆÜ—M‘M×-Ñ-°°4¨y¨kÀ)ÈVÐATÐ-ÓUˆ	Ü�l‰l˜F Q C˜=°	Ô:ˆÜ—M‘M×-Ñ-°°4¨y¨kÀ)ÈVÐATÐ-ÓUˆ	Ü�l‰l˜F Q C˜=°	Ô:ˆà—‘˜3 ˜*Ó%ˆäŸ™×2Ñ2Ø�ˆYˆK 	¨6Ð2ð 3ó 
ˆô —<‘<Ø�S 1 #°¨sÑ3¸>ô
ˆô 	�‰˜ Õ)r   c                 óÔ  — t        j                  ddgddgddgg¬«      }t         j                  j                  dd	g«      }t        j                  |dd
gddgg¬«      }t	        j
                  t        d¬«      5  t        j                  ||d¬«       d d d «       t	        j
                  t        d¬«      5  |j                  |d¬«       d d d «       y # 1 sw Y   ŒAxY w# 1 sw Y   y xY w)Nr   r	   r5   é   r   ré   )r˜   r½   )r   rT   )r
   Úc1é!   é,   z-Not allowed to merge between different levelsrQ   rë   )	r   r   rý   r	  rX   rY   r   rs   rE   )rà   rl   r˜   rm   s       r   Ú'test_merge_join_different_levels_raisesz9TestDataFrameJoin.test_merge_join_different_levels_raises  sØ   € ô
 �l‰l C¨ :°a¸°W¸qÀ"¸gÐ4FÔGˆô —-‘-×+Ñ+¨Y¸Ð,DÓEˆÜ�l‰l 7°1°b°'¸A¸r¸7Ð1CÔDˆô �]‰]ÜÐMô
ñ 	'ô �H‰H�S˜# #Õ&÷	'ô �]‰]ÜÐMô
ñ 	"ð �H‰H�S˜SˆHÔ!÷	"ð 	"÷	'ð 	'ú÷	"ð 	"ús   Á9CÂ5CÃCÃC'c           	      óB  — t        j                  d«      }t        j                  t	        j
                  d«      t        j                  ddd|¬«      ¬«      }t        j                  t	        j
                  d«      t        j                  dd	d
|¬«      t        d	d«      ¬«      }|j                  |d¬«      }|j                  j                  |j                  «      }t        j                  |j                  |«       |j                  j                  j                  dk(  sJ ‚y )Nz
US/Central)rc   r)   z2012-11-15 00:00:00rc   Ú100ms)r¼   r»   Útzr   )r)   r)   r)   Ú250msrÜ   r@   r�   )ÚzoneinfoÚZoneInfor   r   rÂ   ÚzerosÚ
date_ranger   rE   r   ÚunionrF   r–   r  rL   )rà   r  Útest1Útest2rI   rH   s         r   Útest_frame_join_tzawarez)TestDataFrameJoin.test_frame_join_tzaware/  sÕ   € Ü×Ñ˜|Ó,ˆÜ—‘Ü�H‰H�VÓÜ—-‘-Ð 5¸qÀwÐSUÔVô
ˆô —‘Ü�H‰H�VÓÜ—-‘-Ð 5¸qÀwÐSUÔVÜ˜!˜Q“Kô
ˆð —‘˜E w�Ó/ˆØ—;‘;×$Ñ$ U§[¡[Ó1ˆä
×Ñ˜fŸl™l¨HÔ5Ø�|‰|�‰×"Ñ" lÒ2Ð2Ñ2r   c                 óÒ  — t        j                  ddgt        j                  g d¢d¬«      d¬«      }dj                  «       }d	j                  «       }t        j                  ||d
œ«      j                  d«      }t        j                  ||dœ«      j                  d«      }t        j                  dg|j                  d¬«      |_        t        j                  dg|j                  d¬«      |_        |j                  |«      }t        j                  |||dœ«      j                  d«      }t        j                  ddg|j                  d¬«      |_        t        j                  ||«       y )Nr)   r   )r4   r)   r   r$   ÚInt64)ru   T)Ú
categoriesÚorderedza bzfoo bar)ÚhrÚvalues1r&  )r&  Úvalues2Úother_hr)ru   rª   )r&  r'  r(  )r   ÚCategoricalÚSeriesÚsplitr   r%   ÚCategoricalIndexru   r˜   rE   rF   rG   )rà   Úcat_datar'  r(  rl   rm   Ú	df_joinedrH   s           r   Ú!test_frame_join_categorical_indexz3TestDataFrameJoin.test_frame_join_categorical_indexA  s  € ä—>‘>Ø�ˆFÜ—y‘y¢°WÔ=Øô
ˆð
 —+‘+“-ˆØ—/‘/Ó#ˆÜ�l‰l (°wÑ?Ó@×JÑJÈ4ÓPˆÜ�l‰l (°wÑ?Ó@×JÑJÈ4ÓPˆÜ×)Ñ)¨1¨#°X·^±^È*ÔUˆŒÜ×)Ñ)¨1¨#°X·^±^È*ÔUˆŒà—H‘H˜S“Mˆ	Ü—<‘<Ø¨¸GÑDó
ç
‰)�D‹/ð 	ô ×.Ñ.Ø�ˆF˜(Ÿ.™.¨zô
ˆÔô 	×Ñ˜i¨Õ2r   N)Ú__name__Ú
__module__Ú__qualname__rJ   rä   rð   r  r  r  r!  r0  r   r   r   rÚ   rÚ   ¡  s,   „ ò0ò#ò	%ò:Tòx*ò,"ò.3ó$3r   rÚ   )(r   rš   r  ÚnumpyrÂ   rX   Úpandas.errorsr   Úpandasr   Úpandas._testingÚ_testingrF   Úpandas.core.reshape.concatr   Úfixturer   r&   r+   r.   ÚmarkÚparametrizer   rÓ   rJ   ra   rn   rt   r~   r‚   r…   r‰   r¢   r§   r­   rµ   rÏ   rÕ   rØ   rÚ   r   r   r   ú<module>r=     s¸  ðÝ Û 	Û ã Û å $ã Ý Ý -ð ‡�ñó ðð ‡�ñó ðð ‡�ñó ðð ‡�ñó ðð ‡�×ÑØà	�%˜˜Ÿ™¨R°¨H¸CÀ¸:Ñ&FÈqÐRSÈfÔUÐVØ	�$˜˜Ÿ™¨B°¨8¸3À¸*Ñ%EÈaÐQRÈVÔTÐUàØØˆB�L‰Lš{°#°s¸B¿F¹FÐ1CÑDÊIÔVð	
ð ØØˆB�L‰Lš{°"·&±&¸#¸sÐ1CÑDÊIÔVð	
ð ØØˆB�L‰LØ—v‘v˜r 2Ð&ª_Ñ=ÂYôð	
ð ØØˆB�L‰LØ˜2˜rŸv™vÐ&ª_Ñ=ÂYôð	
ð ØØˆB�L‰LØ˜"˜b "§&¡&Ð)°·±¸¸cÀ3Ð0GÑHÚ"ôð	
ð ØØˆB�L‰LØ˜"˜b "§&¡&Ð)°·±¸¸cÀ3Ð0GÑHÚ"ôð	
ðG+ó.ñ^,ó_.ð^,ò3ò,Eò,Dð& ‡�×Ñ˜ 8Ð->Ð"?Ó@ñ
ó Að
ò.
ò&
ò0!2òH43ònCò$	òCò,ò(,ò(/÷v3ò v3r   