+
    xȇiy                     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 ^ RI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]P.                  R	 4       t ! R
 R4      t ! R R4      tR# )    N)	DataFrameIndex
MultiIndex
RangeIndexSeries	Timestampoption_context)concat)mergec                     . ROp . ROp\         P                  P                  ^4      P                  \	        V 4      4      p\        RV RVRV/4      # )z=left dataframe (not multi-indexed) for multi-index join testskey1key2data)
barr   r   foor   bazr   quxr   snap)
twoonethreer   r   r   r   r   r   r   )nprandomdefault_rngstandard_normallenr   )r   r   r   s      u/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/reshape/merge/test_multi.pyleftr      sJ     SDUD99  #33CI>DfdFD&$?@@    c                B    T pRR.VP                   n        . ROVn        V# )z:right dataframe (multi-indexed) for multi-index join testsr   r   )j_onej_twoj_three)indexnamescolumns) multiindex_dataframe_random_datadfs   & r   rightr)       s%     
*Bf%BHHN.BJIr   c                  j    \        R . ROR. ROR. ROR. R	OR. R
O/. ROR7      P                  . RO4      # )OriginDestinationPeriodTripPurpTripsr&   )Ar1   Br2   C)r1   r2   r1   r3   r1   )AMr4   IPr4   OP)hbwnhbhbor8   r7   )i  i?  i	  i  i\  )r+   r,   r-   r.   r/   )r+   r,   r-   r.   r   	set_index r   r   
left_multir=   *   sF    /44;3	
 I	 i?@	Ar   c                  j    \        R . ROR. ROR. ROR. R	OR. R
O/. ROR7      P                  . RO4      # )r+   r,   r-   LinkTypeDistancer0   )r1   r1   r2   r2   r3   r3   E)r1   r2   r1   r2   r1   r2   F)r4   r4   r5   r4   r6   r5   r4   )abcrD   rC   rD   rC   )d   P   Z   rG   K   #   7   )r+   r,   r-   r?   r@   )r+   r,   r-   r?   r:   r<   r   r   right_multirL   8   sF    9>@;5	
 L	 i?@	Ar   c                  
    . RO# )r+   )r+   r,   r-   r<   r<   r   r   on_cols_multirN   F   s    ..r   c            
         a  ] tR t^Kt o 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R tR tR tR t]P                  P                  RR]P*                  ]].4      R 4       t]P                  P                  RRR.4      R 4       t]P4                  R 4       t]P4                  R 4       t]P4                  R 4       tR tR tR t R t!R t"Rt#V t$R# ) TestMergeMultic                b   R R.pVP                  W$VR7      P                  RR7      p\        WP                  4       WCR7      p\        P                  ! WV4       VP                  W$VRR7      P                  RR7      p\        WP                  4       WCRR7      p\        P                  ! WV4       R# )r   r   onhowT)droprS   rT   sortN)joinreset_indexr   tmassert_frame_equal)selfr   r)   	join_typeon_colsresultexpecteds   &&&&   r   test_merge_on_multikey%TestMergeMulti.test_merge_on_multikeyL   s    6"5)<HHdHS002wN
f/5)$GSS T 
 ##%'t
 	f/r   infer_stringFTpyarrow)marksc                  aa	 \        R V4      ;_uu_ 4        . ROo	R oVV	3R lp\        \        \        \        P
                  ! \        R4      \        R4      ^,           4      4      4      p\        \        P                  P                  ^4      P                  VR4      RR.R7      pVP                  ^R\        P                  P                  ^4      P                  ^ ^
