+
    xȇi                       ^ RI HtH t Ht ^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
Ht ^ RI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Ht ^ RIHt ^ RIHt ^ RI H!t!H"t" RR	 lt#]PH                  R
 4       t% ! R R4      t&R t' ! R R4      t(]PH                  R 4       t)]PH                  R 4       t* ! R R4      t+ ! R R4      t,]PZ                  P]                  R]P^                   U u. uF  p ]! . ROV RR7      NK  	  up ]! . RO. RORR7      ]! ^ ^RR7      ]! . RORR7      .,           R R7      R  4       t0]PZ                  P]                  R!R"R#.RRR$R$R3RRR"R#.RR$R%R3RRR"R#.R%R$R3R"R#.RRR$R$R3RRR"R#.RR$R%R3RRR"R#.R%R$R3.4      R& 4       t1R' t2]PZ                  P]                  R(^ ^ R)R/R*R+.3^ ^ R)R/^ R+.3^ ^ R)R/R.R/.3^ ^ R)R,R-./R.R/.3R0^ R)R/R0^ .3R1R1R)R/R2R1.3R3R3R)R/R3R4.3R0R0R)R/R5R0.3R0R3R)R/R0R3.3R0R0R)R/R0R5.3^ ^ R)R/R6^ .3R0R0/ R5R7.3^ ^ / R.R/.3.4      R8 4       t3]PZ                  P]                  R9R:R. ROR;^<^F]Ph                  .R<. RO/3R"R. ROR;^P^<^F]Ph                  .R<]Ph                  R=R>R?./3.4      R@ 4       t5]PZ                  P]                  RA. RO4      RB 4       t6]PZ                  P]                  R)RCR:0RC^ R:^ /.4      RD 4       t7]'       d   REMRFt8]PZ                  P]                  RGR0R0RRH]8 RI23R0R0]9! R04      RJ3.4      RK 4       t:]PZ                  P]                  RLRMRN.4      ]PZ                  P]                  ROR%R$.4      RP 4       4       t;RQ t<RR t=RS t>RT t?]PZ                  P]                  RU^^.4      RV 4       t@RW tA]PZ                  P]                  RXRYRZ.4      ]PZ                  P]                  RR\R0R]R%/R\R].3R^R0R_R%/R^R_.3.4      R` 4       4       tB]PZ                  P]                  RXRYRZ.4      ]PZ                  P]                  RR\R0/R^R_.3R^R0/R\R].3.4      Ra 4       4       tC]PZ                  P]                  RXRYRZ.4      ]PZ                  P]                  R[R_R%/R]R%/.4      Rb 4       4       tDRc tERd tFRe tGRf tHRg tIRh tJRi tKRj tL]PZ                  P]                  RkRRl.4      Rm 4       tMRn tNRo tORp tP]PZ                  P]                  RkRqRr.4      Rs 4       tQ]PZ                  P]                  RtRRu.4      Rv 4       tRRw tSRx tT]PZ                  P]                  RyR%R$.4      ]PZ                  P]                  RzR%R$.4      ]PZ                  P]                  R{R%R$.4      ]PZ                  P]                  R|R%R$.4      ]PZ                  P]                  R}R%R$.4      R~ 4       4       4       4       4       tUR tVR tW]PZ                  P]                  RR%R$.4      ]PZ                  P]                  RR%R$.4      R 4       4       tX]PZ                  P]                  R. RO4      R 4       tYR tZ]PZ                  P]                  R)RR.4      R 4       t[R t\R t]R t^R# u up i )    )datedatetime	timedeltaN)PY314)is_object_dtypeis_string_dtype)CategoricalDtype)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexIntervalIndex
MultiIndexPeriodIndex
RangeIndexSeriesTimedeltaIndex)concat)
MergeErrormergec           	      ~   \        \        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   &&  u/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/reshape/merge/test_merge.pyget_test_datar(   )   s~    w(M
**RWW]L9
:C
3x!|jjc]>QS\%BBCII!$$S)J    c            	      d    \        R ^ ^.R^^.RRR./4      p \        R . ROR. ROR. RO/4      pW3# )col1col_conflictcol_leftab	col_right)               )r2   r2   r2   r2   r2   )r   df1df2s     r'   dfs_for_indicatorr9   4   sL    
VaV^aVZ#sT
UC
OO	
C 8Or)   c                   
  a ] tR t^At 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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RRR/RRRR/RRRR/RRRR/.4      R  4       tR! t R" t!]P:                  P=                  R#]"! ^.R$R%7      ]"! ^.R&R%7      ]"! R'.4      ]"! R(.4      ]"! R.4      ]"! ]#PH                  ! R)4      .4      ]"! ]#PH                  ! R)R*R+7      .4      .4      ]P:                  P=                  R,]"! ^.R$R%7      ]"! ^.R&R%7      ]"! R'.4      ]"! R(.4      ]"! R.4      ]"! ]#PH                  ! R)4      .4      ]"! ]#PH                  ! R)R*R+7      .4      .4      R- 4       4       t%]P:                  P=                  R#]"! ^.R$R%7      ]"! ^.R&R%7      ]"! R'.4      ]"! R(.4      ]"! R.4      ]"! ]#PH                  ! R)4      .4      ]"! ]#PH                  ! R)R*R+7      .4      .4      ]P:                  P=                  R.]"! ]#PL                  .R&R%7      ]"! ]'PP                  .R/R%7      ]"! ]'PP                  .R0R%7      ]"! ]#PR                  .4      .4      R1 4       4       t*R2 t+]P:                  P=                  RfR3. RgO3R. RhO3.4      ]P:                  P=                  R4R5R6.4      R7 4       4       t,R8 t-R9 t.]P:                  P_                  R:4      R; 4       t0R< t1R= t2]P:                  P=                  R>. RiO4      R@ 4       t3]P:                  P=                  R>. RiO4      RA 4       t4RB t5RC t6RD t7RE t8RF t9RG t:RH t;RI t<RJ t=RK t>RL t?RM t@RN tARO tBRP tCRQ tD]P:                  P=                  R4R6RR.4      ]P:                  P=                  RS]E! . RjO4      ]E! . RkO4      3]F! . RlORXR%7      ]F! RURVRW]#PR                  ]#PR                  ]#PR                  .RXR%7      3.]GP                   U u. uF/  p \        . RmOV R%7      \        . RnO\N        P                  R%7      3NK1  	  up O]KP                  ! . RrO4      ]KP                  ! RoRpRq]'PP                  ]'PP                  ]'PP                  .4      3N]M! . RsOR?R[7      ]M! RURYRZ]#PR                  ]#PR                  ]#PR                  .R?R[7      3N]N! . RtO4      ]N! R\R]R^]#PR                  ]#PR                  ]#PR                  .4      3N4      R_ 4       4       tOR` tP]P:                  P=                  R4R5R6.4      Ra 4       tQRb tRRc tSRd tTRetUVtVRT# u up i )u	TestMergec                    \        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'   rD   TestMerge.dfB   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$   valuerA   rC   s   &r'   r8   TestMerge.df2Q   sI    +a26..q1AA"E
 	
r)   c                |    \        R . ROR\        P                  P                  ^4      P	                  ^4      /4      # )keyv1r.   r/   cderP   r.   )r   r   r    r!   rB   rH   s   &r'   leftTestMerge.left[   s9    :bii++A.>>qA
 	
r)   c                    \        4       p\        R ^^./^ ^.RR7      p\        WRRR7      p\        R . /RR7      p\        P                  ! W44       R# )r.   int64)indexdtypeT
left_indexright_indexrV   Nr   r   tmassert_frame_equal)rC   df_emptydf_aresultexpecteds   &    r'   test_merge_inner_join_empty%TestMerge.test_merge_inner_join_emptyd   sO    ;#1vq!fGDx$DIc2Yg6
f/r)   c                f    \        W4      p\        WR R.R7      p\        P                  ! W44       R# )r=   r>   onNr   r\   r]   )rC   rD   r8   joinedexps   &&&  r'   test_merge_commonTestMerge.test_merge_commonl   s*    rB 01
f*r)   c                    \        ^ . RO^. RO^. RO^. RO/4      pVP                  \        4      pTp\        W4      p\        P
                  ! W44       R# )r   N)r1   r   r1   r   )r   r1   r   r   )r   r   r2   r   )r1   r   r   r3   )r   astypefloatr   r\   r]   rC   rQ   rightra   r`   s   &    r'   test_merge_non_string_columns'TestMerge.test_merge_non_string_columnsq   sO     aq,<P
 E"t#
h/r)   c                    VP                  R 4      pVP                  R 4      p\        W4R R7      p\        WR R7      P                  R 4      p\        P                  ! WV4       R# )r=   re   N)	set_indexr   r\   r]   )rC   rD   r8   rQ   rp   r`   ra   s   &&&    r'   test_merge_index_as_on_arg$TestMerge.test_merge_index_as_on_arg}   sQ     ||F#f%tv.V,66v>
f/r)   c           	     F   \        R . ROR\        P                  P                  ^4      P	                  ^4      /4      p\        R\        P                  P                  ^4      P	                  ^4      /. ROR7      p\        WR RRRR7      p\        W!R RRRR	7      p\        P                  ! W4P                  R
VP                  3,          4       \        WR RRRR7      p\        W!R RRRR	7      p\        P                  ! W4P                  R
VP                  3,          4       R# )rK   rL   v2rU   TrQ   F)left_onrY   howsortrp   )right_onrX   r{   r|   NNNNrM   rO   r/   rN   r.   )
r   r   r    r!   rB   r   r\   r]   loccolumns)rC   rQ   rp   merged1merged2s   &    r'   (test_merge_index_singlekey_right_vs_left2TestMerge.test_merge_index_singlekey_right_vs_left   s   :bii++A.>>qA
 299((+;;A>?&

 Df5
 %DgE
 	g{{1goo3E'FGDf4
 %DgD
 	g{{1goo3E'FGr)   c                   \        R . ROR\        P                  P                  ^4      P	                  ^4      /4      p\        R\        P                  P                  ^4      P	                  ^4      /. ROR7      p\        WR RRR7      pVP                  VR R7      P                  VP                  ,          p\        P                  ! W44       \        W!R RRR7      pVP                  VR R7      P                  VP                  ,          p\        P                  ! W4P                  R	VP                  3,          4       R
# )rK   rL   rx   ry   Tinnerrz   rY   r{   re   )r}   rX   r{   r~   NrM   r   )r   r   r    r!   rB   r   joinr   rU   r\   r]   r   rC   rQ   rp   r`   ra   s   &    r'    test_merge_index_singlekey_inner*TestMerge.test_merge_index_singlekey_inner   s    :bii++A.>>qA
 299((+;;A>?&
 tEtQ99Uu9-11&,,?
f/uUtQ99Uu9-11&,,?
fll1fnn3D&EFr)   c           	     |   \        R \        P                  P                  ^4      P	                  ^4      /. ROR7      pRp\
        P                  ! \        P                  P                  VR7      ;_uu_ 4        \        W4RR7       RRR4       Rp\
        P                  ! \        P                  P                  VR7      ;_uu_ 4        \        W4RR7       RRR4       R	p\
        P                  ! \        P                  P                  VR7      ;_uu_ 4        \        W3R
R
R7       RRR4       Rp\
        P                  ! \        VR7      ;_uu_ 4        \        WR.RR.R7       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lx; i  + '       g   i     R# ; i)rx   ry   z&Must pass right_on or right_index=TruematchT)rX   Nz$Must pass left_on or left_index=True)rY   zRCan only pass argument "on" OR "left_on" and "right_on", not a combination of bothrK   )rz   rf   z)len\(right_on\) must equal len\(left_on\)r=   r>   rz   r}   r   )r   r   r    r!   rB   pytestraisespderrorsr   r   
ValueError)rC   rD   r8   rQ   rp   msgs   &&&&  r'   test_merge_misspecified!TestMerge.test_merge_misspecified   s#   299((+;;A>?&
 7]]299//s;;$$/ <4]]299//s;;$40 <$ 	 ]]299//s;;$e6 < ;]]:S11"F8vv6FG 21 <; <; <; 211s0   8E1FFF*1F	F	F'	*F;	c           
         R p\         P                  ! \        VR7      ;_uu_ 4        \        VVRRRR.R7       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        VVRRR.RR7       RRR4       \         P                  ! \        VR7      ;_uu_ 4        \        VVRRR.RR.R7       RRR4       R#   + '       g   i     L; i  + '       g   i     Lf; i  + '       g   i     R# ; i)	z>right_index parameter must be of type bool, not <class 'list'>r   rQ   Fr=   r>   r{   rX   rY   Nz=left_index parameter must be of type bool, not <class 'list'>r   r   r   r   )rC   rD   r8   r   s   &&& r'   &test_index_and_on_parameters_confusion0TestMerge.test_index_and_on_parameters_confusion   s    N]]:S11 #V, 2 N]]:S11"F+! 2 ]]:S11"F+#V, 21# 21 21 211s#   C(C'C,C	C)	,C=	c                    \        WR R7      pVR ,          P                  4       ^,          P                  4       p\        V4      V8X  g   Q hRV9   g   Q hRV9   g   Q hR# )rK   re   v1_xv1_yN)r   value_countssumr   )rC   rQ   mergedexp_lens   &&  r'   test_merge_overlapTestMerge.test_merge_overlap   s\    te,;++-27796{g%%%r)   c           	     ~   \        R . ROR. RO/4      p\        R. ROR. RO/4      pVP                  VR RRRR	7      p\        RRRRRR\        P                  .R R
7      p\
        P                  ! VR ,          V4       \        R\        P                  RRRRR.RR
7      p\
        P                  ! VR,          V4       \        ^^^^^^\        P                  .RR
7      p\
        P                  ! VR,          V4       \        ^\        P                  ^^^^^.RR
7      p\
        P                  ! VR,          V4       R# )lkeyfoobarbazrG   rkeyquxouterT)rz   r}   r{   r|   namevalue_xvalue_yN)r   r   r   r   r1   r2   r3   r4   )r   r   r   r   )r5            )r   r   r   r   nanr\   assert_series_equal)rC   rQ   rp   r   ri   s   &    r'   %test_merge_different_column_key_names/TestMerge.test_merge_different_column_key_names   s   &">VW6#?,WX6Fd  
 eUE5%GfU
vf~s3eRVVUE5%GfU
vf~s3aAq!Q/i@
vi0#6aAq!Q/i@
vi0#6r)   c                &   \        R ^ R^/\        ^
4      R7      p\        RRRR/\        ^
4      R7      p\        WRRR7      p^VR &   VR ,          ^ 8H  P                  4       '       g   Q hR	VR&   VR,          R8H  P                  4       '       g   Q hR
# )r.   r/   ry   rN   r   rO   r   TrW   peekabooN)r   r   r   all)rC   rQ   rp   r   s   &   r'   test_merge_copyTestMerge.test_merge_copy  s    #q#q)r;3sE2%)DttFsS	Q##%%%% sc
e#((****r)   c                   \        R ^ R^/\        ^
4      R7      p\        RRRR/\        ^
4      R7      p\        W#RRR7      p\        P                  ! VR ,          P
                  VR ,          P
                  4      '       g   Q hV'       gD   \        P                  ! VR,          P
                  VR,          P
                  4      '       g   Q hR	# R	# )
r.   r/   ry   rN   r   rO   r   TrW   N)r   r   r   r   shares_memory_values)rC   using_infer_stringrQ   rp   r   s   &&   r'   test_merge_nocopyTestMerge.test_merge_nocopy  s    #q#q)r;3sE2%)DttFs 3 3T#Y5F5FGGGG!##F3K$7$7s9K9KLLLL "r)   c                   \        R . ROR\        \        ^4      4      /RR .R7      p\        R . ROR\        \        ^4      4      /4      p\        WR RR7      p\        R . R	OR\        P
                  ! ^ ^ ^^^^^\        P                  \        P                  .	4      R. R
O/. ROR7      p\        P                  ! W44       R# )rK   rG   r   rvaluer   rf   r{   Nr1   r1   r2   r2   r3   r1   r1   r2   r3   r4   r5   	r1   r1   r1   r1   r2   r2   r3   r4   r5   )	r   r1   r   r1   r2   r2   r3   r4   r5   )rG   rK   r   )	r   r   r   r   r   arrayr   r\   r]   )rC   rQ   rp   rh   ra   s   &    r'   "test_intelligently_handle_join_key,TestMerge.test_intelligently_handle_join_key  s     OWd58n=QVGW
 5"4hU1XOPtu':21aAq!Q"GH5
 /
 	f/r)   c                >   \        R ^.R^
./4      p\        R ^.R^./4      p\        WRR7      pVR ,          P                  R8X  g   Q h\        R R.R^./4      p\        R R.R^ ./4      p\        WRR7      pVR ,          P                  R8X  g   Q h\        R^./4      p\        R^./4      p\        P                  ! ^.4      p\        P                  ! ^.4      p\        WWERR	7      pVR
,          P                  \        P                  ! \
        4      8X  g   Q hR# )rK   rL   r   r{   rT   TFboolvalrz   r}   r{   key_0N)r   r   rV   r   r   int)rC   r7   r8   rD   r   r   s   &     r'   test_merge_join_key_dtype_cast(TestMerge.test_merge_join_key_dtype_cast.  s    TB401TB4013)%y')))qc23s343) %y&(((%%xx}xx}3TgF'{  BHHSM111r)   c                   \        R . ROR\        P                  ! ^4      /RR .RR7      p\        R\        P                  ! ^4      /RR7      p\        P                  ! . RORR7      p\	        WR VRR7      p\	        W!VR RR7      p\
        P                  ! VR ,          VR ,          4       VR ,          P                  4       P                  4       '       g   Q hVR ,          P                  4       P                  4       '       g   Q h\        R\        P                  ! ^4      /R.R7      p\        R\        P                  ! ^4      /4      p\        P                  ! . RO4      p\        P                  ! . RO4      p\	        WWgRR7      p\        . RO\        R	R
7      p\
        P                  ! VR	,          V4       \        R\        P                  ! ^4      /4      p\        R\        P                  ! ^4      /4      p\        P                  ! . RO\        P                  R7      p\	        WRVRR7      p\
        P                  ! VR	,          \        VR	R7      4       R# )rK   rG   rT   r   rV   r   rZ   r   r   r   r   rV   r   T)rX   r}   r{   r   Nr   r   r   )r   r1   r1   r2   r2   r3   )r   r   aranger   r   r\   r   notnar   r   r   rT   )	rC   rQ   rp   rK   r   r   r   r   ra   s	   &        r'   test_handle_join_key_pass_array)TestMerge.test_handle_join_key_pass_arrayE  s   OWbiil;e$

 8RYYq\2'Bhh)9tECWMS5gN
ve}gen=e}""$((****u~##%))++++'299Q<07)D8RYYq\23xx(xx*+tDWM5SwO
vg9'299Q<018RYYq\23hh):ttcwO
vgs0IJr)   c                *   \         P                  ! 4       p\        R R./V.R7      p\        RRR./W.R7      pRR RR R	R
 RR
 2p\        P                  ! \
        VR7      ;_uu_ 4        \        W#4       RRR4       R#   + '       g   i     R# ; i)xr.   ry   yr/   rN   z>No common columns to perform merge on. Merge options: left_on=Nz, right_on=z, left_index=Fz, right_index=r   )r   nowr   r   r   r   r   )rC   dtr7   r8   r   s   &    r'   &test_no_overlap_more_informative_error0TestMerge.test_no_overlap_more_informative_errore  s    \\^seRD1sCj)":&&*V;tf =ug7 	 ]]:S11#O 2111s   +BB	c           	        \        R ^^4      p\        R ^^4      p\        R ^^4      p\        R ^^4      p\        RR./V.R7      p\        RRR./W.R7      p\        WV4       \        R. R	O/W!V.R7      p\        R. R
O/W3W"W.R7      p\        WV4       \        RRR./W.R7      p\        RRR./W.R7      p\        WV4       R# )  r   r.   ry   r   r/   rN   rO   N)r.   r/   q)rN   rO   rP   fghr   r   _check_merge)rC   r   dt2dt3dt4r7   r8   s   &      r'   test_merge_non_unique_indexes'TestMerge.test_merge_non_unique_indexest  s    dAq!tQ"tQ"tQ"seRD1sCj)":S o.snE01#Cb9U
 	SsCj)":sCj)":Sr)   c                    \        R ^^4      p\        R ^^4      p\        R ^^4      p\        R. RO/W"W.R7      p\        R. RO/W"W1V.R7      p\        WE4       R# )r   r   ry   r   Nr.   r/   rN   rO   )rP   r   r   z hir   )rC   r   r   r   r7   r8   s   &     r'   (test_merge_non_unique_index_many_to_many2TestMerge.test_merge_non_unique_index_many_to_many  si    dAq!tQ"tQ"23Cb;MN,-c5L
 	Sr)   c                    \        R ^.R^./4      p\        R . /4      p\        WR RR7      p\        P                  ! W14       \        W!R RR7      p\        P                  ! W14       R# )rK   rG   rQ   r   rp   Nr[   )rC   rQ   rp   r`   s   &   r'   test_left_merge_empty_dataframe)TestMerge.test_left_merge_empty_dataframe  s_    %!gs345"+&tu&9
