+
    xȇi                        ^ RI H t  ^ RIt^ RIt^ RIt^ RIHu Ht ^ RI	t
^ RI	HtHtHtHtHtHtHtHtHtHt ^ RIHt R%R lt ! R R4      tR&R ltR	 tR
 tR tR'R ltR t]P@                  PC                  R(RRR.3RRR.3.4      R 4       t"R t#]P@                  PC                  RRR.. R)O3^^.. R*O3RR.. R+O3]! R4      ]! R4      .]! R4      ]! R4      ]! R4      .3.4      R 4       t$]P@                  PC                  R. R,O4      R  4       t%R! t&]P@                  PC                  R"R. R-O3R. R-O3R. R-O3R. R.O3.4      R# 4       t'R$ t(R# )/    )datetimeN)
Categorical	DataFrameIndex
MultiIndexSeries	Timestampbdate_rangeconcatmergeoption_contextc           	      ~   \        \        V 4      4      p\        P                  ! \        P                  ! W!V ,          4      4      p\        V4      V8  d:   \        P                  ! \        V4      VR V\        V4      ,
           ,           4      p\        P                  P                  ^4      P                  V4       V# N)	listrangenpasarraytilelenrandomdefault_rngshuffle)ngroupsnunique_groupsarrs   &&  t/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/reshape/merge/test_join.pyget_test_datar      s~    w(M
**RWW]L9
:C
3x!|jjc]>QS\%BBCII!$$S)J    c            
         a  ] tR t^$t o ]P
                  R 4       t]P
                  R 4       t]P
                  R 4       tR t	R t
R tR tR tR	 t]P                  P!                  R
R]P"                  ! R]P&                  ! R4      R7      .4      R 4       tR tR tR t]P                  P!                  R^RR]P2                  ! ^ ^.4      .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! t%R" t&R# t'R$ t(R% t)]P                  P!                  R
R]P"                  ! R]P&                  ! R4      R7      .4      R& 4       t*R' t+R( t,R) t-R* t.]P                  P!                  R+. R6O4      R, 4       t/]P                  P!                  R+. R6O4      R- 4       t0]P                  P!                  R+. R7O4      R. 4       t1R/ t2R0 t3R1 t4R2 t5R3 t6R4 t7R5t8V t9R# )8TestJoinc                    \        R \        4       R\        4       R\        P                  P	                  ^4      P                  ^24      R\        P                  P	                  ^4      P                  ^24      /4      pWR,          ^8  ,          pV# )key1key2data1data2r   r   r   r   r   standard_normal)selfdfs   & r   r*   TestJoin.df&   st    ..q1AA"E..q1AA"E	
 6
Q	r   c           
         \        R \        ^
R7      R\        ^^
R7      R\        P                  P	                  ^4      P                  ^
4      /4      # )r#   )r   r$   )r   r   valuer'   )r)   s   &r   df2TestJoin.df25   sI    +a26..q1AA"E
 	
r   c                    R . R
OR. ROR. ROR\        R^R7      /p\        V\        . RO\        R7      R7      p\        RVR ,          R	VR,          /VR,          R7      pW#3# )ABCDz1/1/2009)periodsdtypeindexMergedAMergedD)              ?       @      @      @)r<   r=   r<   r=   r<   )foo1foo2foo3foo4foo5)abcde)r
   r   r   object)r)   datatargetsources   &   r   target_sourceTestJoin.target_source?   so     **9Z3	
 4u-Ff'UV S	9d3i8S	
 ~r   c                x    \        WR R7      p\        WVR .RR7       \        W4      p\        WVRR .RR7       R# )r$   onlefthowr#   Nr   _check_joinr)   r*   r.   joined_key2joined_boths   &&&  r   test_left_outer_joinTestJoin.test_left_outer_joinP   s:    B/B[6(?BnB[66*:Gr   c                ~    \        WR RR7      p\        WVR .RR7       \        WRR7      p\        WVRR .RR7       R# )r$   rightrS   rV   rU   r#   NrW   rY   s   &&&  r   test_right_outer_joinTestJoin.test_right_outer_joinW   ?    BG<B[6(@B1B[66*:Hr   c                ~    \        WR RR7      p\        WVR .RR7       \        WRR7      p\        WVRR .RR7       R# )r$   outerr`   rU   r#   NrW   rY   s   &&&  r   test_full_outer_joinTestJoin.test_full_outer_join^   rc   r   c                ~    \        WR RR7      p\        WVR .RR7       \        WRR7      p\        WVRR .RR7       R# )r$   innerr`   rU   r#   NrW   rY   s   &&&  r   test_inner_joinTestJoin.test_inner_joine   rc   r   c                F    \        WR RR7      pRV9   g   Q hRV9   g   Q hR# )r$   )rS   suffixeskey1.foozkey1.barNz.fooz.barr   r)   r*   r.   joineds   &&& r   test_handle_overlapTestJoin.test_handle_overlapl   s-    r64DEV###V###r   c                J    \        VVR RRR7      pRV9   g   Q hRV9   g   Q hR# )r$   r#   )left_onright_onrm   rn   zkey2.barNro   rp   rq   s   &&& r   !test_handle_overlap_arbitrary_key*TestJoin.test_handle_overlap_arbitrary_keyr   s9    %
 V###V###r   infer_stringFTpyarrow)marksc                \   Vw  r4VP                  VR R7      p\        P                  ! VR,          VR,          RR7       \        P                  ! VR,          VR,          RR7       \        R. RO/4      p\        R
. RO/. ROR7      pVP                  VRR7      p\        R. ROR
. RO/4      p	\        P                  ! W4       \        ^.^.^... ROR.R7      p
\        R.R..^^.R.R7      p\        ^.^..^^.R.R7      pV
P                  VRR7      pVP                  VRR7      p\
        P                  ! VR,          R	,          4      '       g   Q h\
        P                  ! VR,          R	,          4      '       g   Q h\        P                  ! \        RR7      ;_uu_ 4        VP                  VRR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        VP                  VRR7       RRR4       R#   + '       g   i     LT; i  + '       g   i     R# ; i)r3   rR   r:   r1   F)check_namesr;   r4   keyrH   r-   r8   oner9   columnsfoobartwothreez^'E'$matchENzvYou are trying to merge on float64 and object|str columns for key 'A'. If you wish to proceed you should use pd.concatrF   rF   rG   rG   rH   r         rF   rG   rH   )r   r   r   r   r   )jointmassert_series_equalr   assert_frame_equalr   isnanpytestraisesKeyError