\        V4      4      P                  R	4      4       VP                  ^\        P                  P                  ^4      R
7      pS! V4      VR&   S! V4      ) VR&   VP!                  S	RR7       V! WVV4       \        P"                  VP$                  R&   \        P"                  VP$                  R&   \        P"                  VP$                  R&   S! V4      VR&   \        P                  P                  ^4      P'                  \        V4      4      pVP(                  VRR13,          pS! V4      ) VR&   VP!                  S	RR7       V! WVV4       RRR4       R#   + '       g   i     R# ; i)zfuture.infer_string1st2nd3rdc                    a R  oV3R lpV! V R,          4      V! V R,          4      R,          ,           V R,          P                  ^ 4      ^
,          ,           # )c                 (    W 8w  d   ^ # \        V 4      # )r   )ordrC   s   &r   <lambda>NTestMergeMulti.test_left_join_multi_index.<locals>.bind_cols.<locals>.<lambda>f   s    af!8#a&!8r   c                 F   < V P                  S4      \        R 4      ,
          # rm   )maprl   )tsiords   &r   rn   ro   g   s    rvvd|c#h6r   rg   ri   g      Y@rh   )fillna)r(   frs   s   & @r   	bind_cols<TestMergeMulti.test_left_join_multi_index.<locals>.bind_colse   sG    86E|a5	lS&882e9;K;KA;NQS;SSSr   c                 
  < V P                  VSR VR7      p\        V 4      \        V4      ^,           8  g   Q hVR,          P                  4       P                  4       '       d   Q hVR,          P                  4       P                  4       '       d   Q h\        P
                  ! VR,          VR,          ) RR7       S! VP                  RRR13,          4      p\        P
                  ! VR,          VRR7       VP                  e   Q hV'       d(   \        P                  ! W3P                  SRR	7      4       \        WP                  4       SVR R
7      p\        \        V4      4      Vn        \        P                  ! WS4       R# )r   rV   4th5thF)check_names:NNNN	mergesortkind)rS   rW   rT   )rX   r   isnaanyrZ   assert_series_equalilocnamer[   sort_valuesr   rY   r   r$   )r   r)   rW   resr_   outrv   icolss   &&&   r   run_asserts>TestMergeMulti.test_left_join_multi_index.<locals>.run_assertsj   s&   ii%V$iG4y3s8a<///u:??,002222u:??,002222&&s5zCJ;ER"388AssF#34&&s5z6uM{{***))#u;/WXD"3"3"5%dPVW&s3x0	%%c/r   rC   zr0   float)fracrandom_statery   rz   T)inplaceN)rg   rh   ri   )2      ):   N   rg   ):r   N   rh   ):   N   ri   )r	   listrq   chrr   arangerl   r   r   r   choiceinsertintegersr   astypesampler;   nanlocpermutationr   )
r\   rW   rc   r   lcr   r)   irv   r   s
   &&&     @@r   test_left_join_multi_index)TestMergeMulti.test_left_join_multi_index^   s    1<@@)ET
0( c#ryyS3s8a<@ABB		%%a(//G<uenD KK		%%a(11!RTCJJ7S
 KKQRYY5J5J15MKNE#D/DK%e,,E%LOOE4O0T* %'FFDHH[!$&FFDHH[!$&FFDHH[!#D/DK		%%a(44SY?AIIa"f%E%e,,E%LOOE4O0T*s A@@@s   H&II	c                    R R.pVP                  W$RRVR7      pVP                  WRRVR7      pWeP                  ,          p\        P                  ! WV4       R# )r   r   Tr   )left_onright_indexrT   rW   r)   )right_on
left_indexrT   rW   N)r   r&   rZ   r[   )r\   r   r)   rW   r^   merged_left_rightmerge_right_lefts   &&&&   r   test_merge_right_vs_left'TestMergeMulti.test_merge_right_vs_left   sh    6" JJ&t ' 
 !;;tt ' 

 ,,E,EF
