+
    xȇi                    8   ^ RI t ^ RIt^ RIt^ RIHu Ht ^ RIt	^ RIH
t
HtHtHtHt ^ RIHt ^ RIHt  ! R R4      t]P*                  P-                  RR]P.                  ! R]P0                  ! R	4      R
7      .4      ]P*                  P-                  RRR/RRRR/.4      ]P*                  P-                  RRR.RR..4      R 4       4       4       tR t]P*                  P-                  RRRRR/RRRR/RRRR/.4      R 4       tR tR tR tR tR t ]P*                  P-                  R R!]P.                  ! R"]P0                  ! R	4      R
7      ]P.                  ! R#]P0                  ! R	4      R
7      .4      R$ 4       t!]P0                  ! R	4      R% 4       t"R& t#R' t$R# )(    N)Index	Timedelta
merge_asofoption_contextto_datetime)
MergeErrorc                     a  ] tR t^t o RTR lt]P                  R 4       t]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]P6                  P9                  RRR.4      R 4       tR tR tR t R t!R t"R t#R  t$R! t%R" t&R# t']P6                  P9                  R$](! R%4      ])PT                  ! ^R&7      .R'R(.R)7      R* 4       t+R+ t,R, t-R- t.R. t/R/ t0R0 t1R1 t2R2 t3R3 t4R4 t5R5 t6R6 t7R7 t8R8 t9R9 t:R: t;R; t<R< t=R= t>R> t?R? t@R@ tARA tB]P6                  P9                  RBRC ]C.RDRE.R)7      ]P6                  P9                  RFRGRH.4      RI 4       4       tDRJ tERK tFRL tG]P6                  P9                  R. RUO4      RM 4       tHRN tIRO tJRP tKRQ tLRRtMV tNRS# )VTestAsOfMergec                    V'       d&   VP                  R R.RR7      P                  RR7      p\        VP                  4      Vn        V# )timetickerlast)keepTdrop)drop_duplicatesreset_indexr   r   )selfdfdedupes   &&&z/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/reshape/merge/test_merge_asof.py	prep_dataTestAsOfMerge.prep_data   sJ    ##VX$6V#DPP Q B bgg&	    c                   \         P                  ! . RO. R	O. R
O. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO.RP                  R4      R7      pVR,          P                  R4      VR&   VR,          P                  R4      VR&   V P	                  V4      # ) 20160525 13:30:00.023'time,ticker,price,quantity,marketCenter,columnspricefloat64quantityint64r   MSFT51.950075NASDAQ20160525 13:30:00.038r&   r'   155r)   20160525 13:30:00.048GOOGz720.7700100r)   r.   r/   z720.9200r0   r)   r.   r/   720.9300200r)   r.   r/   r3   300r)   r.   r/   r3   600r)   r.   r/   r3   44r)   20160525 13:30:00.074AAPL98.6700478343r)   20160525 13:30:00.075r=   r>   r?   r)   rA   r=   z98.66006r)   rA   r=   98.650030r)   rA   r=   rE   r(   r)   rA   r=   rE   20r)   rA   r=   rE   35r)   rA   r=   rE   10r)   rA   r=   98.5500rC   ARCA20160525 13:30:00.076r=   98.56001000rP   rR   r=   rS   r4   rP   rR   r=   rS   r6   rP   rR   r=   rS   400rP   rR   r=   rS   r8   rP   20160525 13:30:00.078r&   r'   783r)   r[   r&   r'   r0   r)   pd	DataFramesplitastyper   r   r   s   & r   tradesTestAsOfMerge.trades   s    \\LMNNNNNMPPKLLLLLIILKKKKKMMM7: >CCCH=
@ k((37J..w7:~~b!!r   c                B   \         P                  ! . R	O. R
O. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO.RP                  R4      R7      pVR,          P                  R4      VR&   VR,          P                  R4      VR&   V P	                  VRR7      # )r   time,ticker,bid,askr   r   bidr"   askTr   r   r/   720.50720.93r   r&   51.95ro   20160525 13:30:00.041r&   ro   ro   r.   r/   rl   rm   20160525 13:30:00.072r/   rl   z720.88rA   r=   98.5598.56rR   r=   rv   rw   r[   r&   ro   ro   r[   r&   51.92ro   r^   rc   s   & r   quotesTestAsOfMerge.quotesC   s    \\ECCEEEEECCCCCCCC!$ *//4'
* uI$$Y/5	uI$$Y/5	~~b~..r   c                .   \         P                  ! . RO. RO. RO. RO. RO. RO. RO. RORRRRR\        P                  \        P                  .. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. R O. R!O. R"O. R#O. R O. R$O. R%O. R%O.RP	                  R4      R7      pVR	,          P                  R
4      VR	&   VR,          P                  R4      VR&   VR,          P                  R
4      VR&   VR,          P                  R
4      VR&   V P                  V4      # &r   r)   r<   r=   98.67r?   /time,ticker,price,quantity,marketCenter,bid,askr   r   r!   r"   r#   r$   rh   ri   r   r&   ro   r(   r)   ro   ro   r+   r&   ro   r,   r)   ro   ro   r.   r/   z720.77r0   r)   720.5rm   r.   r/   z720.92r0   r)   r   rm   r.   r/   rm   r4   r)   r   rm   r.   r/   rm   r6   r)   r   rm   r.   r/   rm   r8   r)   r   rm   r.   r/   rm   r:   r)   r   rm   rA   r=   r   r?   r)   rv   rw   rA   r=   98.66rC   r)   rv   rw   rA   r=   98.65rF   r)   rv   rw   rA   r=   r   r(   r)   rv   rw   rA   r=   r   rI   r)   rv   rw   rA   r=   r   rK   r)   rv   rw   rA   r=   r   rM   r)   rv   rw   rA   r=   rv   rC   rP   rv   rw   rR   r=   rw   rT   rP   rv   rw   rR   r=   rw   r4   rP   rv   rw   rR   r=   rw   r6   rP   rv   rw   rR   r=   rw   rX   rP   rv   rw   rR   r=   rw   r8   rP   rv   rw   r[   r&   ro   r\   r)   r{   ro   r[   r&   ro   r0   r)   r{   ro   r_   r`   npnanra   rb   r   rc   s   & r   asofTestAsOfMerge.asof^   C   \\ ,FFFFWtj FKKCPmw
p k((37J..w7:uI$$Y/5	uI$$Y/5	~~b!!r   c                .   \         P                  ! . RO. RO. RO. RO. RO. RO. RO. RORRRRR\        P                  \        P                  .. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. R O. R!O. R"O. R#O. R O. R$O. R%O. R%O.RP	                  R4      R7      pVR	,          P                  R
4      VR	&   VR,          P                  R4      VR&   VR,          P                  R
4      VR&   VR,          P                  R
4      VR&   V P                  V4      # r   r   rc   s   & r   	toleranceTestAsOfMerge.tolerance^  r   r   c           	        \         P                  ! R. ROR. RO/4      p\         P                  ! R. ROR. RO/4      p\         P                  ! R. ROR. ROR. R	O/4      p\        WRR7      p\        P                  ! WC4       R# )
doc-string examplesaleft_val	right_valonN      
   r   bcr               r   r   r   r_   r`   r   tmassert_frame_equalr   leftrightexpectedresults   &    r   test_examples1TestAsOfMerge.test_examples1^  sj    ||S*j/JKc?KQR<<*j/;	R
 DC0
f/r   c                   VR8X  d   \         P                  ! R4       \        P                  ! R\	        . RO4      P                  RV R24      R. ROR. ROR. RO/. ROR	7      p\        P                  ! R\	        . RO4      P                  RV R24      R. ROR
. ROR. RO/. ROR	7      p\        W#RRR7       \        W#RR\        R4      R7       \        P                  ! R\	        . RO4      P                  RV R24      R. ROR. ROR. ROR
\        P                  R\        P                  \        P                  \        P                  .R\        P                  R\        P                  \        P                  \        P                  ./. ROR	7      p\        VVRR\        R4      RR7      p\        P                  ! WT4       R# ) r   szNThis test is invalid for unit='s' because that would round the trades['time']]r   M8[]r   r!   r#   r   rh   \(I@ri   =
ףpI@r   by2msr   r   r   10msFr   r   r   allow_exact_matchesN)r   r+   r.   r.   r.   r&   r&   r/   r/   r=   皙I@r   g\(@(\@g     X@K      d   r   r   )r   r   r!   r#   )r   r   20160525 13:30:00.030rq   r.   20160525 13:30:00.049rt   rA   )r/   r&   r&   r&   r/   r=   r/   r&   )     @r   r   QI@r   (\X@r   gzGJ@)=
ףp@{GI@r         J@r   q=
ףX@gףp=
@gp=
J@)r   r   rh   ri   )r   r   r!   r#   rh   ri   )pytestskipr_   r`   r   rb   r   r   r   r   r   r   )r   unitrd   r|   r   r   s   &&    r   test_examples2TestAsOfMerge.test_examples2j  s   3;KK,  &3tfA'B>4 <
$ 	 &3tfA' 	 RR14 57
< 	6f:6fYuEUV<< &3tfA'B>4rvvrvvrvv>rvvrvvrvv>  J#
( ' %
 	f/r   c           
     (   \         P                  ! R. ROR. RO/4      p\         P                  ! R. R	OR. R	O/4      p\         P                  ! R. ROR. ROR^^\        P                  ./4      p\	        WRRR7      p\
        P                  ! WC4       R# )
r   r   r   r   forwardr   	directionNr   r   r   r_   r`   r   r   r   r   r   r   s   &    r   test_examples3TestAsOfMerge.test_examples3  sx     ||S*j/JKc?KQR<<*j/;ArvvW
 DC9E
f/r   c           	     
   \         P                  ! R. ROR. RO/4      p\         P                  ! R. R	OR. R	O/4      p\         P                  ! R. ROR. ROR. R
O/4      p\        WRRR7      p\        P                  ! WC4       R# )r   r   r   r   nearestr   Nr   r   r   )r   r   r   r   r   s   &    r   test_examples4TestAsOfMerge.test_examples4  sn     ||S*j/JKc?KQR<<*j/;	R
 DC9E
f/r   c                R    Tp\        WR RR7      p\        P                  ! WT4       R# )r   r   r   Nr   r   r   r   rd   r   r|   r   r   s   &&&&  r   
test_basicTestAsOfMerge.test_basic  s#    Fv(C
f/r   c                   TpVP                   P                  R 4      Vn         VP                   P                  R 4      Vn         VP                   P                  R 4      Vn         \        WRRR7      p\        P                  ! WT4       R# )categoryr   r   r   N)r   rb   r   r   r   r   s   &&&&  r   test_basic_categorical$TestAsOfMerge.test_basic_categorical  se    ,,Z8,,Z8"//00<Fv(C
f/r   c                    TpVP                  R 4      p\        WRR RR7      pVP                  Vn        WEP                  ,          p\        P
                  ! WT4       R# )r   Tr   )
left_indexright_onr   N)	set_indexr   indexr    r   r   r   s   &&&&  r   test_basic_left_index#TestAsOfMerge.test_basic_left_index  sQ    !!&)tf
  NN+
f/r   c                v    TpVP                  R 4      p\        WR RRR7      p\        P                  ! WT4       R# )r   Tr   )left_onright_indexr   Nr   r   r   r   r   s   &&&&  r   test_basic_right_index$TestAsOfMerge.test_basic_right_index  s:    !!&)F
 	f/r   c                    VP                  R 4      pVP                  R 4      pVP                  R 4      p\        WRRRR7      p\        P                  ! WT4       R# )r   Tr   r   r  r   Nr  r   s   &&&&  r   !test_basic_left_index_right_index/TestAsOfMerge.test_basic_left_index_right_index  sS    >>&)!!&)!!&)t(
 	f/r   c           	         VP                  R R.4      pVP                  R 4      p\        P                  ! \        RR7      ;_uu_ 4        \	        WRRR7       RRR4       R#   + '       g   i     R# ; i)r   r!   zleft can only have one indexmatchTr   r  Nr   r   raisesr   r   r   rd   r|   s   &&&r   test_multi_index_left#TestAsOfMerge.test_multi_index_left  sU    !!67"34!!&)]]:-KLLv$DI MLLL   	A""A3	c           	         VP                  R 4      pVP                  R R.4      p\        P                  ! \        RR7      ;_uu_ 4        \	        WRRR7       RRR4       R#   + '       g   i     R# ; i)r   rh   zright can only have one indexr  Tr  Nr  r  s   &&&r   test_multi_index_right$TestAsOfMerge.test_multi_index_right  sT    !!&)!!65/2]]:-LMMv$DI NMMMr  c           
         VP                  R 4      pVP                  R 4      pRp\        P                  ! \        VR7      ;_uu_ 4        \	        WRRRR7       RRR4       R#   + '       g   i     R# ; i)r   z:Can only pass argument "left_on" OR "left_index" not both.r  r!   T)r  r   r  Nr  r   rd   r|   msgs   &&& r   test_on_and_index_left_on'TestAsOfMerge.test_on_and_index_left_on  sX    !!&)!!&)J]]:S11Dd 2111   	A##A4	c           
         VP                  R 4      pVP                  R 4      pRp\        P                  ! \        VR7      ;_uu_ 4        \	        WRRRR7       RRR4       R#   + '       g   i     R# ; i)r   z<Can only pass argument "right_on" OR "right_index" not both.r  rh   T)r   r   r  Nr  r  s   &&& r   test_on_and_index_right_on(TestAsOfMerge.test_on_and_index_right_on'  sX    !!&)!!&)L]]:S114T 2111r  c                T    Tp\        WR RRR7      p\        P                  ! WT4       R# )r   r   )r   left_byright_byNr   r   s   &&&&  r   test_basic_left_by_right_by)TestAsOfMerge.test_basic_left_by_right_by0  s*    vx(
 	f/r   c                    TpW3P                   R 8g  ,          p\        WRRR7      p\        P                  VP                  VP                   R 8H  RR.3&   \
        P                  ! Wd4       R# )r&   r   r   r   rh   ri   N)r   r   r   r   locr   r   )r   rd   r   r|   r   qr   s   &&&&   r   test_missing_right_by#TestAsOfMerge.test_missing_right_by9  sX    ==F*+F&X>BD&&X__.>?
f/r   c                (   \         P                  ! R \        . RO4      R. ROR. ROR. ROR. RO/. ROR7      p\         P                  ! R \        . RO4      R. ROR. ROR. ROR. RO/. ROR7      p\         P                  ! R \        . RO4      R. ROR. ROR. ROR. ROR\        P                  RR
R	\        P                  .R\        P                  RRR\        P                  ./. ROR7      p\        WR RR.R7      p\        P                  ! WC4       R# )r   r   exchr!   r   r   r#   r   rh   Gz@r   ri   r   r   r   Nr   r   z20160525 13:30:00.046r.   20160525 13:30:00.050r   rP   NSDQr1  BATSr1  r   r   r   r   r,  r!   r#   r   r   r   rq   z20160525 13:30:00.045r   )r/   r&   r&   r&   r/   r=   r2  r1  rP   rP   r1  rP   r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r,  rh   ri   r   r   r,  r!   r#   rh   ri   )r_   r`   r   r   r   r   r   r   )r   rd   r|   r   r   s   &    r   test_multibyTestAsOfMerge.test_multibyA  s    B@>4 D!
& 	 JHCC  =#
( << B@>4vvrvv>vvrvv>" R%
* Fv8V:LM
f/r   dtypeobjectstringc                   \         P                  ! R \        . RO4      R. ROR. ROR. ROR. RO/. ROR7      pVP                  RVRV/4      p\         P                  ! R \        . RO4      R. ROR. ROR. ROR. RO/. ROR7      pVP                  RVRV/4      p\         P                  ! R \        . RO4      R. ROR. ROR. ROR. ROR\        P
                  RR
R	\        P
                  .R\        P
                  RRR\        P
                  ./. ROR7      pVP                  RVRV/4      p\        W#R RR.R7      p\        P                  ! WT4       R# )r   r   r,  r!   r   r   r#   r   rh   r-  r   ri   r   r   r   Nr.  )r   r   r   r   r   r0  r   r   r3  r4  )r   r   r   r   r   r   r5  r6  r7  r8  r9  )	r_   r`   r   rb   r   r   r   r   r   )r   r<  rd   r|   r   r   s   &&    r    test_multiby_heterogeneous_types.TestAsOfMerge.test_multiby_heterogeneous_types  sc     /@>4 D!
$ %?@	 ,HCC  =#
& %?@<< /@>4vvrvv>vvrvv>" R%
( ??HeVU#CDFv8V:LM
f/r   c           
        \         P                  ! \        R 4      ^R.\        R 4      ^R.\        R4      ^R.\        R4      ^R... ROR7      P                  R4      pVP                  \         P
                  ! ^ 4      ,
          Vn        \         P                  ! \        R4      ^RR	.\        R4      ^RR
.\        R4      ^RR.\        R4      ^RR... ROR7      P                  R4      pRp\        P                  ! \        VR7      ;_uu_ 4        \        WRRRR.R7       RRR4       R#   + '       g   i     R# ; i)20160602r   20160603r   r   k1k2r   20160502      ?       @20160503      @      @zincompatible merge keysr  Tr  Nr   rE  rF  r   rE  rF  value)
r_   r`   r   r   r   	Timestampr   r  r   r   )r   r   r   r  s   &   r   test_mismatched_index_dtype)TestAsOfMerge.test_mismatched_index_dtype  s$   ||Z(!S1Z(!S1Z(!S1Z(!S1	 )
 )F
 	 ZZ",,q/1
Z(!S#6Z(!S#6Z(!S#6Z(!S#6	 2
 )F
 	 (]]:S11tt4QU,W 2111s   D--D>	c                <   \         P                  ! \        R 4      ^R.\        R 4      ^R.\        R4      ^R.\        R4      ^R... ROR7      P                  R4      p\         P                  ! \        R4      ^RR	.\        R4      ^RR
.\        R4      ^RR.\        R4      ^RR... ROR7      P                  R4      p\         P                  ! \        R 4      ^RR	.\        R 4      ^RR
.\        R4      ^RR.\        R4      ^RR... ROR7      P                  R4      p\	        WRRRR.R7      p\
        P                  ! W44       \        P                  ! \        RR7      ;_uu_ 4        \	        VVRRRR.R.R7       RRR4       R#   + '       g   i     R# ; i)rC  r   rD  r   r   rE  rF  r   rG  rH  rI  rJ  rK  rL  Tr  z,left_by and right_by must be the same lengthr  )r   r  r"  r#  NrM  rN  )
r_   r`   r   r   r   r   r   r   r  r   r   s   &    r   test_multiby_indexed"TestAsOfMerge.test_multiby_indexed  s   ||Z(!S1Z(!S1Z(!S1Z(!S1	 )
 )F
 	 Z(!S#6Z(!S#6Z(!S#6Z(!S#6	 2
 )F
 	 <<Z(!S#6Z(!S#6Z(!S#6Z(!S#6	 2
 )F
 	 Ddd|
 	h/]]L
 
  t
 
 
 
s   +F

F	c           
     $
   \         P                  ! . . RON. RON. RON. RON. RON. RON. RON. RONRRRRR\        P                  \        P                  .N. RON. R ON. R!ON. R"ON. R#ON. R$ON. R%ON. R&ON. R&ON. R'ON. R(ON. R)ON. R*ON. R+ON. R(ON. R,ON. R-ON. R-ON. R.ON. R/ON. R0ON. R1ON. R2ON. R3ON. R3ON. R4ON. R4ON. R5ON. R6ON. R7ON. R8ON. R9ON. R:ON. R;ON. R<ON. R=ON. R>ON. R?ON. R@ON. RAON. RBON. RCON. RCON. RDON. REON. RFON. RGON. RHON. RION. RJON. RKON. RLON. RLON. RMON. RNON. ROON. RPON. RQON. RRON. RSON. RTON. RUON. RVON. RWON. RXON. RYON. RZON. RZONRP	                  R4      R7      pVR	,          P                  R
4      VR	&   VR,          P                  R4      VR&   VR,          P                  R
4      VR&   VR,          P                  R
4      VR&   V P                  V4      p\         P                  ! . . R[ON. R\ON. R]ON. R^ON. R_ON. R`ON. RaON. RbON. RcON. RdON. ReON. RfON. RgON. RhON. RiON. RjON. RkON. RkON. RlON. RmON. RnON. RoON. RpON. RmON. RqON. RrON. RrON. RsON. RtON. RuON. RvON. RwON. RxON. RxON. RyON. RyON. RzON. R{ON. R|ON. R}ON. R~ON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RONRP	                  R4      R7      pVR	,          P                  R
4      VR	&   VR,          P                  R4      VR&   V P                  V4      p\         P                  ! . . RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RONRP	                  R4      R7      pVR,          P                  R
4      VR&   VR,          P                  R
4      VR&   V P                  VRR7      p\        W4RRR7      p\        P                  ! WR4       R# )r   r)   r<   r=   r   r?   r   r   r   r!   r"   r#   r$   rh   ri   r   rg   Trj   r   r   r   Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )20160525 13:30:00.084r=   z98.6440r)   rv   rw   )rW  r=   rv   149EDGXrv   rw   )20160525 13:30:00.086r=   rw   500rP   rv   98.63)20160525 13:30:00.104r=   r]  647rZ  98.62r]  )r^  r=   r]  r6   rZ  r`  r]  )r^  r=   r]  50r)   r`  r]  )r^  r=   r]  70r)   r`  r]  )r^  r=   r]  1r)   r`  r]  )r^  r=   r]  62r)   r`  r]  )r^  r=   r]  rM   r)   r`  r]  )r^  r=   r]  r0   rP   r`  r]  )20160525 13:30:00.105r=   r]  r0   rP   r`  r]  )re  r=   r]  700rP   r`  r]  )20160525 13:30:00.106r=   r]  61rZ  r`  r]  )20160525 13:30:00.107r=   r]  r0   rP   r`  r]  )ri  r=   r]  53rP   r`  r]  )20160525 13:30:00.108r=   r]  r0   rP   r`  r]  )rk  r=   r]  839rP   r`  r]  )20160525 13:30:00.115r=   r]  5rZ  r`  r]  )20160525 13:30:00.118r=   r]  295rZ  r`  r]  )ro  r=   r]  rn  rZ  r`  r]  )20160525 13:30:00.128r=   r]  r0   r)   r`  r]  )rq  r&   r{   r0   rP   r{   ro   )20160525 13:30:00.129r=   r`  r0   r)   98.61r]  )rr  r=   r`  rM   r)   rs  r]  )rr  r=   r`  59r)   rs  r]  )rr  r=   r`  31r)   rs  r]  )rr  r=   r`  69r)   rs  r]  )rr  r=   r`  12r)   rs  r]  )rr  r=   r`  rw  rZ  rs  r]  )rr  r=   r`  r0   rP   rs  r]  )20160525 13:30:00.130r&   ro   317rP   51.93ro   )rx  r&   ro   283rP   rz  ro   )20160525 13:30:00.135r&   rz  r0   rZ  r{   ro   )r|  r=   r`  r0   rP   rs  r`  )20160525 13:30:00.144r=   r`  rw  r)   rs  r`  )r}  r=   r`  88r)   rs  r`  )r}  r=   r`  162r)   rs  r`  )r}  r=   rs  r0   r2  rs  r`  )r}  r=   r`  rh  rP   rs  r`  )r}  r=   r`  25rP   rs  r`  )r}  r=   r`  14rP   rs  r`  )20160525 13:30:00.145r=   r`  rw  rP   98.6r]  )r  r=   r`  r0   rP   r  r]  )r  r=   r]  r0   r)   r  r]  r%   r*   r-   r1   r2   r5   r7   r9   r;   r@   rB   rD   rG   rH   rJ   rL   rN   rQ   rU   rV   rW   rY   rZ   r]   )rW  r=   z98.6400rX  r)   )rW  r=   rO   rY  rZ  )r[  r=   rS   r\  rP   )r^  r=   98.6300r_  rZ  )r^  r=   r  r6   rZ  )r^  r=   r  ra  r)   )r^  r=   r  rb  r)   )r^  r=   r  rc  r)   )r^  r=   r  rd  r)   )r^  r=   r  rM   r)   )r^  r=   r  r0   rP   )re  r=   r  r0   rP   )re  r=   r  rf  rP   )rg  r=   r  rh  rZ  )ri  r=   r  r0   rP   )ri  r=   r  rj  rP   )rk  r=   r  r0   rP   )rk  r=   r  rl  rP   )rm  r=   r  rn  rZ  )ro  r=   r  rp  rZ  )ro  r=   r  rn  rZ  )rq  r=   r  r0   r)   )rq  r&   z51.9200r0   rP   )rr  r=   98.6200r0   r)   )rr  r=   r  rM   r)   )rr  r=   r  rt  r)   )rr  r=   r  ru  r)   )rr  r=   r  rv  r)   )rr  r=   r  rw  r)   )rr  r=   r  rw  rZ  )rr  r=   r  r0   rP   )rx  r&   r'   ry  rP   )rx  r&   r'   r{  rP   )r|  r&   z51.9300r0   rZ  )r|  r=   r  r0   rP   )r}  r=   r  rw  r)   )r}  r=   r  r~  r)   )r}  r=   r  r  r)   )r}  r=   z98.6100r0   r2  )r}  r=   r  rh  rP   )r}  r=   r  r  rP   )r}  r=   r  r  rP   )r  r=   r  rw  rP   )r  r=   r  r0   rP   )r  r=   r  r0   r)   rk   rn   rp   rr   rs   ru   rx   ry   rz   )z20160525 13:30:00.079r&   r{   ro   )z20160525 13:30:00.080r=   rv   rw   )rW  r=   rv   rw   )r[  r=   rv   r]  )z20160525 13:30:00.088r=   r   r]  )z20160525 13:30:00.089r=   r]  r]  )r^  r=   r]  r]  )r^  r=   r`  r]  )re  r=   r`  r]  )ri  r=   r`  r]  )rm  r=   r`  r]  )ro  r=   r`  r]  )rq  r=   r`  r]  )rr  r=   r`  r]  )rr  r=   rs  r]  )rx  r&   rz  ro   )rx  r=   rs  r]  )z20160525 13:30:00.131r=   rs  r`  )r|  r&   r{   ro   )r|  r=   rs  r`  )z20160525 13:30:00.136r=   rs  r`  )r}  r=   rs  r`  )r  r=   rs  r`  )r  r=   rs  r]  )r  r=   z98.60r]  )
r_   r`   r   r   ra   rb   r   r   r   r   )r   datapathr   rd   r|   r   s   &&    r   test_basic2TestAsOfMerge.test_basic2  s   <<v
v
v
&'v
89v
JKv
\]v
nov
@Av
T ,FFFFSv
dev
vwv
HIv
Z[v
lmv
~v
PQv
bcv
tuv
FGv
XYv
jkv
|}v
NOv
`av
rsv
DEv
VWv
hiv
z{v
LMv
^_v
pqv
B	C	v
T	U	v
f	g	v
x	y	v
J
K
v
\
]
v
n
o
v
@Av
RSv
dev
vwv
HIv
Z[v
lmv
~v
PQv
bcv
tuv
FGv
XYv
jkv
|}v
NOv
`av
rsv
DEv
VWv
hiv
z{v
LMv
^_v
pqv
BCv
TUv
fgv
xyv
JKv
\]v
nov
@Av
RSv
dev
vwv
HIv
Z[v
n FKKCPqy

t %W-44Y?'
3::7C"5/00;"5/00;>>(+NLNMN ON O	N
 ON ON ON NN QN QN LN MN MN MN MN  M!N" J#N$ J%N& M'N( L)N* L+N, L-N. L/N0 L1N2 N3N4 N5N6 N7N8 M9N: L;N< L=N> L?N@ LANB MCND MENF MGNH MINJ LKNL MMNN MONP LQNR LSNT LUNV KWNX LYNZ K[N\ L]N^ L_N` JaNb LcNd JeNf NgNh NiNj LkNl NmNn MoNp MqNr MsNt MuNv MwNx KyNz L{N| L}N~ LN@ LANB LCND LENF MGNH MINJ NKNL LMNN KONP KQNR KSNT KUNV LWNX NYNZ N[N^ >CCCHaQ
d !/00;w#J/66w?z'9E9C9 D9 F	9
 F9 F9 F9 F9 D9 D9 D9 D9 D9 D9 D9  D!9" D#9$ D%9& D'9( D)9* D+9, D-9. D/90 D192 D394 D596 D798 D99: D;9< D=9> D?9@ DA9B DC9D DE9F DG9H DI9J DK9L DM9N DO9P DQ9R DS9T DU9V DW9X DY9Z D[9\ D]9^ D_9` Da9b Dc9d De9f Dg9h Di9j Dk9l Dm9n Do9p Dq9t *//4w<
z u,,Y7uu,,Y7ut4Fv(C
f/r   c                    R  pV! V4      pV! V4      pV! V4      p\        WRR7      p\        P                  ! We4       R# )c                 n    W P                   R 8H  ,          P                  R^R7      P                  RR7      # )r&   r   )axisTr   )r   r   r   xs   &r   <lambda>0TestAsOfMerge.test_basic_no_by.<locals>.<lambda>r  s/    aF*+T(T#[d[#$r   r   r   Nr   )r   rd   r   r|   fr   r   s   &&&&   r   test_basic_no_byTestAsOfMerge.test_basic_no_byp  sC    $ 	
 T766Fv6
f/r   c           
        R p\         P                  ! \        VR7      ;_uu_ 4        \        WRRRR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        WRR.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     L; i  + '       g   i     L_; i  + '       g   i     R# ; i)
z6incompatible merge keys \[1\] .* must be the same typer  r   rh   r   )r  r   r   Nzcan only asof on a key for leftr   )r   r   r  r   r   r  s   &&& r   test_valid_join_keys"TestAsOfMerge.test_valid_join_keys  s    G]]:S11vv(S 2 ]]:-NOOv68*<J P ]]:-NOOv(3 PO 21 PO POOs#   B8#C C8C	C	C/	c                    \         P                  ! W3.4      P                  R R.4      P                  RR7      p\	        W%R RR7      pV P                  V4      p\        P                  ! Wg4       R# )r   r   Tr   r   N)r_   concatsort_valuesr   r   r   r   r   )r   r  rd   r|   r   r(  r   r   s   &&&&&   r   test_with_duplicates"TestAsOfMerge.test_with_duplicates  s]    IIv&'[&(+,[d[# 	

 F&X>>>$'