ValueError)r)   rO   rz   rM   rN   mergedr*   r.   rr   expecteddf_adf_bdf_cmsgs   &&&           r   test_join_onTestJoin.test_join_on}   s    'V,
vi0&+5Q
vi0&+5Q 89:),OD'-wH
 	f/ 1#sQC%Q5'E7+Aq6E7K1#sAq6G9E4E*Te,xxuc*++++xxw,---- ]]8733KK3K' 4
C 	 ]]:S11KK3K' 21 43 211s   'H)HH	H+	c           	        \        R \        P                  P                  ^4      P	                  RR.^R7      R\        P                  P                  ^4      P                  ^4      /4      p\        R \        P                  P                  ^4      P	                  RR.^
R7      R\        P                  P                  ^4      P                  ^
4      /\        P                  ! \        ^4      RR..4      R7      pRp\        P                  ! \        VR	7      ;_uu_ 4        \        WR R
R7       RRR4       R#   + '       g   i     R# ; i)rF   mfsizerG   r1   r2   r8   Flen\(left_on\) must equal the number of levels in the index of "right"r   Trv   right_indexNr   r   r   r   choicer(   r   from_productr   r   r   r   r   r)   r*   r.   r   s   &   r   -test_join_on_fails_with_different_right_index6TestJoin.test_join_on_fails_with_different_right_index   s   RYY**1-44c3Za4HRYY**1-==a@
 RYY**1-44c3Zb4IRYY**1-==bA ))58c3Z*@A
 X]]:S11"3D9 2111s    D99E
	c           	        \        R \        P                  P                  ^4      P	                  RR.^R7      R\        P                  P                  ^4      P                  ^4      /\        P                  ! \        ^4      \        R4      .4      R7      p\        R \        P                  P                  ^4      P	                  RR.^
R7      R\        P                  P                  ^4      P                  ^
4      /4      pRp\        P                  ! \        VR7      ;_uu_ 4        \        WRR	R
7       RRR4       R#   + '       g   i     R# ; i)rF   r   r   r   rG   abcr8   zFlen\(right_on\) must equal the number of levels in the index of "left"r   T)rw   
left_indexN)r   r   r   r   r   r(   r   from_arraysr   r   r   r   r   r   r   s   &   r   ,test_join_on_fails_with_different_left_index5TestJoin.test_join_on_fails_with_different_left_index   s   RYY**1-44c3Za4HRYY**1-==a@ ((%(DK)@A
 RYY**1-44c3Zb4IRYY**1-==bA
 X]]:S11"CD9 2111s   'E  E	c           	        \        R \        P                  P                  ^4      P	                  RR.^R7      R\        P                  P                  ^4      P                  ^4      /4      p\        R \        P                  P                  ^4      P	                  RR.^
R7      R\        P                  P                  ^4      P                  ^
4      /\        P                  ! \        ^4      RR..4      R7      pRp\        P                  ! \        VR	7      ;_uu_ 4        \        WR R R.R
7       RRR4       R#   + '       g   i     R# ; i)rF   r   r   r   rG   r1   r2   r8   z)len\(right_on\) must equal len\(left_on\)r   )rw   rv   Nr   r   s   &   r   /test_join_on_fails_with_different_column_counts8TestJoin.test_join_on_fails_with_different_column_counts   s   RYY**1-44c3Za4HRYY**1-==a@
 RYY**1-44c3Zb4IRYY**1-==bA ))58c3Z*@A
 ;]]:S11"C#s< 2111s    D;;E	
wrong_typestrNc           	     |   \        R ^^./4      pR\        V4       R2p\        P                  ! \        VR7      ;_uu_ 4        \        WR R R7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        \        W!R R R7       RRR4       R#   + '       g   i     LM; i  + '       g   i     R# ; i)rF   z.Can only merge Series or DataFrame objects, a z was passedr   )rv   rw   N)r   typer   r   	TypeErrorr   )r)   r   r*   r   s   &&  r   )test_join_on_fails_with_wrong_object_type2TestJoin.test_join_on_fails_with_wrong_object_type   s     aV}%j!"+/ 	 ]]9C00*#< 1]]9C00"#< 10 10000s   B>B*B'	*B;	c                    Vw  r#VP                  VR R7      pVP                  R R/R7      pV. RO,          pVP                  R 4      pVP                  W5R7      p\        P                  ! Wd4       R# )r3   rR   key_0r   N)r   r1   r2   r4   r:   r;   )r   renamepopr   r   )r)   rO   rM   rN   r   join_colresults   &&     r   test_join_on_pass_vector!TestJoin.test_join_on_pass_vector   se    &;;v#;.??C>?:JK::c?V1
f/r   c                   Vw  r#VP                  VP                  . 4      R R7      pV F7  pWT9   g   Q hWE,          P                  4       P                  4       '       d   K7  Q h	  VP                  VP                  . 4      R RR7      p\        P
                  ! VP                  VP                  4       \        V4      ^ 8X  g   Q hR# )r3   rR   ri   r`   N)r   reindexisnaallr   assert_index_equalr   r   )r)   rO   rM   rN   r   colmerged2s   &&     r   test_join_with_len0TestJoin.test_join_with_len0   s    &V^^B/C8C= =;##%))++++  ++fnnR0Sg+F
goov~~>7|q   r   c                   \        R . RO/4      p\        R^ ^./RR.R7      pVP                  VR RR7      pVP                  VR R7      pWDR,          P                  4       ,          p\        P                  ! VR ,          VR ,          4       \        P                  ! VR,          VR,          RR	7       \        P
                  ! VP                  VP                  4       R