/Br   c                l   \        \        ^4      \        P                  ! RR.. RO.RR.R7      RR7      p\	        R\        R4      R. ROR	^ /4      p\        W!P                  4       RR.R
7      p\	        R\        R4      R. ROR	^ .^,          R\        ^4      /4      p\        P                  ! W44       R# )r   r1   r2   lev1lev2r%   Amount)r   AAABBBcolrS   Nr   r   r   )r   r   r   r   r   r   )
r   ranger   from_productr   r   r   rY   rZ   r[   )r\   sr(   r_   r`   s   &    r   .test_merge_multiple_cols_with_mixed_cols_index=TestMergeMulti.test_merge_multiple_cols_with_mixed_cols_index   s    !H##c3Z$;FFCST

 X8JESTUVr==?/?@X*sQw%(	
 	f/r   c           
        \        R 4       Uu. uF  p\        V4      NK  	  pp\        P                  ! V^4      pVRRR
1,          p\	        RVRVR\        P
                  P                  ^4      P                  R4      /4      p\	        RVR,          RVR,          R\        P
                  P                  ^4      P                  R 4      /4      p\        WERR	7       R# u upi )i'  Nr   r   value1i N  :NNr   value2outerrT   r   )	r   strr   tiler   r   r   r   r   )r\   r   r   r   r(   df2s   &     r    test_compress_group_combinations/TestMergeMulti.test_compress_group_combinations   s     %e-1A-wwtQDbDz"))//2BB5I
 S	S	"))//2BB5I
 	b7#+ .s   Cc                *   R R.p\        R . RO^,          RRR.^,          R\        P                  ! \        P                  ! ^4      \        P                  R7      /4      p\
        P                  ! RR.4      p\        R^^./VR7      pVP                  WAR7      pVP                  4       p\        P                  VR&   ^VP                  VP                  ^8H  VP                  R8H  ,          R3&   ^VP                  VP                  ^8H  VP                  R8H  ,          R3&   \        P                  ! WV4       VP                  VR	R
R7       VP                  WAR
R7      p\        P                  ! WV4       \        R . RO^,          RRR.^,          R\        P                  ! . RO^,          \        P                   R7      R\        P                  ! \        P                  ! ^4      \        P"                  R7      /4      p\
        P                  ! RR.4      p\        R^^./VR7      pVP                  WAR7      pVP                  4       p\        P                  VR&   ^VP                  VP                  ^8H  VP                  R8H  ,          R3&   ^VP                  VP                  ^8H  VP                  R8H  ,          R3&   \        P                  ! WV4       VP                  VR	R7      pVP                  WAR
R7      p\        P                  ! WV4       R# )k1k2r   r   vdtypev2r$   r   r|   T)r~   r   )rS   rW   k3r}   N)r   r   r   )r   r   )r   r   )r   r   arrayr   int64r   from_tuplesrX   copyr   r   r   r   rZ   r[   r   float32int32)r\   r^   r   r$   r)   r_   r`   s   &      r   #test_left_join_index_preserve_order2TestMergeMulti.test_left_join_index_preserve_order   s}   ,i!muenr)RXXbiim288<
 &&
J'?@4!Q.65-99;JKhkkQ&8;;%+?@$FGJKhkkQ&8;;%+?@$FG
f/7dC99UT9:
f/ i!muenr)bhhy1}BJJ?RXXbiim288<	
 &&
J'?@4!Q.65-99;JKhkkQ&8;;%+?@$FGJKhkkQ&8;;%+?@$FG
f/##G+#>99UT9:
f/r   c                   \        . RO. RO. RO. RO. RO. RO. RO. RO. RO. RO.
. RO. ROR7      p\        . RO. RO. RO. RO. R O. R!O. R"O. R#O. R$O. R%O. R&O. R'O. R(O. R)O.. R*OR7      P                  . R+O4      pVP                  V. R,OR	R
7      p\        . R-O. R.ORRRR\        P                  .. R/O. R0O. R1OR RRR\        P                  .. R2O. R3O. R4O. R5O. R6O. R7O. R8O.. R9O. R:OR7      p\
        P                  ! W44       VP                  V. R,OR	RR7      pVP                  . R,ORR7      p\
        P                  ! W44       R# );XYr3   WeDrD   r&   r$   r0   r   rR   TrV   r|   r}   N)r   r   r3   rC   )r   r   r3   r   )VQr1   h)r   Rr   r   )r   r   r   rD   )r   r   r1   rE   )r   r   r2   ru   )r   r   r3   g)r   r   r3   j)r   r   r2   d)colacolbcolctag)
