+
    xȇiF                     
   ^ RI H t  ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt	^ RIH
t
HtHtHtHt ^ RIHt ^ RIHt ]P(                  R 4       t]P(                  R 4       t]P(                  R 4       t]P(                  R	 4       t]P2                  P5                  R
RR]
! R^^
.R^^d./^^.R7      3RR]
! R^
^.R^d^./^^.R7      3RR]
! R. R(OR^^d]P6                  ./. R)OR7      3RR]
! R. R*OR]P6                  ^d^./. R+OR7      3RR]
! R]P6                  ^
^.R. R,O/. R-OR7      3RR]
! R^
^]P6                  .R. R.O/. R/OR7      3RR]
! R^ ^
^]P6                  .R]P6                  ^d^R./. R0OR7      3RR]
! R^ ^
^]P6                  .R]P6                  ^d^R./. R0OR7      3.4      R 4       tR tR t]P2                  P5                  RRR.4      R 4       tR t R t!R t"R t#R  t$R! t%R" t&R# t'R$ t(R% t) ! R& R'4      t*R# )1    )datetimeN)
MergeError)	DataFrameIndex
MultiIndex
date_rangeperiod_range)concatc                  >    \        R . ROR. RO/\        ^4      R7      # )abindex)r   r   cdcatdogweaselhorse)r   range     t/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/frame/methods/test_join.pyleft_no_dupr      s$    	"C)JKAh r   c                  \    \        R . ROR. RO/\        ^4      R7      P                  R 4      # )r   r   r   )r   r   r   r   e)meowbarkum... weasel noise?naychirp)r   r   	set_indexr   r   r   right_no_dupr$      s4    *H	
 Ah inr   c           	      D    \        V \        R R .RR./^.R7      .RR7      # )r   r   cowr   T)sort)r
   r   )r   s   &r   left_w_dupsr(   )   s/    	iseS5' :1#FGd r   c           	      ^    \        V \        R R.RR./^.R7      .4      P                  R 4      # )r   r   r   moor   )r
   r   r#   )r$   s   &r   right_w_dupsr+   0   s6    	y#ucE7!;A3GHinr   zhow, sort, expectedinnerFr   r   r   Tleftright,  outerc                     \        R . RO/. ROR7      p\        R. RO/. R	OR7      pVP                  W@VRR7      p\        P                  ! WR4       R# )
r   r   r   1:1)howr'   validateN   
   r         r   r/   d         r:   r9   )r   jointmassert_frame_equal)r3   r'   expectedr-   r.   results   &&&   r   	test_joinrE   7   sI    X c;'y9DsO,I>EYYuD5YAF&+r   c                     \        R . RO/4      p \        R . ROR. RO/4      p\        R. ROR. RO/4      pRp\        P                  ! \        VR7      ;_uu_ 4        V P	                  V.RR7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        V P	                  W.R	R
7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        V P	                  W.RR	R7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V P	                  W.4       RRR4       V P	                  V.4      pV P	                  V4      p\
        P                  ! WE4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i)keyv1keysv2z7Suffixes not supported when joining multiple DataFramesmatchy)lsuffixNx)rsuffixrN   rP   zIndexes have overlapping values)r:   r9   r?         )r:      r?   r9   rS   )rS   r9   r?   rR   r:   )r   pytestraises
ValueErrorr@   rA   rB   )firstsecondthirdmsg
arr_joinednorm_joineds         r   test_suffix_on_list_joinr^   i   s.   uo./EoFGFvoFGE DC	z	-	-

F8S
) 
.	z	-	-

F?C
0 
.	z	-	-

F?C
= 
.	z)J	K	K

F?# 
L UG$J**U#K*2 
.	-	-	-	-	-	-	K	Ks0   E6F
F F06F	
F	F-	0G 	c                     R p\         P                  ! \        VR7      ;_uu_ 4        V P                  VRRR7       RRR4       R#   + '       g   i     R# ; i)z"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"rK   r   invalidonr4   N)rU   rV   rW   merge)r   r$   r[   s   && r   test_join_invalid_validaterd      sC    		  
z	-	-,3C 
.	-	-	-s   AA	dtypeobjectstring[pyarrow]c                 x   VR 8X  d   \         P                  ! R4       V P                  V4      p VP                  P                  V4      Vn        V P	                  VRRR7       Rp\         P
                  ! \        VR7      ;_uu_ 4        V P	                  VRRR7       RRR4       R#   + '       g   i     R# ; i)	rg   pyarrowr   one_to_manyra   zBMerge keys are not unique in right dataset; not a one-to-one mergerK   