# )r   rF   rG   r-   r8   ri   r`   rR   F)check_dtypeN)rF   rF   rI   rG   rG   rH   )r   r   notnar   r   r   r9   r)   r*   r.   rr   r   s   &    r   test_join_on_innerTestJoin.test_join_on_inner  s    =>?1a&)#s<G477357)W-3356
ve}huo>
vg0AuU
fllHNN;r   c                    \        R . RO/4      p\        R. RO/. ROR7      pVP                  VR .R7      pVP                  VR R7      p\        P                  ! W44       R# )r   r-   r8   rR   Nr   r   r   r   r   r   r   r   s   &    r   test_join_on_singlekey_list$TestJoin.test_join_on_singlekey_list  sY    89:),OD %)77357)
f/r   c                    Vw  r#VP                  VR ,          RR7      pVP                  VR .,          RR7      p\        P                  ! WE4       R# )r:   r3   rR   N)r   r   r   )r)   rO   rM   rN   r   r   s   &&    r   test_join_on_seriesTestJoin.test_join_on_series  sG    &VI.37;;vyk2s;;
f/r   c                    \        R ^^./4      p\        ^.^.RR7      pVP                  VR R7      p\        R ^^.R^^./VP                  R7      p\        P
                  ! W44       R# )rF   rG   r9   namerR   r8   N)r   r   r   r9   r   r   )r)   r*   dsr   r   s   &    r   test_join_on_series_buglet#TestJoin.test_join_on_series_buglet  sg    aV}%QCs-$cAq63A7rxxH
f/r   c                   \        \        P                  ! ^
4      R7      pRVR&   RVR&   \        \        P                  ! ^^4      R7      p^VR&   RVR&   VP                  W1R	7      p\	        W#VR	7      p\
        P                  ! WE4       VP                  W!R	7      p\	        W2VR	7      p\
        P                  ! WE4       R
# )
   r8   Tboolr   stringintr=   floatrU   N)r   r   aranger   _join_by_handr   r   )r)   	join_typedf1r.   rr   r   s   &&    r   test_join_index_mixedTestJoin.test_join_index_mixed&  s    biim,FHbii2./E
G#- y9
f/#- y9
f/r   c           
        \        R RR^RRRR/\        P                  ! ^
4      . ROR7      pVR,          P                  \        P                  8X  g   Q hVR,          P                  \        P
                  8X  g   Q h\        R RR^RRRR/\        P                  ! ^ ^
^4      . ROR7      pVP                  VRR	R
7      p. ROpVR,          Vn        VR,          Vn        \        W4      p\        P                  ! W54       R# )r1   r=   r2   r3   r   r4   Tr   _one_twolsuffixrsuffix:N   N:r   NNNr1   r2   r3   r4   )A_oneB_oneC_oneD_oneA_twoB_twoC_twoD_two)r   r   r   r7   int64bool_r   r   r   r   r   )r)   r   r.   rr   expected_columnsr   s   &     r   test_join_index_mixed_overlap&TestJoin.test_join_index_mixed_overlap8  s    #sAsE35))B-(

 3x~~)))3x~~)))#sAsE35))Ar1%(
 #vv>	
 'r*&r* *
f/r   c                ^    \        4       pVP                  \        ^.^ .R.R7      RR7       R# )   r1   r   re   rU   N)r   r   )r)   xs   & r   test_join_empty_bugTestJoin.test_join_empty_bugX  s(    K	y!QC#7WEr   c                   \        \        P                  P                  ^4      P	                  R4      RR.R7      p\        \        P                  P                  ^4      P	                  ^4      4      pW!R&   \        \        P                  P                  ^4      P	                  R4      R.R7      pVP                  V4       VP                  V4       R# )	r   rF   rG   r   rH   qN)   r   )r  r   )r   r   r   r   r(   r   r   )r)   rF   rH   rI   s   &   r   test_join_unconsolidated!TestJoin.test_join_unconsolidated]  s    II!!!$44W=Sz
 299((+;;B?@#bii++A.>>wGRUQVW 	
q		q	r   c                f   \         P                  ! . RO. RO.RR.R7      p\         P                  ! . RO. RO.RR.R7      p\        \        P                  P                  ^4      P                  ^4      VR.R7      p\        \        P                  P                  ^4      P                  ^4      VR.R7      pVP                  ^ R7      pVP                  ^ R7      pVP                  VRR	7      p\        VP                  4      P                  \        VP                  4      4      pVP                  V4      P                  VP                  V4      4      pVP                  VP                  n        \        P                   ! WW4       VP                  P                  VP                  8X  g   Q hVP                  ^R7      pVP                  ^R7      pVP                  VRR	7      P                  ^ R7      p\        VP                  4      P                  \        VP                  4      4      pVP                  V4      P                  VP                  V4      4      pVP                  VP                  n        \        P                   ! WW4       VP                  P                  VP                  8X  g   Q hR
# )rF   firstsecondnameszvar X)rL   r9   r   zvar Y)levelre   rU   N)rF   rF   rF   rG   rG   rG   )r   r   r  r   r   r  )rG   rG   rG   rH   rH   rH   )r   r   r   r   r   r   r(   
sort_indexr   r   valuesunionr   r  r9   r   r   )r)   index1index2r   r.   rr   ex_indexr   s   &       r   test_join_multiindexTestJoin.test_join_multiindexj  s   ''+-?@H%

 ''+-?@H%

 &&q)99!<I

 &&q)99!<I
 nn1n%nn1n%#7+'--eFMM.BC;;x(--ckk(.CD%||
