Ë
    AúYj±Ø ã                   ó.  — d dl Z d dlZd dlZd dlmc mZ d dlZ	d dlm
Z
mZmZmZmZ d dlmZ d dlmZ  G d„ d«      Zej*                  j-                  dd ej.                  d ej0                  d	«      ¬
«      g«      ej*                  j-                  dddidddœg«      ej*                  j-                  dddgddgg«      d„ «       «       «       Zd„ Zej*                  j-                  ddddœdddœdddœg«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z ej*                  j-                  d d! ej.                  d" ej0                  d	«      ¬
«       ej.                  d# ej0                  d	«      ¬
«      g«      d$„ «       Z! ej0                  d	«      d%„ «       Z"d&„ Z#d'„ Z$y)(é    N)ÚIndexÚ	TimedeltaÚ
merge_asofÚoption_contextÚto_datetime)Ú
MergeErrorc                   ó–  — e Zd ZdUd„Zej
                  d„ «       Zej
                  d„ «       Zej
                  d„ «       Zej
                  d„ «       Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej4                  j7                  dddg«      d„ «       Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d „ Z#d!„ Z$d"„ Z%d#„ Z&ej4                  j7                  d$ e'd%«       e(jR                  d&¬'«      gd(d)g¬*«      d+„ «       Z*d,„ Z+d-„ Z,d.„ Z-d/„ Z.d0„ Z/d1„ Z0d2„ Z1d3„ Z2d4„ Z3d5„ Z4d6„ Z5d7„ Z6d8„ Z7d9„ Z8d:„ Z9d;„ Z:d<„ Z;d=„ Z<d>„ Z=d?„ Z>d@„ Z?dA„ Z@dB„ ZAej4                  j7                  dCdD„ eBgdEdFg¬*«      ej4                  j7                  dGdHdIg«      dJ„ «       «       ZCdK„ ZDdL„ ZEdM„ ZFej4                  j7                  dg dN¢«      dO„ «       ZGdP„ ZHdQ„ ZIdR„ ZJdS„ ZKyT)VÚTestAsOfMergec                 óˆ   — |r%|j                  ddgd¬«      j                  d¬«      }t        |j                  «      |_        |S )NÚtimeÚtickerÚlast)ÚkeepT©Údrop)Údrop_duplicatesÚreset_indexr   r   )ÚselfÚdfÚdedupes      úu/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/pandas/tests/reshape/merge/test_merge_asof.pyÚ	prep_datazTestAsOfMerge.prep_data   sJ   € ÙØ×#Ñ# V¨XÐ$6¸VÐ#ÓD×PÑPØð Qó ˆBô ˜bŸg™gÓ&ˆŒØˆ	ó    c                 ón  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gdj                  d«      ¬«      }|d   j                  d«      |d<   |d   j                  d«      |d<   | j	                  |«      S ) N©ú20160525 13:30:00.023Ú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.9200r'   r    ©r%   r&   ú720.9300Ú200r    ©r%   r&   r*   Ú300r    ©r%   r&   r*   Ú600r    ©r%   r&   r*   Ú44r    ©ú20160525 13:30:00.074ÚAAPLú98.6700Ú478343r    ©ú20160525 13:30:00.075r4   r5   r6   r    ©r8   r4   z98.6600Ú6r    ©r8   r4   ú98.6500Ú30r    ©r8   r4   r<   r   r    ©r8   r4   r<   Ú20r    ©r8   r4   r<   Ú35r    ©r8   r4   r<   Ú10r    ©r8   r4   ú98.5500r:   ÚARCA©ú20160525 13:30:00.076r4   ú98.5600Ú1000rG   ©rI   r4   rJ   r+   rG   ©rI   r4   rJ   r-   rG   ©rI   r4   rJ   Ú400rG   ©rI   r4   rJ   r/   rG   ©ú20160525 13:30:00.078r   r   Ú783r    ©rR   r   r   r'   r    ú'time,ticker,price,quantity,marketCenterú,©ÚcolumnsÚpriceÚfloat64ÚquantityÚint64©ÚpdÚ	DataFrameÚsplitÚastyper   ©r   r   s     r   Útradesz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ÚMð7ð: >×CÑCÀCÓHô=