f+uu':
f+r)   c                    \        . VR ,          R7      pVP                  4       pVP                  WBR7      p\        P                  ! WS4       R# )Nr   Nry   r   N)r   copyr   r\   r]   )rC   rU   	join_typerQ   rp   r`   s   &&&   r'   test_merge_empty_dataframe$TestMerge.test_merge_empty_dataframe  s;    59-		50
f+r)   kwargrX   TrY   r}   r   rz   r.   c                    \        . ROR7      p\        . ROR7      p\        . RO\        R7      p\        W43RV/VB p\        P                  ! We4       R# )r.   r   r   r{   Nr.   r/   rN   r   r   zr.   r/   rN   r   r   r  )r   objectr   r\   r]   )rC   r   r  rQ   rp   exp_inr`   s   &&&    r'   !test_merge_left_empty_right_empty+TestMerge.test_merge_left_empty_right_empty  sG     1/2#APt;	;U;
f-r)   c                  aa \        . ROR7      o\        . RO. RO. RO.. ROR7      o\        R \        P                  ! \        P                  .^,          \        R7      R\        P                  ! \        P                  .^,          \        R7      R\        P                  ! \        P                  .^,          \        R7      R. ROR. ROR. RO/. ROR7      pVR,          pVV3R	 lpVV3R
 lpRRRR/RRRR/3 F  pV! W%4       V! W4       K  	  RR RR/pV! W%4       . ROVR &   V! W4       RR RR/pV! W%4       \        P                  ! \        P                  .^,          \        R7      VR &   V! W4       R# )r.   r/   rN   r   r   r   r  rZ   r   r   Nc                    < \        SS3R R/VB p\        P                  ! W 4       \        SS3R R/VB p\        P                  ! W 4       R# )r{   r   rQ   Nrg   ri   r  r`   rQ   rp   s   && r'   check1>TestMerge.test_merge_left_empty_right_notempty.<locals>.check1  sK    4=G=u=F!!&.4<F<e<F!!&.r)   c                    < \        SS3R R/VB p\        P                  ! W 4       \        SS3R R/VB p\        P                  ! W 4       R# )r{   rp   r   Nrg   r  s   && r'   check2>TestMerge.test_merge_left_empty_right_notempty.<locals>.check2  K    4=G=u=F!!&.4=G=u=F!!&.r)   rX   TrY   r}   rz   Nr  r1   r2   r3   r4   r5   r   r   r   	   r  r1   r4   r   r2   r5   r   r3   r   r  r  r   r1   r2   )r   r   r   r   r  )rC   exp_outr	  r  r  r  rQ   rp   s   &     @@r'   $test_merge_left_empty_right_notempty.TestMerge.test_merge_left_empty_right_notempty  sC   19i;_URXXrvvhl&9RXXrvvhl&9RXXrvvhl&9YYY 3

 	/	/ 454S1
E 6!7"
 C5v wCS1vxx1F;wr)   c                >  aaaaaa \        . RO. RO. RO.. ROR7      o\        . ROR7      o\        R. ROR. ROR. ROR\        P                  ! \        P                  .^,          \        R7      R\        P                  ! \        P                  .^,          \        R7      R\        P                  ! \        P                  .^,          \        R7      /. ROR7      oSR	,          oSP
                  P                  \        4      Sn        VV3R
 loVVVVVV3R loR# )r1   r.   r/   rN   r   r   r   r  rZ   r  c                    < \        SS3R R/VB p\        P                  ! W 4       \        SS3R R/VB p\        P                  ! W 4       R# )r{   r   rp   Nrg   r  s   && r'   r  >TestMerge.test_merge_left_notempty_right_empty.<locals>.check1  r  r)   c                    < \        SS3R R/VB p\        P                  ! W 4       \        SS3R R/VB p\        P                  ! W 4       RRRR/RRRR/RR	RR/RR	RR/3 F  pS! SV4       S! SV4       K  	  R
# )r{   rQ   r   rX   TrY   r}   r   rz   r.   Nrg   )	ri   r  r`   r  r  r	  r  rQ   rp   s	   && r'   r  >TestMerge.test_merge_left_notempty_right_empty.<locals>.check2  s    4<F<e<F!!&.4=G=u=F!!&. t]D9tZ5C5CS1	 vu%w&r)   Nr  r  r  r  r  r  r  r  r  )r   r   r   r   r  rU   rm   )rC   r  r  r	  r  rQ   rp   s   &@@@@@@r'   $test_merge_left_notempty_right_empty.TestMerge.test_merge_left_notempty_right_empty  s    )Y	:OT/2YYYRXXrvvhl&9RXXrvvhl&9RXXrvvhl&9 3

 ||**62	/	' 	'r)   series_of_dtyperT   rZ   Int64gGz?r   
2018-01-01
US/Easterntzseries_of_dtype2c                \   \        R VRV/R R.R7      pVR,          p\        R \        VP                  R ,          R7      R\        VP                  R,          R7      R\        VP                  R,          R7      /. R	OR7      pVP                  VR R7      p\        P
                  ! We4       R# )
rK   rG   r   r   rZ   r   r   re   NrK   r   r   )r   r   dtypesr   r\   r]   )rC   r(  r.  rD   r^   ra   actuals   &&&    r'   test_merge_empty_frame TestMerge.test_merge_empty_frame  s    4 OW.>?G$
 b6vBIIe$456		'(:;6		'(:;
 2
 u-
f/r)   series_of_dtype_all_narn   r  c                    \        R VRV/R R.R7      p\        R VRV/R R.R7      p\        R VRVRV/. ROR7      pVP                  VR R7      p\        P                  ! We4       R# )rK   rG   r   r   r   re   Nr0  r[   )rC   r(  r5  df_leftdf_rightra   r2  s   &&&    r'   test_merge_all_na_column"TestMerge.test_merge_all_na_column;  s    . OW.DEG$
 OW.DEG$
 11
 2
 xE2
f/r)   c                   R \         P                  P                  ^4      P                  ^ ^
^
R7      R\         P                  P                  ^4      P                  ^ ^
^
R7      R\	        R^^4      \	        R^^4      \	        R^^4      \	        R^^4      \	        R^^4      \	        R^^4      \	        R^^4      \	        R^^4      \	        R^^4      \	        R^^4      .
/p\
        P                  ! V4      pVP                  P                  4       p\         P                  ! V4      p\
        P                  ! RVR\         P                  P                  ^4      P                  ^4      /4      pVP                  VRR	R
7      p\        W$RR	R
7      p\        P                  ! WV4       VP                  P                  4       VP                  P                  4       8H  P                  4       '       g   Q hR# )var1sizevar2var3r   i  i  i  var8Frf   r|   N)r   r    r!   integersr   r   	from_dictr@  uniquer|   r   r\   r]   r   )rC   rO   rD   r@  newr`   ri   s   &      r'   test_merge_nosortTestMerge.test_merge_nosorte  s    BII))!,55a"5EBII))!,55a"5Eq"%q!$q!$q"%q!$q!$q!$q!$q!$q!$
    #ww~~wwt}!!T6299#8#8#;#B#B1#EF
 #&u5BU3
f* FKK$6$6$88==????r)   Fr{   rQ   rp   c                    \        R . RO/4      pVP                  VR W1R7      p\        VR .R7      p\        P                  ! WV4       R# )r.   )rf   r{   r|   r   N)r1   r   r1   r[   )rC   r|   valuesr{   rD   r`   ra   s   &&&&   r'    test_merge_same_order_left_right*TestMerge.test_merge_same_order_left_right  sC     Y'("#9VcU3
f/r)   c                   \        R ^ ^.R^ ^./4      p\        R ^ .R^ ./4      pVP                  VR RR7      p\        R ^ R^^/R^ ^ ^^/R^ ^ ^\        P                  /R^ R^\        P                  /R^ ^ ^^ //\	        . RO\
        R7      R	7      P                  R4      P                  4       . RO,          pVP                  P                  R
4      Vn        \        P                  ! W4RR7       R# )i1i2i3_)rf   rsuffix        i1_NrZ   r   r  Fcheck_dtype)rN  rO  rT  rP  NrN  rO  rT  rP  )r   r   r   r   r   r  rt   reset_indexr   rm   r\   r]   rC   r7   r8   r`   ra   s   &    r'   test_merge_nan_rightTestMerge.test_merge_nan_right  s    1vtaV45sD1#./#$41c1a.1aA,Aq!RVV,1c1bff-1aA, =VL	 Yt_[]46 	  ..x8
fEBr)   c                2   \        R ^ ^.RRR./4      p\        R ^ .RR./4      pVP                  VRR R7      p\        R ^ ^ ^^/R^ R	^\        P                  /R^ R^R/R^ R^\        P                  //4      . RO,          p\        P
                  ! W44       R
# )rN  rO  g      ?      ?rP  gffffff?rQ  )rR  rf   rT  rS  NrW  )r   r   r   r   r\   r]   rY  s   &    r'   test_merge_nan_right2TestMerge.test_merge_nan_right2  s    1vtc3Z89sD3%01#st4q!Ql3266*q#q#&q-q"&&9	
 $% 	f/r)   zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningc                   a  ! V3R  lR\         4      oS! V4      pVP                  VRR7      p\        VS4      '       g   Q hR# )c                   8   <a  ] tR tRt o ]V3R l4       tRtV tR# )0TestMerge.test_merge_type.<locals>.NotADataFramei  c                   < S# r    )rC   NotADataFrames   &r'   _constructor=TestMerge.test_merge_type.<locals>.NotADataFrame._constructor  s	    $$r)   rd  N)__name__