f/||!!V\\111nn1n%nn1n%#7+66Q6?'--eFMM.BC;;x(--ckk(.CD%||
f/||!!V\\111r   c           	        . ROp. ROp\         P                  P                  ^4      P                  \	        V4      4      p\        RVRVRV/4      pTp\        \         P                  P                  ^4      P                  R4      V. ROR7      pVP                  VRR.RR7      p\        VVP                  4       RR.RR.RR	R
7      p\        VVRR.RRR	R7      p	\        P                  ! WyP                  V4      4       \        VVRR.RRR	R7      p	VP                  RR.^R7      pVP                  Vn        VP                  P                  '       g   Q h\        P                  ! Wx4       R# )r   r#   r$   rL   r   ri   r`   r  r  F)rv   rw   rV   sortT)rw   r   rV   r  axisN)
r   r   r   r   r   bazr   quxr!  snap)
r   r   r   r   r   r   r   r   r   r   )r   r  )j_onej_twoj_three)r   r   r   r(   r   r   r   r   reset_indexr   r   reindex_likedropr9   is_monotonic_increasing)
r)   %lexsorted_two_level_string_multiindexr#   r$   rL   r9   to_joinrr   r   	expected2s
   &&        r   test_join_inner_multiindex#TestJoin.test_join_inner_multiindex  sm   V
 yy$$Q'77D	B&$fdCD5II!!!$44W=1
 7'7WE!V$x(
 f%
	 	f&<&<V&DEf%
	 =='8!41==||33333
f/r   c           	        \        RR.. ROR7      pVP                  R.4      P                  RRR./4      p\        RR.. ROR7      pVP                  RRR7       \        P
                  ! \        P                  P                  RR	7      ;_uu_ 4        \        W#RRR
7       RRR4       R#   + '       g   i     R# ; i)r   rF   rG   r   meansumT)inplacez-Not allowed to merge between different levelsr   r   r   Nr   r   r  r         r   )   r   r7  rF   rG   rI   )
r   groupbyagg	set_indexr   r   pderrors
MergeErrorr   )r)   r*   new_dfother_dfs   &   r   #test_join_hierarchical_mixed_raises,TestJoin.test_join_hierarchical_mixed_raises  s     	9-GSE"&&fe_'=>i4oN3-]]II  (W
 
 &tF
 
 
 
s   B,,B=	c                ~   \        \        P                  P                  ^4      P	                  R4      RR.\        P
                  R7      p\        \        P                  P                  ^4      P	                  R4      R.\        P                  R7      pVP                  V4      pVP                  R,          R8X  g   Q hVP                  R,          R8X  g   Q hVP                  R,          R8X  g   Q h\        P                  P                  ^4      P                  ^ ^^d4      P                  R4      p\        P                  P                  ^4      P                  ^d4      P                  R4      p\        P                  P                  ^4      P                  ^d4      P                  R4      p\        RVRVRV/4      p\        RVRVRV/4      p\        \        P                  P                  ^4      P                  ^4      P                  R4      R.R	7      pVP                  VRR
R7      pVP                  R,          R8X  g   Q hVP                  R,          R8X  g   Q hVP                  R,          R8X  g   Q hVP                  R,          R8X  g   Q hVP                  VRR
R7      p	\        P                  ! W4       R# )r   rF   rG   r   r7   rH   float64float32r   mdr   Tr   N)r   r   )r   r   )r   r   r   r   r(   rF  rG  r   dtypesintegersastyper   r   r   )
r)   rF   rG   rr   rH   r*   xpdfsrsxps
   &         r   test_join_float64_float32"TestJoin.test_join_float64_float32  s6   II!!!$44W=#J**

 II!!!$44W=E**

 }}S!Y...}}S!Y...}}S!Y...II!!!$--aC8??HII!!!$++C077	BII!!!$++C077	BQQQ/0#q#q#q12II!!!$++A.55i@4&
 XXa$X7yy~(((yy~***yy~***yy)+++ZZ3DZ9
b%r   c                   \        R ^^.R^^.R^
^./4      p\        R ^^.R^^.R^d^./4      p\        R ^^.R^^.RRR./4      pVP                  R R.4      pVP                  R R.4      pVP                  R R.4      pVP                  WV.RR7      p\        WR R.RR	7      p\        WR R.RR	7      p	VP	                  4       pWP
                  ,          p	V	P                  P                  R
4      V	R &   V	P                  P                  R
4      V	R&   \        P                  ! Wy4       \        R . ROR. ROR. RO/4      p\        R . ROR. ROR. RO/4      p\        R . ROR. ROR. RO/4      pVP                  R R.4      pVP                  R R.4      pVP                  R R.4      pVP                  WV.RR7      p\        WR R.RR	7      p\        WR R.RR	7      p	VP	                  4       p\        P                  ! WyP                  RVP
                  3,          4       \        R. ROR. ROR\        P                  P                  ^4      P                  ^4      R\        P                  P                  ^4      P                  ^4      /4      p
\!        \        P"                  ! \        P$                  ! ^4      ^4      \        P"                  ! \        P$                  ! ^4      ^4      RR7      pV
P                  VRR7      pV
P                  VRR7      pV
P                  VRR7      pV
P                  VRR7      p\        P                  ! W4       \        P                  ! W4       \        P                  ! W4       R# )rF   rG   rH   rI   rJ       re   rU   r`   r   ri   NNNr1   r2   r3   r4   TESTr   rT   r_   N)r   r   r   )r      r  )r   r   r   )d      i,  )rS  rT  i  )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r<  r   r   r&  r   rF   rK  rG   r   r   locr   r   r   r(   r   repeatr   )r)   r   r.   df3idf1idf2idf3r   df_partially_mergedr   r*   rM  ri   re   rT   r_   s   &               r   test_join_many_non_unique_index(TestJoin.test_join_many_non_unique_index  s   q!fcAq63RABq!fcAq63c
CDq!fcAq63tEF}}c3Z(}}c3Z(}}c3Z(D<W5#C#sI,sCjgN##%NN+ 

))'2 

))'2
f/iilKLiioNOii>PQR}}c3Z(}}c3Z(}}c3Z(D<W5#C#sI,sCjgN##%
fll1fnn3D&EF MQRYY**1-==a@RYY**1-==a@	
 IIbiilA&bii		!a.Hv
 w'w'wwqfw%w'
e+
e*
e+r   c                   \        R V4      ;_uu_ 4        \        R. R
OR. RO/4      p\        R. RO/. ROR7      pVP                  VRRR7      p\        R. ROR. ROR. RO/. ROR7      p\        P                  ! WE4       VP                  VRRR7      p\        P
                  ! VP                  \        \        ^4      4      RR7       R	R	R	4       R	#   + '       g   i     R	# ; i)zfuture.infer_stringr   r-   value2r8   T)rS   r  F)exactN)r   r   r   r   r   r   r  r   r   )r   r   r   )r   r   r   r   )r   r  r   r   )rF   rG   rH   rH   )r   r   r   r  )	r   r   r   r   r   r   r9   r   r   )r)   rz   rT   r_   rr   r   s   &&    r   test_join_sortTestJoin.test_join_sort7  s     1<@@4g|LD x9AVWEYYuTY:F 7\2
 #H !!&3 YYuUY;F!!&,,eAhtL' A@@@s   B5CC%	c           
        \        R . RO/. ROR7      p\        R. RO/. ROR7      pVP                  V4      p\        R . ROR^\        P                  ^^\        P                  ./. R	OR7      p\        P
                  ! W44       \        R . RO/. R
OR7      p\        R. RO/. ROR7      pVP                  V4      p\        R . ROR^^^\        P                  ./. R
OR7      p\        P
                  ! W44       R# )rF   r8   rG   Nrf  )r   r   r  rF   )r6  r7  r8     )r   r  r  r   )r   r   r  r  r   )r   r   r  r  rF   )r   r   r   rF   )r   r   r   nanr   r   )r)   r   r.   r   r   r\  df4s   &      r    test_join_mixed_non_unique_index)TestJoin.test_join_mixed_non_unique_indexP  s    l+>Bl+<@#/3BFFAq"&&(AB#
 	f/l+>Bl+<@#,aArvv%67~
 	f/r   c           	        \         P                  ! R ^RR7      p\        \        \	        \        V4      4      4      VR.R7      p\        W".4      pVP                  VRRR7      p\        \        P                  ! \        P                  ! ^\        P                  R7      P                  ^4      P                  R^4      ^4      RR	.VP                  4       P                  R
7      p\         P"                  ! WE4       R# )z
2016-01-01M)r5   freqpnumr   ri   _df2)rV   r   r6   pnum_df2r   r9   N)r=  period_ranger   r   r   r   r   r   r   r   r   r   r[  reshaper  r9   r   r   )r)   r9   r*   r.   r   r   s   &     r   !test_join_non_unique_period_index*TestJoin.test_join_non_unique_period_indexc  s    bsCtE#e*-.efXNbX'6:GGBIIb188;CCBJANZ(.."((

 	f/r   c                4   \        \        P                  P                  ^4      P	                  R4      . ROR7      pVP                  ^ R^ 4       VP                  ^RR4       VP                  R4      p\        P                  ! R4      pV'       d   Rp\        P                  ! \        VR7      ;_uu_ 4        VP                  4        RRR4       VP                  R	R