ˆð@ ˜‘k×(Ñ(¨Ó3ˆˆ7‰Ø˜J™×.Ñ.¨wÓ7ˆˆ:‰Ø�~‰~˜bÓ!Ð!r   c                 ó0  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢gd
j                  d«      ¬«      }|d   j                  d«      |d<   |d   j                  d«      |d<   | j	                  |d¬«      S )N©r   r&   ú720.50ú720.93©r   r   ú51.95ri   ©ú20160525 13:30:00.041r   ri   ri   ©r%   r&   rf   rg   ©ú20160525 13:30:00.072r&   rf   z720.88©r8   r4   ú98.55ú98.56©rI   r4   rp   rq   ©rR   r   ri   ri   ©rR   r   ú51.92ri   útime,ticker,bid,askrV   rW   ÚbidrZ   ÚaskT©r   r]   rb   s     r   ÚquoteszTestAsOfMerge.quotesC   sš   € ä�\‰\âEÚCÚCÚEÚEÚEÚEÚEÚCÚCÚCÚCÚCÚCÚCÚCð!ð$ *×/Ñ/°Ó4ô'
ˆð* �u‘I×$Ñ$ YÓ/ˆˆ5‰	Ø�u‘I×$Ñ$ YÓ/ˆˆ5‰	Ø�~‰~˜b¨ˆ~Ó.Ð.r   c                 ó  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢d	d
dddt        j                  t        j                  gg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gdj	                  d«      ¬«      }|d    j                  d!«      |d <   |d"   j                  d#«      |d"<   |d$   j                  d!«      |d$<   |d%   j                  d!«      |d%<   | j                  |«      S ©&N©r   r   ri   r   r    ri   ri   ©r"   r   ri   r#   r    ri   ri   ©r%   r&   z720.77r'   r    ú720.5rg   ©r%   r&   z720.92r'   r    r€   rg   ©r%   r&   rg   r+   r    r€   rg   ©r%   r&   rg   r-   r    r€   rg   ©r%   r&   rg   r/   r    r€   rg   ©r%   r&   rg   r1   r    r€   rg   r3   r4   ú98.67r6   r    ©r8   r4   r†   r6   r    rp   rq   ©r8   r4   ú98.66r:   r    rp   rq   ©r8   r4   ú98.65r=   r    rp   rq   ©r8   r4   r‹   r   r    rp   rq   ©r8   r4   r‹   r@   r    rp   rq   ©r8   r4   r‹   rB   r    rp   rq   ©r8   r4   r‹   rD   r    rp   rq   ©r8   r4   rp   r:   rG   rp   rq   ©rI   r4   rq   rK   rG   rp   rq   ©rI   r4   rq   r+   rG   rp   rq   ©rI   r4   rq   r-   rG   rp   rq   ©rI   r4   rq   rO   rG   rp   rq   ©rI   r4   rq   r/   rG   rp   rq   ©rR   r   ri   rS   r    ru   ri   ©rR   r   ri   r'   r    ru   ri   ú/time,ticker,price,quantity,marketCenter,bid,askrV   rW   rY   rZ   r[   r\   rw   rx   ©r^   r_   ÚnpÚnanr`   ra   r   rb   s     r   ÚasofzTestAsOfMerge.asof^   óC  € ä�\‰\òòòòòòòòð ,ØØØØÜ—F‘FÜ—F‘FðòòòòòòòòòòòòòòòòòòðWtðj F×KÑKÈCÓPômw
ˆðp ˜‘k×(Ñ(¨Ó3ˆˆ7‰Ø˜J™×.Ñ.¨wÓ7ˆˆ:‰Ø�u‘I×$Ñ$ YÓ/ˆˆ5‰	Ø�u‘I×$Ñ$ YÓ/ˆˆ5‰	Ø�~‰~˜bÓ!Ð!r   c                 ó  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢d	d
dddt        j                  t        j                  gg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gdj	                  d«      ¬«      }|d    j                  d!«      |d <   |d"   j                  d#«      |d"<   |d$   j                  d!«      |d$<   |d%   j                  d!«      |d%<   | j                  |«      S r|   r™   rb   s     r   Ú	tolerancezTestAsOfMerge.tolerance^  r�   r   c                 óú   — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢g d¢dœ«      }t        ||d¬	«      }t        j                  ||«       y
)údoc-string examples©é   é   é
   ©ÚaÚbÚc©r§   Úleft_val©r£   é   é   é   é   ©r§   Ú	right_val©r£   r®   r°   ©r§   r«   r²   r§   ©ÚonN©r^   r_   r   ÚtmÚassert_frame_equal©r   ÚleftÚrightÚexpectedÚresults        r   Útest_examples1zTestAsOfMerge.test_examples1^  s`   € ä�|‰|¢*º/ÑJÓKˆÜ—‘¢?ÂÑQÓRˆä—<‘<Úª/Ê	ÑRó
ˆô ˜D %¨CÔ0ˆÜ
×Ñ˜f hÕ/r   c                 ól  — |dk(  rt        j                  d«       t        j                  t	        g d¢«      j                  d|› d�«      g d¢g d¢g d¢d	œg d	¢¬
«      }t        j                  t	        g d¢«      j                  d|› d�«      g d¢g d¢g d¢dœg d¢¬
«      }t        ||dd¬«       t        ||ddt        d«      ¬«       t        j                  t	        g d¢«      j                  d|› d�«      g d¢g d¢g d¢t        j                  dt        j                  t        j                  t        j                  gt        j                  dt        j                  t        j                  t        j                  gdœg d¢¬
«      }t        ||ddt        d«      d¬«      }t        j                  ||«       y)r¡   ÚszNThis test is invalid for unit='s' because that would round the trades['time']])r   r"   r%   r%   r%   úM8[ú]©r   r   r&   r&   r4   ©çš™™™™ùI@rÆ   g\�Âõ(††@ç�Âõ(\‡†@g     €X@©éK   é›   éd   rË   rË   )r   r   rY   r[   rW   )r   r   ú20160525 13:30:00.030rk   r%   ú20160525 13:30:00.049rn   r8   )r&   r   r   r   r&   r4   r&   r   )ç     „†@rÆ   ç\�Âõ(üI@ç…ëQ¸þI@rÎ   ç�Âõ(\X@rÎ   gáz®GJ@)ç=
×£p‡†@ç{®GáúI@ç=
×£pýI@ç      J@rÒ   çq=
×£€X@g×£p=
‡†@g¤p=
×J@)r   r   rw   rx   r   r   ©r¶   ÚbyÚ2ms©r¶   rØ   rŸ   rÏ   rÔ   )r   r   rY   r[   rw   rx   Ú10msF©r¶   rØ   rŸ   Úallow_exact_matchesN)ÚpytestÚskipr^   r_   r   ra   r   r   rš   r›   r¸   r¹   )r   Úunitrc   rz   r½   r¾   s         r   Útest_examples2zTestAsOfMerge.test_examples2j  s€  € à�3Š;Ü�K‰Kð,ôô —‘ä#òó÷ ‘&˜3˜t˜f A˜Ó'ÚBÚ>Ú4ñò <ô
ˆô$ —‘ä#ò	ó÷ ‘&˜3˜t˜f A˜Ó'ò	ò SÚRñ1ò4 5ô7
ˆô< 	�6˜6 f°Õ:ä�6˜6 f°ÄYÈuÓEUÕVä—<‘<ä#òó÷ ‘&˜3˜t˜f A˜Ó'ÚBÚ>Ú4ÜŸ™ ¤r§v¡v¬r¯v©v´r·v±vÐ>ÜŸ™ ¤r§v¡v¬r¯v©v´r·v±vÐ>ñò  Jô#
ˆô( ØØØØÜ Ó'Ø %ô
ˆô 	×Ñ˜f hÕ/r   c                 ó  — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢ddt        j                  gdœ«      }t	        ||d	d
¬«      }t        j                  ||«       y)r¡   r¢   r¦   rª   r¬   r±   r£   r¯   r´   r§   Úforward©r¶   Ú	directionN©r^   r_   rš   r›   r   r¸   r¹   rº   s        r   Útest_examples3zTestAsOfMerge.test_examples3Ã  sn   € ô �|‰|¢*º/ÑJÓKˆÜ—‘¢?ÂÑQÓRˆä—<‘<Úª/ÈÈAÌrÏvÉvÈÑWó
ˆô ˜D %¨C¸9ÔEˆÜ
×Ñ˜f hÕ/r   c                 óü   — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢g d¢dœ«      }t        ||dd	¬
«      }t        j                  ||«       y)r¡   r¢   r¦   rª   r¬   r±   )r£   r¯   r°   r´   r§   Únearesträ   Nr·   rº   s        r   Útest_examples4zTestAsOfMerge.test_examples4Ñ  sd   € ô �|‰|¢*º/ÑJÓKˆÜ—‘¢?ÂÑQÓRˆä—<‘<Úª/Ê	ÑRó
ˆô ˜D %¨C¸9ÔEˆÜ
×Ñ˜f hÕ/r   c                 óR   — |}t        ||dd¬«      }t        j                  ||«       y )Nr   r   r×   ©r   r¸   r¹   ©r   rc   rœ   rz   r½   r¾   s         r   Ú
test_basiczTestAsOfMerge.test_basicß  s'   € Øˆä˜F F¨v¸(ÔCˆÜ
×Ñ˜f hÕ/r   c                 ó  — |}|j                   j                  d«      |_         |j                   j                  d«      |_         |j                   j                  d«      |_         t        ||dd¬«      }t        j                  ||«       y )NÚcategoryr   r   r×   )r   ra   r   r¸   r¹   rí   s         r   Útest_basic_categoricalz$TestAsOfMerge.test_basic_categoricalå  si   € ØˆØŸ™×,Ñ,¨ZÓ8ˆŒØŸ™×,Ñ,¨ZÓ8ˆŒØ"Ÿ/™/×0Ñ0°Ó<ˆŒä˜F F¨v¸(ÔCˆÜ
×Ñ˜f hÕ/r   c                 ó¶   — |}|j                  d«      }t        ||ddd¬«      }|j                  |_        ||j                     }t	        j
                  ||«       y )Nr   Tr   )Ú
left_indexÚright_onrØ   )Ú	set_indexr   ÚindexrX   r¸   r¹   rí   s         r   Útest_basic_left_indexz#TestAsOfMerge.test_basic_left_indexî  sW   € àˆØ×!Ñ! &Ó)ˆäØ�F t°fÀô
ˆð  Ÿ™ˆŒà˜FŸN™NÑ+ˆÜ
×Ñ˜f hÕ/r   c                 óv   — |}|j                  d«      }t        ||ddd¬«      }t        j                  ||«       y )Nr   Tr   )Úleft_onÚright_indexrØ   ©rõ   r   r¸   r¹   rí   s         r   Útest_basic_right_indexz$TestAsOfMerge.test_basic_right_indexü  s>   € ØˆØ×!Ñ! &Ó)ˆäØ�F F¸Àô
ˆô 	×Ñ˜f hÕ/r   c                 ó¶   — |j                  d«      }|j                  d«      }|j                  d«      }t        ||ddd¬«      }t        j                  ||«       y )Nr   Tr   ©ró   rú   rØ   rû   rí   s         r   Ú!test_basic_left_index_right_indexz/TestAsOfMerge.test_basic_left_index_right_index  sW   € Ø—>‘> &Ó)ˆØ×!Ñ! &Ó)ˆØ×!Ñ! &Ó)ˆäØ�F t¸À(ô
ˆô 	×Ñ˜f hÕ/r   c                 óÊ   — |j                  ddg«      }|j                  d«      }t        j                  t        d¬«      5  t	        ||dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   rY   zleft can only have one index©ÚmatchT©ró   rú   ©rõ   rÞ   Úraisesr   r   ©r   rc   rz   s      r   Útest_multi_index_leftz#TestAsOfMerge.test_multi_index_left  s]   € à×!Ñ! 6¨7Ð"3Ó4ˆØ×!Ñ! &Ó)ˆÜ�]‰]œ:Ð-KÔLñ 	JÜ�v˜v°$ÀDÕI÷	J÷ 	Jñ 	Júó   Á AÁA"c                 óÊ   — |j                  d«      }|j                  ddg«      }t        j                  t        d¬«      5  t	        ||dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   rw   zright can only have one indexr  Tr  r  r  s      r   Útest_multi_index_rightz$TestAsOfMerge.test_multi_index_right  s\   € à×!Ñ! &Ó)ˆØ×!Ñ! 6¨5 /Ó2ˆÜ�]‰]œ:Ð-LÔMñ 	JÜ�v˜v°$ÀDÕI÷	J÷ 	Jñ 	Júr  c                 óÌ   — |j                  d«      }|j                  d«      }d}t        j                  t        |¬«      5  t	        ||ddd¬«       d d d «       y # 1 sw Y   y xY w)Nr   z:Can only pass argument "left_on" OR "left_index" not both.r  rY   T)rù   ró   rú   r  ©r   rc   rz   Úmsgs       r   Útest_on_and_index_left_onz'TestAsOfMerge.test_on_and_index_left_on  s]   € à×!Ñ! &Ó)ˆØ×!Ñ! &Ó)ˆØJˆÜ�]‰]œ:¨SÔ1ñ 	ÜØ˜¨¸DÈdõ÷	÷ 	ñ 	úó   Á AÁA#c                 óÌ   — |j                  d«      }|j                  d«      }d}t        j                  t        |¬«      5  t	        ||ddd¬«       d d d «       y # 1 sw Y   y xY w)Nr   z<Can only pass argument "right_on" OR "right_index" not both.r  rw   T)rô   ró   rú   r  r  s       r   Útest_on_and_index_right_onz(TestAsOfMerge.test_on_and_index_right_on'  s]   € Ø×!Ñ! &Ó)ˆØ×!Ñ! &Ó)ˆØLˆÜ�]‰]œ:¨SÔ1ñ 	ÜØ˜¨¸4ÈTõ÷	÷ 	ñ 	úr  c                 óT   — |}t        ||ddd¬«      }t        j                  ||«       y )Nr   r   )r¶   Úleft_byÚright_byrì   rí   s         r   Útest_basic_left_by_right_byz)TestAsOfMerge.test_basic_left_by_right_by0  s.   € àˆäØ�F˜v¨xÀ(ô
ˆô 	×Ñ˜f hÕ/r   c                 óÒ   — |}||j                   dk7     }t        ||dd¬«      }t        j                  |j                  |j                   dk(  ddgf<   t        j                  ||«       y )Nr   r   r   r×   rw   rx   )r   r   rš   r›   Úlocr¸   r¹   )r   rc   rœ   rz   r½   Úqr¾   s          r   Útest_missing_right_byz#TestAsOfMerge.test_missing_right_by9  s^   € Øˆà�6—=‘= FÑ*Ñ+ˆÜ˜F A¨&°XÔ>ˆÜBDÇ&Á&ˆ�‰�X—_‘_¨Ñ.°¸°Ð>Ñ?Ü
×Ñ˜f hÕ/r   c                 ó  — t        j                  t        g d¢«      g d¢g d¢g d¢g d¢dœg d¢¬«      }t        j                  t        g d¢«      g d	¢g d
¢g d¢g d¢dœg d¢¬«      }t        j                  t        g d¢«      g d¢g d¢g d¢g d¢t        j                  dddt        j                  gt        j                  dddt        j                  gdœg d¢¬«      }t        ||dddg¬«      }t        j                  ||«       y )N©r   r   z20160525 13:30:00.046r%   ú20160525 13:30:00.050rÄ   ©rG   ÚNSDQr  ÚBATSr  rÅ   rÈ   ©r   r   ÚexchrY   r[   rW   ©r   r   rÌ   rk   z20160525 13:30:00.045rÍ   )r&   r   r   r   r&   r4   ©r  r  rG   rG   r  rG   ©ç®Gáz„†@rÆ   rÏ   rÐ   rÎ   rÑ   ©rÇ   rÓ   rÔ   rÕ   rÒ   rÖ   ©r   r   r!  rw   rx   rÆ   rÎ   r%  rÓ   rÒ   rÇ   ©r   r   r!  rY   r[   rw   rx   r   r   r!  r×   )r^   r_   r   rš   r›   r   r¸   r¹   )r   rc   rz   r½   r¾   s        r   Útest_multibyzTestAsOfMerge.test_multibyA  s÷   € ä—‘ä#òóò CÚ@Ú>Ú4ñò Dô!
ˆô& —‘ä#òó	ò KÚHÚCÚCñò  =ô#
ˆô( —<‘<ä#òóò CÚ@Ú>Ú4ÜŸ™  v¨v´r·v±vÐ>ÜŸ™  v¨v´r·v±vÐ>ñò" Rô%
ˆô* ˜F F¨v¸8ÀVÐ:LÔMˆÜ
×Ñ˜f hÕ/r   ÚdtypeÚobjectÚstringc                 ó~  — t        j                  t        g d¢«      g d¢g d¢g d¢g d¢dœg d¢¬«      }|j                  ||dœ«      }t        j                  t        g d	¢«      g d
¢g d¢g d¢g d¢dœg d¢¬«      }|j                  ||dœ«      }t        j                  t        g d¢«      g d¢g d¢g d¢g d¢t        j
                  dddt        j
                  gt        j
                  dddt        j
                  gdœg d¢¬«      }|j                  ||dœ«      }t        ||dddg¬«      }t        j                  ||«       y )Nr  )r   r   r£   r£   r­   r  rÅ   rÈ   r   rW   )r   r!  r"  )r£   r   r   r   r£   r­   r#  r$  r&  r'  rÆ   rÎ   r%  rÓ   rÒ   rÇ   r(  r   r   r!  r×   )	r^   r_   r   ra   rš   r›   r   r¸   r¹   )r   r*  rc   rz   r½   r¾   s         r   Ú test_multiby_heterogeneous_typesz.TestAsOfMerge.test_multiby_heterogeneous_types‚  s/  € ô —‘ä#òóò *Ú@Ú>Ú4ñò Dô!
ˆð$ —‘¨%¸Ñ?Ó@ˆä—‘ä#òó	ò -ÚHÚCÚCñò  =ô#
ˆð& —‘¨%¸Ñ?Ó@ˆä—<‘<ä#òóò *Ú@Ú>Ú4ÜŸ™  v¨v´r·v±vÐ>ÜŸ™  v¨v´r·v±vÐ>ñò" Rô%
ˆð( —?‘?¨e¸UÑ#CÓDˆä˜F F¨v¸8ÀVÐ:LÔMˆÜ
×Ñ˜f hÕ/r   c           	      óR  — t        j                  t        d«      ddgt        d«      ddgt        d«      ddgt        d«      ddggg d¢¬«      j                  d	«      }|j                  t        j
                  d
«      z
  |_        t        j                  t        d«      dddgt        d«      dddgt        d«      dddgt        d«      dddggg d¢¬«      j                  d	«      }d}t        j                  t        |¬«      5  t        ||ddddg¬«       d d d «       y # 1 sw Y   y xY w)NÚ20160602r£   r§   r­   Ú20160603r¨   ©r   Úk1Úk2rW   r   r   Ú20160502ç      ð?ç       @Ú20160503ç      @ç      @©r   r3  r4  Úvaluezincompatible merge keysr  Tr3  r4  rþ   )
r^   r_   r   rõ   rö   Ú	TimestamprÞ   r  r   r   )r   r»   r¼   r  s       r   Útest_mismatched_index_dtypez)TestAsOfMerge.test_mismatched_index_dtypeÇ  s-  € ä�|‰|ä˜ZÓ(¨!¨SÐ1Ü˜ZÓ(¨!¨SÐ1Ü˜ZÓ(¨!¨SÐ1Ü˜ZÓ(¨!¨SÐ1ð	ò )ô
÷ ‰)�FÓ
ð 	ð —Z‘Z¤"§,¡,¨q£/Ñ1ˆŒ
ä—‘ä˜ZÓ(¨!¨S°#Ð6Ü˜ZÓ(¨!¨S°#Ð6Ü˜ZÓ(¨!¨S°#Ð6Ü˜ZÓ(¨!¨S°#Ð6ð	ò 2ô
÷ ‰)�FÓ
ð 	ð (ˆÜ�]‰]œ:¨SÔ1ñ 	XÜ�t˜U¨tÀÈ4ÐQUÈ,ÕW÷	X÷ 	Xñ 	Xús   ÄDÄD&c           	      ó  — t        j                  t        d«      ddgt        d«      ddgt        d«      ddgt        d«      ddggg d¢¬«      j                  d	«      }t        j                  t        d
«      dddgt        d
«      dddgt        d«      dddgt        d«      dddggg d¢¬«      j                  d	«      }t        j                  t        d«      dddgt        d«      dddgt        d«      dddgt        d«      dddggg d¢¬«      j                  d	«      }t	        ||ddddg¬«      }t        j                  ||«       t        j                  t        d¬«      5  t	        ||ddddgdg¬«       d d d «       y # 1 sw Y   y xY w)Nr0  r£   r§   r­   r1  r¨   r2  rW   r   r5  r6  r7  r8  r9  r:  r;  Tr3  r4  rþ   z,left_by and right_by must be the same lengthr  )ró   rú   r  r  )
r^   r_   r   rõ   r   r¸   r¹   rÞ   r  r   rº   s        r   Útest_multiby_indexedz"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Ó
ð 	ô Ø�% D°dÀÀd¸|ô
ˆô 	×Ñ˜h¨Ô/ä�]‰]ÜÐLô
ñ 
	ô ØØØØ Ø˜t˜Ø˜õ÷
	÷ 
	ñ 
	ús   Å E>Å>Fc           
      óÞ	  — t        j                  g g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘d	d
dddt        j                  t        j                  g‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d ¢‘g d!¢‘g d"¢‘g d"¢‘g d#¢‘g d#¢‘g d$¢‘g d%¢‘g d&¢‘g d'¢‘g d(¢‘g d)¢‘g d*¢‘g d+¢‘g d,¢‘g d-¢‘g d.¢‘g d/¢‘g d0¢‘g d1¢‘g d2¢‘g d2¢‘g d3¢‘g d4¢‘g d5¢‘g d6¢‘g d7¢‘g d8¢‘g d9¢‘g d:¢‘g d;¢‘g d;¢‘g d<¢‘g d=¢‘g d>¢‘g d?¢‘g d@¢‘g dA¢‘g dB¢‘g dC¢‘g dD¢‘g dE¢‘g dF¢‘g dG¢‘g dH¢‘g dI¢‘g dI¢‘dJj	                  dK«      ¬L«      }|dM   j                  dN«      |dM<   |dO   j                  dP«      |dO<   |dQ   j                  dN«      |dQ<   |dR   j                  dN«      |dR<   | j                  |«      }t        j                  g g dS¢‘g dT¢‘g dU¢‘g dV¢‘g dW¢‘g dX¢‘g dY¢‘g dZ¢‘g d[¢‘g d\¢‘g d]¢‘g d^¢‘g d_¢‘g d`¢‘g da¢‘g db¢‘g dc¢‘g dc¢‘g dd¢‘g de¢‘g df¢‘g dg¢‘g dh¢‘g de¢‘g di¢‘g dj¢‘g dj¢‘g dk¢‘g dl¢‘g dm¢‘g dn¢‘g do¢‘g dp¢‘g dp¢‘g dq¢‘g dq¢‘g dr¢‘g ds¢‘g dt¢‘g du¢‘g dv¢‘g dw¢‘g dx¢‘g dy¢‘g dz¢‘g d{¢‘g d|¢‘g d}¢‘g d~¢‘g d¢‘g d€¢‘g d€¢‘g d�¢‘g d‚¢‘g dƒ¢‘g d„¢‘g d…¢‘g d†¢‘g d‡¢‘g dˆ¢‘g d‰¢‘g d‰¢‘g dŠ¢‘g d‹¢‘g dŒ¢‘g d�¢‘g dŽ¢‘g d�¢‘g d�¢‘g d‘¢‘g d’¢‘g d“¢‘g d”¢‘g d•¢‘g d–¢‘g d—¢‘g d—¢‘d˜j	                  dK«      ¬L«      }|dM   j                  dN«      |dM<   |dO   j                  dP«      |dO<   | j                  |«      }t        j                  g g d™¢‘g dš¢‘g d›¢‘g dœ¢‘g dœ¢‘g dœ¢‘g dœ¢‘g d�¢‘g dž¢‘g dŸ¢‘g dŸ¢‘g dŸ¢‘g d ¢‘g d ¢‘g d ¢‘g d¡¢‘g d¢¢‘g d£¢‘g d¤¢‘g d¥¢‘g d¦¢‘g d§¢‘g d¨¢‘g d¨¢‘g d¨¢‘g d¨¢‘g d©¢‘g dª¢‘g d«¢‘g d¬¢‘g d¬¢‘g d­¢‘g d®¢‘g d®¢‘g d¯¢‘g d°¢‘g d¯¢‘g d¯¢‘g d°¢‘g d±¢‘g d±¢‘g d²¢‘g d³¢‘g d³¢‘g d´¢‘g dµ¢‘g d¶¢‘g d¶¢‘g d·¢‘g d·¢‘g d¸¢‘g d¹¢‘g d¹¢‘g dº¢‘g d¹¢‘g dº¢‘d»j	                  dK«      ¬L«      }|dQ   j                  dN«      |dQ<   |dR   j                  dN«      |dR<   | j                  |d¼¬½«      }t        ||d¾d¿¬À«      }t        j                  ||«       y )ÁNr}   r~   r   r�   r‚   rƒ   r„   r…   r3   r4   r†   r6   r    r‡   rˆ   rŠ   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   )ú20160525 13:30:00.084r4   z98.64Ú40r    rp   rq   )rB  r4   rp   Ú149ÚEDGXrp   rq   )ú20160525 13:30:00.086r4   rq   Ú500rG   rp   ú98.63)ú20160525 13:30:00.104r4   rH  Ú647rE  ú98.62rH  )rI  r4   rH  r-   rE  rK  rH  )rI  r4   rH  Ú50r    rK  rH  )rI  r4   rH  Ú70r    rK  rH  )rI  r4   rH  Ú1r    rK  rH  )rI  r4   rH  Ú62r    rK  rH  )rI  r4   rH  rD   r    rK  rH  )rI  r4   rH  r'   rG   rK  rH  )ú20160525 13:30:00.105r4   rH  r'   rG   rK  rH  )rP  r4   rH  Ú700rG   rK  rH  )ú20160525 13:30:00.106r4   rH  Ú61rE  rK  rH  )ú20160525 13:30:00.107r4   rH  r'   rG   rK  rH  )rT  r4   rH  Ú53rG   rK  rH  )ú20160525 13:30:00.108r4   rH  r'   rG   rK  rH  )rV  r4   rH  Ú839rG   rK  rH  )ú20160525 13:30:00.115r4   rH  Ú5rE  rK  rH  )ú20160525 13:30:00.118r4   rH  Ú295rE  rK  rH  )rZ  r4   rH  rY  rE  rK  rH  )ú20160525 13:30:00.128r4   rH  r'   r    rK  rH  )r\  r   ru   r'   rG   ru   ri   )ú20160525 13:30:00.129r4   rK  r'   r    ú98.61rH  )r]  r4   rK  rD   r    r^  rH  )r]  r4   rK  Ú59r    r^  rH  )r]  r4   rK  Ú31r    r^  rH  )r]  r4   rK  Ú69r    r^  rH  )r]  r4   rK  Ú12r    r^  rH  )r]  r4   rK  rb  rE  r^  rH  )r]  r4   rK  r'   rG   r^  rH  )ú20160525 13:30:00.130r   ri   Ú317rG   ú51.93ri   )rc  r   ri   Ú283rG   re  ri   )ú20160525 13:30:00.135r   re  r'   rE  ru   ri   )rg  r4   rK  r'   rG   r^  rK  )ú20160525 13:30:00.144r4   rK  rb  r    r^  rK  )rh  r4   rK  Ú88r    r^  rK  )rh  r4   rK  Ú162r    r^  rK  )rh  r4   r^  r'   r  r^  rK  )rh  r4   rK  rS  rG   r^  rK  )rh  r4   rK  Ú25rG   r^  rK  )rh  r4   rK  Ú14rG   r^  rK  )ú20160525 13:30:00.145r4   rK  rb  rG   ú98.6rH  )rm  r4   rK  r'   rG   rn  rH  )rm  r4   rH  r'   r    rn  rH  r˜   rV   rW   rY   rZ   r[   r\   rw   rx   r   r!   r$   r(   r)   r,   r.   r0   r2   r7   r9   r;   r>   r?   rA   rC   rE   rH   rL   rM   rN   rP   rQ   rT   )rB  r4   z98.6400rC  r    )rB  r4   rF   rD  rE  )rF  r4   rJ   rG  rG   )rI  r4   ú98.6300rJ  rE  )rI  r4   ro  r-   rE  )rI  r4   ro  rL  r    )rI  r4   ro  rM  r    )rI  r4   ro  rN  r    )rI  r4   ro  rO  r    )rI  r4   ro  rD   r    )rI  r4   ro  r'   rG   )rP  r4   ro  r'   rG   )rP  r4   ro  rQ  rG   )rR  r4   ro  rS  rE  )rT  r4   ro  r'   rG   )rT  r4   ro  rU  rG   )rV  r4   ro  r'   rG   )rV  r4   ro  rW  rG   )rX  r4   ro  rY  rE  )rZ  r4   ro  r[  rE  )rZ  r4   ro  rY  rE  )r\  r4   ro  r'   r    )r\  r   z51.9200r'   rG   )r]  r4   ú98.6200r'   r    )r]  r4   rp  rD   r    )r]  r4   rp  r_  r    )r]  r4   rp  r`  r    )r]  r4   rp  ra  r    )r]  r4   rp  rb  r    )r]  r4   rp  rb  rE  )r]  r4   rp  r'   rG   )rc  r   r   rd  rG   )rc  r   r   rf  rG   )rg  r   z51.9300r'   rE  )rg  r4   rp  r'   rG   )rh  r4   rp  rb  r    )rh  r4   rp  ri  r    )rh  r4   rp  rj  r    )rh  r4   z98.6100r'   r  )rh  r4   rp  rS  rG   )rh  r4   rp  rk  rG   )rh  r4   rp  rl  rG   )rm  r4   rp  rb  rG   )rm  r4   rp  r'   rG   )rm  r4   ro  r'   r    rU   re   rh   rj   rl   rm   ro   rr   rs   rt   )z20160525 13:30:00.079r   ru   ri   )z20160525 13:30:00.080r4   rp   rq   )rB  r4   rp   rq   )rF  r4   rp   rH  )z20160525 13:30:00.088r4   r‹   rH  )z20160525 13:30:00.089r4   rH  rH  )rI  r4   rH  rH  )rI  r4   rK  rH  )rP  r4   rK  rH  )rT  r4   rK  rH  )rX  r4   rK  rH  )rZ  r4   rK  rH  )r\  r4   rK  rH  )r]  r4   rK  rH  )r]  r4   r^  rH  )rc  r   re  ri   )rc  r4   r^  rH  )z20160525 13:30:00.131r4   r^  rK  )rg  r   ru   ri   )rg  r4   r^  rK  )z20160525 13:30:00.136r4   r^  rK  )rh  r4   r^  rK  )rm  r4   r^  rK  )rm  r4   r^  rH  )rm  r4   z98.60rH  rv   Try   r   r   r×   )
r^   r_   rš   r›   r`   ra   r   r   r¸   r¹   )r   Údatapathr½   rc   rz   r¾   s         r   Útest_basic2zTestAsOfMerge.test_basic2  s  € Ü—<‘<ðv
òðv
òðv
ò&ð'v
ò8ð9v
òJðKv
ò\ð]v
ònðov
ò@ðAv
ðT ,ØØØØÜ—F‘FÜ—F‘Fðð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ÑKÈCÓPôqy