f/r   c           	        \         P                  ! R . ROR. RO/4      p\         P                  ! R . ROR. RO/4      p\        WR R7      p\         P                  ! R . ROR. ROR. RO/4      p\        P                  ! W44       R# )keyr   r   r   N)r   r   r   r   r   r   )r   r   r   r   r   df1df2r   r   s   &    r   test_with_duplicates_no_on(TestAsOfMerge.test_with_duplicates_no_on  sj    llE9j)DEllE9k9EFC/<<Iz9k9M
 	f/r   c           
         R p\         P                  ! \        VR7      ;_uu_ 4        \        WRRRR7       RRR4       R#   + '       g   i     R# ; i)z/allow_exact_matches must be boolean, passed foor  r   r   foor   r   r   Nr  r  s   &&& r   test_valid_allow_exact_matches,TestAsOfMerge.test_valid_allow_exact_matches  s8    ?]]:S116hE 2111s   AA	c                   \        WR R\        R4      R7       \        VP                  4       VP                  4       RR^R7       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                  4       VP                  4       RRRR7       RRR4       R	p\        P                  ! \
        VR7      ;_uu_ 4        \        WR R\        R4      ) R7       RRR4       \        P                  ! \
        VR7      ;_uu_ 4        \        VP                  4       VP                  4       RRR