7      pVP                  4       pVP                  VRR7       R#   + '       g   i     LG; i)r   r   iddtr   z&agg function failed [how->mean,dtype->z-dtype 'str' does not support operation 'mean'r   NT)numeric_only_rightr   )rW  r7  )rF   rG   rH   rI   rJ   r   )r   r   r   r   r(   insertr:  reescaper   r   r   r0  countr   )r)   using_infer_stringr*   groupedr   mncns   &&     r    test_mixed_type_join_with_suffix)TestJoin.test_mixed_type_join_with_suffixp  s    II!!!$44W=2
 			!T1
		!T5!**T"ii@AAC]]9C00LLN 1\\t\,]]_ 	H% 10s   7DD	c                   \        \        P                  P                  ^4      P	                  R4      \        R4      R7      pVRR.,          VRR.,          VRR.,          .pV^ ,          P                  VR	,          4      p\        P                  ! W14       VRR.,          R
R VRR.,          R,          VRR.,          R,          .pR pV^ ,          P                  VR	,          RR7      pV! W#VP                  4       V^ ,          P                  VR	,          4      pV! W#V^ ,          P                  4       V^ ,          P                  VR	,          RR7      pV! W#VP                  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     R
# ; i)r   abcdefr   rF   rG   rH   rI   rJ   r   r   NNN:r   NN:r   	   Nc                     V  Uu. uF  q3P                  V4      NK  	  ppV^ ,          P                  VR,          4      p\        P                  ! W4       R# u upi )r   r  N)r   r   r   r   )df_listr   	exp_indexr  	reindexedr   s   &&&   r   _check_diff_index2TestJoin.test_join_many.<locals>._check_diff_index  sI    7>?w!9-wI? |((27H!!&3 @s   Are   rU   ri   :r   rj  Nz?Joining multiple DataFrames only supported for joining on indexr   rR   )r   r7  )r   r   r   r   r(   r   r   r   r   r9   r   r   r   )r)   r*   r  rr   r  r   s   &     r   test_join_manyTestJoin.test_join_many  sp   II!!!$44W=tH~
 sCj>2sCj>2sCj>B-