ˆðt % WÑ-×4Ñ4°YÓ?ˆ�ÑØ'¨
Ñ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ÑCÀCÓHôaQ
ˆðd ! ™/×0Ñ0°Ó;ˆˆw‰Ø# JÑ/×6Ñ6°wÓ?ˆˆ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 *×/Ñ/°Ó4ôw<
ˆðz ˜u™×,Ñ,¨YÓ7ˆˆu‰Ø˜u™×,Ñ,¨YÓ7ˆˆu‰Ø—‘ ¨t�Ó4ˆä˜F F¨v¸(ÔCˆÜ
×Ñ˜f hÕ/r   c                 ó‚   — d„ } ||«      } ||«      } ||«      }t        ||d¬«      }t        j                  ||«       y )Nc                 óh   — | | j                   dk(     j                  dd¬«      j                  d¬«      S )Nr   r   r£   )ÚaxisTr   )r   r   r   ©Úxs    r   ú<lambda>z0TestAsOfMerge.test_basic_no_by.<locals>.<lambda>q  s6   € Øˆa�h‰h˜&Ñ Ñ!×&Ñ& x°aÐ&Ó8×DÑDÈ$ÐDÓOð r   r   rµ   rì   )r   rc   rœ   rz   Úfr½   r¾   s          r   Útest_basic_no_byzTestAsOfMerge.test_basic_no_byp  sD   € ñ
ˆñ
 �T“7ˆÙ�6“ˆÙ�6“ˆä˜F F¨vÔ6ˆÜ