__module____qualname____firstlineno__propertyrf  __static_attributes____classdictcell__)__classdict__re  s   @r'   re  rb    s     % %r)   re  r=   re   N)r   r   
isinstance)rC   rD   r8   nadr`   re  s   &&&  @r'   test_merge_typeTestMerge.test_merge_type  s@    	%I 	%
 B36*&-0000r)   c                   \         P                  ! R \        R^^^^84      .R\        ^ R4      ./4      p\        \	        R4      R7      p\        W!.RR7      p\        W!.RR7      p\        R \        R^^^^84      \        R^^^^84      .R\        ^ R4      \        ^ R4      ./\        R7      p\        P                  ! W44       R	# )
rO   i  tiW  r   r   Tignore_indexrZ   N)	r   rD  r   r   r   r   r  r\   r]   )rC   rO   rD   r`   ra   s   &    r'   test_join_append_timedeltas%TestMerge.test_join_append_timedeltas  s     8D"aB/0#	!U8K7LM
 tDz*RG$/d3htRAr2HT2q!R4PQi5)9Q+>? 
 	f/r)   c                x   \         P                  ! R 4      p\        \        W.RR.R7      4      p\        \        V.R.R7      4      pVP	                  VRRR7      p\        R\        W.\        R4      R7      R	\        V\        P                  .\        R4      R7      /4      p\        P                  ! WE4       R
# )i ABry   rrQ   )rR  r{   0AB0rN)
r   timedelta64r   r   r   r   r   NaTr\   r]   )rC   tdlhsrhsr`   ra   s   &     r'   test_join_append_timedeltas2&TestMerge.test_join_append_timedeltas2  s     ^^I&xSz:;tC512#s7VRHDJ7fb"&&\d<
 	f/r)   unitDc                B   \        R ^e^f./4      p\        RR.^e^f.RR7      pRV R2pVR9   d   RpMTpVP                  V4      P                  R4      pVR,          P                  V8X  g   Q hVP                  VR RR7      p\        P                  ! R	R	.VR
7      p\        P                  P                  P                  P                  WP                  R
7      p\        R ^e^f.RV/R R.R7      p	V	R,          P                  V8X  g   Q h\        P                  ! Wy4       R# )	entity_idNdaysrU   r   zdatetime64[]zdatetime64[s]Trz   rY   natrZ   r   r  r   m)r   r   rm   to_framerV   r   r   r   r   corearraysDatetimeArray_simple_newr\   r]   )
rC   r  r7   serrV   	exp_dtyper8   r`   r  ri   s
   &&        r'   test_other_datetime_unit"TestMerge.test_other_datetime_unit  s    sCj12dD\#s&AdV1%?"'IIjj#,,V46{  I---3Fxxi8ww~~++77JJ7Oc3Z !&)
 6{  I---
f*r)   c           
     l   \        R ^e^f./4      p\        RR.^e^f.RR7      pRV R2pVR9   db   Rp\        P                  ! \        VR7      ;_uu_ 4        VP                  V4       RRR4       VP                  R4      P                  R4      pM:VP                  V4      P                  R4      pVR,          P                  V8X  g   Q hVP                  VR R	R
7      p\        R ^e^f.R\        P                  ! RR.VR7      /R R.R7      p\        P                  ! Wx4       R#   + '       g   i     L; i)r  Nr  r  zm8[r  z/Supported resolutions are 's', 'ms', 'us', 'ns'r   zm8[s]Tr  r  rZ   r   r  )r   r   r   r   r   rm   r  rV   r   r   r   r\   r]   )	rC   r  r7   r  rV   r   r8   r`   ri   s	   &&       r'   test_other_timedelta_unit#TestMerge.test_other_timedelta_unit  s    sCj12dD\#s&AdV1?"CCz55

5! 6 **W%..v6C**U#,,V4Cv;$$---3F3*fbhhu~U.ST &)
 	f* 65s   D##D3	c                   \        R . ROR. R	OR. R
O/4      p\        R . ROR. R	OR. R
O/4      p. ROVn        . ROVn        \        R . ROR. R	OR. R
OR. R	OR. R
O/4      p. ROVn        \        P                  ! \	        W4      V4       . ROVn        Rp\
        P                  ! \        VR7      ;_uu_ 4        \	        W4       RRR4       R#   + '       g   i     R# ; i)rK   rL   rx   v3v4z?Data columns not unique: Index\(\['foo'\], dtype='object|str'\)r   Nr  r  r  )rK   r   r   )rK   r   r   )rK   r   r   r   r   )r=   r   r   )r   r   r\   r]   r   r   r   r   )rC   rD   r8   ra   r   s   &    r'   &test_overlapping_columns_error_message0TestMerge.test_overlapping_columns_error_message  s    y$	4KL	4D)LM*
+yiiii
 ?
eBnh7 -P]]:S11"N 2111s   8CC	c                   \        R \        P                  ! R^RR7      R^^./4      p\        R \        P                  ! R^RR7      R. RO/4      p\        R \        P                  ! R^RR7      R^^\        P                  \        P                  .R\        P                  ^^^./4      p\        WR RR	7      p\        P                  ! WC4       R
# )rK   20151010r+  periodsr-  rG   20151011r   r   r   r   Nr  )r   r   
date_ranger   r   r   r\   r]   ro   s   &    r'   test_merge_on_datetime64tz$TestMerge.test_merge_on_datetime64tz5  s    r}}Z|L!Q
 r}}Z|L
 r}}Z|LAq"&&"&&1BFFAq!,
 tu':
f/r)   c                J   \        R ^^.R\        P                  ! R^RRR7      /4      p\        R ^^.R\        P                  ! R^RRR7      /4      p\        R . ROR. \        \        P                  ! R^RRR7      4      O\        P                  NR\        P                  .\        \        P                  ! R^RRR7      4      O/4      p\        WR R	R
7      p\        P                  ! WC4       VR,          P                  R8X  g   Q hVR,          P                  R8X  g   Q hR# )rK   rG   r  r+  ns)r  r-  r  r  r   r   r   r   zdatetime64[ns, US/Eastern]Nr  )	r   r   r  r   r  r   r\   r]   rV   ro   s   &    r'   test_merge_datetime64tz_values(TestMerge.test_merge_datetime64tz_valuesN  s1   1vl
 1vl
 y j!SWX FF	 FFj!SWX
" tu':
f/i &&*FFFFi &&*FFFFr)   c                   \         P                  ! R R7      p\        R\        R.VR7      RR.R\        R.VR7      /. ROR	7      pVR
,          pVP	                  VRR7      p\        R\        VR7      R\        \        R7      R\        VR7      R\        \        R7      R\        VR7      /. ROR	7      p\        P                  ! WE4       R# )UTCr,  r   2018rZ   rG   g      @date22019r   r   re   r   date2_xr   date2_yN)r   rG   r  )r   r   r  r   r  )	r   DatetimeTZDtyper   r   r   r   rn   r\   r]   )rC   dtzrp   rQ   r`   ra   s   &     r'    test_merge_on_datetime64tz_empty*TestMerge.test_merge_on_datetime64tz_emptyu  s      E*vhc:#xs;
 /
 RyEf-S)6.6,6.6, I	
 	f/r)   c           
     P   \        \        P                  ! R ^RRR7      R.R7      p^VR&   \        R\        P                  ! . RO4      R^/4      pVR,          P                  P                  R4      P                  P                  R4      VR&   \        WRRR	7      p\        R\        P                  ! R ^RRR7      R
^.^,          \        P                  .^,          ,           R\        P                  .^,          ^.^,          ,           /4      p\        P                  ! W44       R# )z2017-10-29 01:00r   zEurope/Madrid)r  freqr-  r   r   rG   r  r   r{   rf   r   r   N)z2017-10-29 03:00:00z2017-10-29 04:00:00z2017-10-29 05:00:00)r   r   r  to_datetimer   tz_localize
tz_convertr   r   r   r\   r]   rY  s   &    r'   +test_merge_datetime64tz_with_dst_transition5TestMerge.test_merge_datetime64tz_with_dst_transition  s   MM,acoVH
 G 	
 &knn007::EEoVFsW8& A37bffX\1BFF8a<1#'1
 	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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r  r  pnumrU   r   Tr   rX   rY   r{   rZ   pnum_xpnum_yr   rU   N)r   period_ranger   r   r   r   r   r   r   r   r   rT   repeatreshape
sort_indexrU   r\   r]   )rC   rU   rD   r8   r`   ra   s   &     r'   "test_merge_non_unique_period_index,TestMerge.test_merge_non_unique_period_index  s    bsCtE#e*-.efXNbX#$DgNGGBIIb188;CCBJANx(.."((

 	f/r)   c                   \        R \        P                  ! R^RR7      R^^./4      p\        R \        P                  ! R^RR7      R. RO/4      p\        R \        P                  ! R^RR7      R^^\        P                  \        P                  .R\        P                  ^^^./4      p\        WR RR	7      p\        P                  ! WC4       R
# )rK   r  r  r  rG   r  r   r   r   r   Nr  )r   r   r  r   r   r   r\   r]   ro   s   &    r'   test_merge_on_periodsTestMerge.test_merge_on_periods  s    BOOJDgPQSTvV
 rz13G
 rz13GAq"&&"&&1BFFAq!,
 tu':
f/r)   c                J   \        R ^^.R\        P                  ! R^RR7      /4      p\        R ^^.R\        P                  ! R^RR7      /4      p\        P                  ! R^RR7      p\        P                  ! R^RR7      p\        R . ROR. \        V4      O\        P                  NR\        P                  .\        V4      O/4      p\        WR RR	7      p\        P                  ! We4       VR,          P                  R
8X  g   Q hVR,          P                  R
8X  g   Q hR# )rK   rG   r  r  r  r  r   r   r   r   z	Period[D]Nr  )	r   r   r  r   r  r   r\   r]   rV   )rC   rQ   rp   exp_xexp_yra   r`   s   &      r'   test_merge_period_values"TestMerge.test_merge_period_values  s   QFGR__ZQT%UV
 QFGR__ZQT%UV
 
AC@
AC@y1T%[1"&&1BFF1T%[1
 tu':
f/i &&+555i &&+555r)   c                   Vw  r#VP                  4       pVP                  4       p\        R . ROR^^\        P                  \        P                  \        P                  \        P                  .RRR\        P                  \        P                  \        P                  \        P                  .R\        P                  ^^^^^.R\        P                  ^^^^^./4      p\	        . RO. ROR7      VR&   V. RO,          p\        W#R R	R
R7      p\        P                  ! Wv4       VP                  VR R	R
R7      p\        P                  ! Wv4       \        P                  ! W$4       \        P                  ! W54       TpVP                  RR/R7      p\        W#R R	RR7      p	\        P                  ! W4       VP                  VR R	RR7      p	\        P                  ! W4       R# )r+   col_conflict_xr-   r.   r/   col_conflict_yr0   
categories_merger   Trf   r{   	indicatorcustom_namer   Nr   r1   r2   r3   r4   r5   )	left_onlyboth
right_onlyr  r  r  r  r  r  )r+   r  r-   r  r0   r  )	r   r   r   r   r
   r   r\   r]   rename)
rC   r9   r7   r8   df1_copydf2_copy	df_resulttestdf_result_custom_nametest_custom_names
   &&        r'   test_indicatorTestMerge.test_indicator  s   $88:88:* 1a"HS#rvvrvvrvvrvvF 2661aAq"9bffaAq!4
	 * ;

	( 	
	 S&gF
d.yyWyE
d. 	c,
c, !* 5 < <}- != !
 !W
 	.F99F= % 
 	.Fr)   c           
     \   Vw  r#R p\         P                  ! \        VR7      ;_uu_ 4        \        W#RR^R7       RRR4       \         P                  ! \        VR7      ;_uu_ 4        VP                  VRR^R7       RRR4       R#   + '       g   i     LT; i  + '       g   i     R# ; i)z<indicator option can only accept boolean or string argumentsr   r+   r   r  Nr   )rC   r9   r7   r8   r   s   &&   r'   #test_merge_indicator_arg_validation-TestMerge.test_merge_indicator_arg_validation%  sr    $L]]:S11#v7a@ 2]]:S11IIcf'QI? 21 21111s   B'BB	B+	c                   Vw  r#\        W#R RRR7      pVP                  R8g  P                  4       '       g   Q hVP                  VR RRR7      pVP                  R8g  P                  4       '       g   Q h\        W#R RRR7      pVP                  R8g  P                  4       '       g   Q hVP                  VR RRR7      pVP                  R8g  P                  4       '       g   Q h\        W#R RRR7      pVP                  R8H  P                  4       '       g   Q hVP                  VR RRR7      pVP                  R8H  P                  4       '       g   Q hR	# )
r+   rQ   Tr  r  rp   r  r   r  N)r   r  r   )rC   r9   r7   r8   test2test3test4s   &&     r'   %test_merge_indicator_result_integrity/TestMerge.test_merge_indicator_result_integrity/  s/   $c6vF,113333		#&f	E,113333c6w$G+002222		#&g	F+002222c6w$G&++----		#&g	F&++----r)   c                   Vw  r#R F  p\        R^^.V^^./4      pRV R2p\        P                  ! \        VR7      ;_uu_ 4        \	        W%RRRR7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        VP	                  VRRRR7       RRR4       K  	  \        R^^.R	^^./4      pR
p\        P                  ! \        VR7      ;_uu_ 4        \	        VVRRR	R7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        VP	                  VRRR	R7       RRR4       R#   + '       g   i     L; i  + '       g   i     EKY  ; i  + '       g   i     L|; i  + '       g   i     R# ; i)_right_indicatorr+   zECannot use `indicator=True` option when data contains a column named z;|Cannot use name of an existing column for indicator columnr   r   Tr  Ncustom_column_namez:Cannot use name of an existing column for indicator column)r  _left_indicatorr  r   r   r   r   r   )rC   r9   r7   rQ  r   df_badcolumnr   s   &&     r'   test_merge_indicator_invalid&TestMerge.test_merge_indicator_invalidB  sK   "BA$fq!fa!Q%@AL  !s #MM 
 z55cF4P 6z55		,6w$	O 65 C !&1a&2FA!OPJ]]:S11. 2 ]]:S11IIW@T   21# 65555 21 211s0   D;EE#E6;EE #E3	6F	c                H   \        R ^ ^.RRR./4      p\        R . R
OR. RO/4      p\        R . ROR. RO/4      p\        . RO. ROR7      VR&   \        WR R.RRR7      p\        P                  ! WC4       VP                  VR R.RRR7      p\        P                  ! WC4       R	# )r+   col2r.   r/   r  r  r   Tr  N)r1   r1   r3   )r/   r   r   )r   r1   r1   r3   r.   r/   r   r   )r  r  r  r  r  r   r
   r   r\   r]   )rC   df3df4hand_coded_resulttest5s   &    r'   %test_merge_indicator_multiple_columns/TestMerge.test_merge_indicator_multiple_columnsd  s    !Q#s<=FODE%\6+?@
 '2=:'
(#
 cFF#3DQ
e7		#66"24	P
e7r)   c                
   \        R . ROR. R O/\        ^4      R7      p\        R . R!OR. R"O/\        ^4      R7      pVP                  4       pVP                  4       p\        WRRRR7      p\        P
                  ! W4       \        P
                  ! W$4       \        R	. ROR. R OR