f)sCj>#2&C:r(:BSzN3<OP	4 ':'2884-'71:+;+;<':'288C=9O]]:S11AJOOGBKCO0 2111s   "GG	rV   c                P   \        R . RO/. ROR7      p\        R. R	O/. R
OR7      pVR8X  d   \        R . ROR. R	O/. R
OR7      pM\        R . ROR. RO/. ROR7      pVR8X  g	   V'       d   VP                  4       pVP                  V.WR7      p\        P                  ! We4       R# )rF   r8   rG   r_   re   rV   r  Nr4  )r   r   r   r5  r   r   r   )r  r   r   )r7  r6  r   )r   r  r   r   r   r)   rV   r  r*   r.   r   r   s   &&&    r   test_join_many_sort_unique#TestJoin.test_join_many_sort_unique  s     Y'y9i(	:'> #y#y!ASH #y#y!ASH'>T**,H#C3
f/r   c           
     x   \        R . RO/. ROR7      p\        R. RO/. ROR7      pVR8X  d   \        R ^^.R^^./^ ^ .R7      pMVR8X  d(   \        R . ROR\        P                  RR./. ROR7      pMVR8X  d7   \        R \        P                  RR\        P                  .R. RO/. ROR7      pMG\        R RR\        P                  \        P                  R	.RRRR
R\        P                  ./. ROR7      pV'       d   VP                  4       pVP	                  V.WR7      p\
        P                  ! We4       R# )rF   r8   rG   ri   rT   g      @r_   r>   r?   r=   g      @r@   r  Nr4  )r  r   r   r5  r  )r   r6  r6  r7  )r   r   r   r   )r   r   r   r   r  )r   r   rk  r  r   r   r   r  s   &&&    r   test_join_many_sort_nonunique&TestJoin.test_join_many_sort_nonunique  s!    Y'y9i(	:'> #1vsQF!;Aq6JHF] irvvsC&89H G^ rvvsC0#|DLH !#sBFFBFFC8#sCbff5 &H **,H#C3
f/r   c                h   \        \        R ^^4      \        R ^^4      .4      p\        R^^./VR7      p\        R^^./VR7      pVP                  V.VR7      pVR8X  d'   \        R^^.R^^./V^,          V^ ,          .R7      pM\        R^^.R^^./VR7      p\        P
                  ! WV4       R# )i  rF   r8   rG   rU   re   N)r   r   r   r   r   r   )r)   rV   r9   r*   r.   r   r   s   &&     r    test_join_many_datetime_unsorted)TestJoin.test_join_many_datetime_unsorted  s     xa+XdAq-ABCaV}E2q!fU3#C('> #1vsQF!;E!HeTUhCWXH #1vsQF!;5IH
f/r   c                p   \        \        P                  P                  ^4      P	                  R4      . ROR7      pRR.^,          VR&   VP
                  R	RR.3,          pVP
                  R	RR.3,          pVP
                  R	R.3,          pVP                  W4.4      p\        P                  ! WQ4       R
# )r   r1   r2   r3   r4   r   r   r   r   rU  N)rj  r   r   )	r   r   r   r   r(   rZ  r   r   r   )r)   r*   r   r.   r\  r   s   &     r   test_join_many_mixedTestJoin.test_join_many_mixed  s    II!!!$44V<(
 ENQ&5	ffQc
]#ffQc
]#ffQZ 3*%
f)r   c                   \        \        \        P                  P	                  ^4      P                  R4      . ROR7      \        \        P                  P	                  ^4      P                  ^ ^
^R7      P                  ^
^4      RR.R7      .^R7      p\        W.^R7      pVP                  VRR7      pVP                  Vn	        \        P                  ! W24       \        \        P                  P	                  ^4      P                  R4      RR	.R7      p\        \        P                  P	                  ^4      P                  R4      RR	.R7      p\        \        P                  P	                  ^4      P                  R4      RR	.R7      p\        \        P                  P	                  ^4      P                  R4      RR	.R7      pVP                  VR
R
R7      P                  VR
R
RR7      p\        P                  ! \        P                   P"                  RR7      ;_uu_ 4        VP                  VR
R
R7       RRR4       R#   + '       g   i     R# ; i)r   r1   r   r   r3   r  _2r  r  yTr3  re   )r   r   rV   z0Passing 'suffixes' which cause duplicate columnsr   N)r   r   )r1   r1   r2   r2   )r   r   )r   r   r   r   r   r(   rJ  rx  r   r   r   r   r   r   r   r=  r>  r?  )	r)   r*   r   r   wr  r  zdtas	   &        r   test_join_dupsTestJoin.test_join_dups  s   II))!,<<WE0 II))!,55a"5EMMbRST #J	 
 2(+T*!))
f/ II!!!$44V<sCj
 II!!!$44V<sCj
 II!!!$44V<sCj
 II!!!$44V<sCj
 ggaDdg;AA$Dg B 
 ]]II  D
 
 IIaDdI;	
 
 
 
s   (II	c                   \         P                  ! \        R 4      \        R4      ^^... R
OR7      p\        R\	        ^4      /VR7      p\         P                  ! \        R 4      \        R4      .R R.R7      p\        R\	        ^^4       Uu. uF  p^dV,          NK  	  up/VR7      pVP                  VR R.VR7      pVP                  4       P                  VP                  4       R R.VR7      P                  . R
O4      p\        P                  ! W4       Rp	\        P                  ! \        V	R7      ;_uu_ 4        VP                  VRVR7       R	R	R	4       \        P                  ! \        V	R7      ;_uu_ 4        VP                  VR R.VR7       R	R	R	4       R	# u upi   + '       g   i     LZ; i  + '       g   i     R	# ; i)r   xyr  v1r8   v2r`   r   r   N)r   r  num)r   r   r   r   r   r   r&  r   r<  r   r   r   r   r   )
r)   r   	leftindexrT   
rightindexir_   r   r   r   s
   &&        r   test_join_multi_to_multi!TestJoin.test_join_multi_to_multi  sp   ++%[$t*q!f-5I
	 $b	*)<,,%[$t*%eT]

 45A;!?;a#'';!?@
S5eT]	BU5$$&E4=iUHY+, 	
 	h/W]]:S11IIe)I4 2 ]]:S11JJt9J= 21 "@ 21 211s   F
=F$>F7$F4	7G	c           	        \        R \        P                  ! R^RR7      R\        R4      /4      p\        R \        P                  ! R^RR7      R\        R4      /4      pVP	                  VP                  R 4      R R	7      pVP                  4       p\        \        P                  .^,          \        R
4      ,           4      VR&   \        P                  ! W44       R# )datez
2018-01-01zAmerica/Chicago)startr5   tzvalsabcdez
2018-01-03vals_2tuvwxrR   tuvN)r   r=  
date_ranger   r   r<  copyr   r   rk  r   r   )r)   r   r.   r   r   s   &    r   #test_join_on_tz_aware_datetimeindex,TestJoin.test_join_on_tz_aware_datetimeindex1  s    &6G W	
 &6G $w-	
 #--/F;88:#RVVHqL4;$>?