one_to_oneN)rU   importorskipastyper   r@   rV   r   )r   r+   re   r[   s   &&& r   $test_join_on_single_col_dup_on_rightrn      s     !!I&$$U+K%++2259L   OC	z	-	-! 	 	
 
.	-	-	-s   	B((B9	c                     V P                  VR RR7       Rp\        P                  ! \        VR7      ;_uu_ 4        V P                  VR RR7       RRR4       R#   + '       g   i     R# ; i)r   many_to_onera   zAMerge keys are not unique in left dataset; not a one-to-one mergerK   rk   Nr@   rU   rV   r   )r(   r$   r[   s   && r   #test_join_on_single_col_dup_on_leftrr      sd        NC	z	-	-! 	 	
 
.	-	-	-s   AA+	c                    V P                  VR RR7       Rp\        P                  ! \        VR7      ;_uu_ 4        V P                  VR RR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        V P                  VR RR7       RRR4       R#   + '       g   i     LU; i  + '       g   i     R# ; i)	r   many_to_manyra   zCMerge keys are not unique in right dataset; not a many-to-one mergerK   rp   NzBMerge keys are not unique in left dataset; not a one-to-many mergerj   rq   )r(   r+   r[   s   && r   #test_join_on_single_col_dup_on_bothru      s     \cNC PC	z	-	-" 	 	
 
. OC	z	-	-" 	 	
 
.	- 
.	- 
.	-	-s   B>B0B-	0C	c                     \        R . R	OR. R
OR. RO/\        ^4      R7      P                  R R.4      p \        R . ROR. ROR. RO/\        ^4      R7      P                  R R.4      p\        R . ROR. ROR. ROR. RO/\        ^4      R7      P                  R R.4      pV P                  VRRR7      p\        P
                  ! W24       R# )r   r   r   r   r   r,   r2   )r3   r4   N)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@   rA   rB   )r-   r.   expected_multirD   s       r    test_join_on_multi_col_check_duprx      s     %2	

 Ah ic
 	 8	

 Ah ic
 
 )8		
 Ah ic
  YYu'EY:F&1r   c                    V P                   V P                  R ,          RR.3,          pV P                   V P                  R,          RR.3,          P                  RRR1,          pVP                  V4      p\        P
                  ! VP                  VP                  4       \        . RO4      p\        P
                  ! VP                  V4       VP                  VRR7      p\        P
                  ! VP                  VP                  4       \        P
                  ! VP                  V4       VP                  VR	R7      p\        P
                  ! VP                  VP                  4       \        P
                  ! VP                  V4       VP                  VR
R7      p\        P
                  ! VP                  VP                  R,          4       \        P
                  ! VP                  V4       VP                  VRR7      p\        P
                  ! VP                  V P                  P                  4       4       \        P
                  ! VP                  V4       VP                  VRR7      p\        P
                  ! VP                  V P                  R,          4       \        P
                  ! VP                  V4       VP                  VRR7      p\        P
                  ! VP                  V P                  R,          RRR1,          4       \        P
                  ! VP                  V4       Rp\        P                  ! \        \        P                  ! V4      R7      ;_uu_ 4        VP                  VRR7       RRR4       RpR FB  p\        P                  ! \        VR7      ;_uu_ 4        V P                  WR7       RRR4       KD  	  R#   + '       g   i     L\; i  + '       g   i     Kl  ; i):Nr7   NAB:rS   NNCDNr-   r3   r.   r,   :rS   r7   Nr0   	left_antiNrS   N
right_anti:r7   NNz^'foo' is not a valid Merge type: left, right, inner, outer, left_anti, right_anti, cross, asofrK   foozcolumns overlap but no suffix)rz   r{   r|   r}   )r0   r-   r,   )locr   ilocr@   rA   assert_index_equalr   columnssort_valuesrU   rV   rW   reescape)float_frameff2joinedexpected_columnsjoin_msgr[   r3   s   &       r   test_join_indexr      s    	))#.c
:;A	**2.c
:	;	@	@2	FBVVBZF!''6<<012&..*:;VVBFV#F&,,0&..*:;VVBGV$F&,,1&..*:; VVBGV$F&,,6&..*:; VVBGV$F&,,(9(9(E(E(GH&..*:; VVBKV(F&,,(9(9"(=>&..*:; VVBLV)F&,,(9(9#(>tt(DE&..*:;	-  
z8)<	=	=	ru 
> *C)]]:S11[2 21 * 
>	= 211s   0O7O+O(	+O<c                    V P                   R RR.3,          pV P                   RRR.3,          pVP                  4       pV R,          R,          VR&   V R,          R,          VR&   VP                  V4      p\        P                  ! WC4       VP                  VRR7      p\        P                  ! WCR,          4       VP                  VRR7      p\        P                  ! WCP                   R VP
                  3,          4       R# )	NNNrz   r{   :NNr9   r|   r}   r.   r~   N)r   copyr@   rA   rB   r   )r   afbfrC   rD   s   &    r   test_join_index_morer   0  s    	S#J	'B	sCj	)BwwyH$S)HSM$S)HSMWWR[F&+WWRWW%F&3-0WWRWW%F&,,q&../@"ABr   c                 j   V P                  4       pVP                  V P                  R,          4      pVP                  V4      p\        P
                  ! W04       RVn        \        P                  ! \        RR7      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     R# ; i)r:   Nzmust have a namerK   r   )
r   popr   r@   rA   rB   namerU   rV   rW   )r   dfserr   s   &   r   test_join_index_seriesr   B  sw    				B
&&$$R(
)CWWS\F&.CH	z);	<	<
 