. ROR. R#O/\        ^4      . R$OR7      p\        WRRRR7      p\        P
                  ! WV4       \        R . ROR. R OR. R#O/\        ^4      R7      p\        WR RR7      p\        P
                  ! W4       \        P
                  ! W$4       \        P
                  ! WW4       \        WR RR7      p\        P
                  ! WW4       \        R. R OR . ROR. R#O/. R%O\        ^4      R7      pVP                  R 4      p	\        V	VRR RR7      p\        P
                  ! WX4       \        V\        R R.RR./^.R7      .4      p
\        VV
RRRR7       Rp\        P                  ! \        VR7      ;_uu_ 4        \        VV
RRRR7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        \        WR RR7       RRR4       \        V\        R R .RR./^.R7      .RR7      p\        VVRRRR7       Rp\        P                  ! \        VR7      ;_uu_ 4        \        VVRRRR7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        \        WR RR7       RRR4       \        WR RR7       Rp\        P                  ! \        VR7      ;_uu_ 4        \        VV
RRRR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        WR RR7       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        \        WR RR7       RRR4       \        R . R&OR. R'OR. R O/\        ^4      R7      p\        R . R(OR. R)OR. R*O/\        ^4      R7      p\        R . R(OR. R)OR. R+OR. R*O/\        ^4      R7      pRp\        P                  ! \        VR7      ;_uu_ 4        \        WR RR7       RRR4       \        WR R.RR7      p\        P
                  ! W]4       R#   + '       g   i     EL; i  + '       g   i     ELf; i  + '       g   i     EL
; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELX; i  + '       g   i     L; i),r.   r/   rN   rO   ry   rP   T1:1)rX   rY   validatea_xa_yr  
one_to_one)rf   r  r  )rX   r}   r  mooone_to_manyzBMerge keys are not unique in right dataset; not a one-to-one merger   Ncow)r|   many_to_onezAMerge keys are not unique in left dataset; not a one-to-one mergemany_to_manyzCMerge keys are not unique in right dataset; not a many-to-one mergezBMerge keys are not unique in left dataset; not a one-to-many mergez"jibberish" 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"	jibberishzQMerge keys are not unique in either left or right dataset; not a one-to-one merger   )catdogweaselhorser.   r/   rN   rO   rP   )meowbarkum... weasel noise?naychirp)r  r  r   r!  )r  r/   r  rN   r/   r.   rN   )r.   r.   r/   r/   )r   r1   r   r1   r.   r.   r/   )r   r1   r   )r  r  r   )r  r  r  )r   r   r   r   r\   r]   rt   r   r   r   r   r   )rC   rQ   rp   	left_copy
right_copyr`   ra   
expected_2
expected_3left_index_resetright_w_dupsr   left_w_dupsexpected_multis   &             r'   test_validationTestMerge.test_validationw  s   &-NO(

 .L (
 IIK	ZZ\
ttPUV
d.
e0 +6+C	 (,	
 Dd\
 	f/)6C
 (

 tsU;
d.
e0
f1ts\B
f1 6)C
 $(

  >>#.!
 	f1 uiseS5'0JSTRU&VWX"	
 S]]:S11 % 2 ]]:S11$|D 2 9cC5#w7sCD4
 	"	
 R]]:S11 % 2 ]]:S11+|D 2 	kC.IS]]:S11 & 2 S]]:S11+mL 2
	 	 ]]:S11$#< 2 )\6
 (
 _Y<
 (
 #_Y-<	 (
% 	 ]]:S11$#6 2 tSzEB
f5W 211 211  211 211 211 211  211H 21s`   -S*SS*S> TT&T:US	S'	*S;	>T	T#	&T7	:U	U	c                   \        R . RO/4      p\        R . RO/4      p\        P                  ! \        RR7      ;_uu_ 4        \	        WRR7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \	        WRR7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \	        WRR7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \	        WR	R7       RRR4       \        R . RO/4      p\        P                  ! \        RR7      ;_uu_ 4        \	        WRR7       RRR4       \        P                  ! \        R
R7      ;_uu_ 4        \	        W!RR7       RRR4       R#   + '       g   i     ELD; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)rK   z#Duplicates in left:
  key
   1 ...
r   r  )r  Nz"Duplicates in left:
  key
   1 ...z1:mz#Duplicates in right:
  key
   2 ...zm:1z#Duplicates in right:
  key
   1 ...)r1   r1   r2   )r1   r2   r2   r  r   r   r   r   r   )rC   rQ   rp   s   &  r'   !test_merge_validate_error_message+TestMerge.test_merge_validate_error_message<  s9   %+,5),-]]:-UVV$. W]]:-STT$. U]]:-TUU$. V]]:-TUU$. V 5),-]]:-STT$. U]]:-TUU%. VU WVVTTTUUUU UTUUUsH   F=F 7F41G:G4G-F	 F1	4G	G	G*	-G>	c                    \        R . R. R. /4      p\        P                  ! RR7      ;_uu_ 4        \        WRR7       RRR4       R#   + '       g   i     R# ; i)r.   r/   rN   raise)dividere   Nr.   r/   )r   r   errstater   )rC   r.   s   & r'   )test_merge_two_empty_df_no_division_error3TestMerge.test_merge_two_empty_df_no_division_errorP  sA    sBRb12[[((!:& )(((s   A		A	r   zindex,expected_indexN
2001-01-01
2002-02-02
2003-03-03zM8[ns]
2001-01-02
2001-01-03)r  1D2D3Dc           
        VP                   R 8X  d#   VP                   R8X  d   VP                  R 4      p\        R. ROR. RO/VR7      p\        R. RO/4      pVP                  VRRVR7      p\        . RO. RO. RO\        P
                  ^^.\        P
                  ^^.\        P
                  ^^... ROR7      pVP                  VRR	7       \        P                  ! Wg4       R
# )float32float64r.   rK   ry   r/   Tr   r   )inplaceNr  r  )r   r   r   r1   r1   r1   r2   r2   r2   r.   rK   r/   )	rV   rm   r   r   r   r   rt   r\   r]   )rC   r{   rU   expected_indexr7   r8   r`   ra   s   &&&&    r'   $test_merge_on_index_with_more_values.TestMerge.test_merge_on_index_with_more_valuesV  s    ^ ;;)#(<(<	(I+229=Ni	:%H01234SIAAA &

 	>48
f/r)   c           	         \        R . ROR. R	O/4      p\        R. RO/4      p\        R . R
OR. ROR. RO/. RO^ ^^\        P                  .R7      pVP                  VRRRR7      p\        P
                  ! WC4       R# )r.   rK   r/   Nr  Trp   r   r  )r   r1   r1   r1   r2   r3   N)r   r1   r1   r2   )r1   r2   r2   r3   rH  r   r   r   r   r\   r]   ro   s   &    r'   test_merge_right_index_right&TestMerge.test_merge_right_index_right  sy     #y%;<3	*+/5,\J%aBFF#

 E5dP
f/r)   c                   \        R RR.R^(^./4      p\        R RR.R^P^./4      pVP                  VR R.VR7      pVR8X  d   \        R RR.R^P^./4      pM\        R RR.R^(^./4      p\        P                  ! WE4       R# )animalr  pig	max_speedquetzalr   rp   Nr[   )rC   r{   left_dfright_dfr`   ra   s   &&    r'   test_merge_preserves_row_order(TestMerge.test_merge_preserves_row_order  s     Xu~{RHMNhE(:K"bRSxX{,CM'> (Y,>bRTX!VWH (UENK"b!RSH
f/r)   c                r   \        R . ROR\        . RO\        R4      R7      /4      p\        R. RO/\        . RO4      R7      pVP	                  VRRRR7      p\        R . ROR\        . RO4      R. RO/^ ^^\
        P                  .R7      pVP                  . ROR
7      p\        P                  ! W44       R	# )r.   rK   r/   abcr  ry   Trp   r   Nr   r  r$  r  rM  )r.   r.   r/   rN   )r1   r1   r2   r3   rH  )
r   r
   r   r   r   r   r   reindexr\   r]   r   s   &    r'   8test_merge_take_missing_values_from_index_of_other_dtypeBTestMerge.test_merge_take_missing_values_from_index_of_other_dtype  s    Y{?tE{K
 3	*2B?2STE5dP_{#78\
 aBFF#
 ##,=#>
f/r)   c                |   \        \        P                  ! ^4      P                  R4      ^,           . ROR7      p\        \        P                  ! ^4      P                  R4      ^,           . ROR7      pVP                  P
                   F  pRVP                  P                  n        K   	  VP                  V4       R# )   r   FNr4   r5   r  r5   r4   r  )
r   r   r   r  _mgrblocksrJ  flags	writeabler   )rC   r?   r@   blocks   &   r'   test_merge_readonlyTestMerge.test_merge_readonly  s    IIbM!!&)A-7P
 IIbM!!&)A-7K

 ZZ&&E+0ELL( ' 	Er)   c                   \        \        P                  ! ^4      P                  R4      ^,           . ROR7      p\        \        P                  ! ^4      P                  R	4      ^,           . R
OR7      pRp\        P
                  ! \        \        P                  ! V4      R7      ;_uu_ 4        VP                  VRR7       RRR4       R#   + '       g   i     R# ; i)r`  r   z_'full' is not a valid Merge type: left, right, inner, outer, left_anti, right_anti, cross, asofr   fullr   Nra  r  rb  r  )
r   r   r   r  r   r   r   reescaper   )rC   r?   r@   r   s   &   r'   test_merge_how_validation#TestMerge.test_merge_how_validation  s    IIbM!!&)A-7P
 IIbM!!&)A-7K
1 	 ]]:RYYs^<<KK6K* =<<<s   -CC	rd  )r|   rJ  )r1   r1   r   r1   r1   )r   r1   r1   r1   r1   )r  r   r  smsusr  r1   r2   r4   )r1   r2   r4   NNN)r:  r;  r<  r  )r1   r2   r3   NNNr1   r2   r2   r3   r3   r4   )rt  ru  rv  )r:  r=  r>  )r?  r@  rA  )Wrh  ri  rj  rk  r   fixturerD   r8   rQ   rb   rj   rq   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   markparametrizer
  r  r&  r   r   	Timestampr3  NAr   r   r  r9  rG  rK  rZ  r^  filterwarningsrr  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-  r1  r8  r   r   r\   ALL_REAL_NUMPY_DTYPESr   rD  r   from_tuplesr   r   rJ  rO  rX  r]  rh  rn  rm  rn  )dtypro  s   0@r'   r;   r;   A   s5    ^^  ^^
 
 ^^
 
0+

00H8G*H.8 7(
+M0&2.K@*,, [[454S1]D1Z-		
..-^('T [[A3g&A3g&D6NE7OD6NBLL./0BLL,?@A	
 [[A3g&A3g&D6NE7OD6NBLL./0BLL,?@A	
000$ [[A3g&A3g&D6NE7OD6NBLL./0BLL,?@A	
 [[ BEE7'*BFF87+BFF88,BFF8		
0*0*@@ [[e_5o7NO [[UVW$560 70C*0 [[W	1	10&0  [[V%KL+ M+: [[V%KL+ M+2002%GN020@00*6,=G~@.& D8&C6J/(' [[UWg$67[[ !+ !<=
 >h !<rvvrvvrvvV"	&	
& 44
 5D )405RZZH 5&	
, ))*BC))VVRVVRVVRVVD+&	
8 FSQ!<rvvrvvrvvV7&	
F 12dD"&&"&&"&&IJE&	
)T0U) 8V000 [[UVW$56	0 7	00*+ +cs   %5Ur;   c           	          R Fr  pR Fi  pV P                  WVR7      p\        V P                  4       VP                  4       W#R7      pVP                  R4      p\        P
                  ! WERR7       Kk  	  Kt  	  R# )r   F)r{   r|   rU   )check_namesN)r   rQ   r   )TF)r   r   rX  rt   r\   r]   )r   r   r{   r|   r`   ra   s   &&    r'   r   r     sd    )!DVVATV2FQ]]_ammo3RH))'2H !!&F " *r)   c                     a  ] tR tRt o ]P
                  P                  R]R.4      R 4       t]P
                  P                  R]	P                  ]	P                  ]	P                  ]	P                  .4      R 4       t]P
                  P                  R. R7O. R8OR. R7OR. R8O/3. R7ORR
.R^^.RRR
./3^^.. R8OR^^.RRR	./3.4      R 4       tR tR tR tR t]P
                  P                  R. R9O]! . R:O4      P+                  R4      3. R;O]! . R:O4      P+                  R4      3^ ^.]! RR.]R7      3^ ^.]! RR.]R7      3.4      R 4       t]P
                  P                  R]! ^^.RR7      . R<O3]! ^^.RR7      . R<O3. R9O. R=O3. R;O. R=O3]P2                  ! R^RR7      RR .3]P2                  ! R^RR7      ^ ^.3]P2                  ! R^RR7      RR.3]P2                  ! R!^R"7      ]P2                  ! R!^R#R$7      3.4      R% 4       t]P
                  P                  R&^^.R'3. R(3^.R)3^.R*3.4      R+ 4       t]P
                  P                  R&RR.R'3. R(3R.R)3R.R*3.4      R, 4       t]P
                  P                  R-R(. R>O. R?O.3R'. R?O. R>O.3R*. R>O. R?O.3R). R?O. R>O.3.4      R. 4       tR/ t]P
                  P                  R0. R@O4      R1 4       tR2 t R3 t!R4 t"R5t#V t$R6# )ATestMergeDtypesi  rV   categoryc                   \        R RR.R\        RR.4      P                  R4      R^^.RRR.R	\        ^^.R
R7      R\        ^^.RR7      /4      p\        RR.VR7      p\        R V/4      p\        W$R R7      p\	        VP
                  P                  4      '       g*   \        VP
                  P                  4      '       g   Q hR# R# )r{  r   r   r|  r  Cr        ?       @Euint64rZ   Fint32re   N)r   r   rm   r   r   r{  rV   r   )rC   rV   rQ   
right_valsrp   r`   s   &&    r'   test_differentTestMergeDtypes.test_different  s    eU^VUEN+22:>aVc3ZVQF(3VQF'2	
 UEN%8
3
+,
 ts+vxx~~../&((..2Q2QQQ2Q.r)   d2c                    \         P                  ! V4      p\         P                  ! V4      p\        R \         P                  ! . RO^,          VR7      RRR.^,          R\         P                  ! \         P                  ! ^4      \         P
                  R7      /4      p\        P                  ! RR.4      p\        R\         P                  ! ^^.VR7      /VR7      pVP                  VR R.R7      pVP                  4       p	VP                  R	8X  d   \         P                  ! R
4      p\         P                  ! \         P                  VR7      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                   ! W4       VP                  VR R.RR7      pV	P#                  R R.RRR7       \        P                   ! W4       R# )k1rZ   k2r   r   vrx   ry   re   r   rD  TrB  	mergesort)kindrE  Nr  )r2   r   )r1   r   )r   rV   r   r   r   rT   r   r~  r   r   r  r   r   r  r  r\   r]   sort_values)
rC   any_int_numpy_dtyper  dtype1dtype2rQ   rU   rp   r`   ra   s
   &&&       r'   test_join_multi_dtypes&TestMergeDtypes.test_join_multi_dtypes
  s   -."bhhy1}F;uenr)RXXbiim288<
 &&
J'?@41a&!?@N5dD\299;;;#XXi(F"&&7JKhkkQ&8;;%+?@$FGJKhkkQ&8;;%+?@$FG
f/5dD\=dD\TJ
f/r)   zint_vals, float_vals, exp_valsr  r        @XYc                
   \        R V/4      p\        RV/4      p\        V4      pVP                  VR RR7      p\        P                  ! Wv4       VP                  VRR R7      p\        P                  ! WvRR .,          4       R# )r  r  r   Nr[   )rC   int_vals