R7       RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r   r   1sr   r   z6incompatible tolerance .*, must be compat with type .*r  NrH  ztolerance must be positive)r   r   r   r   r  r   r  s   &&& r   test_valid_tolerance"TestAsOfMerge.test_valid_tolerance  sS   6fYt_U 	  	
 H ]]:S11v&XK 2 ]]:S11""$""$ 2 + ]]:S116h9T?BR 2
 ]]:S11""$""$ 21+ 211 21 21
 211s0   +E?'-FF&-F9?F	F#	&F6	9G
	c           	     R   VP                  R RR7      pVP                  R RR7      pVP                  P                  '       d   Q hVP                  P                  '       d   Q h\        P                  ! \
        RR7      ;_uu_ 4        \        WR RR7       RRR4       VP                  R 4      pVP                  P                  '       g   Q hVP                  P                  '       d   Q h\        P                  ! \
        RR7      ;_uu_ 4        \        WR RR7       RRR4       VP                  R 4      pVP                  P                  '       g   Q hVP                  P                  '       g   Q h\        WR RR7       R#   + '       g   i     L; i  + '       g   i     L; i)	r   F)	ascendingzleft keys must be sortedr  r   r   Nzright keys must be sorted)r  r   is_monotonic_increasingr   r  
ValueErrorr   r  s   &&&r   test_non_sortedTestAsOfMerge.test_non_sorted  s@   ##Fe#<##Fe#< ;;66666;;66666]]:-GHHv&X> I ##F+{{22222;;66666]]:-HIIv&X> J ##F+{{22222{{22222 	6f: IH JIs   FFF	F&	tolerance_ts1day)daysr   zdatetime.timedelta)idsc                T    \        W#R RVR7      pTp\        P                  ! WV4       R# )r   r   r   Nr   )r   r  rd   r|   r   r   r   s   &&&&&  r   test_toleranceTestAsOfMerge.test_tolerance  s,     v(l
 