×Ñ˜f hÕ/r   c                 ó†  — d}t        j                  t        |¬«      5  t        ||ddd¬«       d d d «       t        j                  t        d¬«      5  t        ||ddgd¬«       d d d «       t        j                  t        d¬«      5  t        ||d¬	«       d d d «       y # 1 sw Y   ŒqxY w# 1 sw Y   ŒHxY w# 1 sw Y   y xY w)
Nz6incompatible merge keys \[1\] .* must be the same typer  r   rw   r   )rù   rô   rØ   zcan only asof on a key for leftr×   )rØ   ©rÞ   r  r   r   r  s       r   Útest_valid_join_keysz"TestAsOfMerge.test_valid_join_keys}  s²   € ØGˆä�]‰]œ:¨SÔ1ñ 	TÜ�v˜v¨vÀÈ(ÕS÷	Tô �]‰]œ:Ð-NÔOñ 	KÜ�v˜v¨6°8Ð*<ÀÕJ÷	Kô �]‰]œ:Ð-NÔOñ 	4Ü�v˜v¨(Õ3÷	4ð 	4÷	Tð 	Tú÷	Kð 	Kú÷	4ð 	4ús#   žBÁB+ÂB7ÂB(Â+B4Â7C c                 óà   — t        j                  ||g«      j                  ddg«      j                  d¬«      }t	        ||dd¬«      }| j                  |«      }t        j                  ||«       y )Nr   r   Tr   r×   )r^   ÚconcatÚsort_valuesr   r   r   r¸   r¹   )r   rq  rc   rz   rœ   r  r¾   r½   s           r   Útest_with_duplicatesz"TestAsOfMerge.test_with_duplicates‰  sc   € ä�I‰I�v˜vÐ&Ó'ß‰[˜& (Ð+Ó,ß‰[˜dˆ[Ó#ð 	
ô
 ˜F A¨&°XÔ>ˆØ—>‘> $Ó'ˆÜ
×Ñ˜f hÕ/r   c                 óú   — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        ||d¬«      }t        j                  g d¢g d¢g d¢dœ«      }t        j                  ||«       y )	N)r£   r£   r®   ©r£   r­   r®   )Úkeyr«   )r£   r­   r­   )r„  r²   r„  rµ   )r„  r«   r²   r·   ©r   Údf1Údf2r¾   r½   s        r   Útest_with_duplicates_no_onz(TestAsOfMerge.test_with_duplicates_no_on“  s`   € Ü�l‰l¢9º)ÑDÓEˆÜ�l‰l¢9º9ÑEÓFˆÜ˜C ¨Ô/ˆÜ—<‘<Úª9Â9ÑMó
ˆô 	×Ñ˜f hÕ/r   c                 óˆ   — d}t        j                  t        |¬«      5  t        ||ddd¬«       d d d «       y # 1 sw Y   y xY w)Nz/allow_exact_matches must be boolean, passed foor  r   r   Úfoo©r¶   rØ   rÝ   r|  r  s       r   Útest_valid_allow_exact_matchesz,TestAsOfMerge.test_valid_allow_exact_matchesœ  s=   € Ø?ˆä�]‰]œ:¨SÔ1ñ 	ÜØ˜ 6¨hÈEõ÷	÷ 	ñ 	ús	   ž8¸Ac           
      ó  — t        ||ddt        d«      ¬«       t        |j                  «       |j                  «       ddd¬«       d}t        j                  t
        |¬«      5  t        ||ddd¬«       d d d «       t        j                  t
        |¬«      5  t        |j                  «       |j                  «       ddd	¬«       d d d «       d
}t        j                  t
        |¬«      5  t        ||ddt        d«       ¬«       d d d «       t        j                  t
        |¬«      5  t        |j                  «       |j                  «       ddd¬«       d d d «       y # 1 sw Y   ŒêxY w# 1 sw Y   Œ¦xY w# 1 sw Y   ŒrxY w# 1 sw Y   y xY w)Nr   r   Ú1srÚ   rö   r£   z6incompatible tolerance .*, must be compat with type .*r  r6  ztolerance must be positiveéÿÿÿÿ)r   r   r   rÞ   r  r   r  s       r   Útest_valid_tolerancez"TestAsOfMerge.test_valid_tolerance¤  si  € ä�6˜6 f°ÄYÈtÃ_ÕUô 	Ø×ÑÓ Ø×ÑÓ ØØØõ	
ð Hˆô �]‰]œ:¨SÔ1ñ 	LÜ�v˜v¨&°XÈÕK÷	Lô �]‰]œ:¨SÔ1ñ 	ÜØ×"Ñ"Ó$Ø×"Ñ"Ó$ØØØõ÷	ð +ˆô �]‰]œ:¨SÔ1ñ 	ÜØ˜ 6¨hÄ9ÈTÃ?ÐBRõ÷	ô
 �]‰]œ:¨SÔ1ñ 	ÜØ×"Ñ"Ó$Ø×"Ñ"Ó$ØØØõ÷	ð 	÷+	Lð 	Lú÷	ð 	ú÷	ð 	ú÷
	ð 	ús0   Á#EÂ-E)Ã)E5Ä'-FÅE&Å)E2Å5E>ÆF
c                 óÎ  — |j                  dd¬«      }|j                  dd¬«      }|j                  j                  rJ ‚|j                  j                  rJ ‚t        j                  t
        d¬«      5  t        ||dd¬«       d d d «       |j                  d«      }|j                  j                  sJ ‚|j                  j                  rJ ‚t        j                  t
        d¬«      5  t        ||dd¬«       d d d «       |j                  d«      }|j                  j                  sJ ‚|j                  j                  sJ ‚t        ||dd¬«       y # 1 sw Y   ŒÎxY w# 1 sw Y   ŒfxY w)	Nr   F)Ú	ascendingzleft keys must be sortedr  r   r×   zright keys must be sorted)r€  r   Úis_monotonic_increasingrÞ   r  Ú
ValueErrorr   r  s      r   Útest_non_sortedzTestAsOfMerge.test_non_sortedÒ  s8  € Ø×#Ñ# F°eÐ#Ó<ˆØ×#Ñ# F°eÐ#Ó<ˆð —;‘;×6Ò6Ð6Ð6Ø—;‘;×6Ò6Ð6Ð6Ü�]‰]œ:Ð-GÔHñ 	?Ü�v˜v¨&°XÕ>÷	?ð ×#Ñ# FÓ+ˆØ�{‰{×2Ò2Ð2Ð2Ø—;‘;×6Ò6Ð6Ð6Ü�]‰]œ:Ð-HÔIñ 	?Ü�v˜v¨&°XÕ>÷	?ð ×#Ñ# FÓ+ˆØ�{‰{×2Ò2Ð2Ð2Ø�{‰{×2Ò2Ð2Ð2ô 	�6˜6 f°Ö:÷	?ð 	?ú÷	?ð 	?ús   Á2EÃ&EÅEÅE$Útolerance_tsÚ1dayr£   )Údaysr   zdatetime.timedelta)Úidsc                 óT   — t        ||dd|¬«      }|}t        j                  ||«       y )Nr   r   rÚ   rì   )r   r–  rc   rz   rŸ   r¾   r½   s          r   Útest_tolerancezTestAsOfMerge.test_toleranceé  s0   € ô Ø�F˜v¨(¸lô
ˆð ˆÜ
×Ñ˜f hÕ/r   c                 ó  — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dt        j                  dgdœ«      }t	        ||d	d
d¬«      }t        j                  ||«       y )Nr¢   r¦   rª   ©r£   r­   r®   r°   é   r±   r£   rž  r´   r§   rã   ©r¶   rå   rŸ   ræ   rº   s        r   Útest_tolerance_forwardz$TestAsOfMerge.test_tolerance_forwardõ  ót   € ô �|‰|¢*º/ÑJÓKˆÜ—‘Ò#3ÒBRÑSÓTˆä—<‘<Úª/ÈÌBÏFÉFÐTVÈÑXó
ˆô ˜D %¨C¸9ÐPQÔRˆÜ
×Ñ˜f hÕ/r   c                 ó  — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dt        j                  dgdœ«      }t	        ||d	d
d¬«      }t        j                  ||«       y )Nr¢   r¦   rª   r�  r±   r£   rž  r´   r§   ré   rŸ  ræ   rº   s        r   Útest_tolerance_nearestz$TestAsOfMerge.test_tolerance_nearest  r¡  r   c           	      ó|  — t        j                  t        j                  t        d«      ddt        j
                  |¬«      t        j                  d«      dœ«      }t        j                  t        j                  t        d«      ddt        j
                  |¬«      t        d«      dœ«      }t        ||d	t        d
«      ¬«      }t        j                  t        j                  t        d«      ddt        j
                  |¬«      t        j                  d«      t        d«      dœ«      }t        j                  ||«       y )Nz
2016-01-02ÚDr¤   )ÚstartÚfreqÚperiodsÚtzrà   )ÚdateÚvalue1z
2016-01-01ÚABCDE)rª  Úvalue2rª  z1 day©r¶   rŸ   ÚBCDEE)rª  r«  r­  )r^   r_   Ú
date_ranger   ÚdatetimeÚUTCrš   ÚarangeÚlistr   r   r¸   r¹   )r   rà   r»   r¼   r¾   r½   s         r   Útest_tolerance_tzzTestAsOfMerge.test_tolerance_tz  sü   € ä�|‰|äŸ™Ü% lÓ3ØØÜ—|‘|Øôô Ÿ)™) A›,ñ	ó
ˆô —‘äŸ™Ü% lÓ3ØØÜ—|‘|Øôô ˜w›-ñ	ó
ˆô ˜D %¨F¼iÈÓ>PÔQˆä—<‘<äŸ™Ü% lÓ3ØØÜ—|‘|Øôô Ÿ)™) A›,Ü˜w›-ñ
ó
ˆô 	×Ñ˜f hÕ/r   c                 ó  — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢ddt        j                  gdœ«      }t	        ||d	d
d¬«      }t        j                  ||«       y )N)çš™™™™™ñ?g      @gÍÌÌÌÌÌ%@r¦   rª   )r6  ç      @çffffff
@g      @g      '@r±   r£   r¹  r´   r§   ré   ç      à?rŸ  ræ   rº   s        r   Útest_tolerance_floatz"TestAsOfMerge.test_tolerance_float:  s{   € ä�|‰|Ò"2ÂÑPÓQˆÜ—‘Ú,Ò;UÑVó
ˆô —<‘<â%Ú+Ø ¤b§f¡fÐ-ñó
ˆô ˜D %¨C¸9ÐPSÔTˆÜ
×Ñ˜f hÕ/r   c           
      óÊ   — |j                  d«      }|j                  d«      }|j                  d«      }t        ||dddt        d«      ¬«      }t        j                  ||«       y )Nr   Tr   r—  )ró   rú   rØ   rŸ   )rõ   r   r   r¸   r¹   )r   rc   rz   rŸ   r½   r¾   s         r   Útest_index_tolerancez"TestAsOfMerge.test_index_toleranceL  se   € à×&Ñ& vÓ.ˆØ×!Ñ! &Ó)ˆØ×!Ñ! &Ó)ˆäØØØØØÜ Ó'ô
ˆô 	×Ñ˜f hÕ/r   c                 óî  — t        ||ddd¬«      }t        j                  ddddd	t        j                  t        j                  gg d
¢g d¢g d¢g d¢g d¢g d¢g d¢ddddd	t        j                  t        j                  gddddd	t        j                  t        j                  gddddd	t        j                  t        j                  gddddd	t        j                  t        j                  gddddd	t        j                  t        j                  gddddd	t        j                  t        j                  gddddd	t        j                  t        j                  gddddd	t        j                  t        j                  gdddddt        j                  t        j                  gdddddt        j                  t        j                  gg d¢g d ¢g d!¢g d"¢g d#¢g d ¢g d$¢g d%¢g d%¢gd&j                  d'«      ¬(«      }|d)   j                  d*«      |d)<   |d+   j                  d,«      |d+<   |d-   j                  d*«      |d-<   |d.   j                  d*«      |d.<   | j                  |«      }t        j                  ||«       y )/Nr   r   Fr‹  r   r   ri   r   r    r~   r   r�   r‚   rƒ   r„   r…   r3   r4   r†   r6   r8   r‰   r:   r‹   r=   r@   rB   rD   rp   rG   r‘   r’   r“   r”   r•   ©rR   r   ri   rS   r    ri   ri   ©rR   r   ri   r'   r    ri   ri   r˜   rV   rW   rY   rZ   r[   r\   rw   rx   )
r   r^   r_   rš   r›   r`   ra   r   r¸   r¹   ©r   rc   rz   r¾   r   r½   s         r   Útest_allow_exact_matchesz&TestAsOfMerge.test_allow_exact_matches\  s“  € ÜØ�F˜v¨(Èô
ˆô �\‰\ð ,ØØØØÜ—F‘FÜ—F‘Fðòòòòòòòð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð )¨&°'¸3ÀÌÏÉÔPR×PVÑPVÐWØ(¨&°'¸3ÀÌÏÉÔPR×PVÑPVÐWòòòòòòòòòðwdðJ F×KÑKÈCÓPôMg
ˆðP ˜‘k×(Ñ(¨Ó3ˆˆ7‰Ø˜J™×.Ñ.¨wÓ7ˆˆ:‰Ø�u‘I×$Ñ$ YÓ/ˆˆ5‰	Ø�u‘I×$Ñ$ YÓ/ˆˆ5‰	Ø—>‘> "Ó%ˆÜ
×Ñ˜f hÕ/r   c                 óþ   — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢g d¢dœ«      }t        ||dd	d
¬«      }t        j                  ||«       y )Nr¢   r¦   rª   r�  r±   )r­   r°   rž  r´   r§   rã   F©r¶   rå   rÝ   r·   rº   s        r   Ú test_allow_exact_matches_forwardz.TestAsOfMerge.test_allow_exact_matches_forwardO	  óm   € ô �|‰|¢*º/ÑJÓKˆÜ—‘Ò#3ÒBRÑSÓTˆä—<‘<Úª/Ê
ÑSó
ˆô Ø�%˜C¨9È%ô
ˆô 	×Ñ˜f hÕ/r   c                 óþ   — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢g d¢dœ«      }t        ||dd	d
¬«      }t        j                  ||«       y )Nr¢   r¦   rª   r�  r±   )r­   r®   rž  r´   r§   ré   FrÄ  r·   rº   s        r   Ú test_allow_exact_matches_nearestz.TestAsOfMerge.test_allow_exact_matches_nearest^	  rÆ  r   c                 ó  — t        ||ddt        d«      d¬«      }t        j                  dddd	d
t        j
                  t        j
                  gg d¢g d¢g d¢g d¢g d¢g d¢g d¢ddddd