r   r   r   r      r   r   r   	      )r   r   r3   r   )r   r   r2   r   )r   r   r2   r   )r   r   r1   r   )r   r   r1   r   )r   r   r2   r   )r   r   r3   r   )r   r   r3   r   )r   r   r3   i)r   r   r3   i)r   r   r3   r   )r   r   r   r   )r   r   r   r   )r   r   r1   )col1col2col3val)r   r   r   )r   r   r   )r   r   r3   rC   r   )r   r   r3   rC   r   )r   r   r1   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r1   rE   r   )r   r   r1   rE   r   )r   r   r2   ru   r   )r   r   r2   ru   r   )r   r   r3   r   r   )r   r   r3   r   r   )r   r   r2   r   r   )r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r;   rX   r   r   rZ   r[   r   )r\   r   r)   r_   r`   s   &    r   +test_left_join_index_multi_match_multiindex:TestMergeMulti.test_left_join_index_multi_match_multiindex  sI   $$$$$$$$$$ 40
" """"""""##""##  4#
$ ),
-% 	( 5%=6J''c3RVV,('(c3RVV,'''''''  ;<%
* 	f/5%=6PTU''(@{'S
f/r   c                   \        R ^ .R^.R^.R^..RR.. ROR7      p\        RR.R R.R R.R	R
.RR.R R.RR.R R..RR.R7      P                  R4      pVP                  VRRR7      p\        . RO. RO. RO. ROR^\        P                  .. RO. R OR^\        P                  ... R!O. R"OR7      p\
        P                  ! W44       VP                  VRRRR7      pVP                  RRR7      p\
        P                  ! W54       \        WP                  4       RRR7      p\        \        V4      4      Vn        \
        P                  ! W44       R# )#rE   rD   rC   r   r   r   r   wxr   yr   rr   qr   charr0   r   rR   TrV   r|   r}   rT   rS   N)r   r   r   r   )rE   r   r   )rE   r   r   )rE   r   r   )rE   r   r   )rC   r   r   )rC   r   r   )r   r   r   )r   r   r   r   r   r   r   r   )r   r;   rX   r   r   rZ   r[   r   r   rY   r   r   r$   )r\   r   r)   r_   r`   	expected2s   &     r    test_left_join_index_multi_match/TestMergeMulti.test_left_join_index_multi_matchT  sn   1XQx#qC84EN
 c