=	<	<	<s   B!!B2	c                    V P                   R . R	O3,          pV P                   R . R
O3,          pVP                  VRRR7      pVP                   R RR.3,          P                  R4      pVP                   R RR.3,          P                  R4      pV P                   R RR.3,          pVP                  V4      P                  V4      p\        P                  ! W7P                   R VP
                  3,          4       R# )r   rz   r{   r|   r}   _df1_df2rQ   N)rz   r{   r|   )r{   r|   r}   )r   r@   
add_suffixrA   rB   r   )r   df1df2r   df1_sufdf2_suf
no_overlaprC   s   &       r   test_join_overlapr   N  s    
//!_,
-C
//!_,
-CXXc66X:Fgga#sm$//7Ggga#sm$//7GS#J/J||G$))*5H &,,q&../@"ABr   c            
         \        \        P                  ! ^4      P                  ^^4      \	        R4      \        RR^R7      R7      p V P                  R R7      p\        P                  ! V P                  .^,          ^R7      pV P                  P                  VP                  4      pV P                  V4      p\        W#V P                  R7      p\        P                  ! WE4       R	# )
r6   abcde2000Y)startfreqperiods)datar   r   c                     V  V  2# )Nr   )rG   s   &r   <lambda>(test_join_period_index.<locals>.<lambda>c  s    #se}r   r   )axisN)r   nparangereshapelistr	   renameconcatenatevaluesr   appendr@   r   rA   rB   )frame_with_period_indexotherjoined_valuesjoined_colsr   rC   s         r   test_join_period_indexr   ]  s    'YYr]""1a(Wc1=
 $**3L*MENN$;$B$B#Ca#GaPM)1188GK$))%0F7N7T7TH &+r   c                  ^   \        R . R
O/. ROR7      p \        R. RO/. ROR7      p\        R. RO/. ROR7      pV P                  W.RR7      p\        R . ROR\        P                  RR^.R\        P                  RR\        P                  ./. ROR7      p\        P
                  ! W44       R	# )r   r   r   r/   r       r-   r~   Nr   r7   r6   r:   r9   r?   r<   r=   r/   )rR   r?   r9   )r   r   iX  )r9   r9   rR   )r   r7   r7   r6   )r:   r9   r9   r?   )r   r@   r   nanrA   rB   )r   r   df3r   rC   s        r   (test_join_left_sequence_non_unique_indexr   q  s    