t        j
                  t        j
                  gddddd
t        j
                  t        j
                  gddddd
t        j
                  t        j
                  gddddd
t        j
                  t        j
                  gdddd	d
t        j
                  t        j
                  gddddd
t        j
                  t        j
                  gddddd
t        j
                  t        j
                  gddddd
t        j
                  t        j
                  gdddddt        j
                  t        j
                  gdddddt        j
                  t        j
                  gg d ¢g d!¢g d"¢g d#¢g d$¢g d!¢g d%¢g d&¢g d&¢gd'j                  d(«      ¬)«      }|d*   j                  d+«      |d*<   |d,   j                  d-«      |d,<   |d.   j                  d+«      |d.<   |d/   j                  d+«      |d/<   | j                  |«      }t        j                  ||«       y )0Nr   r   Ú100msFrÜ   r   r   ri   r   r    r~   r   r�   r‚   rƒ   r„   r…   r3   r4   r†   r6   r8   r‰   r:   r‹   r=   r@   rB   rD   rp   rG   r‘   r’   r“   r”   r•   r¿  rÀ  r˜   rV   rW   rY   rZ   r[   r\   rw   rx   )r   r   r^   r_   rš   r›   r`   ra   r   r¸   r¹   rÁ  s         r   Ú&test_allow_exact_matches_and_tolerancez4TestAsOfMerge.test_allow_exact_matches_and_tolerancem	  sŸ  € ÜØØØØÜ Ó(Ø %ô
ˆô �\‰\ð ,ØØØØÜ—F‘FÜ—F‘Fðòòòòòòòð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð ,ØØØØÜ—F‘FÜ—F‘Fðð )¨&°'¸3ÀÌÏÉÔPR×PVÑPVÐWØ(¨&°'¸3ÀÌÏÉÔPR×PVÑPVÐWòòòòòòòòòðwdðJ F×KÑKÈCÓPôMg
ˆðP ˜‘k×(Ñ(¨Ó3ˆˆ7‰Ø˜J™×.Ñ.¨wÓ7ˆˆ:‰Ø�u‘I×$Ñ$ YÓ/ˆˆ5‰	Ø�u‘I×$Ñ$ YÓ/ˆˆ5‰	Ø—>‘> "Ó%ˆÜ
×Ñ˜f hÕ/r   c           	      ó~  — t        j                  t        dg«      dgdœ«      }t        j                  t        ddg«      ddgdœ«      }t        ||d¬	«      }t        j                  t        dg«      dgdgd
œ«      }t	        j
                  ||«       t        ||dd¬«      }t        j                  t        dg«      dgdgd
œ«      }t	        j
                  ||«       t        ||ddt        d«      ¬«      }t        j                  t        dg«      dgt        j                  gd
œ«      }t	        j
                  ||«       y )Nú2016-07-15 13:30:00.030Úbob©r   Úusernameú2016-07-15 13:30:00.000r£   r­   ©r   Úversionr   rµ   ©r   rÐ  rÓ  F)r¶   rÝ   rÛ   ©r¶   rÝ   rŸ   )	r^   r_   r   r   r¸   r¹   r   rš   r›   r…  s        r   Ú'test_allow_exact_matches_and_tolerance2z5TestAsOfMerge.test_allow_exact_matches_and_tolerance2e
  sG  € ä�l‰lÜ Ð";Ð!<Ó=ÈEÈ7ÑSó
ˆô �l‰lä#Ø.Ð0IÐJóð ˜q˜6ñ	ó
ˆô ˜C ¨Ô0ˆÜ—<‘<ä#Ð%>Ð$?Ó@Ø"˜GØ˜3ñó
ˆô 	×Ñ˜f hÔ/ä˜C ¨ÀUÔKˆÜ—<‘<ä#Ð%>Ð$?Ó@Ø"˜GØ˜3ñó
ˆô 	×Ñ˜f hÔ/äØØØØ %Ü Ó'ô
ˆô —<‘<ä#Ð%>Ð$?Ó@Ø"˜GÜŸF™F˜8ñó
ˆô 	×Ñ˜f hÕ/r   c           	      ó~  — t        j                  t        ddg«      ddgdœ«      }t        j                  t        ddg«      ddgdœ«      }t        ||d	d
t	        d«      ¬«      }t        j                  t        ddg«      ddgt
        j                  t
        j                  gdœ«      }t        j                  ||«       y )NrÍ  rÎ  ÚcharlierÏ  rÑ  r£   r­   rÒ  r   FrÛ   rÕ  rÔ  )	r^   r_   r   r   r   rš   r›   r¸   r¹   r…  s        r   Ú'test_allow_exact_matches_and_tolerance3z5TestAsOfMerge.test_allow_exact_matches_and_tolerance3—
  sÑ   € ä�l‰lä#Ø.Ð0IÐJóð # IÐ.ñ	ó
ˆô �l‰lä#Ø.Ð0IÐJóð ˜q˜6ñ	ó
ˆô ØØØØ %Ü Ó'ô
ˆô —<‘<ä#Ø.Ð0IÐJóð # IÐ.ÜŸF™F¤B§F¡FÐ+ñó
ˆô 	×Ñ˜f hÕ/r   c                 ó  — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢t        j                  ddgdœ«      }t	        ||d	d
dd¬«      }t        j                  ||«       y )Nr¢   r¦   rª   ©r£   r®   é   r¯   rž  r±   r¯   rž  r´   r§   rã   Fr£   ©r¶   rå   rÝ   rŸ   ræ   rº   s        r   Ú.test_allow_exact_matches_and_tolerance_forwardz<TestAsOfMerge.test_allow_exact_matches_and_tolerance_forward¼
  ó€   € ô �|‰|¢*º/ÑJÓKˆÜ—‘Ò#3ÒBRÑSÓTˆä—<‘<Úª/ÌÏÉÐQRÐTVÈÑXó
ˆô ØØØØØ %Øô
ˆô 	×Ñ˜f hÕ/r   c                 ó  — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢t        j                  ddgd	œ«      }t	        ||d
ddd¬«      }t        j                  ||«       y )Nr¢   r¦   rª   rÛ  )r£   r®   rÜ  r°   rž  r±   rÜ  rž  r´   r§   ré   Fr£   rÝ  ræ   rº   s        r   Ú.test_allow_exact_matches_and_tolerance_nearestz<TestAsOfMerge.test_allow_exact_matches_and_tolerance_nearestÐ
  rß  r   c           
      ó2  — t        j                  g d¢g d¢g d¢dœ«      }t        j                  g d¢g d¢g d¢dœ«      }t        j                  g d¢g d¢g d¢dt        j                  d	d
dgdœ«      }t	        ||ddd¬«      }t        j                  ||«       y )N©r£   r¤   r¥   é   é   )ÚXræ  ÚYÚZrç  ©r§   r¨   r©   ÚdÚe©r§   r¨   r«   ©r£   r¯   rž  rå  é   )ræ  rè  rç  rè  rç  ©r§   r¨   r²   r£   rž  rå  rî  ©r§   r¨   r«   r²   r§   r¨   rã   ©r¶   rØ   rå   ræ   rº   s        r   Útest_forward_byzTestAsOfMerge.test_forward_byä
  s’   € ô �|‰|â'Ú.Ú5ñó
ˆô —‘â'Ú.Ú/ñó
ˆô —<‘<â'Ú.Ú5Ø¤§¡¨¨R°Ð4ñ	ó
ˆô ˜D %¨C°CÀ9ÔMˆÜ
×Ñ˜f hÕ/r   c                 ó  — t        j                  g d¢g d¢g d¢dœ«      }t        j                  g d¢g d¢g d¢dœ«      }t        j                  g d¢g d¢g d¢g d¢d	œ«      }t        ||d
dd¬«      }t        j                  ||«       y )Nrã  )ræ  ræ  rè  rè  rç  ré  rì  rí  )ræ  rè  rè  rè  rç  rï  )r£   r£   rž  rž  rî  rð  r§   r¨   ré   rñ  r·   rº   s        r   Útest_nearest_byzTestAsOfMerge.test_nearest_by  sƒ   € ô �|‰|â'Ú.Ú5ñó
ˆô —‘â'Ú.Ú/ñó
ˆô —<‘<â'Ú.Ú5Ú/ñ	ó
ˆô ˜D %¨C°CÀ9ÔMˆÜ
×Ñ˜f hÕ/r   c                 ó\  — t        j                  t        g d¢«      g d¢g d¢dœg d¢¬«      }t        j                  t        g d¢«      g d¢g d¢d	œg d	¢¬«      }t        ||d
d¬«      }t        j                  t        g d¢«      g d¢g d¢g d¢dœg d¢¬«      }t	        j
                  ||«       y )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«  rW   )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   r¸   r¹   r…  s        r   Útest_by_intzTestAsOfMerge.test_by_int   s²   € ä�l‰lä#òóò 'Ú3ñò .ô
ˆô" �l‰lä#ò	óò 0ÚBñò  .ô#
ˆô( ˜C ¨°EÔ:ˆä—<‘<ä#òóò 'Ú3Ú3ñò 8ô
ˆô$ 	×Ñ˜f hÕ/r   c                 óp  — t        j                  g d¢t        d«      dœddg¬«      }t        j                  g d¢g d¢d	œdd
g¬«      }|j                  d«      j	                  d¬«      }t        ||d¬«      }t        j                  t        d«      g d¢g d¢dœg d¢¬«      }t        j                  ||«       y )N)ç
×£p=
@çHPüs×b?çáz®G!9@çÍÌÌÌÌ@u@çHáz®Ç>@çš™™™™C�@çÞqŠŽäò?ÚABCDEFG)rY   Úsymbolr  rY   rW   )ç        r6  ç      Y@)ç-Cëâ6?ç{®Gáz„?çš™™™™™©?)rY   Úmpvr  Tr   rµ   ÚBGACEDF)r  r  r   r  r  r  r  )r  r  r  r  r  r  r  )r  rY   r  ©r^   r_   r´  r€  r   r   r¸   r¹   r…  s        r   Útest_on_floatzTestAsOfMerge.test_on_float]  s­   € ä�l‰lâNÜ˜y›/ñð ˜wÐ'ô
ˆô �l‰lÚ'Ò0DÑEØ˜eÐ$ô
ˆð
 �o‰o˜gÓ&×2Ñ2¸Ð2Ó=ˆä˜C ¨Ô1ˆä—<‘<ä˜y›/ÚNÚEñò
 /ô