f/r   c                2   \        . RO. RO. RO. RO.. ROR7      p\        P                  ! VR,          4      P                  R4      VR&   \        . RO. RO.. RO^^.R7      p\        P                  ! VR,          4      P                  R4      VR&   VP	                  VP                  RR.4      RR.R7      p\        \        R	4      R^^.\        R
4      R^^..^^.. ROR7      pVR,          P                  R4      VR&   \        P                  ! W44       R# )
2012-08-02LJr  r  r   zM8[ns]ru  rR   z2012-08-02 00:00:00z2013-04-06 00:00:00r   N)r  r  r   )r  r     )
2013-04-06r  rW  )r  r     )r  r  rF   )r  r  r   )r  r  r   )r  r  r  )r  r  r  rF   )	r   r=  to_datetimerK  r   r<  r	   r   r   )r)   dfadfbr   r   s   &    r   test_join_datetime_string"TestJoin.test_join_datetime_stringI  s   ''''	 $
 >>#c(+228<C#%;<#a&

 >>#c(+228<C#--c
3c
C0132>0132> a&(
 !,,X6
f/r   c                   R R.p\         P                  ! WR7      p\         P                  ! \        V4      \        V4      R7      p\        RV/VR7      p\        R\        V4      /VR7      pVP	                  V4      p\        RR R.RR R./\         P                  ! R R.R R.R7      R7      p\
        P                  ! Wg4       R# )rF   rG   
categoriesc1r8   c2N)r=  CategoricalIndexreversedr   r   r   r   )r)   ixid1id2r   r.   r   r   s   &       r    test_join_with_categorical_index)TestJoin.test_join_with_categorical_indexg  s    3Z!!"4!!(2,8B<Hr
#.x|,C8#C:tc3Z0%%sCjc3ZH
 	f/r    )rT   r_   ri   re   )ri   re   rT   r_   ):__name__