c
c
c
c
c
c
c
	 FO
 )E
 	 5U7a a 	 +*
 	f/5UTB(([(A	
f0 t..0fG#CM2
f/r   c                   \        R \        R4      R\        P                  P	                  ^4      P                  ^4      R\        P                  P	                  ^4      P                  ^4      R\        R4      R\        P                  P	                  ^4      P                  ^4      /. ROR7      p\        R RR\        P                  \        P                  \        P                  .R	R
R\        P                  \        P                  \        P                  ./4      p\        WR RR7      pVP                  R .^R7      pVP                  V4      p\        P                  ! W54       R# )idabcdev1r   dummyv3r0   rC   rD   sv3gX9v?gʡE@r   rR   )axisN)r  r  r   r  r  )r   r   r   r   r   r   r   r   rU   rX   rZ   r[   )r\   r   r)   r_   rdfr`   s   &     r   test_left_merge_na_buglet(TestMergeMulti.test_left_merge_na_buglet  s   d7mbii++A.>>qAbii++A.>>qAgbii++A.>>qA 6	
 sC8ubffbffbff=
 tt8jj$aj(99S>
f/r   c           
        . RO. RO. RORR\         P                  .. RO. RORR\         P                  .. RO. RO.	p\        V. ROR7      pRR\         P                  .RR\         P                  .RR\         P                  .RR\         P                  .RR\         P                  .RR\         P                  ..p\        V. ROR7      pVP                  VR	R
7      pVP	                  R4      P                  VP	                  R4      R	R
7      pVP                  R\         P                  4      p\        P                  ! WV4       R# )  r1   r2     i    r3     r0   r   r   N)r  r1         ?)r  r2   r  )r  r2   r  )r  r2         @)r  r3   r  )r  r3   g      @)r  r3   r  )yearpanelr   i)r   r   r   r   rt   replacerZ   r[   )r\   r   frame
other_dataotherr_   r`   s   &      r   test_merge_na_keys!TestMergeMulti.test_merge_na_keys  s   33

 $(AB 333333

 *.GHU0<<%++ELL,>G+L##D"&&1
f/r   klassNc           	     *   \        . RO. ROR.R7      p\        P                  ! VP                  4      Vn        VP                  P                  pVe	   V! V4      p\
        P                  ! . RO\
        P                  R7      p\        R. RORV/4      pVP                  VRV.RR7      p\        P                  ! We4       \        RVR	. ROR
. RO/4      pVP                  W"P                  P                  .RR7      p\        P                  ! We4       R# r   rC   r0   Nr   key_1innerrR   key_0a_xa_yr   )z
2016-01-01z
2017-01-01z
2018-01-01)i  i  i  r   pdto_datetimer$   r  r   r   r   r   rZ   r[   )r\   r  r(   	on_vector	exp_yearsr`   r_   s   &&     r   test_merge_datetime_index(TestMergeMulti.test_merge_datetime_index  s     AC5
 >>"((+HHMM	i(IHH/rxx@	c9gyAB"#y!1w?
f/gy%E9UV"((--g>
f/r   
merge_typer   r)   c           
     p   \        R RR./\        P                  ! \        R4      R.\        R4      R..RR.R7      R	7      p\        \        P                  ! . RR.R7      R
.R7      p\        P                  ! \        R4      R.\        R4      R..RR.R7      pVR8X  dv   \        R RR.R
\        P
                  ! \        P                  \        P                  .\        R7      /VR	7      pVP                  VRRR.R7      pVP                  VRR7      pMt\        R
\        P
                  ! \        P                  \        P                  .\        R7      R RR./VR	7      pVP                  VRRR.R7      pVP                  VRR7      p\        P                  ! We4       \        P                  ! Wu4       R# )r   r  z
1950-01-01r1   z
1950-01-02r2   dater  r   )r   r$   state)r$   r&   r   r   r   r   r)   N)r   r   r   r   r   r   r   objectr   rX   rZ   r[   )r\   r)  r   r)   expected_indexr`   results_mergeresults_joins   &&      r   (test_merge_datetime_multi_index_empty_df7TestMergeMulti.test_merge_datetime_multi_index_empty_df  s    c
 ((L)3/)L2I31OPw'	
 ((FG3DEPWy
 $//%s+i.Es-KL7#

  S#JRXXrvvrvv&6fE %H !JJu&fg=NJOM99U97L RXXrvvrvv&6fES#J %H "KK'vw>OKPM ::d:8L
m6
l5r   c           	     Z    \        R . ROR. ROR. RO/. ROR7      P                  R 4      pV# )household_idmalewealthr0   r   )r   r   r   )ffffAPAi^ )r4  r5  r6  r:   )r\   	households   & r   r9  TestMergeMulti.household  s=    		6
 7
 )N
# 	 r   c                    \        R . RORRRRRRR\        P                  .RRR	R
R
RR\        P                  .R. RO/. ROR7      P                  R R.4      pV# )r4  asset_idnl0000301109nl0000289783gb00b03mlx29lu0197800237nl0000289965r   ABN AmroRobecoRoyal Dutch ShellAAB Eastern Europe Equity FundPostbank BioTech Fondssharer0   r   r   r   r   r   r   r         ?皙?333333?333333?rL        ?rJ  )r4  r<  r   rG  )r   r   r   r;   )r\   	portfolios   & r   rO  TestMergeMulti.portfolio  s     5""""""FF ''4,FF >), B/
0 )^Z0
11 	2 r   c                    \        R . ROR. ROR. R	OR. R
OR. ROR. RO/4      P                  RR.4      P                  . ROR7      pV# )r5  r6  r   rG  r4  r<  r0   )r   r   r   r   r   r   )r7  r8  r8      xArR  rR  )rB  rC  rD  rD  rE  rF  )rJ  rK  rL  rM  rL  rN  )r   r   r   r   r   r   )r=  r>  r?  r?  r@  rA  )r5  r6  r   rG  )r   r;   reindex)r\   r`   s   & r   r`   TestMergeMulti.expected-  sk     .    A"$6 !)> Y
34W@WAC 	F r   c                    VP                  4       pVP                  4       pVP                  VR R7      p\        P                  ! WC4       R# )r  r   N)r   rX   rZ   r[   r\   rO  r9  r`   r_   s   &&&& r   test_join_multi_levels%TestMergeMulti.test_join_multi_levelsT  s<    NN$	NN$	 	w7
f/r   c                    VP                  4       pVP                  4       p\        VP                  4       VP                  4       R .RR7      P                  R R.4      p\        P
                  ! WC4       R# )r4  r  rR   r<  N)r   r   rY   r;   rZ   r[   rV  s   &&&& r   (test_join_multi_levels_merge_equivalence7TestMergeMulti.test_join_multi_levels_merge_equivalence]  sk    NN$	NN$	 !!#!!#	

 )^Z0
1 	 	f/r   c                ^   VP                  4       pVP                  4       pVP                  VR R7      p\        V\        RR./\        P
                  ! ^\        P                  3.RR.R7      R7      .^ RR	7      P                  VP                  R