float_valsexp_valsr{  r|  ra   r`   s   &&&&    r'   test_merge_on_ints_floats)TestMergeDtypes.test_merge_on_ints_floats*  sx     sHo&sJ'(X&C#6
f/C#6
fSz&:;r)   c           	        \        R RR.R^
^./R R.R7      p\        R ^.R^./R R.R7      pVP                  VR RR7      p\        R RR.R^
^.R\        P                  R./. R
OR7      p\        P
                  ! W44       R	# )rK   r  r  rL   r   rx   rQ   r   g      i@N)rK   rL   rx   )r   r   r   r   r\   r]   rY  s   &    r'   test_merge_key_dtype_cast)TestMergeDtypes.test_merge_key_dtype_cast@  s    c
D2r(;eT]STC51E4=I35f5S#Jr2hrvvuoF'
 	f/r)   c                V   \        R . RO/4      p\        R. RO/4      p\        R ^.RR./4      pRp\        P                  ! \        VR7      ;_uu_ 4        VP	                  VR RR7      p\        P
                  ! WS4       RRR4       \        P                  ! \        VR7      ;_uu_ 4        VP	                  VRR R7      p\        P
                  ! WSRR .,          4       RRR4       \        R\        P                  \        P                  R./4      p\        P                  ! R4      ;_uu_ 4        VP	                  VRR R7      p\        P
                  ! WSRR .,          4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)	r  r  r  z:the float values are not equal to their int representationr   r   Nr  )皙?g      @r  )r   r\   assert_produces_warningUserWarningr   r]   r   r   )rC   r{  r|  ra   r   r`   s   &     r'   !test_merge_on_ints_floats_warning1TestMergeDtypes.test_merge_on_ints_floats_warningK  sC   
 sI&'sO,-cA3cU34J''3??WWQcW:F!!&3 @ ''3??WWQcW:F!!&C:*>? @
 sRVVRVVS123''--WWQcW:F!!&C:*>? .- @? @? .--s$   +E1-4F34F1F	F	F(	c                   \        R \        RR.\        R7      /4      p\        R RR./4      p\        R RR./\        R7      p\        WR R7      p\        P
                  ! WC4       \        W!R R7      p\        P
                  ! WC4       R# rK   TFrZ   re   N)r   r   r  r   r\   r]   rC   r7   r8   ra   r`   s   &    r'   (test_merge_incompat_infer_boolean_object8TestMergeDtypes.test_merge_incompat_infer_boolean_objectd  sx    e}F CDEu./edE]36BsE*
f/sE*
f/r)   c                4   \        R \        RR\        P                  .\        R7      /4      p\        R RR./4      p\        R RR./\        R7      p\        WR R7      p\        P                  ! WC4       \        W!R R7      p\        P                  ! WC4       R# r  )r   r   r   r   r  r   r\   r]   r  s   &    r'   5test_merge_incompat_infer_boolean_object_with_missingETestMergeDtypes.test_merge_incompat_infer_boolean_object_with_missingo  s     eRVV'<F KLMu./edE]36BsE*
f/sE*
f/r)   zdf1_vals, df2_valsr.   r/   rS  FTrZ   c                \   \        R V/4      p\        R V/4      p\        W4R .R7      p\        VP                  P                  4      '       g   Q h\        WCR .R7      p\        VP                  P                  4      '       g*   \        VP                  P                  4      '       g   Q hR# R# )r{  re   N)r   r   r   r{  rV   r   )rC   df1_valsdf2_valsr7   r8   r`   s   &&&   r'   !test_merge_incompat_dtypes_are_ok1TestMergeDtypes.test_merge_incompat_dtypes_are_ok{  s      h(h(sSE*vxx~~....sSE*vxx~~../&((..2Q2QQQ2Q.r)   r  r  z1/1/2011r  r  z
2011-01-01z
2011-01-0220130101)r  r+  r  c                0   \        R V/4      p\        R V/4      pRVR ,          P                   RVR ,          P                   R2p\        P                  ! V4      p\        P
                  ! \        VR7      ;_uu_ 4        \        W4R .R7       RRR4       RVR ,          P                   RVR ,          P                   R2p\        P                  ! V4      p\        P
                  ! \        VR7      ;_uu_ 4        \        WCR .R7       RRR4       \        V4      \        V4      8X  Ed   \        R VRVRV/4      p\        R VRVRV/4      pRVR,          P                   RVR,          P                   R	2p\        P                  ! V4      p\        P
                  ! \        VR7      ;_uu_ 4        \        Wg4       RRR4       RVR,          P                   RVR,          P                   R
2p\        P                  ! V4      p\        P
                  ! \        VR7      ;_uu_ 4        \        WgR R.R7       RRR4       R# R#   + '       g   i     EL; i  + '       g   i     EL[; i  + '       g   i     L; i  + '       g   i     R# ; i)r{  You are trying to merge on  and zE columns for key 'A'. If you wish to proceed you should use pd.concatr   re   Nr|  r  zE columns for key 'B'. If you wish to proceed you should use pd.concatzE columns for key 'C'. If you wish to proceed you should use pd.concat)	r   rV   rl  rm  r   r   r   r   r   )rC   r  r  r7   r8   r   r  r  s   &&&     r'    test_merge_incompat_dtypes_error0TestMergeDtypes.test_merge_incompat_dtypes_error  s$   2 h(h( *#c(..)9s3x~~>N OS S 	 iin]]:S11#u% 2
 *#c(..)9s3x~~>N OS S 	 iin]]:S11#u% 2
 x=CM) S(C3IJCS(C3IJC
 .c#hnn-=U3s8>>BR SW W  ))C.Cz55c 6 .c#hnn-=U3s8>>BR SW W  ))C.Cz55cC:. 65/ * 211 211$ 65 655s0    I	<I4I1-J	I	I.	1J	J	zexpected_data, howr   r   rp   rQ   c                    \        R.R.VR7      p\        R.R.VR7      p\        WEVR7      p\        \        V4      4      p\        W7R.VR7      p\        P
                  ! Wh4       R# )r1   idr   r   rU   r   rV   N)r1   )r2   r   r   r   r   r\   r]   )	rC   any_numeric_ea_dtyper{   expected_datad1r  r`   	exp_indexra   s	   &&&&     r'   test_merge_EA_dtype#TestMergeDtypes.test_merge_EA_dtype  si     vv5IJvv5IJr3's=12	TFBV
 	f/r)   c                    \        R.R.VR7      p\        R.R.VR7      p\        WEVR7      p\        \        V4      4      p\        W'R.VR7      p\        P
                  ! Wh4       R# )r.   r  r   r   r  N)r.   )r/   r  )	rC   r{   r  any_string_dtyper  r  r`   exp_idxra   s	   &&&&     r'   test_merge_string_dtype'TestMergeDtypes.test_merge_string_dtype  si     x$7GHx$7GHr3'S/04&@P
 	f/r)   zhow, expected_datac                    \        R RR.R^^./4      p\        R RR.R^^./4      p\        W4VR7      p\        V. ROR7      p\        P                  ! WV4       R# )	r{  TFr|  r  r   r   Nr{  r|  r  r[   )rC   r{   r  r7   r8   r`   ra   s   &&&    r'   test_merge_bool_dtype%TestMergeDtypes.test_merge_bool_dtype  s`     tUmS1a&9:udmS1a&9:sS)]OD
f/r)   c           
     ~   \        R. ROR. RO/\        P                  ! 4       R7      pVP                  4       p\        RRRR\        P                  R.RRRR	\        P                  R
./VR7      pVP                  4       p\        W5R.VR7      p\        P                  ! W44       \        P                  ! WV4       \        \        P                  ! R4      \        P                  ! 4       \        P                  ! R4      .\        P                  ! . RO4      R7      p\        P                  ! VP                  V4       R# )lvl0123N578)datarV   911)rQ   rp   rf   r{   Ory   r  zlvl1-a)r  r  r  4Nr  zlvl1-b)r  r  6r  r  r  zlvl1-c)r  r  r  )r   r   StringDtyper   r{  r   r\   r]   r   r   rV   r   r~  r   r1  )	rC   r   string_dtyper7   r  r8   r  r   ra   s	   &&&      r'   test_merge_ea_with_string)TestMergeDtypes.test_merge_ea_with_string  s   "$>"$= .."
 88:"S#sBEE3$?"S#sBEE4$@ 
 88:C0B/CS 	c,
c, XXc]BNN,bhhsm<((L
 	v}}h7r)   zleft_empty, how, expc           	     R   \        R ^^.R^^./4      p\        R ^.R^./RR7      pV'       d   VP                  ^ 4      pMVP                  ^ 4      pVP                  WRR7      pVR8X  d5   \        R ^^.R^^.R\        P                  \        P                  ./4      pMWVR8X  d$   \        R ^.R\        P                  .R^./4      pM-VR8X  d   \        . RORR	7      pMVR
8X  d   \        . RORR	7      pVR8X  d   XP                  R RR7      p\        P                  ! VX4       R# )r{  r|  r  rT   rZ   r   rQ   rp   emptyr   empty_crossr   Trv  Nr  )A_xr|  A_yr  )r   headr   r   r   r  r\   r]   )rC   
left_emptyr{   ri   rQ   rp   r`   ra   s   &&&&    r'   test_merge_empty TestMergeDtypes.test_merge_empty6  s     #1vsQF343S1#.g>99Q<DJJqMEE+&= #1vsQFC"&&"&&AQ!RSHG^ #sC"&&3!DEHG^ HHM! )AQH'>++Cd+CH
fh/r)   c           
        \        R RR.R\        P                  ! ^^.\        P                  R7      /4      p\        R RR.R\        P                  ! ^^.\        P                  R7      /4      pVP	                  VRR7      p\        R . ROR\        P                  ! . RO\        P                  R7      /4      p\
        P                  ! VP                  RR	7      V4       R
# r.   r   r   r/   rZ   r   r   r   TdropN)r   r   r   r   )r2   r4   r1   r3   )r   r   r   uintcr   r\   r]   rX  rY  s   &    r'   test_merge_with_uintc_columns-TestMergeDtypes.test_merge_with_uintc_columns^  s    uenc288QF"((3STUuenc288QF"((3STU3G,1RXXl"((;
 	f00d0;XFr)   c           
        \        R RR.R\        P                  ! ^^.\        P                  R7      /4      p\        R RR.R\        P                  ! ^^.\        P                  R7      /4      pVP	                  VRR7      p\        R . ROR\        P                  ! . RO\        P                  R7      /4      p\
        P                  ! VP                  RR	7      V4       R
# r  )r   r   r   intcr   r\   r]   rX  rY  s   &    r'   test_merge_with_intc_columns,TestMergeDtypes.test_merge_with_intc_columnsj  s    uenc288QF"''3RSTuenc288QF"''3RST3G,1RXXl"'':
 	f00d0;XFr)   c                   \        R \        . RO\        P                  R7      /4      p\        R \        . R	O\        P                  R7      R. R
O/4      pVP	                  VR RR7      p\        R \        P
                  ! . RO\        P                  R7      R. RO/4      p\        P                  ! VP                  RR7      V4       R# )join_keyrZ   rG   rQ   r   Tr  N)r   r2   r1   r  r  )r.   rN   r/   )	r   r   r   r  r   r   r\   r]   rX  )rC   rD   
df_detailsr   ra   s   &    r'   test_merge_intc_non_monotonic-TestMergeDtypes.test_merge_intc_non_monotonicv  s    
F9BGG$DEF	97OT

 *@)277;WoV
 	f00d0;XFr)   rd  Nr  r  r  r  r  )r.   r/   r.   )rS  r  r  r  )r~  r  r  )Tr1   r4   )Fr5   r3   )
)FrQ   rQ   )Frp   r  )Fr   r  )Fr   rQ   )Fcrossr  )TrQ   r  )Trp   rp   )Tr   r  )Tr   rp   )Tr  r  )%rh  ri  rj  rk  r   rx  ry  r  r  r   rT   rD  rC  float16r  r  r  r  r  r  r   rm   r   r  r   r  r  r  r  r  r  r  r  r  r  rm  rn  ro  s   @r'   r  r    s    [[Wvz&:;R <R( [[TBHHbjj"**bjj#QR0 S0> [[(#y#)OPc
S1a&#Sz$BCV_sQFC#s&DE	
<<	0@2	0
0 [[ /66zBCf_5<<ZHIVVUDM89VVUDM67	

R
R [[ QF(+_=QF'*O<(o.j!#>|, ]]:qs;aVD]]:qs;c3ZHj!4j!E	
(3/)(3/j [[VWMS'NS&M		
	0	0 [[3Z!MUGUFO		
	0	0 [[|]34}l34lM23}l34		
008B [[	
002
G
G	G 	Gr)   r  c            
      &   \        R \        \        P                  P	                  ^4      P                  RR.RR7      4      P                  \        RR.4      4      R\        P                  P	                  ^4      P                  . RORR7      /4      # )r  r   r   r=  r  )
   )onetwothree)r   r   r   r    r!   choicerm   r	   rd  r)   r'   rQ   rQ     s}    		%%a(//U/Kf%uen56&&q)001Hu0U		
 r)   c            	      n    \        R \        RR.4      P                  \        RR.4      4      R^^./4      # )r  r   r   Z)r   r   rm   r	   rd  r)   r'   rp   rp     s@    '../?/OP!Q	
 r)   c            
         a  ] tR tRt o R tR tR tR t]P                  P                  RRR.4      R	 4       tR
 t]P                  P                  RR R R .4      R 4       tR tR t]P                  P                  RRR.4      ]P                  P                  R. RORR.RR.3. RO^^.^^.3. RORR.RR.3.4      R 4       4       tR tR tRtV tR# )TestMergeCategoricali  c                    \        WR R7      pVP                  P                  4       pV'       g   \        P                  ! R4      MRp\        \        RR.R7      WU.. R	OR7      p\        P                  ! WF4       R# )
r  re   r  strr   r   r  ry   N)r  Y_xY_y	r   r1  r  r   rV   r   r	   r\   r   )rC   rQ   r   r   r`   rV   ra   s   &&&    r'   test_identical#TestMergeCategorical.test_identical  s_    tc*))+%7U%8%G%
 	v0r)   c                $   \        WR R7      pVP                  P                  4       pV'       g   \        P                  ! R4      MRp\        \        RR.R7      V\        P                  ! R4      .. R
OR7      p\        P                  ! WW4       R	# )r  re   r  r  r   r   r  rT   ry   Nr  r  r  r  rC   rQ   rp   r   r   r`   rV   ra   s   &&&&    r'   
test_basicTestMergeCategorical.test_basic  sr     ts+))+%7U UEN;!
 "
 	v0r)   c                P   \        R ^ R^R^R ^R^R/R^ R^R^R^R^R//4      p\        R^ R^R^R^R^R/R^ R^R^R^R^R//4      p\        W!RRR R	7      pVP                  4       pVP                  4       pVR,          P                  R
4      VR&   \        W%RRR R	7      pVR,          P                  \	        R.4      4      VR&   \
        P                  ! Wd4       VP                  4       pVR,          P                  R