ˆô 	×Ñ˜f hÕ/r   c                 óT  — t        j                  |«      j                  }t        j                  g d¢t        d«      dœddg¬«      } ||j                  «      |_        t        j                  g d¢t        d«      d	œdd
g¬«      } ||j                  «      |_        |j                  d«      j                  d¬«      }t        ||d¬«      }t        j                  t        d«      g d¢t        d«      dœg d¢¬«      } ||j                  «      |_        t        j                  ||«       y )N©r¤   r­   é   rË   éN   éx   éO   r  )r<  r  r  r<  rW   ©r   éP   r  é}   Úxyzw)r<  r¾   r¾   Tr   rµ   ÚBACEGDF©r­   r¤   r  r  r  rË   r  Úxxxxxyz)r  r<  r¾   )rš   r*  Útyper^   r_   r´  r<  r€  r   r   r¸   r¹   ©r   Úany_real_numpy_dtyper*  r†  r‡  r¾   r½   s          r   Útest_on_specialized_typez&TestAsOfMerge.test_on_specialized_type{  sô   € ä—‘Ð-Ó.×3Ñ3ˆä�l‰lÚ2¼dÀ9»oÑNØ˜wÐ'ô
ˆñ ˜#Ÿ)™)Ó$ˆŒ	ä�l‰lÚ'´4¸³<Ñ@Ø˜hÐ'ô
ˆñ ˜#Ÿ)™)Ó$ˆŒ	à�o‰o˜gÓ&×2Ñ2¸Ð2Ó=ˆÜ˜C ¨Ô1ˆä—<‘<ä˜y›/Ú5Ü˜y›/ñò
 2ô
ˆñ ˜xŸ~™~Ó.ˆŒä
×Ñ˜f hÕ/r   c                 óÔ  — t        j                  |«      j                  }t        j                  g d¢g d¢t        d«      dœg d¢¬«      } ||j                  «      |_        t        j                  g d¢g d¢t        d	«      d
œg d
¢¬«      } ||j                  «      |_        |j                  d«      j                  d¬«      }t        ||dd¬«      }t        j                  t        d«      g d¢g d¢t         j                  dt         j                  t         j                  t         j                  ddgdœg d¢¬«      } ||j                  «      |_        t        j                  ||«       y )Nr  )r£   r­   r®   r­   r®   r£   r­   r  )r<  r„  r  )r  r„  r<  rW   r  )r£   r­   r­   r®   r  )r<  r„  r¾   r<  Tr   r„  r×   r  )r­   r£   r®   r®   r­   r­   r£   r  rw  Úy)r  r„  r<  r¾   )rš   r*  r  r^   r_   r´  r<  r€  r   r   r›   r¸   r¹   r   s          r   Útest_on_specialized_type_by_intz-TestAsOfMerge.test_on_specialized_type_by_intš  s  € ä—‘Ð-Ó.×3Ñ3ˆä�l‰lâ5Ú,Ü˜y›/ñò
 /ô
ˆñ ˜#Ÿ)™)Ó$ˆŒ	ä�l‰lÚ'²ÌÈVËÑUÚ.ô
ˆñ ˜#Ÿ)™)Ó$ˆŒ	à�o‰o˜gÓ&×2Ñ2¸Ð2Ó=ˆÜ˜C ¨°UÔ;ˆä—<‘<ä˜y›/Ú,Ú5ÜŸ6™6 3¬¯©´·±¼¿¹ÀÀSÐIñ	ò 9ô
ˆñ ˜xŸ~™~Ó.ˆŒä
×Ñ˜f hÕ/r   c                 óÆ  — t        j                  t        d«      g d¢g d¢dœg d¢¬«      }t        j                  g d¢g d¢g d¢d	œg d	¢¬«      }|j                  d
«      j	                  d¬«      }|j                  d
«      j	                  d¬«      }t        ||d
d¬«      }t        j                  t        d«      g d¢g d¢g d¢dœg d¢¬«      }t        j                  ||«       y )NÚ	AAABBBCCC)	r£   r­   r®   r£   r­   r®   r£   r­   r®   )	ç®Gáz
@çÜ×�sF
@ç£¼
@ç)\�Âõ()@ç®Gáz.)@ç      )@çfffff¢w@ç33333£w@ç     ¤w@)r  r!  rY   rW   )	r£   r£   r£   r­   r­   r­   r®   r®   r®   )	r	  r6  r
  r	  ç      @r
  r	  r1  g     @�@)	r  r  r  r  r  çš™™™™™¹?r  ç      Ð?r6  )r!  rY   r  rY   Tr   r!  r×   )	r®   r­   r£   r®   r£   r­   r£   r­   r®   )	r*  r)  r(  r-  r+  r,  r.  r/  r0  )	r  r  r  r3  r  r  r  r2  r3  )r  r!  rY   r  r  r…  s        r   Útest_on_float_by_intz"TestAsOfMerge.test_on_float_by_int¾  s×   € ä�l‰lä˜{Ó+Ú3ò
ñò 0ô!
ˆô& �l‰lâ3ÚMÚQñò
 -ô
ˆð �o‰o˜gÓ&×2Ñ2¸Ð2Ó=ˆØ�o‰o˜gÓ&×2Ñ2¸Ð2Ó=ˆä˜C ¨°VÔ<ˆä—<‘<ä˜{Ó+Ú3ò
ò Qñò  7ô#
ˆô( 	×Ñ˜f hÕ/r   c                 óô   — d}t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }t        j                  t        |¬«      5  t        ||d¬	«       d d d «       y # 1 sw Y   y xY w)
Nú@Incompatible merge dtype, .*, both sides must have numeric dtyper¢   r¦   ©r«   r§   r¬   ©r²   r§   r  r§   rµ   ©r^   r_   rÞ   r  r   r   ©r   r  r»   r¼   s       r   Ú test_merge_datatype_error_raisesz.TestAsOfMerge.test_merge_datatype_error_raises÷  s\   € ØQˆä�|‰|ªº/ÑJÓKˆÜ—‘ª?ÂÑQÓRˆä�]‰]œ:¨SÔ1ñ 	,Ü�t˜U sÕ+÷	,÷ 	,ñ 	,ús   ÁA.Á.A7c                 ó@  — d}t        j                  g d¢t        j                  g d¢«      dœ«      }t        j                  g d¢t        j                  g d¢«      dœ«      }t        j                  t
        |¬«      5  t        ||d	¬
«       d d d «       y # 1 sw Y   y xY w)NzHincompatible merge keys \[0\] .* both sides category, but not equal onesr¢   r¦   r7  r¬   )r§   ræ  r©   ræ  r¨   r8  r  r§   rµ   )r^   r_   ÚCategoricalrÞ   r  r   r   r:  s       r   Ú,test_merge_datatype_categorical_error_raisesz:TestAsOfMerge.test_merge_datatype_categorical_error_raises   sƒ   € ð!ð 	ô
 �|‰|Ú#¬"¯.©.ºÓ*IÑJó
ˆô —‘â,Ü—^‘^Ò$=Ó>ñó
ˆô �]‰]œ:¨SÔ1ñ 	,Ü�t˜U sÕ+÷	,÷ 	,ñ 	,ús   Á<BÂBc                 ó  — t        j                  dgdgt        j                  dg«      dœ«      }t        ||dddg¬«      }t        j                  dgdgt        j                  dg«      dœ«      }t	        j
                  ||«       y )Nr   ©rw  r$  Úzrw  r$  rA  r×   )r^   r_   r=  r   r¸   r¹   )r   r   r¾   r½   s       r   Ú:test_merge_groupby_multiple_column_with_categorical_columnzHTestAsOfMerge.test_merge_groupby_multiple_column_with_categorical_column  sn   € ä�\‰\  ¨1¨#´B·N±NÀAÀ3Ó4GÑHÓIˆÜ˜B  s°°S¨zÔ:ˆÜ—<‘< q c°°¼"¿.¹.È!ÈÓ:MÑ NÓOˆÜ
×Ñ˜f hÕ/r   Úfuncc                 ó   — | S )N© rv  s    r   rx  zTestAsOfMerge.<lambda>  s   € ˜1€ r   Únumericr±  Úsider»   r¼   c                 ób  — d|› d�} |ddt         j                  g«      } |g d¢«      }t        j                  |g d¢dœ«      }t        j                  |g d¢d	œ«      }t	        j
                  t        |¬
«      5  |dk(  rt        ||d¬«       nt        ||d¬«       d d d «       y # 1 sw Y   y xY w)Nz"Merge keys contain null values on z sider6  r1  )r6  r1  g      $@r¦   rª   )r£   r¯   rž  r±   r  r»   r§   rµ   )rš   r›   r^   r_   rÞ   r  r”  r   )r   rC  rG  r  ÚnullsÚ	non_nullsÚdf_nullr   s           r   Útest_merge_on_nansz TestAsOfMerge.test_merge_on_nans  sš   € ð 3°4°&¸Ð>ˆÙ�c˜3¤§¡Ð'Ó(ˆÙÒ)Ó*ˆ	Ü—,‘, UºÑHÓIˆÜ�\‰\ 	º
ÑCÓDˆä�]‰]œ:¨SÔ1ñ 	0Ø�vŠ~Ü˜7 B¨3Ö/ä˜2˜w¨3Õ/÷		0÷ 	0ñ 	0ús   Á9#B%Â%B.c                 ó2  — t        j                  t         j                  ddg|¬«      }|j                  j                  dv r4t        j                  |j                  j                  «      j                  }n3t        j                  |j                  j                  «      j                  }||d<   t        j                  |g d¢g d¢g d¢d	œ«      }t        j                  |g d
¢g d¢g d¢d	œ«      }t        ||ddgd¬«      }t        j                  |g d¢g d¢g d¢dœ«      }t        j                  t
        j                  t
        j                  t
        j                  gt        ¬«      |d<   |r|d   j                  d«      |d<   t        j                   ||«       y )Nr   r£   ©r*  )ÚiÚur­   )ÚHELLOÚToÚYou)r­   rÜ  r¯   )r§   r©   rë  ©Úby_col1Úby_col2Úon_colr<  )ÚWORLDÚWideÚWeb)r£   r­   r¯   )r¨   rê  ry  rU  rV  rW  ©rØ   r¶   ©rU  rV  rW  Úvalue_xÚvalue_yÚstr)r^   ÚarrayÚNAr*  Úkindrš   ÚiinfoÚnumpy_dtypeÚmaxÚfinfor_   r   r›   r+  ra   r¸   r¹   )	r   Úany_numeric_ea_dtypeÚusing_infer_stringÚarrÚmax_valr»   r¼   r¾   r½   s	            r   Útest_by_nullablezTestAsOfMerge.test_by_nullable,  sC  € ô �h‰hœŸ™˜q !�}Ð,@ÔAˆØ�9‰9�>‰>˜ZÑ'Ü—h‘h˜sŸy™y×4Ñ4Ó5×9Ñ9‰Gä—h‘h˜sŸy™y×4Ñ4Ó5×9Ñ9ˆGð ˆˆA‰ä�|‰|àÚ1Ú#Ú(ñ	ó
ˆô —‘àÚ3Ú#Ú(ñ	ó
ˆô ˜D %¨Y¸	Ð,BÀxÔPˆÜ—<‘<àÚ1Ú#Ú*ñ	ó
ˆô !Ÿh™h¬¯©´·±¼¿¹Ð'?ÄvÔNˆ�ÑÙØ"*¨9Ñ"5×"<Ñ"<¸UÓ"CˆH�YÑÜ
×Ñ˜f hÕ/r   c                 ó¬  — t        j                  t        j                  dg«      j                  d«      dgdgdœ«      }t        j                  t        j                  dg«      j                  d«      dgdgdœ«      }t	        ||dd	¬
«      }t        j                  t        j
                  dd¬«      dddggg d¢¬«      }t        j                  ||«       y )Nú