__module____qualname____firstlineno__r   fixturer*   r.   rO   r\   ra   rf   rj   rs   rx   markparametrizeparamtd
skip_if_nor   r   r   r   r   arrayr   r   r   r   r   r   r   r   r  r  r  r  r-  rB  rP  ra  rg  rm  ry  r  r  r  r  r  r  r  r  r  r  r  __static_attributes____classdictcell__)__classdict__s   @r   r!   r!   $   s<    ^^  ^^
 
 ^^  HIII$	$ [[Ty9Q RS#(#(J:$:$=$ [[\AudBHHaV<L+MN= O= 0
!
<0000$0@F
)2V:0|G&B4,l [[Ty9Q RSMM,0&0&*1< [[U$GH0 I0 [[U$GH0 I06 [[U$GH0 I0*+<Z>6000<0 0r   r!   rT   c                    V F/  pW',          P                  4       P                  4       '       d   K/  Q h	  V P                  V4      pVP                  V4      p	VP                  V4       Fl  w  r\        WP                  V4      p\        WP                  V4      p VP                  V
4      p\        W4        V	P                  V
4      p\        VV4       Kn  	  R#   \         d8   pTR9   d   \        RT
 R24      Th\        YP                  T4        Rp?LaRp?ii ; i  \         d9   pTR9   d   \        RT
 R24      Th\        YP                  T4        Rp?K  Rp?ii ; i)rT   zkey z! should not have been in the joinN)rT   ri   )r_   ri   )
r   r   r:  _restrict_to_columnsr   	get_group_assert_same_contentsr   AssertionError_assert_all_na)rT   r_   r   r   rV   r   r   rH   left_groupedright_grouped	group_keygroupl_joinedr_joinedlgrouperrrgroups   &&&&&&&          r   rX   rX   w  sS   y $$&&&&  <<)LMM(+M"NN84	'||WE'}}gF
	4!++I6F "(3
	4",,Y7F "(F35 5  	=''$9+%FG 8\\8<<	=  	>(($9+%FG 8]]H==	>s0   C8D D&-DD E#+-EE#c                   a V P                    Uu. uF$  q3V9   g   VP                  SR 4      V9   g   K"  VNK&  	  ppV P                  RV3,          p V P                  V3R lR7      p V P                  RV3,          p V # u upi ) rU  c                 (   < V P                  SR 4      # )r  )replace)r  suffixs   &r   <lambda>&_restrict_to_columns.<locals>.<lambda>  s    199VR+@r   r   )r   r  rZ  r   )r  r   r   rH   founds   &&f  r   r  r    s    == aLAIIfb4IW4T= 
 
 IIahE LL!@LAE IIaj!ELs
   A>A>c                   a RpV P                  V4      P                  4       P                  pVP                  V4      P                  4       P                  pV Uu0 uF  p\        V4      kK  	  upo\	        S4      \	        V4      8X  g   Q h\
        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       g   Q hR# u upi )i c              3   @   <"   T F  p\        V4      S9   x  K  	  R # 5ir   )tuple).0rowrowss   & r   	<genexpr>(_assert_same_contents.<locals>.<genexpr>  s     5WcuSzT!Ws   FTNiy))fillnadrop_duplicatesr  r  r   r   )
join_chunkrN   NA_SENTINELjvaluessvaluesr  r	  s   &&    @r   r  r    s    K,<<>EEGmmK(88:AAG")*'3E#J'*Dt9F###35W53335W55555 +s   Cc                     V F7  pW29   d   K  W,          P                  4       P                  4       '       d   K7  Q h	  R # r   )r   r   )r  source_columnsr   rH   s   &&& r   r  r    s4    =}!!#'')))) r   c                 <   V P                   P                  VP                   VR 7      pV P                  V4      pVP                  V4      pV P                  P	                  VP                  4      pVP                  4        F	  w  rxWV&   K  	  VP                  VR7      # )rU   r   )r9   r   r   r   appenditems)	rF   rG   rV   
join_indexa_reb_reresult_columnsr   rM  s	   &&&      r   r   r     sz    agg3/J99Z D99Z DYY%%aii0N**,S	 <<<//r   c                  D   \        R ^/\        P                  ! R.R	R7      R7      p \        R^/\        P                  ! R
.RR7      R7      pV P                  VRR7      p\        R ^.R^./\        P                  ! R.RR7      R7      p\        P
                  ! W#4       R# )rJ   r  rL   r9   r   ri   rU   r8   N)r   r   r   r9  )r   r  )rG   rH   )r   r   r   r  )rF   rG   rI   rH   r   r   from_tuplesr   r   r   )rT   r_   r   r   s       r   .test_join_inner_multiindex_deterministic_orderr    s    1X$$i[HD 1XZ33VHJOE YYu'Y*F	qc3$$l^;OPH &+r   rG   rF   a_xa_yc                     \        R ^^./4      p\        V ^^./4      pVP                  VRRRR7      p\        V^ ,          . ROV^,          . RO/4      p\        P                  ! WE4       R# )rF   cross_x_y)rV   r   r   N)r   r   r  r  )r  r   r  r   r   )	input_coloutput_colsrT   r_   r   r   s   &&    r   test_join_crossr(    sh    
 cAq6]#Dy1a&)*EYYu'4YFF+a.,AUVH&+r   c                    \        R ^/\        P                  ! R
.RR7      R7      p\        R^/\        P                  ! R.RR7      R7      pVP                  W R7      pV R8X  d.   \        R ^.R^./\        P                  ! R.RR.R7      R7      pM,\        R ^.R^./\        P                  ! R
.RR.R7      R7      p\        P
                  ! W44       R	# )rH   rF   rG   r  r  rI   rU   r_   r8   N)r   r   )rF   rG   )r   )rG   )r   r   r  )r   rT   r_   r   r   s   &    r   test_join_multiindex_one_levelr*    s    1XZ33VHJOD C8:+A+A4&PV+WXEYYuY,FG1#sQC ((&#sD

 1#sQC ((&#sD
 &+r   zcategories, valuesYX      @      ?z
2020-12-31z
2019-12-31c                    \        R RR.R\        W R7      R^^./4      P                  R R.4      p\        R . ROR\        WR7      R. RO/4      P                  R R.4      pVP                  VRRR7      p\        R RR.R\        W R7      R^^.R	^^./4      P                  R R.4      p\        P
                  ! WE4       R
# )r  r1   r  r  r-   _leftr  r   
value_leftvalue_rightN)r1   r1   r2   )r  r   r6  r   r   r<  r   r   r   )r  r  rT   r_   r   r   s   &&    r   1test_join_multiindex_not_alphabetical_categoricalr4    s     c3Zk*DaV	
 i(#$ 	 _k&@Y	
 i(#$ 
 YYugxY@Fc3Zk*D1a&Aq6		
 i(#$  &+r   zleft_empty, how, expr_   ri   re   c           	         \        R ^^.R^^./RR7      P                  R 4      p\        R ^.R^./RR7      P                  R 4      pV '       d   VP                  ^ 4      pMVP                  ^ 4      pVP                  WAR7      pVR8X  dF   \        R ^^.R^^.R\        P
                  \        P
                  ./4      pVP                  R 4      pMiVR8X  d5   \        R\        P
                  .R ^.R^./4      pVP                  R 4      pM.VR8X  d(   \        RR.RR	7      pVR
8w  d   VP                  R 4      pVR8X  d   XP                  4       p\        P                  ! VX4       R# )r1   r2   r   r6   r3   rU   rT   r_   emptyrE  r#  re   N)
r   r<  headr   r   rk  rename_axisr  r   r   )
left_emptyrV   exprT   r_   r   r   s   &&&    r   test_join_emptyr;  &  sK     cAq63A/w?II#NDsQCqc*':DDSIEyy|

1YYuY&F
f}cAq63Abffbff=MNO%%c*	cBFF8S1#sQC@A%%c*	c3Zw?'>++C0H
g~&&(&(+r   c                  V   \        4       p \        R .R7      p\        RR.R7      pW,           p\        R .R7      p\        P                  ! W44       W,           p\        . ROR7      p\        P                  ! W44       W,           p\        RR.R7      p\        P                  ! W44       R# )testr   r   Nr   r   )r>  r   r=  )r   r   r   )r   r.   r\  r   r   s        r   $test_join_empty_uncomparable_columnsr?  P  s    
+C
VH
%C
UN3
4CYF&*H&+YF!@AH&+YF.%!89H&+r   zhow, valuesc           
         \        R \        . RO4      R\        . RO4      R. RO/4      P                  R R.4      p\        R \        . RO4      R\        . RO4      R. RO/4      P                  R R.4      p\        R \        V4      R\        V4      RVRV/4      P                  R R.4      pVP                  W0R7      p\        P
                  ! WT4       R# )rF   rG   rH   rI   rU   Nr   r   r   r   r3  )rV   r  r   r.   r   r   s   &&    r   3test_join_multiindex_categorical_output_index_dtyperB  c  s     Y'Y'	
 ic
  Y'Y'	
 ic
  V$V$		
 ic
  XXcX#F&+r   c                     \        R ^./\        P                  ! R.RR.R7      R7      p \        R^./\        P                  ! R.RR.R7      R7      pV P                  V4      p\        R ^.R^./\        P                  ! R.RR.R7      R7      p\        P
                  ! W#4       VP                  V 4      p\        R^.R ^./\        P                  ! R.RR.R7      R7      p\        P
                  ! WE4       R# )r1   r,  Nr  r8   r2   )r  r  r  )r   r.   result12
expected12result21
expected21s         r   'test_join_multiindex_with_none_as_labelrH    s    
	qc
$$fXc4[AC 	qc
$$fXdC[AC
 xx}H	qc3$$fXc4[AJ (/xx}H	qc3$$fXdC[AJ (/r   )rj  2   )rT   r$  r%  )rT   )r&  r'  )r+  r,  r,  )r   r   r   )r-  r.  r.  )
)FrT   rT   )Fr_   r6  )Fri   r6  )Fre   rT   )Fr#  r6  )TrT   r6  )Tr_   r_   )Tri   r6  )Tre   r_   )Tr#  r6  r   rA  ))r   r  numpyr   r   pandas.util._test_decoratorsutil_test_decoratorsr  pandasr=  r   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingr   r   r!   rX   r  r  r  r   r  r  r  r(  r*  r4  r;  r?  rB  rH  r  r   r   <module>rQ     s    	   ) )    P0 P0f"4J"6*
0,"  C#s#4sUEN6K"L,,,( 
s_%
Q
s_%|$i&=>|$i&=y?VW	
	,,: ,,6,& 	)	)		)	,,>0r   