f/r   c           
     *   \         P                  ! R . ROR. RO/4      p\         P                  ! R . ROR. RO/4      p\         P                  ! R . ROR. ROR^\        P                  ^./4      p\	        WR R^R7      p\
        P                  ! WC4       R# )	r   r   r   r   r   r   r   Nr   r   r   r   r   r      r   r   s   &    r   test_tolerance_forward$TestAsOfMerge.test_tolerance_forward  ~     ||S*j/JKc#3[BRST<<*j/;BFFTVX
 DC9PQR
f/r   c           
     *   \         P                  ! R . ROR. RO/4      p\         P                  ! R . ROR. RO/4      p\         P                  ! R . ROR. ROR^\        P                  ^./4      p\	        WR R^R7      p\
        P                  ! WC4       R# )	r   r   r   r   r  Nr   r   r  r   r   s   &    r   test_tolerance_nearest$TestAsOfMerge.test_tolerance_nearest  r  r   c                   \         P                  ! R \         P                  ! \        R4      R^\        P
                  VR7      R\        P                  ! ^4      /4      p\         P                  ! R \         P                  ! \        R4      R^\        P
                  VR7      R\        R4      /4      p\        W#R \        R4      R	7      p\         P                  ! R \         P                  ! \        R4      R^\        P
                  VR7      R\        P                  ! ^4      R\        R