2018-01-01r²  r­   r§   )Úby_colrW  Úvaluesr£   r¨   rn  rW  r[  ©r©  )rn  rW  Úvalues_xÚvalues_yrW   )r^   r_   ÚDatetimeIndexÚtz_localizer   r=  r¸   r¹   )r   r»   r¼   r¾   r½   s        r   Útest_merge_by_col_tz_awarez(TestAsOfMerge.test_merge_by_col_tz_awareZ  sÃ   € ä�|‰|ä×*Ñ*¨L¨>Ó:×FÑFÀuÓMØ˜#Ø˜%ñó
ˆô —‘ä×*Ñ*¨L¨>Ó:×FÑFÀuÓMØ˜#Ø˜%ñó
ˆô ˜D %¨H¸ÔBˆÜ—<‘<Ü�l‰l˜<¨EÔ2°A°s¸CÐ@ÐAÚ@ô
ˆô 	×Ñ˜f hÕ/r   c                 óD  — t        j                  t        j                  dg«      j                  d«      dgdgdgdœ«      }t        j                  t        j                  dg«      j                  d«      dgdgd	gdœ«      }t	        ||d
dgd¬«      }t        j                  t        j
                  dd¬«      dddggg d¢¬«      }t        j                  t        j                  gt        ¬«      |d<   |r|d   j                  d«      |d<   t        j                  ||«       y )Nrm  r²  rQ  r­   r§   rT  rX  r£   r¨   rU  rV  rW  r[  rp  r\  rW   rN  r^  r_  )r^   r_   rs  rt  r   r=  rš   r`  r›   r+  ra   r¸   r¹   )r   rh  r»   r¼   r¾   r½   s         r   Útest_by_mixed_tz_awarez$TestAsOfMerge.test_by_mixed_tz_awareq  s
  € ä�|‰|ä×+Ñ+¨\¨NÓ;×GÑGÈÓNØ#˜9Ø˜#Ø˜ñ	ó
ˆô —‘ä×+Ñ+¨\¨NÓ;×GÑGÈÓNØ#˜9Ø˜#Ø˜ñ	ó
ˆô ˜D %¨Y¸	Ð,BÀxÔPˆÜ—<‘<Ü�l‰l˜<¨EÔ2°G¸QÀÐDÐEÚ?ô
ˆô !Ÿh™h¬¯© x´vÔ>ˆ�ÑÙØ"*¨9Ñ"5×"<Ñ"<¸UÓ"CˆH�YÑÜ
×Ñ˜f hÕ/r   )rZ   Úint16zm8[ns]zM8[us]c                 óx  — t        j                  t        j                  dg|¬«      dgdgdœ«      }t        j                  t        j                  dg|¬«      dgdgdœ«      }t	        ||dd¬	«      }t        j                  t        j                  dg|¬«      dgdgdgd
œ«      }t        j                  ||«       y )Nr£   rN  r­   r§   )rn  rW  r<  r¨   rn  rW  r[  )rn  rW  r]  r^  )r^   r_   rš   r`  r   r¸   r¹   )r   r*  r»   r¼   r¾   r½   s         r   Útest_by_dtypezTestAsOfMerge.test_by_dtype�  s¶   € ô �|‰|äŸ(™( A 3¨eÔ4Ø˜#Ø˜ñó
ˆô —‘äŸ(™( A 3¨eÔ4Ø˜#Ø˜ñó
ˆô ˜D %¨H¸ÔBˆÜ—<‘<äŸ(™( A 3¨eÔ4Ø˜#Ø˜5Ø˜5ñ	ó
ˆô 	×Ñ˜f hÕ/r   c                 ó>  — |dk(  rt        j                  d«       t        j                  t	        t        g d¢g d¢d¬«      «      ddg¬	«      }t        j                  |d   d
«      j                  d|› d�«      |d<   t        j                  t	        t        g d¢g d¢d¬«      «      ddg¬	«      }t        j                  |d   d
«      j                  d|› d�«      |d<   t        j                  t	        t        g d¢g d¢dt        j                  ddt        j                  t        j                  gd¬«      «      g d¢¬	«      }t        j                  |d   d
«      j                  d|› d�«      |d<   t        ||dt        d«      d¬«      }t        j                  ||«       y )NrÁ   zHThis test is invalid with unit='s' because that would round left['time'])r   r¤   r¥   rå  é   r  )r   r£   r­   r®   rÜ  r¤   T)Ústrictr   r»   rW   Úmszm8[rÃ   )r   r®   é	   rä  rå  é   r¼   r   r­   rÜ  )r   r»   r¼   Ú1msré   )r¶   rŸ   rå   )rÞ   rß   r^   r_   r´  ÚzipÚto_timedeltara   rš   r›   r   r   r¸   r¹   )r   rà   r»   r¼   r½   r¾   s         r   Ú test_timedelta_tolerance_nearestz.TestAsOfMerge.test_timedelta_tolerance_nearest©  sm  € à�3Š;Ü�K‰Kð%ôô
 �|‰|Ü”Ò+Ò-?ÈÔMÓNØ˜VÐ$ô
ˆô
 —‘ t¨F¡|°TÓ:×AÑAÀCÈÀvÈQÀ-ÓPˆˆV‰ä—‘Ü”Ò*Ò,>ÀtÔLÓMØ˜WÐ%ô
ˆô
 Ÿ™¨¨f©°tÓ<×CÑCÀcÈ$ÈÈqÀMÓRˆˆf‰ä—<‘<ÜÜÚ*Ú&ØœŸ™  1¤b§f¡f¬b¯f©fÐ5Øô	óò .ô

ˆô Ÿ?™?¨8°FÑ+;¸TÓB×IÑIÈCÐPTÈvÐUVÈ-ÓXˆ�ÑäØ�%˜F¬i¸Ó.>È)ô
ˆô 	×Ñ˜f hÕ/r   c                 ó¤  — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }|d   j                  |«      |d<   |d   j                  |«      |d<   t        j                  g d¢g d¢t        j                  ddgd	œ«      }|d   j                  |«      |d<   t        ||dd
¬«      }t        j                  ||«       y )N)r   r¥   r|  rƒ  rª   )r¤   rå  r  r±   r§   r6  r7  r´   r¥   r®  )r^   r_   ra   rš   r›   r   r¸   r¹   )r   Úany_int_dtyper»   r¼   r½   r¾   s         r   Útest_int_type_tolerancez%TestAsOfMerge.test_int_type_toleranceÓ  s¸   € ô �|‰|¢+º9ÑEÓFˆÜ—‘¢;ºYÑGÓHˆØ˜‘I×$Ñ$ ]Ó3ˆˆS‰	Ø˜3‘Z×&Ñ& }Ó5ˆˆc‰
ä—<‘<Úª9ÄBÇFÁFÈCÐQTÐCUÑVó
ˆð ! ™×,Ñ,¨]Ó;ˆ�‰ä˜D %¨C¸2Ô>ˆÜ
×Ñ˜f hÕ/r   c           	      óJ  — t        j                  dddd¬«      }t        j                  g d¢dg|dd  ¬	«      }t        j                  |d
gdz  dgz   dœ«      }t        ||ddg¬«      }t        j                  g d¢|dd  d
gdz  dgz   dœt        j                  dddd¬«      ¬«      }t	        j
                  ||«       t        ||ddg¬«      }t        j                  |d
gdz  dgz   t        j                  ddddgdœt        g d¢«      ¬«      }t	        j
                  ||«       y )Nz
2019-10-01Ú30minr¤   r²  )r§  r¨  r©  )çÍÌÌÌÌÌì?çš™™™™™é?çffffffæ?ç333333ã?Úxyzr£   )rX   rö   g®Gáz®@rÜ  g…ëQ¸…@)Ú	from_dateÚabcTr�  )r»   r¼   ró   rô   r®   )rŽ  r�  r�  z2019-10-01 00:30:00©rö   )r»   r¼   rú   rù   rŠ  r‹  rŒ  r�  )r�  r�  rŽ  )r   r£   r­   r®   rÜ  )	r^   r°  r_   r   r¸   r¹   rš   r›   r   )r   rö   r»   r¼   r¾   r½   s         r   Útest_merge_index_column_tzz(TestAsOfMerge.test_merge_index_column_tzã  s+  € ä—‘˜l°À!ÈÔNˆÜ�|‰|Ò0¸5¸'ÈÈqÈrÈÔSˆÜ—‘¨5¸$¸À!¹ÀtÀfÑ9LÑMÓNˆÜØ˜U¨t¸{¸mô
ˆô —<‘<â+Ø" 1 2˜YØ�v ‘z T FÑ*ñô
 —-‘-Ø%¨G¸QÀ5ôô	
ˆô 	×Ñ˜f hÔ/äØ˜d°¸{¸mô
ˆô —<‘<à"Ø�v ‘z T FÑ*ÜŸ™  S¨#¨sÐ3ñô
 šÓ(ô
ˆô 	×Ñ˜f hÕ/r   c           	      ó<  — |dk(  rt        j                  d«       t        j                  ddd|¬«      t	        d¬«      j                  |«      z   }t        j                  dd	|¬
«      }t        j                  ddit        j                  |«      ¬«      }t        j                  ddit        j                  |«      ¬«      }t        j                  dddœt        j                  |«      ¬«      }t        ||ddt	        d¬«      ¬«      }t        j                  ||«       y )NrÁ   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Úbar)r—  r˜  Trº  )ró   rú   rŸ   )rÞ   rß   r^   r°  r   Úas_unitr_   rs  r   r¸   r¹   )r   rà   Údr1Údr2r†  r‡  r½   r¾   s           r   Ú%test_left_index_right_index_tolerancez3TestAsOfMerge.test_left_index_right_index_tolerance  sð   € à�3Š;Ü�K‰KØQôô �m‰mØ +°D¸tô
ä˜cÔ"×*Ñ*¨4Ó0ñ1ˆô �m‰m *°*À4ÔHˆä�l‰l˜F E˜?´"×2BÑ2BÀ3Ó2GÔHˆÜ�l‰l˜F E˜?´"×2BÑ2BÀ3Ó2GÔHˆä—<‘<Ø EÑ*´"×2BÑ2BÀ3Ó2Gô
ˆô ØØØØÜ¨Ô,ô
ˆô 	×Ñ˜f hÕ/r   N)F)LÚ__name__Ú
__module__Ú__qualname__r   rÞ   Úfixturerc   rz   rœ   rŸ   r¿   rá   rç   rê   rî   rñ   r÷   rü   rÿ   r  r
  r  r  r  r  r)  ÚmarkÚparametrizer.  r>  r@  rr  rz  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  r"  r%  r4  r;  r>  rB  r   rL  rk  ru  rw  rz  r„  r‡  r’  r�  rE  r   r   r
   r
      s™  „ óð ‡^�^ñ#"ó ð#"ðJ ‡^�^ñ/ó ð/ð4 ‡^�^ñ}"ó ð}"ð~ ‡^�^ñ}"ó ð}"ò~
0òW0òr0ò0ò0ò0ò0ò0ò0òJòJòòò0ò0ò?0ðB ‡[�[×Ñ˜W x°Ð&:Ó;ñB0ó <ðB0òHXò80òdY0òv0ò
4ò0ò0òò,ò\;ð. ‡[�[×ÑØÙ	�6Ó	Ð.˜H×.Ñ.°AÔ6Ð7ØÐ.Ð/ð ó ñ
0óð
0ò0ò0ò)0òV0ò$0ò q0òf0ò0òv0òp00òd#0òJ0ò(0ò(0ò<0ò<;0òz0ò<0ò>"0òH70òr,ò,ò&0ð ‡[�[×ÑØ‘˜kÐ*°¸JÐ0Gð ó ð ‡[�[×Ñ˜V f¨gÐ%6Ó7ñ0ó 8óð0ò,0ò\0ò.0ð8 ‡[�[×Ñ˜WÒ&NÓOñ0ó Pð0ò6(0òT0ò 0óB0r   r
   Úinfer_stringFTÚpyarrow)ÚmarksÚkwargsr¶   rw  r  Údataz2019-06-01 00:09:12z2019-06-01 00:10:29r6  c                 ó$  — t        d|«      5  t        j                  d|i|¬«      }t        j                  d|i|¬«      }t        j                  t
        d¬«      5  t        ||fi | ¤Ž d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nzfuture.infer_stringrw  r‘  r6  r  )r   r^   r_   rÞ   r  r   r   )r¨  r©  r¥  r»   r¼   s        r   Ú#test_merge_asof_non_numerical_dtyper«     s‰   € ô 