4      VR&   \        WuRRR R	7      p\
        P                  ! Wd4       VP                  4       pVR,          P                  R
4      VR&   VP                  4       pVR,          P                  R
4      VR&   \        WuRRR R	7      p\
        P                  ! Wd4       R# )rN   r.   r/   rO   rP   nullr   r   rQ   )r{   rz   r}   r  N)r   r   r   rm   r	   r\   r]   )rC   rp   rQ   rD   ra   crightr`   clefts   &       r'   test_merge_categorical+TestMergeCategorical.test_merge_categorical  s    aaaaa=aFAvq&!VL
 aaaaa=aaaaa=
 4FC#F 779
 Sk((4stsK ,,-=vh-GH
f/ 		3Z&&z2c
u&#L
f/ Sk((4s		3Z&&z2c
u&#L
f/r)   c           	        \        R \        . RO. ROR7      R. RO/4      p\        R \        . RO. ROR7      R. R	O/4      p\        WR .R7      p\        R \        . RO4      R. ROR. R
O/4      p\        P                  ! W44       R# )Foor  LeftRightre   Nr  )A0B0C0)r  r|  r{  )C1B1A1)r,  r+  r*  r  rY  s   &    r'   'tests_merge_categorical_unordered_equal<TestMergeCategorical.tests_merge_categorical_unordered_equal  s    {?O*
 {?O+
 sUG,{?3*+
 	f/r)   orderedTFc                   \        R R.VR7      p\        R. ROR\        . ROVR7      R. RO/4      P                  RR.4      p\        R. ROR\        . ROVR7      R. RO/4      P                  RR.4      p\	        W4RR	R	R
7      p\        R. ROR\        . ROVR7      R. RORRR\
        P                  ./4      P                  RR.4      p\        P                  ! WV4       R# )P2P1r  r/  r  prZ   r.   r  rQ   Tr   g      &@g      (@N)r  r  r  )r1  r2  r1  r  )r{  r  r  )r1  r1  r2  )r        )	r	   r   r
   rt   r   r   r   r\   r]   )rC   r/  pcatr7   r8   r`   ra   s   &&     r'   5test_multiindex_merge_with_unordered_categoricalindexJTestMergeCategorical.test_multiindex_merge_with_unordered_categoricalindex  s      D$<Io[!34@Y
 )T3K
  	 o[!34@l
 )T3K
  	 sV$Oo[!34@YtT266*	
 )T3K
  	 	f/r)   c                n   VP                  VP                  P                  R 4      R7      p\        WRR7      pVP                  P                  4       pV'       g   \        P                  ! R4      MRp\        \        RR.R7      V\        ^^.R7      .. ROR	7      p\        P                  ! WW4       VP                  P                  P                  VP                  P                  4      '       g   Q hVP                  P                  P                  VP                  P                  4      '       g   Q hR
# )r  )r  r  re   r  r  r   r   r  ry   Nr  )assignr  rm   r   r1  r  r   rV   r   r	   r\   r   r  rJ  #_categories_match_up_to_permutationr  s   &&&&    r'   test_other_columns'TestMergeCategorical.test_other_columns  s    uww~~j9:ts+))+%7U UEN; QF3
 "
 	v0 vv}}@@QQQQww~~AA&((//RRRRr)   changec                    V # r   rd  r   s   &r'   <lambda>TestMergeCategorical.<lambda>-  s    ar)   c                :    V P                  \        . RO4      4      # )r   )r   r   bahrm   r	   rA  s   &r'   rB  rC  .  s    ahh/0EFGr)   c                8    V P                  \        R R7      4      # )Tr/  rF  rA  s   &r'   rB  rC  /  s    ahh/=>r)   c                   V! VP                   P                  R 4      4      pVP                  VR7      p\        VP                   P                  P
                  \        4      '       g   Q h\        W4RVR7      pVP                  P                  4       pV'       g   \        P
                  ! R4      MRp	\        W\        P
                  ! R4      .. R	OR7      p
\        P                  ! W4       R# )
r  )r  r  r   r  r  rT   ry   Nr  )r  rm   r;  rp  rJ  rV   r	   r   r1  r  r   r   r\   r   )rC   r?  r   rQ   rp   r   r  r   r`   rV   ra   s   &&&&&&     r'   test_dtype_on_merged_different3TestMergeCategorical.test_dtype_on_merged_different*  s     577>>(+,q!$&&----/?@@@@ ts	:))+%7U5'):;?S
v0r)   c                   ^p\        R. ROV,          R. R	O^,          V,          RR
 UUu. uF  pV.^,          V,           F  pVNK  	  K  	  uppRR UUu. uF  pV.V,           F  pVNK  	  K  	  upp/4      pVP                  R 4      p\        WD\        VP                  4      R7      p\
        P                  ! WT4       R# u uppi u uppi )r5   r.   r/   rN   rO   c                 $    V P                  R 4      # )r  )rm   rA  s   &r'   rB  ITestMergeCategorical.test_self_join_multiple_categories.<locals>.<lambda>e  s     4r)   re   N)
r.   r/   rN   rO   rP   r   r   r   r   j)ru  wr   r   r  )r  r$   ur4  o)
aabbccddeeffgghhiijj)r   applyr   r   r   r\   r]   )rC   r  eachletterrD   r`   s   &     r'   "test_self_join_multiple_categories7TestMergeCategorical.test_self_join_multiple_categoriesD  s     G!K.2Q6 9 9#'&1*q.. "0  9
 !! $(&1**  #- !
: XX45 r$rzz"23
f)=
s   #CCc                V   \        \        R ^^4      R.\        R ^^4      R..RR.R7      pVR,          P                  R4      VR&   \        \        R ^^4      R.\        R ^^4      R..RR.R7      pVR,          P                  R4      VR&   \        \        P                  ! R	4      P                  4       RR.\        P                  ! R
4      P                  4       R\
        P                  .\        P                  ! R4      P                  4       \
        P                  R... ROR7      p\        WRR.R7      p\        P                  ! WC4       \        \        P                  ! R	4      P                  4       RR... ROR7      p\        WRR.R7      p\        P                  ! We4       R# )i  r  ?r   num2r   r  ffffff?num4r:  r=  r>  r   r  r   N)r   rd  rf  )
r   r   rm   r   rz  r   r   r   r\   r]   )rC   rD   r8   expected_outerresult_outerexpected_innerresult_inners   &      r'   test_dtype_on_categorical_dates4TestMergeCategorical.test_dtype_on_categorical_datesl  s    4A$tD!Q'7&=>QWHX
 Z&&z26
4A$tD!Q'7&=>QWHX
 &k((4F"l+002C=l+002C@l+002BFFC@
 -
 R'vh?
l;"ll<(--/c:;,
 R'vh?
l;r)   z.category_column,categories,expected_categoriesFalseTruec           	     Z   \        R . RORV/4      pVR,          P                  \        W$R7      4      VR&   \        R ^^.R^^	./4      pVP                  V4      p\        R ^^.RVR^^	./4      pVR,          P                  \        W$R7      4      VR&   \        P
                  ! W4       R# )r  r  rH  numNr   )r   rm   r	   r   r\   r]   )	rC   category_columnr  expected_categoriesr/  r7   r8   r`   ra   s	   &&&&&    r'   /test_merging_with_bool_or_int_cateorical_columnDTestMergeCategorical.test_merging_with_bool_or_int_cateorical_column  s     |UODEZ&&'7
'TUE
1vuq!f563dQFE3FPQSTvVW"5/00Z9
 	h/r)   c                    \        R \        ^^\        P                  .RR7      R^/4      p\	        WR R7      p\        R \        ^^\        P                  .RR7      R^R^/4      p\
        P                  ! W#4       R# )r{  r)  rZ   r|  re   B_xB_yN)r   r   r   r{  r   r\   r]   )rC   rD   r`   ra   s   &   r'   test_merge_on_int_array,TestMergeCategorical.test_merge_on_int_array  sm    VQ255MA3JKr#&&!Qg6q%K
 	f/r)   c                   \        R \        \        ^^
4      4      R\        \        ^^
4      4      R\        \        ^^
4      4      R\        \        ^^
4      4      /4      pVP                  R RRRRR/4      pVP                  R,          P                  RR .RR7      P                  RR/4      pVP                  R,          P                  . RORR7      P                  RR/4      p\        W4RRRR	7      p\        \        ^^
4      4      p\        \        \        ^^4      4      \        \        ^^
4      4      ,           VR
7      p\        \        \        ^^4      4      \        \        ^^
4      4      ,           VR
7      p\        \        P                  .^,          \        \        ^^
4      4      ,           VR
7      p	\        P                  ! WxV	.. ROR7      p
\        R\        \        \        \        ^^4      4      4      \        P                  .^,          ,           R\        P                  .^,          \        \        \        \        ^^
4      4      4      ,           /V
R7      p\        P                   ! W[4       R# )r   r   r  rO   r  T)observedr   r   r  r  namesd_xd_yry   N):Nr4   Nr~   ):r   NNr~   )r  r   r   )r   r   r   rm   ilocgroupbyaggr   r
   r   r   r   from_arraysmaprn   r\   r]   )rC   r7   r8   r  r  r`   catsr  r   r   idxra   s   &           r'   .test_merge_category_index_levels_stay_categoryCTestMergeCategorical.test_merge_category_index_levels_stay_category  s   T%2,'T%2,'T%2,'T%2,'	
 jj#z3
CLMhhuo%%sCj4%@DDc5\Rhhuo%%o%EII3PU,WsDdPE!RL!U1a[)Dq",>>4PU1a[)Dq",>>4P1tE!RL'99dK$$aAYoFtCuQ{34x!|Cx!|d3ueArl+C&DD 
 	f/r)   rd  N)FTTF)r2   r1   r1   r2   )rm  rn  rn  rm  )rh  ri  rj  rk  r  r  r!  r-  r   rx  ry  r8  r=  rJ  r`  rk  rs  rx  r  rm  rn  r  s   @r'   r  r    s    	11 )0V02 [[Yu60 708S* [[G>	
11$&*P<@ [[Yu6[[8'$uFAq6Aq6*/&'1BVWDUV	
0 7000 0r)   r  c                   |  a  ] tR tRt o ]P
                  P                  RRR]! R^^
.R^^d./^^.R7      3RR]! R^
^.R^d^./^^.R7      3R	R]! R. ROR^^d]P                  ./. ROR7      3R	R]! R. ROR]P                  ^d^./. ROR7      3R
R]! R]P                  ^
^.R. RO/. ROR7      3R
R]! R^
^]P                  .R. RO/. ROR7      3RR]! R^ ^
^]P                  .R]P                  ^d^R./. ROR7      3RR]! R^ ^
^]P                  .R]P                  ^d^R./. ROR7      3.4      R 4       t
RtV tR# )TestMergeOnIndexesi  zhow, sort, expectedr   Fr.   r/   ry   TrQ   rp   ,  r   c           	         \        R . RO/. ROR7      p\        R. RO/. R	OR7      p\        WERRWR7      p\        P                  ! Wc4       R# )
r.   ry   r/   T)rX   rY   r{   r|   Nr`  r  r   r2   r1   r   r  d      r3   r1   r2   r[   )rC   r{   r|   ra   rV  rW  r`   s   &&&&   r'   test_merge_on_indexes(TestMergeOnIndexes.test_merge_on_indexes  sJ    ` S+.i@c?39E$Dc
 	f/r)   rd  Nr  r  )r   r  r`  r  r  r  r  r  r  r  )r   r1   r2   r3   )rh  ri  rj  rk  r   rx  ry  r   r   r   r  rm  rn  r  s   @r'   r  r    s    [[eYb"XsS#J'GPQSTvVWdIsRHcC:&FqRSfUV3S3RVV2DEYW 3S26632DEYW 2662r*CA 2r266*CA 1b"bff-sRVVS#s4KL& 1b"bff-sRVVS#s4KL&G+	
.^0_.^0r)   r  rU   	index_colr   r{  r|  )r  r   )startstopr   r   c                 L    \        V 4      P                   R V P                   R2# )[r  )typerh  rV   rA  s   &r'   rB  rB  	  s     T!W%%&ay2r)   )idsc                     \        R . RO/V R7      p\        R. RO/V R7      pVP                  VR.R7      p\        R . ROR. RO/V R7      p\        P                  ! W44       R# )	left_datary   
right_datar  re   Nr  r  r[   )rU   rQ   rp   r`   ra   s   &    r'   test_merge_index_typesr  	  sb      k9-U;D|_5UCEZZ;-Z0F	i?uH &+r)   z-on,left_on,right_on,left_index,right_index,nmr   r   FTc                 *   \        R . RO/\        P                  ! RR.^ ^..RR.R7      R7      p\        . RO\        P                  ! RR.^^..RR.R7      VR7      p\        R ^^.R^^./\        P                  ! RR.^..RR.R7      R7      pVe+   \	        VVV VVVVR
7      p	\
        P                  ! W4       R	# Rp
\        P                  ! \        V
R7      ;_uu_ 4        \	        VVV VVVVR
7      p	R	R	R	4       R	#   + '       g   i     R	# ; i)r{  r.   r/   r   r   r|  ry   r  r|  N)rf   rz   r}   rX   rY   z$Cannot merge a Series without a namer   r   )
r   r   from_productr   r   r\   r]   r   r   r   )rf   rz   r}   rX   rY   nmr.   r/   ra   r`   r   s   &&&&&&     r'   test_merge_seriesr  !	  s&    		l%%SzAq6&:7GBTU	A 	%%SzAq6&:7GBTU	A
 	q!fcAq6"%%SzA3&7?QRH 
~!#
 	f/4]]:S11!%'F 2111s   $DD	c                  `   \        R . RO/\        P                  ! RR.^ ^..RR.R7      R7      p \        . RO\        P                  ! RR.^^..RR.R7      RR7      p\        P
                  ! \        RR	7      ;_uu_ 4        \        WRR.R
7       RRR4       R#   + '       g   i     R# ; i)r{  r.   r/   r   r   r|  ry   r  z-Not allowed to merge between different levelsr   re   Nr   )r|  r  )r   r   r  r   r   r   r   r   r6  s     r'   test_merge_series_multilevelr  V	  s     		l%%SzAq6&:7GBTU	A 	%%SzAq6&:7GBTU	A
 
I
 
 	a)*
 
 
 