4      /4      p\        P                  ! WE4       R# )datez
2016-01-02D)startfreqperiodstzr   value1z
2016-01-01value2ABCDEz1 dayr   r   BCDEEN)r_   r`   
date_ranger   datetimeUTCr   arangelistr   r   r   r   )r   r   r   r   r   r   s   &&    r   test_tolerance_tzTestAsOfMerge.test_tolerance_tz  s   ||%l3|| "))A,	
 %l3|| $w-	
 DFi>PQ<<%l3|| "))A,$w-

 	f/r   c           
     *   \         P                  ! R . ROR. R	O/4      p\         P                  ! R . R
OR. R
O/4      p\         P                  ! R . ROR. R	OR^R\        P                  ./4      p\	        WR RRR7      p\
        P                  ! WC4       R# )r   r   ffffff
@r   r         ?r  N)皙?g      @g%@r   )rH        @r  g      @g      '@r   r   s   &    r   test_tolerance_float"TestAsOfMerge.test_tolerance_float<  s    ||S"2JPQ,k;UV
 <<%Oabff-
 DC9PST
f/r   c           
         VP                  R 4      pVP                  R 4      pVP                  R 4      p\        VVRRR\        R4      R7      p\        P                  ! WT4       R# )r   Tr   r  )r   r  r   r   N)r   r   r   r   r   )r   rd   r|   r   r   r   s   &&&&  r   test_index_tolerance"TestAsOfMerge.test_index_toleranceN  sc    &&v.!!&)!!&)'
 	f/r   c                   \        WR RRR7      p\        P                  ! RRRRR\        P                  \        P                  .. R!O. R"O. R#O. R$O. R%O. R&O. R'OR	R
RRR\        P                  \        P                  .RR
RRR\        P                  \        P                  .RR
RRR\        P                  \        P                  .RR
RRR\        P                  \        P                  .RR
RRR\        P                  \        P                  .RR
RRR\        P                  \        P                  .RR
RRR\        P                  \        P                  .RR
RRR\        P                  \        P                  .RR
RRR\        P                  \        P                  .RR
RRR\        P                  \        P                  .. R(O. R)O. R*O. R+O. R,O. R)O. R-O. R.O. R.O.RP                  R4      R7      pVR,          P                  R4      VR&   VR,          P                  R4      VR&   VR,          P                  R4      VR&   VR,          P                  R4      VR&   V P                  V4      p\        P                  ! W54       R # )/r   r   Fr  r   r&   ro   r(   r)   r<   r=   r   r?   rA   r   rC   r   rF   rI   rK   rM   rv   rP   r   r   r   r!   r"   r#   r$   rh   ri   Nr   r   r   r   r   r   r   r   r   r   r   r   r[   r&   ro   r\   r)   ro   ro   r[   r&   ro   r0   r)   ro   ro   )
r   r_   r`   r   r   ra   rb   r   r   r   r   rd   r|   r   r   r   s   &&&   r   test_allow_exact_matches&TestAsOfMerge.test_allow_exact_matches^  s   v(
 \\ ,FFFF ,FFFF ,FFFF ,FFFF ,FFFF ,FFFF ,FFFF ,FFFF ,FFFF )&'3PRPVPVW(&'3PRPVPVWwdJ FKKCPMg
P k((37J..w7:uI$$Y/5	uI$$Y/5	>>"%
f/r   c           	        \         P                  ! R . ROR. RO/4      p\         P                  ! R . R	OR. R	O/4      p\         P                  ! R . ROR. ROR. R
O/4      p\        WR RRR7      p\        P                  ! WC4       R# )r   r   r   r   Fr   r   r   Nr   r   r  )r   r   r  r   r   s   &    r    test_allow_exact_matches_forward.TestAsOfMerge.test_allow_exact_matches_forwardQ	  w     ||S*j/JKc#3[BRST<<*j/;
S
 C9%
 	f/r   c           	        \         P                  ! R . ROR. RO/4      p\         P                  ! R . R	OR. R	O/4      p\         P                  ! R . ROR. ROR. R
O/4      p\        WR RRR7      p\        P                  ! WC4       R# )r   r   r   r   Fr  Nr   r   r  )r   r   r  r   r   s   &    r    test_allow_exact_matches_nearest.TestAsOfMerge.test_allow_exact_matches_nearest`	  r  r   c                &   \        VVR R\        R4      RR7      p\        P                  ! RRRRR	\        P
                  \        P
                  .. R"O. R#O. R$O. R%O. R&O. R'O. R(OR
RRRR	\        P
                  \        P
                  .RRRRR	\        P
                  \        P
                  .RRRRR	\        P
                  \        P
                  .RRRRR	\        P
                  \        P
                  .RRRRR	\        P
                  \        P
                  .RRRRR	\        P
                  \        P
                  .RRRRR	\        P
                  \        P
                  .RRRRR	\        P
                  \        P
                  .RRRRR\        P
                  \        P
                  .RRRRR\        P
                  \        P
                  .. R)O. R*O. R+O. R,O. R-O. R*O. R.O. R/O. R/O.RP                  R4      R7      pVR,          P                  R4      VR&   VR,          P                  R4      VR&   VR,          P                  R4      VR&   VR ,          P                  R4      VR &   V P                  V4      p\        P                  ! W54       R!# )0r   r   100msFr   r   r&   ro   r(   r)   r<   r=   r   r?   rA   r   rC   r   rF   rI   rK   rM   rv   rP   r   r   r   r!   r"   r#   r$   rh   ri   Nr   r   r   r   r   r   r   r   r   r   r   r   r  r  )r   r   r_   r`   r   r   ra   rb   r   r   r   r  s   &&&   r   &test_allow_exact_matches_and_tolerance4TestAsOfMerge.test_allow_exact_matches_and_toleranceo	  s   ( %
 \\ ,FFFF ,FFFF ,FFFF ,FFFF ,FFFF ,FFFF ,FFFF ,FFFF ,FFFF )&'3PRPVPVW(&'3PRPVPVWwdJ FKKCPMg