Ð-¨|Ó	<ñ .Ü�|‰|˜S $˜K¨tÔ4ˆÜ—‘˜c 4˜[°Ô5ˆÜ�]‰]ÜØUô
ñ 	.ô �t˜UÑ- fÒ-÷		.÷.ð .÷	.ð 	.ú÷.ð .ús$   �ABÁA:Á)BÁ:B	Á?BÂBc            	      óö   — t        j                  g d¢g d¢dœ«      } t        j                  g d¢g d¢dœ«      }t        j                  t        d¬«      5  t        | |dd	d	d
¬«       d d d «       y # 1 sw Y   y xY w)N)rb  Ú13Ú15r¦   )r§   Ú	left_val1)rê  rë  ry  rª   r6  r  r¯  r§   r«   )rù   rô   r  r  r9  ©r»   r¼   s     r   Ú*test_merge_asof_non_numerical_dtype_objectr±  6  sl   € ä�<‰<Ò0ºÑOÓP€DÜ�L‰LšºOÑLÓM€EÜ	�‰ÜØQô
ñ 
ô 	ØØØØØØõ	
÷	
÷ 
ñ 
ús   ÁA/Á/A8)rú   ró   Ú	left_time)rù   rú   r¼   )ró   rô   c                 ó   — t        g d¢d¬«      }t        j                  g d¢g d¢dœ|¬«      }t        j                  dg d	¢ig d	¢¬«      }t        ||fi | ¤Ž}t        j                  g d¢g d¢g d
¢dœ|¬«      }t	        j
                  ||«       y )Nr¢   Útest©Únamer¦   )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_asof_index_behaviorr·  H  sy   € ô ’* 6Ô*€EÜ�<‰<¢ºzÑJÐRWÔX€DÜ�L‰L˜'¢?Ð3º?ÔK€EÜ˜˜eÑ. vÑ.€Fä�|‰|Ú ªzÂIÑNØô€Hô ×Ñ˜& (Õ+r   c                  ó,  — t        j                  dg d¢it        g d¢d¬«      ¬«      } t        j                  dg d¢it        g d	¢d¬«      ¬«      }t        | |dd¬
«      }t        j                  g d¢g d¢g d¢dœ«      }t	        j
                  ||«       y )Nr¨   ©r¥   rž  rä  rƒ  r§   rµ  r‘  r©   ©r|  é   é   )r   r­   r®   ©rù   rô   r¦   )r^   r_   r   r   r¸   r¹   ©r»   r¼   r¾   r½   s       r   Ú'test_merge_asof_numeric_column_in_indexr¿  ^  so   € ä�<‰<˜šlÐ+´5ºÈÔ3MÔN€DÜ�L‰L˜#š|Ð,´Eº)È#Ô4NÔO€Eä˜˜e¨S¸3Ô?€FÜ�|‰|¢)²,Â\ÑRÓS€HÜ×Ñ˜& (Õ+r   c                  ó”  — t        j                  dg d¢it         j                  j                  g d¢g d¢gddg¬«      ¬«      } t        j                  d	g d
¢it         j                  j                  g d¢g d¢gddg¬«      ¬«      }t	        | |dd¬«      }t        j                  g d¢g d¢g d
¢dœ«      }t        j                  ||«       y )Nr¨   r¹  rƒ  r¦   r§   rA  )Únamesr‘  r©   rº  r@  r$  r½  )r^   r_   Ú
MultiIndexÚfrom_arraysr   r¸   r¹   r¾  s       r   Ú,test_merge_asof_numeric_column_in_multiindexrÄ  h  s©   € ä�<‰<Ø	ŠlÐÜ�m‰m×'Ñ'ª²OÐ(DÈSÐRUÈJÐ'ÓWô€Dô �L‰LØ	ŠlÐÜ�m‰m×'Ñ'ª²OÐ(DÈSÐRUÈJÐ'ÓWô€Eô
 ˜˜e¨S¸3Ô?€FÜ�|‰|¢)²,Â\ÑRÓS€HÜ×Ñ˜& (Õ+r   c                  ó$  — t        j                  dg d¢it        g d¢d¬«      ¬«      } t        j                  dg d¢it        g d	¢d¬«      ¬«      }t        j                  t
        d
¬«      5  t        | |dd¬«       d d d «       | j                  «       j                  ddg«      } |j                  «       j                  ddg«      }t        j                  t
        d
¬«      5  t        | |dd¬«       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr¨   r¹  )rN  Ú2Ú3r§   rµ  r‘  r©   rº  )ÚmÚnÚor6  r  r½  )	r^   r_   r   rÞ   r  r   r   r   rõ   r°  s     r   Ú3test_merge_asof_numeri_column_in_index_object_dtyperË  x  sê   € ä�<‰<˜šlÐ+´5ºÈsÔ3SÔT€DÜ�L‰L˜#š|Ð,´Eº/ÐPSÔ4TÔU€Eä	�‰ÜØQô
ñ ;ô 	�4˜¨°cÕ:÷	;ð ×ÑÓ×'Ñ'¨¨c¨
Ó3€DØ×ÑÓ×)Ñ)¨3°¨*Ó5€Eä	�‰ÜØQô
ñ ;ô 	�4˜¨°cÕ:÷	;ð ;÷;ð ;ú÷;ð ;ús   Á,C:Ã!DÃ:DÄDc                 ó*  — t        j                  ddgd| › d�¬«      }t        j                  ddg|dœ«      }t        j                  t        j                  d	«      d
d| ¬«      }t        j                  dg d¢i«      }t        |||ddd¬«      }t        j                  g d¢t        j                  ddg|dœ«      }t        j                  ||«       t        ||d|dd¬«      }t        j                  ddg|ddgdœ«      }t        j                  ||«       y )Nz2021/01/01 00:37z2021/01/01 01:40rÂ   rÃ   rN  r­   r¯   )r§   Útsz2021/01/01 00:00r®   Ú1h)r¦  r¨  r§  rà   r¨   )rÜ  é   r°   rÍ  FÚbackward)rù   rô   rÝ   rå   )r¨   r§   rÍ  rÜ  rÏ  )r§   rÍ  r¨   )
r^   rs  r_   r°  r=  r   rš   r›   r¸   r¹   )rà   Údtir¼   Úts_merger»   r¾   r½   s          r   Útest_merge_asof_array_as_onrÓ  �  s  € ä
×
Ñ
Ø	Ð/Ð0¸#¸d¸VÀ1¸ô€Cô �L‰Là�Q�Øñ	
ó€Eô �}‰}Ü�l‰lÐ-Ó.¸ÀÈ4ô€Hô �<‰<˜šiÐ(Ó)€DÜØØØØØ!Øô€Fô �|‰|¢)´2·6±6¸1¸a°.ÈÑQÓR€HÜ×Ñ˜& (Ô+äØØØØØ!Øô€Fô �|‰|à�Q�ØØ�Q�ñ	
ó€Hô ×Ñ˜& (Õ+r   c                  óì  — t        j                  g d¢gg d¢¬«      } t        j                  g d¢gg d¢¬«      }t        j                  t        d¬«      5  t        | |d¬	«       d d d «       t        j                  t        d¬«      5  t        | |dd
¬«       d d d «       t        j                  t        d¬«      5  t        | |dd¬«       d d d «       y # 1 sw Y   ŒpxY w# 1 sw Y   ŒIxY w# 1 sw Y   y xY w)N)r£   r­   r§   )r§   r§   r«   rW   )r£   r£   r£   )r§   r§   r²   zcolumn label 'a'r  r§   rµ   r²   r½  r«   )r^   r_   rÞ   r  r”  r   r°  s     r   Ú+test_merge_asof_raise_for_duplicate_columnsrÕ  ¹  sÎ   € ä�<‰<š˜Ò/EÔF€DÜ�L‰Lš)˜Ò.EÔF€Eä	�‰”zÐ);Ô	<ñ (Ü�4˜ 3Õ'÷(ô 
�‰”zÐ);Ô	<ñ CÜ�4˜¨°kÕB÷Cô 
�‰”zÐ);Ô	<ñ BÜ�4˜¨
¸SÕA÷Bð B÷(ð (ú÷Cð Cú÷Bð Bús$   ÁCÂCÂ9C*ÃCÃC'Ã*C3r*  ÚInt64zint64[pyarrow]ztimestamp[s][pyarrow]c                 óŠ  — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }|j                  d| i«      }|j                  d| i«      }t        ||d¬«      }t        j                  g d¢g d¢t        j
                  dd	gd
œ«      }|j                  d| i«      }t        j                  ||«       y )N)r£   r®   r¤   rƒ  )Újoin_colr«   )r­   r®   rÜ  )rØ  r²   rØ  rµ   r7  r9  )rØ  r«   r²   )r^   r_   ra   r   rš   r›   r¸   r¹   )r*  r»   r¼   r¾   r½   s        r   Útest_merge_asof_extension_dtyperÙ  È  sº   € ô �<‰<â!Ú!ñ	
ó€Dô �L‰Lâ!Ú"ñ	
ó€Eð �;‰;˜
 EÐ*Ó+€DØ�L‰L˜* eÐ,Ó-€EÜ˜˜e¨
Ô3€FÜ�|‰|â!Ú!ÜŸ&™& # sÐ+ñ	
ó€Hð �‰ 
¨EÐ2Ó3€HÜ×Ñ˜& (Õ+r   c                  ó"  — t        j                  t        j                  ddd«      gd¬«      } t        j                  | dgdœ«      }t	        ||dt        d«      ¬«      }t        j                  | dgdgd	œ«      }t        j                  ||«       y )
Niç  r£   ztimestamp[us, UTC][pyarrow]rN  )Ú	timestampr<  rÛ  rŽ  r®  )rÛ  r]  r^  )r^   ÚSeriesr±  r_   r   r   r¸   r¹   )Úserr   r¾   r½   s       r   Ú$test_merge_asof_pyarrow_td_tolerancerÞ  ì  s�   € ô �)‰)Ü	×	Ñ	˜4  AÓ	&Ð'Ð/Lô€Cô 
�‰àØ�Sñ	
ó
€Bô ˜˜B ;¼)ÀD»/ÔJ€FÜ�|‰|àØ�sØ�sñ	
ó€Hô ×Ñ˜& (Õ+r   c                  ó„  — t        j                  dgdgd¬«      } t        j                  dgdgd¬«      }d| j                  j                  j                  _        d|j                  j                  j                  _        t        | |dd¬«      }t        j                  dgdgd	œdg¬
«      }t        j                  ||«       y )Nr­   r»   )rö   r¶  r£   r¼   FTr  r°  r‘  )
r^   rÜ  rö   ro  ÚflagsÚ	writeabler   r_   r¸   r¹   r¾  s       r   Ú!test_merge_asof_read_only_ndarrayrâ    s™   € ä�9‰9�a�S  ¨&Ô1€DÜ�I‰I�q�c ! ¨7Ô3€Eà(-€D‡J�J×Ñ×ÑÔ%Ø).€E‡K�K×Ñ×ÑÔ&Ü˜˜e°À$ÔG€FÜ�|‰| a S°A°3Ñ7À¸sÔC€HÜ×Ñ˜& (Õ+r   c            
      ó0  — t        j                  t        j                  g d¢ddg¬«      dgdz  dgdz  t        d«      dœ«      } t        j                  t        j                  ddgddg¬«      dgd	z  dd	gt        d	«      dœ«      }t	        | |d
dgddddg¬«      }t        j                  t        j                  g d¢ddg¬«      dgdz  dgdz  t        d«      t
        j                  t
        j                  ddgdœ«      }t        j                  ||«       y )N)r§   r§   r¨   r¨   r§   r¨   )Ú
categoriesrw  rÜ  r£   )Úc1Úc2ÚtÚvr­   rå  ræ  rç  rã   Ú_leftÚ_right)rØ   r¶   rå   Úsuffixesr	  )rå  ræ  rç  Úv_leftÚv_right)	r^   r_   r=  Úranger   rš   r›   r¸   r¹   r¾  s       r   Ú(test_merge_asof_multiby_with_categoricalrï    s  € ä�<‰<ä—.‘.Ò!5À3ÈÀ*ÔMØ�%˜!‘)Ø��q‘Ü�q“ñ		
ó€Dô �L‰Lä—.‘. # s ¸¸c¸
ÔCØ�%˜!‘)Ø�Q�Ü�q“ñ		
ó€Eô ØØØ�$ˆ<ØØØ˜8Ð$ô€Fô �|‰|ä—.‘.Ò!5À3ÈÀ*ÔMØ�%˜!‘)Ø��q‘Ü˜A“hÜŸ™¤§¡¨¨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ï  rE  r   r   ú<module>rû     sÊ  ðÛ ã Û ç )Ð )ã ÷õ õ Ý 0÷I40ñ I40ðXh ‡�×ÑØ�U˜L˜FŸL™L¨°]°R·]±]À9Ó5MÔNÐOóð ‡�×ÑØ��cˆ{¨4ÀÑEÐFóð ‡�×ÑØ
ØÐ2Ð3°cÐ;PÐ5QÐRóñ	.ó	óóð	.ò
ð$ ‡�×ÑØà¨DÑ1Ø°Ñ5Ø¨Ñ1ðóñ,óð,ò,ò,ò ;ò*),òXBð ‡�×ÑØàØˆ�‰Ð%¨]¨R¯]©]¸9Ó-EÔFØˆ�‰Ð,°M°B·M±MÀ)Ó4LÔMðóñ,óð,ð8 €‡�ˆyÓñ,ó ð,ò,	,ó#,r   