s   BB-	z!col1, col2, kwargs, expected_colssuffixesr~  0_dup_x_y0_x0_yr.   rS  z0.0_xr/   b_yr  0_ar  c                    \        V . RO/4      p\        V. RO/4      p\        ^^.^^.^^..VR7      pVP                  ! V3RRRR/VB p\        P                  ! Wv4       \        WE3RRRR/VB p\        P                  ! Wv4       R# )r1   r   rX   TrY   Nr  r  r[   )r+   r  kwargsexpected_colsr.   r/   ra   r`   s   &&&&    r'   test_merge_suffixr  h	  s    ( 	4#$A4#$A1a&1a&1a&1=IHWWQD4DTDVDF&+1EDEdEfEF&+r)   zhow,expectedrp   r+  B2X       c                     \        R . ROR. RO/4      p\        R . ROR. RO/4      p\        W#R V RR7      p\        V4      p. R	OVn        \        P                  ! WA4       R# )
r{  r|  )rf   r{   r  N)r  r  r1   )<   F   P   r  r  r  r  )r  r  )r{  rv  rv  )r   r   r   r\   r]   )r{   ra   rV  rW  r`   s   &&   r'   test_merge_duplicate_suffixr  	  sZ    $ mS,?@G#_EFH7#MF"H*H&+r)   zcol1, col2, suffixesc           
          \        V . RO/4      p\        V. RO/4      pRp\        P                  ! \        VR7      ;_uu_ 4        \	        W4RRVR7       RRR4       R#   + '       g   i     R# ; i)r1   z'columns overlap but no suffix specifiedr   TrX   rY   r  Nr  r3   r4   r5   r  )r+   r  r  r.   r/   r   s   &&&   r'   test_merge_suffix_errorr  	  sW     	4#$A4#$A 4C	z	-	-atI 
.	-	-	-s   AA0	rQ   c           
          \        R . RO/4      p\        R. RO/4      p\        P                  ! \        RR7      ;_uu_ 4        \	        WRRV R7       RRR4       R#   + '       g   i     R# ; i)	r.   r/   zPassing 'suffixes' as ar   Tr  Nr  r  )r   r   r   	TypeErrorr   )r  r.   r/   s   &  r'   test_merge_suffix_raisesr  	  sP    3	"#A3	"#A	y(A	B	BatI 
C	B	B	B   AA.	z2, got 3r  zcol1, col2, suffixes, msgz%too many values to unpack \(expected z\)z1not enough values to unpack \(expected 2, got 1\)c           
          \        V . RO/4      p\        V. RO/4      p\        P                  ! \        VR7      ;_uu_ 4        \	        WERRVR7       RRR4       R#   + '       g   i     R# ; i)r1   r   Tr  Nr  r  r  )r+   r  r  r   r.   r/   s   &&&&  r'   test_merge_suffix_length_errorr  	  sP     	4#$A4#$A	z	-	-atI 
.	-	-	-r  	cat_dtyper	  r
  reversec                 ~   R \        . R
ORR7      R\        . R
ORR7      /p\        R\        . R
O4      P                  VR ,          4      R. RO/4      P	                  R4      p. R
Op. ROpV'       d!   VP                  4        VP                  4        \        R\        V4      P                  W ,          4      RV/4      P	                  R4      pVP                  VRRR7      p\        R. ROR. ROR\        . R
O4      P                  VR ,          4      /4      P	                  R4      p\        P                  ! Wx4       R	# )r	  Fr3  r
  r   rQ   rp   TrW   Nr  r  )	r	   r   r   rm   rt   r  r   r\   r]   )	r  r  
cat_dtypesr7   data_foo
data_rightr8   r`   ra   s	   &&       r'   test_merge_equal_cat_dtypesr  	  s$   
 	?EJ?EJJ
 	'..z%/@A69Ui  HJ
	x ''
(=>Ti  YYstY>FIY6/*11*U2CD	
 i  &+r)   c                     \        . R
ORR7      p \        R\        R R.4      P                  V 4      R^^./4      P	                  R4      p\        R\        . R
O4      P                  V 4      R. RO/4      P	                  R4      pVP                  VRRR7      p\        R^^.R^^.R\        R R.4      P                  V 4      /4      P	                  R4      p\        P                  ! W44       R	# )r.   r/   Fr3  r   rQ   rp   TrW   Nr  )r3   r2   r1   )r	   r   r   rm   rt   r   r\   r]   )r  r7   r8   r`   ra   s        r'   test_merge_equal_cat_dtypes2r  	  s     OUKI 	Sz")))4fq!fEi  	'..y97INi  YYstY>F	!Q1a&%c
1C1J1J91UVi  &+r)   c            
      L   \        R \        \        P                  ! ^ ^4      \        P                  ! ^^4      .RR7      /4      p V P	                  4       pVR ,          P                  R4      VR &   \        WRR R7      pV P	                  4       p\        P                  ! W#4       R# )r.   intervalrZ   r  r   r  N)	r   r   r   Intervalr   rm   r   r\   r]   )rp   rQ   r`   ra   s       r'   test_merge_on_cat_and_ext_arrayr  
  s    	fbkk!Q'Q):;:NOE ::<DS	  ,DI4G4Fzz|H&+r)   c                     . ROp . ROp\         P                  ! W3RR.R7      p\        VR7      pRVR&   \        VR7      pRVR&   RpRpVP                  VRWV3R	7      pV  UU	u. uF  q F  qV,           V	3NK  	  K  	  p
pp	V
R.,          p
Y UU	u. uF  q F  qV,           V	3NK  	  K  	  up	p,          p
\         P                  ! V
RR.R7      p\        VR7      p\
        P                  ! W|R
R7       R# u up	pi u up	pi )r.   r   r   r|  r    r  r  r  rf   r  FrU  Nr   r  r  r  )r  r  )r   r  r   r   r~  r\   r]   )lettersnumbersrU   frame_xframe_yl_sufr_sufr`   r_  rp  tuplesrI  ra   s                r'   test_merge_multiindex_columnsr  
  s    #GG##W$6w>PQE&GGDM&GGDMEE]]7t~]GF 3:M'Wc~s#W#'FM
zlF
7N7gs$g$7NNF++F7G:LMN0H&> NNs   $C6C<c                     \        R . ROR. RO/4      p \        R. ROR\        P                  ! . R	O4      /4      p\        WRRR7      p\        R . ROR. ROR\        P                  ! . R
O4      /4      p\        P
                  ! W#4       R# )r   r   r  rQ   r  Nr  )r  r  r  r  )200020012002)r  r  r  )r   r   r  r   r\   r]   r7   r8   r`   ra   s       r'    test_merge_datetime_upcast_dtyper  9
  s}    
S/3@
AC
	osBNN3K$LMC 3C0F 78	
H &+r)   n_categoriesc                    \        ^ .\        \        V 4      4      O4      p\        \        V ^,           4      R.VR7      p\        ^..R.\        ^ .\        \        V 4      4      R7      R7      p\	        W#RRRR7      p\        \        V ^,           4       Uu. uF  qU^8  d   VR.MV\
        P                  .NK!  	  upRR	.VR7      p\        P                  ! Wd4       R
# u upi )r   rG   r  r  rQ   Tr   g      @r   r   N)	r   r   r   r   r   r   r   r\   r]   )r  rX   r7   r8   r`   r   ra   s   &      r'   %test_categorical_non_unique_monotonicr  J
  s    
 "1"AtE,,?'@"ABJ
E,*+gYj
QC

	stE,4G/HIC 3DdKF5:<!;K5LM5LU!SBFF	+5LMI&H
 (+	 	Ns   %C c                     R \        . RO. RO4      R. RO/p \        V 4      p R\        . RO. RO4      R. ROR. RO/p\        V4      P                  RR.4      R,          p\        V VP	                  4       R R.RR.RR7      pVP                  RR.^R7      pV P                  VR R.R7      p\        P                  ! W#4       R \        . RO. ROR	R
7      R. RO/p \        V 4      p R\        . RO. ROR	R
7      R. ROR. RO/p\        V4      P                  RR.4      R,          p\        V VP	                  4       R R.RR.RR7      pVP                  RR.^R7      pV P                  VR R.R7      p\        P                  ! W#4       R# )Cat1Int1CatIntFactorrQ   r   )axisre   TrH  N)r.   r/   r.   rN   r.   r/   r  )r   r1   r   r1   r   r   )r.   r/   rN   r.   r/   rN   )r   r   r   r1   r1   r1   )r  g333333?rc  re  r]  g?r#  )	r
   r   rt   r   rX  r  r   r\   r]   )r.   r/   ra   r`   s       r'   &test_merge_join_categorical_multiindexr  `
  s    	:OL"	A 	!A 	{9?K!0	A
 	!u~.x8A		 H }}eU^!}4HVVA66*V+F(+ 	*OT
 	"		A 	!A 	{*OT
 	!0	A 	!u~.x8A		 H }}eU^!}4HVVA66*V+F(+r)   funcr   
merge_asofr  rz   rX   r}   rY   c                 0   \        R ^^.R^^./4      p\        R ^^.R^^./4      pRV^ ,           RV^,           R2p\        P                  ! \        VR7      ;_uu_ 4        \	        \
        V 4      ! W43/ VB  RRR4       R#   + '       g   i     R# ; i)r.   r/   rN   zCan only pass argument "" OR "z" not both\.r   Nr   r   r   r   getattrr   r  r  err_msgrQ   rp   r   s   &&&   r'   /test_merge_join_cols_error_reporting_duplicatesr  
  s     cAq63A/0DsQFC!Q01E%gaj\
|<
PC	z	-	-D$00 
.	-	-	-   "BB	c                 0   \        R ^^.R^^./4      p\        R ^^.R^^./4      pRV^ ,           RV^,           R2p\        P                  ! \        VR7      ;_uu_ 4        \	        \
        V 4      ! W43/ VB  RRR4       R#   + '       g   i     R# ; i)r.   r/   rN   zMust pass "r  z"\.r   Nr  r  s   &&&   r'   ,test_merge_join_cols_error_reporting_missingr  
  s     cAq63A/0DsQFC!Q01EF71:,c
:C	z	-	-D$00 
.	-	-	-r  c                 
   \        R ^^.R^^./4      p\        R ^^.R^^./4      pRp\        P                  ! \        VR7      ;_uu_ 4        \	        \
        V 4      ! W#3RR /VB  RRR4       R#   + '       g   i     R# ; i)r.   r/   rN   zZCan only pass argument "on" OR "left_index" and "right_index", not a combination of both\.r   rf   Nr  )r  r  rQ   rp   r   s   &&   r'   1test_merge_join_cols_error_reporting_on_and_indexr  
  s     cAq63A/0DsQFC!Q01E	:  
z	-	-D$8#88 
.	-	-	-s   A11B	c                      \        R ^^.RRR./4      p \        R ^^.RRR./4      p\        WRRR R7      p\        R ^^.R^^.RRR.R^^.R	RR./4      p\        P                  ! W#4       R
# )r   r  r   rp   T)r{   rX   r}   x_xz_xx_yz_yNr[   rQ   rp   r`   ra   s       r'   test_merge_right_left_indexr  
  s    cAq6378DsQFC%89E4GsKF!QAq6E5>Aq6E5>	
H &+r)   c                  z   \        R ^.R^./4      P                  R R.4      p \        R^./4      P                  R.4      p\        R . R. /\        P                  R7      P                  R R.4      p\	        WR.RR7      p\
        P                  ! W24       \	        WRR.R7      p\
        P                  ! W24       R# )r.   r/   rZ   Tr  )rX   r}   N)r   rt   r   rT   r   r\   r]   r7   r8   ra   r`   s       r'   $test_merge_result_empty_index_and_onr  
  s    
S1#sQC(
)
3
3S#J
?C
S1#J

)
)3%
0C#r3+288<FFSzRH3cU=F&+3u=F&+r)   c            	         \        R . ROR^R^/4      p \        R . ROR^/4      p\        P                  ! \        RR7      ;_uu_ 4        \	        WR R7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \	        WR R	R7       RRR4       R#   + '       g   i     LM; i  + '       g   i     R# ; i)
r.   r/   b_x(Passing 'suffixes' which cause duplicater   re   Nr  r  )r  r  r0  rQ   rp   s     r'   .test_merge_suffixes_produce_dup_columns_raisesr  
  s    c9c1eQ78DsIsA./E	z)S	T	Tdc" 
U 
z)S	T	TecL9 
U	T 
U	T 
U	T	Ts   	BB/B,	/C 	c                      \        . RO. RO.. ROR7      p \        R^^.R^/4      p\        WRR7      p\        . R	O.. R
OR7      p\        P                  ! W#4       R# )r1   r.   r/   r   re   NrF  rG  )r.   r/   r/   )r1   r1   r1   r2   )r.   r
  r
  r  r[   r  s       r'   3test_merge_duplicate_columns_with_suffix_no_warningr  
  sU     i+_EDsQFC+,E43'F,1KLH&+r)   c                      \        . RO. R	O.. R
OR7      p \        R^^.R^/4      p\        P                  ! \        RR7      ;_uu_ 4        \	        WRR7       RRR4       R#   + '       g   i     R# ; i)r1   r.   r/   r   r  r   re   Nr1   r1   r1   r1   r2   r2   r2   r2   )r.   r/   r/   r
  r0  r  s     r'   Itest_merge_duplicate_columns_with_suffix_causing_another_duplicate_raisesr    sY     lL1;QRDsQFC+,E	z)S	T	Tdc" 
U	T	T	Ts   A##A4	c                      \        ^^.^^..\        RR.4      R7      p \        ^	^
.^^..RR.R7      p\        WRRRR7      p\        . R
O. RO.\        . RO4      R7      p\        P                  ! W#4       R	# )r1   r.        \@r   r   r   r   Tr   N)r  r  r1   r2   )r5  r6  r3   r4   )r   r   r.   r  r   r   r   r\   r]   r  s       r'   %test_merge_string_float_column_resultr  
  s{    
aVaV$eS%L.A
BC
aWr2h'#s
<C3TtLF	'7M1NH &+r)   c            	          \        R .R.^.R7      p \        R .R.R.R7      p\        P                  ! \        RR7      ;_uu_ 4        \	        WR.RR7       RRR4       R#   + '       g   i     R# ; i)	r  r  )r  r   rU   i  zCan only pass argumentr   T)rf   rX   Nr0  )df_1df_2s     r'   /test_mergeerror_on_left_index_mismatched_dtypesr    sZ    3%#rd;D3%#se<D	z)A	B	BdcUt4 
C	B	B	Bs   A!!A2	c                     \        \        ^4      4      p \        RV R\        ^4      /4      p\        R\        ^^4      /4      p\        W!V RR7      p\        W!V P                  RR7      p\
        P                  ! W44       R# )r3   r{  r|  r  r   N)r   r   r   r   _datar\   r]   )cirp   rQ   resra   s        r'   #test_merge_on_left_categoricalindexr     sj    	%(	#BsBU1X./Ec5A;'(D
R#
6CT"((SAH#(r)   rV   r)  c                    V f   \         P                  M\        P                  p\	        R^^.R^^./V R7      p\	        RW.R^^./V R7      p\        W#RRR7      p\	        R^^W.R^^W.RW^^./V R7      p\        P                  ! WE4       \        W2RRR7      p\	        R^^W.RW^^.R^^W./V R7      p\        P                  ! WE4       R # )NrK   r+   rZ   r  r   r   )r   r   r   r{  r   r   r\   r]   )rV   itemrQ   rp   r`   ra   s   &     r'   test_merge_outer_with_NaNr#  )  s     ]266DeaVVaV4EBDutlFQF;5IE45g6FAq$%Q4&TA&	

 H &+ 55g6FAq$%TA&Q4&	

 H &+r)   c                      \        R ^./\        ^.RR7      R7      p \        R ^./\        ^.RR7      R7      p\        WRRR7      p\        R^.R^/4      p\        P                  ! W#4       R# )	r.   rN   r   ry   rO   r   r  r  Nr  r  s       r'    test_merge_different_index_namesr%  G  si    cA3ZuaSs';<DsQCjqc(<=E4c:F%!eQ/0H&+r)   c                     \        R . ROR^/V R7      p\        R . ROR^/V R7      pVP                  W1R7      p\        R . ROR^R^/V R7      p\        P                  ! WE4       R# )r.   r/   rZ   rN   r   Nr  r[   r  r   rQ   rp   r`   ra   s   &&    r'   test_merge_ear(  P  sf    c9c1-5IJDsIsA.6JKEZZZ-F#y#q#q9AUVH&+r)   c                 J   \        R . ROR^/V R7      p\        R . ROR^/V P                  4       R7      pVP                  W1R7      p\        R \        . ROV R7      R\        . ROV R7      R\        . ROV P                  4       R7      /4      p\        P
                  ! WE4       R# )	r.   r/   rZ   rN   r   Nr  rF  rG  )r   lowerr   r   r\   r]   r'  s   &&    r'   test_merge_ea_and_non_ear+  Y  s    c9c1-5IJDsIsA.6J6P6P6RSEZZZ-F	)=>	)=>	)=)C)C)EF	
H &+r)   rT   int64[pyarrow]c                 R   \         P                  ! R 4       \        R^^./V R7      p\        R^^./RR7      pVP                  V4      pVP	                  4       p\
        P                  ! W44       VP                  V4      pVP	                  4       p\
        P                  ! W44       R# )pyarrowr.   rZ   r,  N)r   importorskipr   r   r   r\   r]   )rV   rD   r8   r`   ra   s   &    r'   !test_merge_arrow_and_numpy_dtypesr0  h  s     	"	C!Q=	.B
S1a&M)9
:CXXc]FwwyH&+YYr]FxxzH&+r)   r-  zAmerica/Chicagoc           
         \         P                  ! R ^^V R7      \         P                  ! R ^^V R7      \         P                  ! R ^^V R7      .p\        RVR,          RRR./4      pVR,          P                  P	                  R4      VR&   \        RVR,          R	RR./4      pVR,          P                  P	                  R
4      VR&   \        RVRRR\
        P                  .R	\
        P                  RR./4      pVR,          P                  P	                  R4      VR&   VR8X  d&   VP                  ^.,          P                  RR7      pMIVR8X  d   VP                  ^ ^.,          pM,VR8X  d&   VP                  ^^.,          P                  RR7      pVP                  VRVR7      p\        P                  ! We4       R# )i  r,  ru  :Nr2   Nr.   r  r  r  :r1   NNr/   rp  r   Tr  rQ   rp   r   N)r   rz  r   r   as_unitr   r   r  rX  r   r\   r]   )r-  r   valsr7   r8   ra   r`   s   &&     r'   (test_merge_datetime_different_resolutionr4  w  s    	T1bR(
T1bR(
T1bR(D
 S$r(C#s4
5C3x{{""4(CH
S$r(C#s4
5C3x{{""3'CH#tS3RVV*<cBFFCQTCUVWHSM$$,,T2HSMG==!%11t1<	f	==!Q(	g	==!Q(44$4?YYss	Y2F&+r)   c                     \        R RR./4      p \        R^d./\        P                  ! R
R.R .R7      R7      p\        R RR.R^d\        P                  ./4      pV P                  VR .RRR7      p\        P                  ! W24       R	# )colr{  r|  r/   r|  )r  rU   TrQ   r   N)r{  )r  )r   r   r~  r   r   r   r\   r]   )rD   r8   ra   r`   s       r'   "test_merge_multiindex_single_levelr7    s    	EC:&	'B
C5\$$ff%5eWEC %#sS3-@AHXXcE7&XIF&+r)   c                     \        R^^.R^^./\        P                  ! ^^.RR..RR.R7      R7      p \        ^^.\        ^^.RR7      \        P                  ! R	.R..4      R
7      p\
        P                  ! \        P                  P                  4      ;_uu_ 4        V P                  4       P                  VP                  4       RR7      pRRR4       \        R. ROR. ROR. ROR. ROR. RO/4      p\        P                  ! VP                  4      Vn        \
        P                  ! XV4       V P                  4       P                  VP                  4       R.R7      p\
        P                  ! WC4       R#   + '       g   i     L; i)column_1r  
metadata_1
metadata_2rU   metadatar|  ry   r   new_data)r  rU   r   re   N)r9  r  )column_2r  )rU   r  r  )r<  r  )r:  r:  r;  r;  r  )r=  r  )r   r   r  r   r  r\   r  r   r   PerformanceWarningrX  r   r~  r   r]   )rD   r8   r`   ra   result2s        r'   'test_merge_multiindex_reset_index_mixedrA    sX   		Aq6#3aV<$$VlL127J:O

B VQF)''*t(<=C 
	#	#BII$@$@	A	A!''(9g'F 
B <Vlll	
H "--h.>.>?H&(+nn$$S__%6M?$KG',# 
B	As   0E::F
	on_indexleft_uniqueleft_monotonicright_uniqueright_monotonicc                 d   T p^^.pV'       d   TP                  V'       d   ^M^4       MTP                  V'       d   ^M^4       ^^.p	V'       d   T	P                  V'       d   ^M^4       MT	P                  V'       d   ^M^4       \        RV/4      p\        RV	/4      p	V'       d*   VP                  R4      pV	P                  R4      p	RRRR/p
MRR/p
\        W3RVRV/V
B pV'       d!   VP	                  4       pV	P	                  4       p	VR9   Ed#   VR9   d   YTrpMYTrpVR8X  d^   \        VR,          P                  4      P                  V	R,          P                  4      pVR,          P                  V4      pVV,          pV'       d   VP                  R4      pV'       g   VR,          P                  4       pVP                  VR,          P                  ^R	7      pVP                  \        P                  4      pVR,          P                  VP                  4      pVP!                  4       pMVR
8X  d   VR,          P                  4       pV	R,          P                  4       pVP#                  V^R	7      pVP                  \        P                  4      pVP$                  P                  P                  VP                  4      p\        RV/4      pVP                  R4      pV'       d   XP                  R4      pMXP	                  RR7      p\&        P(                  ! W4       R# )r2   rK   rX   TrY   rf   r{   r|   r   )
fill_valuer   r  N)rQ   rp   r   )rQ   r   )appendr   rt   r   rX  setrJ  intersectionisinr  r   r\  rm   r   intpr  r  mulrU   r\   r]   )r   r|   rB  rC  rD  rE  rF  r{   rQ   rp   	on_kwargsr`   ra   otherother_uniquekeep_values	keep_maskother_value_countsrepeatsleft_countsright_countsexpected_countss   &&&&&&&               r'   test_merge_combinationsrY    s    Cq6DAQ/AQ/FE/Qq1/Qq1eT]#Duen%E~~e$&!4=	5M	4@C@d@i@F!!!#
((##,0\H\,1\H'>d5k001>>uU|?R?RSK ,,[9I	*H++E2H!&u!:!:!<(00%1G1GTU0VGnnRWW-G--gnn=H((*H	5k..0U|002%//,1/E)009"((//667M7MNeX./''.%%e,''T'2&+r)   c                  J   \        R \        P                  .\        P                  ! 4       R7      p \        R.4      p\        ^ .RR7      p\        P
                  ! \        RR7      ;_uu_ 4        V P                  V4      pRRR4       \        P                  ! XV4       \        P
                  ! \        RR7      ;_uu_ 4        VP                  V 4      pRRR4       \        P                  ! W2P                  R4      4       \        R .4      p\        ^.^ .RR7      pV P                  V4      p\        P                  ! W24       VP                  V 4      p\        P                  ! W2P                  R4      4       R#   + '       g   i     EL; i  + '       g   i     L; i)	r  rZ   r]  r)  r   zYou are mergingr   NrD  )
r   r   r{  
Int64Dtyper\   r  r  r   r]   rm   r  s       r'   !test_merge_ea_int_and_float_numpyr\    s   
S"%%L
8C
SE
C!G4H		#	#K7H	I	I3 
J&(+		#	#K7H	I	I3 
J&//)"<=
SE
C!qc9HYYs^F&+YYs^F&//)"<= 
J	I	I 
J	Is   /E>F>F	F"	c                 :   \         P                  ! R 4       \        RRR./V R7      p\        R^/\        RR.V R7      R7      pVP	                  VRRRR7      p\        R\        RR.V R7      R^\        P                  ./4      p\        P                  ! W44       R	# )
r.  r.   r/   rZ   rN   ry   TrQ   r   N)
r   r/  r   r   r   r   r   r   r\   r]   )r  rQ   rp   r`   ra   s   &    r'   test_merge_arrow_string_indexr^  &  s    
	"cC:&.>?DsAheS#J>N&OPEZZs&ZIF	fc3Z'78#266{KH &+r)   r  right_emptyc                    \        ^^ .RR.R7      p\        ^^ .. R
OR7      pV '       d   VP                  R,          pV'       d   VP                  R,          p\        W#R.RR7      p\        ^\        ^4      . ROR7      pV '       d   V'       d   VP                  R,          pM9V '       d   \        P
                  VR&   MV'       d   \        P
                  VRR.&   \        P                  ! WE4       R	# )r1   r{  r|  r  r  r  r   r   r   N)r{  r  r  )r{  r|  r  r  )r   r  r   r   r   r   r\   r]   )r  r_  r7   r8   r`   ra   s   &&    r'   $test_merge_empty_frames_column_orderra  2  s     AaS3*
5C
AaS/
:Chhrlhhrl373F%(4HIHk==$		!vv#s&+r)   r{   c                    \        R \        ^R.RR7      /4      p\        R \        ^.RR7      /4      pRVR ,          P                   RVR ,          P                   R2p\        P                  ! \
        \        P                  ! V4      R7      ;_uu_ 4        VP                  VR V R	7       RRR4       RVR ,          P                   RVR ,          P                   R2p\        P                  ! \
        \        P                  ! V4      R7      ;_uu_ 4        VP                  VR V R	7       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)
rK   Nzdatetime64[ns]rZ   ztimedelta64[ns]r  r  zG columns for key 'key'. If you wish to proceed you should use pd.concatr   r   )	r   r   rV   r   r   r   rl  rm  r   )r{   rQ   rp   r   s   &   r'   !test_merge_datetime_and_timedeltarc  I  s    eVQI5EFGHDufaS0ABCDE &d5k&7&7%8eEl>P>P=Q RQ 	Q  
z3	8	8

5U
, 
9 &eEl&8&8%9tE{?P?P>Q RQ 	Q  
z3	8	8DU, 
9	8 
9	8 
9	8	8s   D6E	6E		E	c                     \        R . ROR\        P                  \        P                  \        P                  .R. RO/4      p \        R . ROR\        P                  \        P                  \        P                  .R. RO/4      pV P                  VR R.RR7      p\        R . ROR\        P                  \        P                  \        P                  .R. ROR. RO/4      p\        P
                  ! W#4       R# )	r   r   r  zzr   r   Nr  r  rN  r  s       r'   test_merge_on_all_nan_columnrf  ]  s    c9cBFFBFFBFF+CS)TUDsIsRVVRVVRVV,DdIVWEZZ3*'Z:F	irvvrvvrvv6YiXH &+r)   c           	          \        R ^.R^./4      p\        R ^.R^.R^./4      p\        P                  ! \        RR7      ;_uu_ 4        \	        WR V R7       RRR4       R#   + '       g   i     R# ; i)r+   r  col2_dupzduplicate columnsr   r  Nr0  )r  r7   r8   s   &  r'    test_merge_for_suffix_collisionsri  i  se     VaS&1#.
/C
VaS&1#zA3?
@C	z)<	=	=c6H5 
>	=	=	=s   
A##A4	c                     \        \        P                  ! . R	ORR7      R7      p \        \        P                  ! . R	ORR7      R7      p\        R\	        ^^.V R7      /4      p\        R\	        ^^.VR7      /4      pVP                  VRRR7      pVP                  R4      P                  VP                  R4      RRR7      p\        P                  ! WE4       R# )
r1   rT   rZ   r  rD  rK   r   r   Nr  )	r	   r   r   r   r   r   rm   r\   r]   )ltrtrQ   rp   r`   ra   s         r'   $test_merge_categorical_key_recursionrm  r  s    	RZZ	%I	JB	RZZ	%K	LBeVQF"567DufaV2678EZZ%WZ5F{{7#))YEw * H &+r)   c            	         \         P                  ! R 4       \        P                  ! R^RR7      p \	        RV R. RO/4      pVP                  R R7      p\	        RV P                  ^4      R. RO/4      pVP                  R R7      p\        WRRR	7      p\	        RV P                  ^4      R. ROR. RO/4      pVP                  R R7      p\        P                  ! W44       R
# )r.  z
2025-07-06r   r  timeval1)dtype_backendval2rQ   r   Nr  )r  r`     (   2   r  )r1   r1   r2   r2   r3   r3   )
r   r/  r   r  r   convert_dtypesr  r   r\   r]   )ru  r7   r8   r`   ra   s        r'   &test_merge_pyarrow_datetime_duplicatesrw    s    
	"
lAC8A
VQ	2
3C


9

5C
VQXXa[&2JK
LC


9

5C3F3FAHHQK&,	
H &&Y&?H&+r)   c            	         \        R . RO/4      p \        R . RO/4      p\        P                  ! \        P                  P
                  4      ;_uu_ 4        V P                  VR R RR7       RRR4       R#   + '       g   i     R# ; i)r6  T)rz   r}   rY   Nr  )r2   r3   r4   )r   r   r   r   r   r   r   r6   s     r'   #test_merge_right_on_and_right_indexry    s\    
UI&
'C
UI&
'C	ryy++	,	,		#uu$	G 
-	,	,	,s   A55B	)r   ru  rs  r  )r*  z
2018-01-02z
2018-01-03)NNNTTr|  )NNNTTN)r  _dup)Nrz  )r  r  )Nr  )r  N)Nr  )_aNr  r  )r1   r  r  r  ))r.   r.   )NN)r.   r.   )r  N)r   r   )Nr  r  )r  r  )rQ   rp   r   r   )rz  r  )_r   r   r   rl  numpyr   r   pandas.compatr   pandas.core.dtypes.commonr   r   pandas.core.dtypes.dtypesr	   pandasr   r
   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr\   pandas.core.reshape.concatr   pandas.core.reshape.merger   r   r(   rw  r9   r;   r   r  rQ   rp   r  r  rx  ry  r}  r  r  r  r  r   r  r  r  TWO_GOT_THREEtupler  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r#  r%  r(  r+  r0  r4  r7  rA  rY  r\  r^  ra  rc  rf  ri  rm  rw  ry  )r  s   0r'   <module>r     s   
 
    7      - 	 	d+ d+N-	GKG KG\    r0 r0j	60 60r  ,,,D 	it+6,
 	_;W5@{S	 	3  ,, 3
7	T4s;+	!4c:	tgw'uc:
7	T4t<,	!4d;	tgw'ud;	%%P+$ '	
A
L)C>:	
A
N+a\:	
A
L)E5>:	
A
T4L)E5>:	a*l+c1X6	cJ-~>	cJ-U|<	cJ-s|<	cJ-Sz:	cJ-U|<	
A
L)E1:6	c2u~&	
ArE5>"$,%$,  /4"b"&&)94Q	

 'r2r266*rvvsC-	
",#", JJ	J vw&7&!Wa9P%QRJ SJ $
  5m_BG		
 
c5:STJJ uen5T5M2 , 3 6 ,F,,,?<," !S2, 3,*5,p '<!89
S,	-	</HI
c=$	/*m1LM1 :1 '<!89
S	J67
c	Y561 :1 '<!89		t	9 :	9,"	,	:,#,5	) 4/2, 3,:,,, 7,<"=>, ?, &789, :,2
, -F dE]3u6)D%=9$7*T5M:F, ; 8 : 7 4
F,R>.	, e}5u6, 7 6,*  CD- E-&	, lL%AB6 C6,,0Has   'Y