P k((37J..w7:uI$$Y/5	uI$$Y/5	>>"%
f/r   c           	        \         P                  ! R \        R.4      RR./4      p\         P                  ! R \        RR.4      R^^./4      p\        WR R7      p\         P                  ! R \        R.4      RR.R^./4      p\        P
                  ! W44       \        WR RR7      p\         P                  ! R \        R.4      RR.R^./4      p\        P
                  ! W44       \        VVR R\        R	4      R
7      p\         P                  ! R \        R.4      RR.R\        P                  ./4      p\        P
                  ! W44       R# )r   2016-07-15 13:30:00.030usernamebob2016-07-15 13:30:00.000versionr   F)r   r   r   r   r   r   N)	r_   r`   r   r   r   r   r   r   r   r  s   &    r   'test_allow_exact_matches_and_tolerance25TestAsOfMerge.test_allow_exact_matches_and_tolerance2g
  sW   ll[";!<=zE7S
 ll.0IJ Aq6	
 C0<<%>$?@UGA3
 	f/CUK<<%>$?@UGA3
 	f/ %'
 <<%>$?@UGBFF8
 	f/r   c           	        \         P                  ! R \        RR.4      RRR./4      p\         P                  ! R \        RR.4      R^^./4      p\        VVR R\	        R4      R	7      p\         P                  ! R \        RR.4      RRR.R\
        P                  \
        P                  ./4      p\        P                  ! W44       R
# )r   r  r  r  charlier  r  Fr   r  N)	r_   r`   r   r   r   r   r   r   r   r  s   &    r   'test_allow_exact_matches_and_tolerance35TestAsOfMerge.test_allow_exact_matches_and_tolerance3
  s    ll.0IJ UI.	
 ll.0IJ Aq6	
  %'
 <<.0IJ UI.BFFBFF+
 	f/r   c           
     .   \         P                  ! R . ROR. RO/4      p\         P                  ! R . R	OR. R	O/4      p\         P                  ! R . ROR. ROR\        P                  ^^./4      p\	        VVR RR^R7      p\
        P                  ! WC4       R# )
r   r   r   r   Fr   r   r   r   Nr   r   r   r      r   r  r   r   s   &    r   .test_allow_exact_matches_and_tolerance_forward<TestAsOfMerge.test_allow_exact_matches_and_tolerance_forward
       ||S*j/JKc#3[BRST<<*j/;QRTVX
  %
 	f/r   c           
     .   \         P                  ! R . ROR. RO/4      p\         P                  ! R . R	OR. R
O/4      p\         P                  ! R . ROR. ROR\        P                  ^^./4      p\	        VVR RR^R7      p\
        P                  ! WC4       R# )r   r   r   r   Fr  Nr   r   r  )r   r   r  r   r  r   r   s   &    r   .test_allow_exact_matches_and_tolerance_nearest<TestAsOfMerge.test_allow_exact_matches_and_tolerance_nearest
  r  r   c                F   \         P                  ! R . ROR. ROR. R	O/4      p\         P                  ! R . R
OR. ROR. R
O/4      p\         P                  ! R . ROR. ROR. R	OR^\        P                  ^^^./4      p\	        WR RRR7      p\
        P                  ! WC4       R# )r   r   r   r   r   r   r   r   Nr   r   r         )Xr  YZr  r   r   r   der   r   r  r     )r  r  r  r  r  r   r   s   &    r   test_forward_byTestAsOfMerge.test_forward_by
  s     ||'.5
 './
 <<'.5aR4	
 DCC9M
f/r   c                $   \         P                  ! R . ROR. ROR. R	O/4      p\         P                  ! R . R
OR. ROR. R
O/4      p\         P                  ! R . ROR. ROR. R	OR. RO/4      p\        WR RRR7      p\        P                  ! WC4       R# )r   r   r   r   r   r  Nr  )r  r  r  r  r  r  r  )r  r  r  r  r  )r   r   r  r  r  r   r   s   &    r   test_nearest_byTestAsOfMerge.test_nearest_by  s     ||'.5
 './
 <<'.5/	
 DCC9M
f/r   c                p   \         P                  ! R \        . RO4      R. ROR. R	O/. R
OR7      p\         P                  ! R \        . RO4      R. ROR. RO/. ROR7      p\        WR RR7      p\         P                  ! R \        . RO4      R. ROR. R	OR. RO/. ROR7      p\        P
                  ! W44       R# )r   r  r  r   r  r   N)20160525 13:30:00.020r   20160525 13:30:00.040r/  20160525 13:30:00.060)r   r   r   r   r   )r  g333333?g?gffffff?g      ?)r   r  r  )z20160525 13:30:00.015r  z20160525 13:30:00.025z20160525 13:30:00.035r  z20160525 13:30:00.055r   z20160525 13:30:00.065)r   r   r   r   r   r   r   r   ) @皙@ffffff@333333@r  g@皙@gffffff@)r   r  r  )r"  r!  r#  r$  r%  )r   r  r  r  )r_   r`   r   r   r   r   r  s   &    r   test_by_intTestAsOfMerge.test_by_int"  s    ll 3 .
" ll	 /B  .#
( CE:<< 33 8
$ 	f/r   c           	     ~   \         P                  ! R . R
OR\        R4      /RR .R7      p\         P                  ! R . ROR. RO/R R.R7      pVP                  R 4      P	                  RR7      p\        WR R7      p\         P                  ! R\        R4      R . ROR. RO/. ROR7      p\        P                  ! W44       R	# )r!   symbolABCDEFGr   mpvTr   r   BGACEDFN)
ףp=
@HPsb?zG!9@@u@Hz>@皙C@q?)        rH        Y@)-C6?{Gz?皙?)r.  r3  r-  r/  r1  r0  r2  )r6  r6  r7  r7  r7  r8  r8  )r)  r!   r+  r_   r`   r  r  r   r   r   r   r  s   &    r   test_on_floatTestAsOfMerge.test_on_float_  s    llN$y/ w'
 ll'0DEe$

 oog&222=C1<<$y/NE
 /
 	f/r   c           
     d   \         P                  ! V4      P                  p\        P                  ! R . ROR\        R4      /RR .R7      pV! VP                  4      Vn        \        P                  ! R . ROR\        R4      /R R.R7      pV! VP                  4      Vn        VP                  R 4      P                  RR7      p\        W4R R7      p\        P                  ! R\        R	4      R . ROR\        R
4      /. ROR7      pV! VP                  4      Vn        \        P                  ! WV4       R# )rO  r)  r*  r   r   xyzwTr   r   BACEGDFxxxxxyzNr   r      r   N   x   O   r   P   rC  }   r   r   rA  rB  rD  r   rC  )r)  rO  r   )r   r<  typer_   r`   r  rO  r  r   r   r   r   r   any_real_numpy_dtyper<  r  r  r   r   s   &&     r   test_on_specialized_type&TestAsOfMerge.test_on_specialized_type}  s   -.33ll2Hd9oNw'
 #))$	ll'4<@h'
 #))$	oog&222=C1<<$y/5$y/
 2
 x~~.
f/r   c                   \         P                  ! V4      P                  p\        P                  ! R . ROR. ROR\        R4      /. ROR7      pV! VP                  4      Vn        \        P                  ! R . ROR. ROR\        R4      /. ROR7      pV! VP                  4      Vn        VP                  R 4      P                  RR7      p\        W4R RR	7      p\        P                  ! R\        R
4      R. ROR . ROR\         P                  R\         P                  \         P                  \         P                  RR./. ROR7      pV! VP                  4      Vn        \        P                  ! WV4       R# )rO  r  r)  r*  r   r   r=  Tr   r   r>  r  yNr@  )r   r   r   r   r   r   r   )r)  r  rO  rE  )r   r   r   r   )rO  r  r   )r   r   r   r   r   r   r   rH  )r)  r  rO  r   )r   r<  rI  r_   r`   r  rO  r  r   r   r   r   r   rJ  s   &&     r   test_on_specialized_type_by_int-TestAsOfMerge.test_on_specialized_type_by_int  s)   -.33ll5,$y/
 /
 #))$	ll'hVU.
 #))$	oog&222=CU;<<$y/,52663SI	 9
 x~~.
f/r   c                   \         P                  ! R \        R4      R. R
OR. RO/. ROR7      p\         P                  ! R. ROR. ROR. RO/. ROR7      pVP                  R4      P	                  RR7      pVP                  R4      P	                  RR7      p\        WRRR7      p\         P                  ! R \        R4      R. ROR. ROR. RO/. ROR7      p\        P                  ! W44       R	# )r)  	AAABBBCCCr,  r!   r   r+  Tr   r   N)	r   r   r   r   r   r   r   r   r   )	Gz
@ׁsF
@
@)\()@Gz.)@      )@fffffw@33333w@     w@)r)  r,  r!   )	r   r   r   r   r   r   r   r   r   )	r4  rH  r5  r4        @r5  r4  r]  g     @@)	r6  r7  r8  r6  r7  皙?r6        ?rH  )r,  r!   r+  )	r   r   r   r   r   r   r   r   r   )	rV  rU  rT  rY  rW  rX  rZ  r[  r\  )	r6  r6  r7  r_  r7  r7  r8  r^  r_  )r)  r,  r!   r+  r9  r  s   &    r   test_on_float_by_int"TestAsOfMerge.test_on_float_by_int  s    ll${+3 
 0!
& ll3MQ
 -
 oog&222=oog&222=CV<<<${+3 
 P  7#
( 	f/r   c                   R p\         P                  ! R. ROR. RO/4      p\         P                  ! R. R	OR. R	O/4      p\        P                  ! \        VR7      ;_uu_ 4        \        W#RR7       RRR4       R#   + '       g   i     R# ; i)
@Incompatible merge dtype, .*, both sides must have numeric dtyper   r   r   r  r   Nr   r   r   r_   r`   r   r  r   r   r   r  r   r   s   &   r    test_merge_datatype_error_raises.TestAsOfMerge.test_merge_datatype_error_raises  s_    Q||ZS/JKk?CQR]]:S11ts+ 2111s   #A;;B	c           	     n   R p\         P                  ! R. ROR\         P                  ! . RO4      /4      p\         P                  ! R. R	OR\         P                  ! . R
O4      /4      p\        P                  ! \
        VR7      ;_uu_ 4        \        W#RR7       RRR4       R#   + '       g   i     R# ; i)zHincompatible merge keys \[0\] .* both sides category, but not equal onesr   r   r   r  r   Nr   r   r   )r   r  r   r  r   )r_   r`   Categoricalr   r  r   r   re  s   &   r   ,test_merge_datatype_categorical_error_raises:TestAsOfMerge.test_merge_datatype_categorical_error_raises  s    ! 	
 ||S"..*IJ
 _R^^$=>
 ]]:S11ts+ 2111s   B##B4	c           
        \         P                  ! R ^ .R^ .R\         P                  ! ^ .4      /4      p\        WR RR.R7      p\         P                  ! R ^ .R^ .R\         P                  ! ^ .4      /4      p\        P
                  ! W#4       R# )r  rO  zr   N)r_   r`   ri  r   r   r   )r   r   r   r   s   &   r   :test_merge_groupby_multiple_column_with_categorical_columnHTestAsOfMerge.test_merge_groupby_multiple_column_with_categorical_column  sv    \\3S1#sBNNA34GHIBsSz:<<qc3S"..!:M NO
f/r   funcc                    V # )N r  s   &r   r  TestAsOfMerge.<lambda>  s    1r   numericr  sider   r   c                   R V R2pV! RR\         P                  .4      pV! . RO4      p\        P                  ! RVR. RO/4      p\        P                  ! RVR. RO/4      p\        P
                  ! \        VR7      ;_uu_ 4        VR8X  d   \        WgRR	7       M\        WvRR	7       R