S+&i
8C
S/*)
<C
S/*)
<CXXsjfX-F"&&#sC("&&#sBFF+	

 H &+r   c                     V P                   P                  4       pV P                  V R R.,          .pVP                  V4      p\        P
                  ! W04       R# )r|   r}   N)rz   to_framer{   r@   rA   rB   )r   r-   r.   rD   s   &   r   test_join_list_seriesr     sI     ==!!#D]]Kc
34EYYuF&.r   c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )TestDataFrameJoini  c                   TpVP                   VP                  R ,          R.3,          pVP                   VP                  R,          RR.3,          pVP                  VRR7      P                  VP                  4      pVP	                  4       P
                  P	                  4       p\        P                  V\        P                  ! VP
                  4      &   \        WbP                  VP                  R7      p\        P                  ! VP
                  4      P                  4       '       d   Q h\        P                  ! WV4       R# )	r   rz   :r9   NNr{   r|   r0   r~   r   r   N)r   r   r@   reindexr   r   r   r   isnanr   r   allrA   rB   )self multiindex_dataframe_random_dataframer   r   r   rC   s   &&     r   rE   TestDataFrameJoin.test_join  s    0IIekk"ou,-IIekk"oSz12w'//<::<&&++-,.FF&--()X[[%--P88FMM*..0000
f/r   c           	         \        R ^^.R^^.R^^./4      p\        R ^^.R^^.R^^./4      pVP                  R R.4      pVP                  R R.4      pR F  pVP                  W#R7       K  	  R# )r   r   rO   rM   r~   N)r-   r.   r0   )r   r#   r@   )r   r   r   r3   s   &   r   test_join_segfault$TestDataFrameJoin.test_join_segfault  s    q!fcAq63A?@q!fcAq63A?@mmS#J'mmS#J'-CHHSH" .r   c                    R R.p\        R^^	4      \        R^^4      .p\        V\        ^4      R.R7      p\        ^^.^^..WR7      pVP                  VRR7      p\	        VP
                  4      ^8X  g   Q hR# )2012020920120222i  aar   rb   N)r   r   r   r@   lenr   )r   	str_datesdt_datesrz   r|   tsts   &     r   test_join_str_datetime(TestDataFrameJoin.test_join_str_datetime  s~    ,	T1a((4B*?@iuQx$@1v1v&iJffQ4f 3;;1$$$r   c                l   \        . RO. RO. RO. RO. RO. RO. RO. RO. RO.	. ROR	7      P                  RR.4      p\        R ^
.R^..RR
.R	7      P                  R.4      p\        R^
.R^
.R^
.R^.R^.R^.R\        P                  .R\        P                  .R\        P                  ..	VP                  RR
.R7      p\
        P                  ! VP                  VRR7      V4       \
        P                  ! VP                  VRR7      VR
R.,          4       \        P                  ! R R.. R O.RR.R7      p\        R^
.R^
.R^
.R^.R^.R^..VRR
.R7      p\
        P                  ! VP                  VRR7      V4       \
        P                  ! VP                  VRR7      VR
R.,          4       R# )!r   R
1??<+J	?r   ^9S?rX   rY   value1r   value2g      ?g       @g      @r   r-   r~   r.   namesN)r   rO   r   )r   rM   r   )r   zr   4ֿ)r   rO   r   )r   rM   r   ?)r   r   r   )r   rO   r:   )r   rM   r9   )r   r   r?   )rX   rY   r   )rO   rM   r   )
r   r#   r   r   r   rA   rB   r@   r   from_product)r   r   r   expexp_idxs   &    r   test_join_multiindex_leftright0TestDataFrameJoin.test_join_multiindex_leftright  s   $$$%$%
 2
 )Wh'
( 	 #rS"I.(8KLVVI
 222B2B266"266"266"
 ))x(
" 	chhsh7=
chhsh8#x>R:ST))3Z)'81D
 222B2B x(
 	chhsh8#>
chhsh7h=Q9RSr   c                   \         P                  ! R ^^4      P                  4       p\        P                  ! ^ V3.RR.R7      p\        R^ ./VR7      p\        P                  ! ^ V3.RR.R7      p\        R^ ./VR7      p\        P                  ! ^ V3.RR.R7      p\        R^ ./VR7      pVP                  WW.4      p\        P                  ! ^ V3.RR.R7      p	\        R^ .R^ .R^ ./V	R7      p
\        P                  ! W4       R# )	i  index_0dater   col1r   col2col3N)	pd	Timestampr   r   from_tuplesr   r@   rA   assert_equal)r   r   	df1_indexr   	df2_indexr   	df3_indexr   rD   expected_indexrC   s   &          r   test_join_multiindex_dates,TestDataFrameJoin.test_join_multiindex_dates  s   ||D!Q',,.**QI;y&>QR	!Y7**QI;y&>QR	!Y7**QI;y&>QR	!Y73*%#//!TIvCVWaS&1#vs3>
 	)r   c                   \        R R.^^.^ ^..R7      p\        P                  ! RR.4      p\        V^^!.^ ^,..R7      p\        P                  ! \
        RR7      ;_uu_ 4        \        P                  ! WR R7       RRR4       \        P                  ! \
        RR7      ;_uu_ 4        VP                  VR R7       RRR4       R#   + '       g   i     LR; i  + '       g   i     R# ; i)	r   r   )r   r   z-Not allowed to merge between different levelsrK   r   N)r    )r   c1)	r   r   r   rU   rV   r   r   rc   r@   )r   r   r   r   s   &   r   'test_merge_join_different_levels_raises9TestDataFrameJoin.test_merge_join_different_levels_raises  s    
 c
1b'Ar71CD (()[)AB2wB.@A ]]M
 
 HHS#&
 ]]M
 
 HHSSH!
 

 

 
 
s   %C*CC	C,	c           
         \         P                  ! R 4      p\        \        P                  ! R
4      \        R^RVR7      R7      p\        \        P                  ! R4      \        R^RVR7      \        ^^4      R7      pVP                  VRR7      pVP                  P                  VP                  4      p\        P                  ! VP                  V4       VP                  P                  P                  R 8X  g   Q hR	# )z
US/Centralz2012-11-15 00:00:00100ms)r   r   tzr   250msr   r0   r~   N)   r?   )r?   r?   )zoneinfoZoneInfor   r   zerosr   r   r@   r   unionrA   r   r  rG   )r   r  test1test2rD   rC   s   &     r   test_frame_join_tzaware)TestDataFrameJoin.test_frame_join_tzaware  s    |,HHV2AGPRS
 HHV2AGPRS!QK
 Ew/;;$$U[[1
fllH5||""l222r   c                   \         P                  ! ^^.\         P                  ! . RORR7      RR7      pRP                  4       pRP                  4       p\	        RVRV/4      P                  R4      p\	        RVR	V/4      P                  R4      p\         P                  ! ^.VP                  R
R7      Vn        \         P                  ! ^.VP                  R
R7      Vn        VP                  V4      p\	        RVRVR	V/4      P                  R4      p\         P                  ! ^^.VP                  R
R7      Vn        \        P                  ! Wg4       R# )r?   Int64)re   T)
categoriesorderedza bzfoo barhrvalues1values2other_hr)re   r   N)r9   r?   rR   rS   )r   CategoricalSeriessplitr   r#   CategoricalIndexre   r   r@   rA   rB   )r   cat_datar  r   r   r   	df_joinedrC   s   &       r   !test_frame_join_categorical_index3TestDataFrameJoin.test_frame_join_categorical_index,  s   >>FyyW=

 ++-//#xG<=GGMxG<=GGM))1#X^^*U))1#X^^*UHHSM	8YGD

)D/ 	 ..F(..z
 	i2r   r   N)__name__
__module____qualname____firstlineno__rE   r   r   r   r  r  r  r(  __static_attributes____classdictcell__)__classdict__s   @r   r   r     s4     0#	%:Tx*(".3$3 3r   r   r5   r8   r   )r   r:   r9   r;   r>   r   r   )r   r:   r9   r?   )+r   r   r  numpyr   rU   pandas.errorsr   pandasr   r   r   r   r   r	   pandas._testing_testingrA   pandas.core.reshape.concatr
   fixturer   r$   r(   r+   markparametrizer   rE   r^   rd   rn   rr   ru   rx   r   r   r   r   r   r   r   r   r   r   r   <module>r:     s    	    $    -         	%C"b3c
#CAq6RS	$	3R#Sz"B1a&QRsKsC.@AS	
 sKrvvsC.@AS	
 sRVVR,c?C9U	
 sRRVV,c?C9U	
 q"b"&&)3c30GH"	
 q"b"&&)3c30GH"	
?'*V,W*V,3,D& 8->"?@
 A
.
&
0!2H43nC$	C,(,(/t3 t3r   