7      p\        P                  ! WCRR7       R# )r   r   rG  rJ  r4  r<  r   r   T)r  rW   r0   F)check_index_typeN)r   rX   r
   r   r   r   r   r   rS  r&   rZ   r[   rV  s   &&&& r   test_join_multi_levels_outer+TestMergeMulti.test_join_multi_levels_outerj  s    NN$	NN$		w7 4&)(44[M.*1M
 
 '(**'
+ 	 	fGr   c                   VP                  4       pVP                  4       pR VP                  n        \        P                  ! \
        RR7      ;_uu_ 4        VP                  VRR7       RRR4       VP                  4       pVP                  P                  RR .4       \        P                  ! \
        RR7      ;_uu_ 4        VP                  VRR7       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r   z+cannot join with no overlapping index names)matchr  r   Nr4  z'columns overlap but no suffix specified)r   r$   r   pytestraises
ValueErrorrX   	set_names)r\   rO  r9  
portfolio2s   &&& r   test_join_multi_levels_invalid-TestMergeMulti.test_join_multi_levels_invalid  s    NN$	NN$	  %	]]K
 
 NN9'N2

 ^^%
""NE#:;]]:-VWWOOI7O3 XW
 
 XWWs   C!C4!C1	4D	c                (   \        R . RORRRRRRR\        P                  .R. RO/. ROR7      P                  R R.4      p\        R. ROR. ROR	. RO/4      P                  RR.4      p\        R . ROR. ROR. ROR. ROR	. RO/4      P                  . RO4      P	                  RR	.R7      p\        VP                  4       VP                  4       R.R
R7      P                  . RO4      p\        P                  ! WC4       \        R . ROR. ROR. ROR. ROR	. RO/4      P                  . RO4      P	                  RR	.R7      p\        VP                  4       VP                  4       R.RR7      P                  . RO4      p\        P                  ! WC4       R# )r4  r<  r=  r?  r@  rA  rG  r0   t
log_returnr  rR   Nr   rH  rI  )r4  r<  rG  )r?  r?  r?  r@  r@  )               )S緖?D >?
?HRE?)r   r   r   r   r   r   r   r   )r?  r?  r?  r?  r?  r?  r@  r@  )rl  rm  rn  rl  rm  rn  ro  rp  )rL  rL  rL  rM  rM  rM  rL  rL  )rq  rr  rs  rq  rr  rs  rt  ru  )r4  r<  rj  )r   r   r   r   r   r   r   r   r   r   r   r   )r?  r?  r?  r?  r?  r?  r@  r@  rA  r=  r=  N)rl  rm  rn  rl  rm  rn  ro  rp  NNNN)rL  rL  rL  rM  rM  rM  rL  rL  rN  rJ  rK  rJ  )rq  rr  rs  rq  rr  rs  rt  ru  NNNN)	r   r   r   r;   rS  r   rY   rZ   r[   )r\   r9  rk  r`   r_   s   &    r   test_join_multi_levels2&TestMergeMulti.test_join_multi_levels2  s     5""""""FF > :
 )^Z0
1 	"   . 
$ )Z%
&% 	* "$< 	! AH  	#6 Y89Wg|4W5; 	B !!#""$|	

 )5
6 	 	f/ "$H !     ! #Y:<z Y89Wg|4W5 	D !!#""$|	

 )5
6 	 	f/r   r<   )%__name__
__module____qualname____firstlineno__ra   rb  markparametrizeparamtd
skip_if_nor   r   r   r   r   r   r   r	  r  r   asarrayr   r   r'  r1  fixturer9  rO  r`   rW  rZ  r^  rg  rv  __static_attributes____classdictcell____classdict__s   @r   rP   rP   K   sB    0$ [[Ty9Q RS:+:+xC 0&$240lC0J00d000@ [[WtRZZ&GH0 I0, [[\FG+<=,6 >,6\ ^^	 	 ^^ 8 ^^$ $L00H,4$Z0 Z0r   rP   c                      a  ] tR tRt o R tR t]P                  P                  RR]	P                  ]].4      R 4       tR tR tR	tV tR# )
TestJoinMultiMultii/  c                   VP                   P                  pVP                   P                  pVR 8X  d   WeP                  V4      ,           pMWVP                  V4      ,           p\        VP	                  4       VP	                  4       VVR7      P                  V4      P                  4       pVP                  W#R7      P                  4       p	\        P                  ! W4       R# )r)   r   r   N)
r$   r%   
differencer   rY   r;   
sort_indexrX   rZ   r[   
r\   r=   rL   r]   rN   
left_namesright_nameslevel_orderr`   r_   s
   &&&&&     r   test_join_multi_multi(TestJoinMultiMulti.test_join_multi_multi0  s    %%++
!''--%(=(=k(JJK$'='=j'IIK &&('') 	 Y{#Z\ 	 <GGI
f/r   c                6   VP                  VP                  R 7      pVP                  VP                  R 7      pVP                  P                  pVP                  P                  pVR8X  d   WeP	                  V4      ,           pMWVP	                  V4      ,           p\        VP                  4       VP                  4       VVR7      P                  V4      P                  4       pVP                  W#R7      P                  4       p	\        P                  ! W4       R# )r0   r)   r   r   N)rU   r&   r$   r%   r  r   rY   r;   r  rX   rZ   r[   r  s
   &&&&&     r   test_join_multi_empty_frames/TestJoinMultiMulti.test_join_multi_empty_framesF  s      __Z-?-?_@
!&&{/B/B&C%%++
!''--%(=(=k(JJK$'='=j'IIK &&('') 	 Y{#Z\ 	 <GGI
f/r   boxNc           	     *   \        . RO. ROR.R7      p\        P                  ! VP                  4      Vn        VP                  P                  pVe	   V! V4      p\
        P                  ! . RO\
        P                  R7      p\        R. RORV/4      pVP                  VRV.RR7      p\        P                  ! We4       \        RVR	. ROR
. RO/4      pVP                  W"P                  P                  .RR7      p\        P                  ! We4       R# r  r"  )r\   r  r(   r%  r&  r`   r_   s   &&     r   r'  ,TestJoinMultiMulti.test_merge_datetime_indexa  s     AC5
 >>"((+HHMM	?IIHH/rxx@	c9gyAB"#y!1w?
f/gy%E9UV"((--g>
f/r   c                   \         P                  ! . RORR.R7      p\        R. ROR. RO/VR7      p\         P                  ! . RORR.R7      p\        R. ROR	. RO/VR7      pVP                  V4      p\	        VP                  4       VP                  4       R.R
R7      P                  . RO4      p\        P                  ! WV4       R# )K0keyr   r   r1   r2   r   r   r3   r   r  rR   N))r  X0)r  X1)K1X2)A0A1A2)B0B1B2))r  Y0)r  Y1)K2Y2)r  Y3)C0C1C2C3)D0D1D2D3)r  r   r   )	r   r   r   rX   r   rY   r;   rZ   r[   )r\   
index_leftr   index_rightr)   r_   r`   s   &      r   test_single_common_level+TestJoinMultiMulti.test_single_common_levelx  s    ++6ucl

 $c+=>j
 !,,DUTWL
 *C1IJ

 5! 1 1 3W

)%
& 	 	f/r   c           
     Z   \         P                  ! ^^.^^..RR.R7      p\         P                  ! . RORR.R7      p\        VR. RO/R7      p\        VR. RO/R7      pVP	                  V4      p\        VR. RORR	RR\
        P                  ./R7      p\        P                  ! WV4       R
# )r   rC   rD   r   r   )r$   r   r   r   r   fingN))r   r   )r   r   )r   r   )
         (   )r   r   r  )	r   r   r   r   rX   r   r   rZ   r[   )r\   midx1midx3r   r)   r_   r`   s   &      r   test_join_multi_wrong_order.TestJoinMultiMulti.test_join_multi_wrong_order  s     ''!Q!Q(8c
K&&'?SzRuC1A+BCS2H,IJ5!'vueRVV.LM

 	f/r   r<   )rx  ry  rz  r{  r  r  rb  r|  r}  r   r  r   r   r'  r  r  r  r  r  s   @r   r  r  /  sQ     0,06 [[UT2::vu$EF0 G0,020 0r   r  )numpyr   rb  pandas.util._test_decoratorsutil_test_decoratorsr  pandasr#  r   r   r   r   r   r   r	   pandas._testing_testingrZ   pandas.core.reshape.concatr
   pandas.core.reshape.merger   r  r   r)   r=   rL   rN   rP   r  r<   r   r   <module>r     s      ) )     - + A A   
A 
A 
A 
A / /a0 a0Hs0 s0r   