R
R
4       R
#   + '       g   i     R
# ; i)z"Merge keys contain null values on z siderH  r]  r   r   r   r  r   r   N)rH  r]  g      $@r   )r   r   r  )r   r   r_   r`   r   r  r  r   )r   rp  ru  r  nulls	non_nullsdf_nullr   s   &&&     r   test_merge_on_nans TestAsOfMerge.test_merge_on_nans  s     34&>c3'()*	,,UJHI\\3	;
CD]]:S11v~73/23/	 2111s   #B33C	c                j   \         P                  ! \         P                  ^ ^.VR7      pVP                  P                  R9   d6   \
        P                  ! VP                  P                  4      P                  pM4\
        P                  ! VP                  P                  4      P                  pWC^&   \         P                  ! RVR. ROR. ROR. RO/4      p\         P                  ! RVR. ROR. ROR. RO/4      p\        WVRR.RR7      p\         P                  ! RVR. ROR. ROR. RO/4      p\
        P                  ! \
        P                  \
        P                  \
        P                  .\        R7      VR&   V'       d   VR,          P                  R	4      VR&   \        P                   ! Wx4       R
# )r   r<  by_col1by_col2on_colrO  r   r   value_xvalue_ystrN)iu)HELLOToYou)r   r  r   )r   r   r  )WORLDWideWeb)r   r   r   )r   r  r  )r_   arrayNAr<  kindr   iinfonumpy_dtypemaxfinfor`   r   r   r=  rb   r   r   )	r   any_numeric_ea_dtypeusing_infer_stringarrmax_valr   r   r   r   s	   &&&      r   test_by_nullableTestAsOfMerge.test_by_nullable.  sX    hhq!},@A99>>Z'hhsyy44599Ghhsyy44599G A||31)	
 33)	
 DY	,BxP<<31)?	
 !hh'?vN"*9"5"<"<U"CHY
f/r   c                   \         P                  ! R \         P                  ! R.4      P                  R4      R^.RR./4      p\         P                  ! R \         P                  ! R.4      P                  R4      R^.RR./4      p\	        WR RR7      p\         P                  ! \         P
                  ! RRR7      ^RR... ROR	7      p\        P                  ! W44       R
# )by_col
2018-01-01r  r  valuesr   r   r  r  r   N)r  r  values_xvalues_y)r_   r`   DatetimeIndextz_localizer   rP  r   r   )r   r   r   r   r   s   &    r   test_merge_by_col_tz_aware(TestAsOfMerge.test_merge_by_col_tz_aware\  s    ||"**L>:FFuM1#3%
 "**L>:FFuM1#3%
 DHB<<ll<E2AsC@A@
 	f/r   c           
     r   \         P                  ! R \         P                  ! R.4      P                  R4      RR.R^.RR./4      p\         P                  ! R \         P                  ! R.4      P                  R4      RR.R^.RR	./4      p\	        W#R R.RR
7      p\         P                  ! \         P
                  ! RRR7      R^R... ROR7      p\        P                  ! \        P                  .\        R7      VR&   V'       d   VR,          P                  R4      VR&   \        P                  ! WE4       R# )r~  r  r  r  r  r  rO  r   r  r   r  r  r   r}  r  r  N)r~  r  r  r  )r_   r`   r  r  r   rP  r   r  r   r=  rb   r   r   )r   r  r   r   r   r   s   &&    r   test_by_mixed_tz_aware$TestAsOfMerge.test_by_mixed_tz_awares  s   ||2++\N;GGNG91##	
 2++\N;GGNG91##	
 DY	,BxP<<ll<E2GQDE?
 !hhxv>"*9"5"<"<U"CHY
f/r   c           
        \         P                  ! R \        P                  ! ^.VR7      R^.RR./4      p\         P                  ! R \        P                  ! ^.VR7      R^.RR./4      p\	        W#R RR7      p\         P                  ! R \        P                  ! ^.VR7      R^.RR.RR./4      p\
        P                  ! WE4       R	# )
r  r}  r  rO  r   r   r  r  r  N)r_   r`   r   r  r   r   r   )r   r<  r   r   r   r   s   &&    r   test_by_dtypeTestAsOfMerge.test_by_dtype  s     ||"((A3e41##
 "((A3e41##
 DHB<<"((A3e41#C5C5	
 	f/r   c                h   VR 8X  d   \         P                  ! R4       \        P                  ! \	        \        . RO. RORR7      4      RR.R7      p\        P                  ! VR,          R4      P                  RV R	24      VR&   \        P                  ! \	        \        . RO. RORR7      4      RR
.R7      p\        P                  ! VR,          R4      P                  RV R	24      VR&   \        P                  ! \	        \        . RO. RO^ \        P                  ^^\        P                  \        P                  .RR7      4      . ROR7      p\        P                  ! VR,          R4      P                  RV R	24      VR&   \        W#R\        R4      RR7      p\        P                  ! WT4       R# )r   zHThis test is invalid with unit='s' because that would round left['time']T)strictr   r   r   mszm8[r   r   1msr   )r   r   r   N)r   r   r   r     rA  )r   r   r   r   r  r   )r   r   	   r  r     )r   r   r   )r   r   r_   r`   r  zipto_timedeltarb   r   r   r   r   r   r   )r   r   r   r   r   r   s   &&    r    test_timedelta_tolerance_nearest.TestAsOfMerge.test_timedelta_tolerance_nearest  si   3;KK%
 ||+-?MNV$

 tF|T:AACvQ-PV*,>tLMW%

 ft<CCc$qMRf<<*&1bffbff5	 .

 ??8F+;TBIICPTvUV-XFi.>)
 	f/r   c           
        \         P                  ! R . ROR. RO/4      p\         P                  ! R . R	OR. RO/4      pVR ,          P                  V4      VR &   VR ,          P                  V4      VR &   \         P                  ! R . ROR. ROR\        P                  RR./4      pVR ,          P                  V4      VR &   \        W#R ^
R7      p\        P                  ! WT4       R# )
r   r   r   rH  rI  r  N)r   r   r  r  )r   r  rA  )r_   r`   rb   r   r   r   r   r   )r   any_int_dtyper   r   r   r   s   &&    r   test_int_type_tolerance%TestAsOfMerge.test_int_type_tolerance  s     ||S+z9EFc;YGHI$$]3S	3Z&&}5c
<<+z9kBFFCQTCUV
 !,,];DC2>
f/r   c                   \         P                  ! R R^RR7      p\         P                  ! . ROR.VR	,          R
7      p\         P                  ! RVRR.^,          R.,           /4      p\        W#RR.R7      p\         P                  ! R. RORVR	,          RR.^,          R.,           /\         P                  ! RR^RR7      R7      p\        P
                  ! WE4       \        W2RR.R7      p\         P                  ! RVRR.^,          R.,           R\        P                  RRRR./\        . RO4      R7      p\        P
                  ! WE4       R# )z
2019-10-0130minr  )r  r  r  ?皙?ffffff?333333?xyz:r   NN)r    r   	from_dateabcgGz@gQ@T)r   r   r   r   z2019-10-01 00:30:00r   )r   r   r  r  N)r  r  r  r  )r   r   r   r   r  )	r_   r  r`   r   r   r   r   r   r   )r   r   r   r   r   r   s   &     r   test_merge_index_column_tz(TestAsOfMerge.test_merge_index_column_tz  s0   l!N||05'rSk5%$!tf9LMNt{m
 <<+U2YvzTF*
 --%GQ5	
 	f/{m
 <<UvzTF*S#s3
 (
 	f/r   c           
     ^   VR 8X  d   \         P                  ! R4       \        P                  ! RRRVR7      \	        RR7      P                  V4      ,           p\        P                  ! RRVR	7      p\        P                  ! R
R/\        P                  ! V4      R7      p\        P                  ! RR/\        P                  ! V4      R7      p\        P                  ! R
RRR/\        P                  ! V4      R7      p\        VVRR\	        RR7      R7      p\        P                  ! Wv4       R# )r   z?This test is invalid with unit='s' because that would round dr1z1/1/2020z	1/20/20202D)r  endr  r   g?)secondsz2/1/2020)r  r  r   val1r  r  val2barTr  )r   r  r   N)r   r   r_   r  r   as_unitr`   r  r   r   r   )r   r   dr1dr2r  r  r   r   s   &&      r   %test_left_index_right_index_tolerance3TestAsOfMerge.test_left_index_right_index_tolerance  s    3;KKQ mm+Dt
c"**401 mm**4HllFE?"2B2B32GHllFE?"2B2B32GH<<UFE*"2B2B32G
 ,
 	f/r   rr  N)F)r"   int16zm8[ns]zM8[us])O__name__
__module____qualname____firstlineno__r   r   fixturerd   r|   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r  r$  r)  r:  markparametrizer@  rQ  rT  r  r  r  r  r  r  r  r  r   r  	timedeltar  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r&  r:  rL  rP  r`  rf  rj  rn  r   rz  r  r  r  r  r  r  r  r  __static_attributes____classdictcell__)__classdict__s   @r   r
   r
      s     ^^#" #"J ^^/ /4 ^^}" }"~ ^^}" }"~
0W0r0000000JJ00?0B [[Wx&:;B0 <B0HX80dY0v0
400,\;. [[	6	H..A67./  
0
000)0V0$0 q0f00v0p00d#0J0(0(0<0<;0z0<0>"0H70r,,&0 [[k*J0G   [[Vfg%670 80,0\0.08 [[W&NO0 P06(0T0 0B0 0r   r
   infer_stringFTpyarrow)markskwargsr   r  r   r  dataz2019-06-01 00:09:12z2019-06-01 00:10:29rH  c           	      h   \        R V4      ;_uu_ 4        \        P                  ! RV/VR7      p\        P                  ! RV/VR7      p\        P                  ! \
        RR7      ;_uu_ 4        \        W43/ V B  RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zfuture.infer_stringr  r  rc  r  N)r   r_   r`   r   r  r   r   )r  r  r  r   r   s   &&&  r   #test_merge_asof_non_numerical_dtyper  "  s     
-|	<	<||S$Kt4c4[5]]U
 
 t-f-	
 
=	<
 
 
=	<	<s$   AB .B	;B BB  B1	c                  "   \         P                  ! R . ROR. RO/4      p \         P                  ! R . ROR. R	O/4      p\        P                  ! \        RR7      ;_uu_ 4        \        V VRR R RR7       RRR4       R#   + '       g   i     R# ; i)
r   	left_val1r   rc  r  )r  r   r"  r#  N)rw  1315r   )r  r  r  rd  r   r   s     r   *test_merge_asof_non_numerical_dtype_objectr  8  sy    <<0+OPDLL#
OLME	Q
 
 		
	
 
 
 
s   !A==B	r  	left_timer   r   c           	      ,   \        . RORR7      p\        P                  ! R. R	OR. R
O/VR7      p\        P                  ! R. RO/. ROR7      p\        W#3/ V B p\        P                  ! R. R	OR. R
OR. RO/VR7      p\        P
                  ! WE4       R# )r   testnamer   r  r  r   Nr   r   )r   r  r   r   r   )r   r_   r`   r   r   r   )r  r   r   r   r   r   s   &     r   test_merge_asof_index_behaviorr  J  s     *6*E<<+zJRWXDLL'?3?KE.v.F||	+z7INH &+r   c            	      6   \         P                  ! R . RO/\        . RORR7      R7      p \         P                  ! R. R	O/\        . R
ORR7      R7      p\        WRRR7      p\         P                  ! R. ROR . ROR. R	O/4      p\        P
                  ! W#4       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   r   s       r   'test_merge_asof_numeric_column_in_indexr  `  sq    <<l+53MNDLL#|,E)#4NOES3?F||S)S,\RSH&+r   c            	         \         P                  ! R . R	O/\         P                  P                  . R
O. RO.RR.R7      R7      p \         P                  ! R. RO/\         P                  P                  . R
O. RO.RR.R7      R7      p\	        WRRR7      p\         P                  ! R. R
OR . R	OR. RO/4      p\
        P                  ! W#4       R# )r   r   r   rm  )namesr  rO  r  Nr  r  r   r  )r  rO  rm  )r_   r`   
MultiIndexfrom_arraysr   r   r   r  s       r   ,test_merge_asof_numeric_column_in_multiindexr  j  s    <<	lmm''O(DSRUJ'WD LL	lmm''O(DSRUJ'WE
 S3?F||S)S,\RSH&+r   c            	      h   \         P                  ! R . R	O/\        . R
ORR7      R7      p \         P                  ! R. RO/\        . RORR7      R7      p\        P                  ! \
        RR7      ;_uu_ 4        \        WRRR7       RRR4       V P                  4       P                  RR .4      p VP                  4       P                  RR.4      p\        P                  ! \
        RR7      ;_uu_ 4        \        WRRR7       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r   r   r  r  r   rc  r  r  Nr  )rc  23r  )mno)	r_   r`   r   r   r  r   r   r   r   r  s     r   3test_merge_asof_numeri_column_in_index_object_dtyper  z  s    <<l+5s3STDLL#|,E/PS4TUE	Q
 
 	4c:	
 ''c
3D))3*5E	Q
 
 	4c:	
 

 

 
 
s   7D4D D	 D1	c           	      D   \         P                  ! R R.RV  R2R7      p\         P                  ! R^^.RV/4      p\         P                  ! \         P                  ! R4      ^RV R	7      p\         P                  ! R
. RO/4      p\        VVVRRRR7      p\         P                  ! R
. ROR\        P                  ^^.RV/4      p\        P                  ! WV4       \        VVRVRRR7      p\         P                  ! R^^.RVR
^^./4      p\        P                  ! WV4       R# )z2021/01/01 00:37z2021/01/01 01:40r   r   r}  r   tsz2021/01/01 00:001h)r  r  r  r   r   Fbackward)r  r   r   r   N)r     r   )
r_   r  r`   r  rP  r   r   r   r   r   )r   dtir   ts_merger   r   r   s   &      r   test_merge_asof_array_as_onr    s)   


	/0#dV1C LL!Q#	
E }}ll-.4H <<i()D!F ||S)S2661a.$QRH&+!F ||!Q#!Q	
H &+r   c            	      N   \         P                  ! . R
O.. ROR7      p \         P                  ! . RO.. ROR7      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       \        P                  ! \        RR7      ;_uu_ 4        \        WRRR	7       RRR4       R#   + '       g   i     L; i  + '       g   i     L`; i  + '       g   i     R# ; i)r   r   r   r   r   zcolumn label 'a'r  r   Nr  )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r_   r`   r   r  r  r   r  s     r   +test_merge_asof_raise_for_duplicate_columnsr    s    <</EFDLL).EFE	z);	<	<43' 
= 
z);	<	<4kB 
= 
z);	<	<4
SA 
=	< 
=	< 
=	< 
=	<	<s$   C-D D-C=	 D	D$	r<  Int64zint64[pyarrow]ztimestamp[s][pyarrow]c           
         \         P                  ! R . ROR. RO/4      p\         P                  ! R . R	OR. RO/4      pVP                  R V /4      pVP                  R V /4      p\        WR R7      p\         P                  ! R . ROR. ROR\        P
                  RR./4      pVP                  R V /4      p\        P                  ! W44       R# )
join_colr   r   r   rI  rK  N)r   r   r   r  )r   r   r  )r_   r`   rb   r   r   r   r   r   )r<  r   r   r   r   s   &    r   test_merge_asof_extension_dtyper    s     <<			
D LL		
E ;;
E*+DLL*e,-E
3F||		"&&#s+	
H 
E23H&+r   c                  0   \         P                  ! \        P                  ! R ^^4      .RR7      p \         P                  ! RV R^./4      p\	        WR\        R4      R7      p\         P                  ! RV R^.R^./4      p\        P                  ! W#4       R	# )
i  ztimestamp[us, UTC][pyarrow]r}  	timestamprO  r  r  r  r  N)r_   Seriesr  r`   r   r   r   r   )serr   r   r   s       r   $test_merge_asof_pyarrow_td_tolerancer    s     ))			4A	&'/LC 
aS	

B ;)D/JF||ss	
H &+r   c                     \         P                  ! ^.^.RR7      p \         P                  ! ^.^.RR7      pRV P                  P                  P                  n        RVP                  P                  P                  n        \        WRRR7      p\         P                  ! R^.R^./^.R7      p\        P                  ! W#4       R# )	r   r   )r   r  r   FTr  r  N)
r_   r  r   r  flags	writeabler   r`   r   r   r  s       r   !test_merge_asof_read_only_ndarrayr    s    99aS&1DIIqc!73E(-DJJ%).EKK&$GF||VaS'A37sCH&+r   c                  z   \         P                  ! R \         P                  ! . RORR.R7      RR.^,          R^.^,          R\        ^4      /4      p \         P                  ! R \         P                  ! RR.RR.R7      RR.^,          R^^.R\        ^4      /4      p\	        V VR R.RRR	R
.R7      p\         P                  ! R \         P                  ! . RORR.R7      RR.^,          R^.^,          R\        ^4      R\
        P                  \
        P                  RR./4      p\        P                  ! W#4       R# )c1r   r   )
categoriesc2r  tvr   _left_right)r   r   r   suffixesv_leftv_rightr4  N)r   r   r   r   )	r_   r`   ri  ranger   r   r   r   r   r  s       r   (test_merge_asof_multiby_with_categoricalr(    s)   <<"..!53*M3%!)!qq		
D LL"..#sc
C3%!)!Qq		
E $<8$F ||"..!53*M3%!)!qeAhS1	
H &+r   )%r  numpyr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandasr_   r   r   r   r   r   pandas._testing_testingr   pandas.core.reshape.merger   r
   r  r  param
skip_if_nor  r  r  r  r  r  r  r  r  r  r  r(  rr  r   r   <module>r4     s      ) )    0K40 K40\h UFLLR]]95MNO c{\4EF 
23c;P5QR	.		.
$ 	lD1	K5	tZ1,,,, ;*),XB %R]]9-EF,BMM)4LM,,8 y, ,,	,#,r   