403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python312/Lib/site-packages/pandas/tests/reshape/merge/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python312/Lib/site-packages/pandas/tests/reshape/merge/__pycache__/test_merge.cpython-312.pyc
�

0	�gڞ���ddlmZmZmZddlZddlZddlZddlmZm	Z	ddl
mZddlZ
ddlmZmZmZmZmZmZmZmZmZmZmZddlmZddlmZddlmZm Z d�d�Z!d	�Z"d
�Z#ejHe"�d���d
��Z%ejHe"�d���d��Z&ejHe#�d���d��Z'ejHd��Z(Gd�d�Z)d�Z*Gd�d�Z+ejHd��Z,ejHd��Z-Gd�d�Z.ejHd��Z/ejHd��Z0Gd�d�Z1ejdjgd ejhD�cgc]}ed!d"g|d#�$���c}ed%d&gd%d&gd#�'�edd"d#�(�ed)d*gd#�+�gzd,��-�d.��Z5ejdjgd/d0d1gddd2d2d&fd3dd0d1gdd2d4d&fddd0d1gd4d2d&fd0d1gddd2d2dfd5dd0d1gdd2d4dfddd0d1gd4d2dfg�d6��Z6d7�Z7ejdjgd8ddd9d:id;d<gfddd9d=idd<gfddd9d>id?d@gfddd9dAdBgid?d@gfdCdd9dDidCdgfdEdEd9dFidGdEgfdHdHd9dDidHdIgfdCdCd9dFidJdCgfdCdHd9dFidCdHgfdCdCd9dKidCdJgfddd9dLidMdgfdCdCidJdNgfddid?d@gfg
�dO��Z8ejdjgdPdQegdR�dSdTejrggdU�dV��fd0egdW�dXdSdTejrgejrdYdZd[gdV��fg�d\��Z:ejdjgd]gd^��d_��Z;ejdjgd9d`dQhddda�g�db��Z<ejdjgdcdddCdCe=dC�defg�df��Z>ejdjgdgdhdig�ejdjgdjd4d2g�dk���Z?dl�Z@dm�ZAdn�ZBdo�ZCejdjgdpdqdrg�ds��ZDdt�ZEejdjgdudvdwg�ejdjgdxdCd4dy�dzd{gfdCd4d|�d}d~gfg�d���ZFejdjgdudvdwg�ejdjgdxdzdCid}d~gfd}dCidzd{gfg�d����ZGejdjgdudvdwg�ejdjgd�d~d4id{d4ig�d����ZHd��ZId��ZJd��ZKd��ZLd��ZMd��ZNd��ZOd��ZPejdjgd�dd�g�d���ZQd��ZRd��ZSd��ZTejdjgd�d�d�g�d���ZUejdjgd�gd���ejdjgd�dd�g�d����ZVd��ZWejdjgd�gd���ejdjgd�d4d2g�ejdjgd�d4d2g�ejdjgd�d4d2g�ejdjgd�d4d2g�ejdjgd�d4d2g�ejdjgd�d4d2g�d���������ZXd��ZYd��ZZejdjgd�d4d2g�ejdjgd�d4d2g�d����Z[ejdjgd�gd���d���Z\ycc}w)��)�date�datetime�	timedeltaN)�is_object_dtype�is_string_dtype)�CategoricalDtype)�Categorical�CategoricalIndex�	DataFrame�
DatetimeIndex�Index�
IntervalIndex�
MultiIndex�PeriodIndex�
RangeIndex�Series�TimedeltaIndex)�concat)�
MergeError�mergec	�^�tt|��}tjtj|||z��}t|�|kr0tjt|�|d|t|�z
z�}tjjd�j|�|S)N�)	�list�range�np�asarray�tile�len�random�default_rng�shuffle)�ngroups�n�
unique_groups�arrs    �GC:\Python312\Lib\site-packages\pandas/tests/reshape/merge/test_merge.py�
get_test_datar''s�����w��(�M�
�*�*�R�W�W�]�A��L�9�
:�C�
�3�x�!�|��j�j��c��]�>�Q��S��\�%B�B�C���I�I���!��$�$�S�)��J�c��tdgd��tdgd��tdg�tdg�tdg�ttjd�g�ttjdd	�
�g�gS)N��int64��dtype�Int64g�G�z��?�fooT�
2018-01-01�
US/Eastern��tz)r�pd�	Timestamp�r(r&�
get_seriesr72si����s�'�"���s�'�"���v����w����v������\�*�+�,�����\�l�;�<�=��r(c���ttjgd��ttjgd��ttjgd��ttjg�gS)Nr.r,�float�object)rr�nanr4�NaTr6r(r&�
get_series_nar=>sJ������x�w�'�����x�w�'�����x�x�(�����x��	�r(c�.�|jjS�N�r-�name��xs r&�<lambda>rDG���1�7�7�<�<�r()�params�idsc��|jS)zV
    A parametrized fixture returning a variety of Series of different
    dtypes
    ��param��requests r&�series_of_dtyperMG����=�=�r(c�.�|jjSr?r@rBs r&rDrDPrEr(c��|jS)zk
    A duplicate of the series_of_dtype fixture, so that it can be used
    twice by a single function
    rIrKs r&�series_of_dtype2rQPrNr(c�.�|jjSr?r@rBs r&rDrDYs��a�g�g�l�l�r(c��|jS)zU
    A parametrized fixture returning a variety of Series with all NA
    values
    rIrKs r&�series_of_dtype_all_narTYrNr(c�^�tddgddgddgd��}tgd�gd�gd�d	��}||fS)
Nrr*r�a�b)�col1�col_conflict�col_left)r*r���)rrrrr)rXrY�	col_right�r)�df1�df2s  r&�dfs_for_indicatorrbbsB��
�a��V�a��V�#�s��T�
U�C�
�#�+�(�	
��C���8�Or(c�F�eZdZejd��Zejd��Zejd��Zejd��Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej8j;dgd��d��Zej8j;dddd�ddd�d dd!�d dd"�g�d#��Zd$�Z d%�Z!d&�Z"d'�Z#d(�Z$ej8j;d)d*gd+�fdgd,�fg�ej8j;dd-d.g�d/���Z%d0�Z&d1�Z'ej8jQd2�d3��Z)d4�Z*d5�Z+ej8j;d6gd7��d8��Z,ej8j;d6gd7��d9��Z-d:�Z.d;�Z/d<�Z0d=�Z1d>�Z2d?�Z3d@�Z4dA�Z5dB�Z6dC�Z7dD�Z8dE�Z9dF�Z:dG�Z;dH�Z<ej8j;dd.dIg�ej8j;dJe=gdK��e=gdL��fe>gdM�dN�O�e>dPdQdRe?j�e?j�e?j�gdN�O�fgeAj�D����cgc].}t�gdS�|�O�t�gdT�t�j��O�f��0c}}}}�eFj�gdU��eFj�dVdWdXeDj�eDj�eDj�g�f�eIgdY�dZ�[�eIdPd\d]e?j�e?j�e?j�gdZ�[�f�eJgd^��eJd_d`dae?j�e?j�e?j�g�f��db���ZKdc�ZLej8j;dd-d.g�dd��ZMde�ZNdf�ZOygcc}}}}w)h�	TestMergec��tt�t�tjj	d�jd�tjj	d�jd�d��}||ddkD}|S)Nr�2)�key1�key2�data1�data2rhr*�rr'rrr �standard_normal)�self�dfs  r&rnzTestMerge.dfpsn��
�%��%�����.�.�q�1�A�A�"�E����.�.�q�1�A�A�"�E�	
�
����6�
�Q��
���	r(c��ttd��tdd��tjj	d�jd�d��S)N�
)r#r\)r"r#r)rgrh�valuerk�rms r&raz
TestMerge.df2sC���%��+�%�a�2�6����.�.�q�1�A�A�"�E�
�
�	
r(c�z�tgd�tjjd�j	d�d��S)N�rVrW�c�d�erwrVr���key�v1�rrrr rlrrs r&�leftzTestMerge.left�s4���:��i�i�+�+�A�.�>�>�q�A�
�
�	
r(c�|�tdtjjd�j	d�igd���S)N�v2rr\�rvrWrurV��indexr|rrs r&�rightzTestMerge.right�s4���
�2�9�9�(�(��+�;�;�A�>�?�&�
�	
r(c��t�}tdddgiddgd��}t||dd��}tdgid�	�}tj||�y)
NrVr*rrr+)r�r-T��
left_index�right_indexr,�rr�tm�assert_frame_equal)rm�df_empty�df_a�result�expecteds     r&�test_merge_inner_join_emptyz%TestMerge.test_merge_inner_join_empty�sS���;���#��1�v��q�!�f�G�D���x��$�D�I���c�2�Y�g�6��
���f�h�/r(c�h�t||�}t||ddg��}tj||�y)Nrgrh��on�rr�r�)rmrnra�joined�exps     r&�test_merge_commonzTestMerge.test_merge_common�s0���r�3����B���� 0�1��
���f�c�*r(c��tgd�gd�gd�gd�d��}|jt�}|}t||�}t	j
||�y)N)r*rr*r)rr*rr)rrrr)r*rrr[�rr*rr[)r�astyper9rr�r��rmr}r�r�r�s     r&�test_merge_non_string_columnsz'TestMerge.test_merge_non_string_columns�sK�����,�<�P�
�����E�"�����t�U�#��
���h��/r(c���|jd�}|jd�}t||d��}t||d��jd�}tj||�y)Nrgr�)�	set_indexrr�r�)rmrnrar}r�r�r�s       r&�test_merge_index_as_on_argz$TestMerge.test_merge_index_as_on_arg�sW���|�|�F�#���
�
�f�%���t�U�v�.����S�V�,�6�6�v�>��
���f�h�/r(c�B�tgd�tjjd�j	d�d��}tdtjjd�j	d�igd���}t||d	d
dd�
�}t||d	d
dd��}t
j||jdd�|jf�t||d	d
dd
�
�}t||d	d
dd
��}t
j||jdd�|jf�y)Nrtrrxryrr\r�r�rzTr}F)�left_onr��how�sortr�)�right_onr�r�r�)
rrrr rlrr�r��loc�columns)rmr}r��merged1�merged2s     r&�(test_merge_index_singlekey_right_vs_leftz2TestMerge.test_merge_index_singlekey_right_vs_left�s���:��i�i�+�+�A�.�>�>�q�A�
�
���
�2�9�9�(�(��+�;�;�A�>�?�&�
��
��%��D�f�5�
����4�%�D�g�E�
��	���g�w�{�{�1�g�o�o�3E�'F�G���%��D�f�4�
����4�%�D�g�D�
��	���g�w�{�{�1�g�o�o�3E�'F�Gr(c�l�tgd�tjjd�j	d�d��}tdtjjd�j	d�igd���}t||d	d
d��}|j
|d	�
�j|j}tj||�t||d	d
d��}|j
|d	�
�j|j}tj||jdd�|jf�y)Nrtrrxryrr\r�r�rzT�inner�r�r�r�r�)r�r�r�)rrrr rlr�joinr�r�r�r�r��rmr}r�r�r�s     r&� test_merge_index_singlekey_innerz*TestMerge.test_merge_index_singlekey_inner�s����:��i�i�+�+�A�.�>�>�q�A�
�
���
�2�9�9�(�(��+�;�;�A�>�?�&�
���t�U�E�t��Q���9�9�U�u�9�-�1�1�&�,�,�?��
���f�h�/��u�d�U�t��Q���9�9�U�u�9�-�1�1�&�,�,�?��
���f�h�l�l�1�f�n�n�3D�&E�Fr(c��d}tjtjj|��5t||d��ddd�d}tjtjj|��5t||d��ddd�d}tjtjj|��5t||dd�	�ddd�d
}tjt|��5t||dgddg�
�ddd�y#1swY��xYw#1swY��xYw#1swY�ZxYw#1swYyxYw)Nz&Must pass right_on or right_index=True��matchT)r�z$Must pass left_on or left_index=True)r�zRCan only pass argument "on" OR "left_on" and "right_on", not a combination of bothrz)r�r�z)len\(right_on\) must equal len\(left_on\)rgrh�r�r�)�pytest�raisesr4�errorsrr�
ValueError)rmrnrar}r��msgs      r&�test_merge_misspecifiedz!TestMerge.test_merge_misspecified�s��6��
�]�]�2�9�9�/�/�s�
;�	0��$��$�/�	0�4��
�]�]�2�9�9�/�/�s�
;�	1��$��4�0�	1�
$�	��]�]�2�9�9�/�/�s�
;�	7��$��e��6�	7�;��
�]�]�:�S�
1�	H��"�c�F�8�v�v�6F�G�	H�	H�	0�	0��	1�	1��	7�	7��	H�	H�s/�D�:D�D+�7D7�D�D(�+D4�7Ec	��d}tjt|��5t||ddddg��ddd�d}tjt|��5t||dddgd��ddd�tjt|��5t||dddgddg��ddd�y#1swY�zxYw#1swY�NxYw#1swYyxYw)	Nz>right_index parameter must be of type bool, not <class 'list'>r�r}Frgrh�r�r�r�z=left_index parameter must be of type bool, not <class 'list'>�r�r�r�r)rmrnrar�s    r&�&test_index_and_on_parameters_confusionz0TestMerge.test_index_and_on_parameters_confusion�s���N��
�]�]�:�S�
1�	����� �#�V�,�
�	�N��
�]�]�:�S�
1�	�����"�F�+�!�
�	��]�]�:�S�
1�	�����"�F�+�#�V�,�
�	�	�#	�	��	�	��	�	�s#�B*�B6�C�*B3�6B?�Cc��t||d��}|dj�dzj�}t|�|k(sJ�d|vsJ�d|vsJ�y)Nrzr�r�v1_x�v1_y)r�value_counts�sumr)rmr}�merged�exp_lens    r&�test_merge_overlapzTestMerge.test_merge_overlaps^���t�T�e�,����;�+�+�-��2�7�7�9���6�{�g�%�%�%����������r(c	�P�tgd�gd�d��}tgd�gd�d��}|j|ddd	d
��}tdd
ddddtjgd��}tj|d|�tdtjdddddgd��}tj|d|�tddddddtjgd��}tj|d|�tdtjdddddgd��}tj|d|�y)N)r/�bar�bazr/�r*rr[r\)�lkeyrq)r/r��quxr/)r]�rx�)�rkeyrqr�r��outerT)r�r�r�r�r�r�r/�rAr�rr[r*r\�value_xr�r]r�rx�value_y)rrrrr;r��assert_series_equal)rmr}r�r�r�s     r&�%test_merge_different_column_key_namesz/TestMerge.test_merge_different_column_key_names"s���">��V�W���#?�,�W�X������6�F��d��
���e�U�E�5�%�����G�f�U��
���v�f�~�s�3��e�R�V�V�U�E�5�%��G�f�U��
���v�f�~�s�3��a��A�q�!�Q����/�i�@��
���v�i�0�#�6��a�����A�q�!�Q�/�i�@��
���v�i�0�#�6r(c��tddd�td���}tddd�td���}t||d	d	d	�
�}d|d<|ddk(j�sJ�d
|d<|ddk(j�sJ�y)Nrr*�rVrWrpr�r/r��rurvT�r�r��copyr�rV�peekaboorv)rrr�all)rmr}r�r�s    r&�test_merge_copyzTestMerge.test_merge_copy6s����q�q�)��r��;����E�2�%��)�D���t�U�t��D�Q����s���S�	�Q��#�#�%�%�%� ��s���c�
�e�#�(�(�*�*�*r(c�V�tddd�td���}tddd�td���}t||d	d	d
��}tj|dj
|dj
�sJ�|s3tj|d
j
|d
j
�sJ�yy)Nrr*r�rpr�r/r�r�TFr�rVrv)rrrr�
shares_memory�_values)rm�using_array_manager�using_infer_stringr}r�r�s      r&�test_merge_nocopyzTestMerge.test_merge_nocopyBs����q�q�)��r��;����E�2�%��)�D���t�U�t��E�R������s�� 3� 3�T�#�Y�5F�5F�G�G�G�!��#�#�F�3�K�$7�$7��s��9K�9K�L�L�L�"r(c�|�tgd�ttd��d�ddg��}tgd�ttd��d	��}t||dd
��}tgd�t	j
d
d
dddddtjtjg	�gd�d�gd���}tj||�y)N�r*r*rrr[r]�rzrqrqrz�r��r*r*rr[r\r]r�)rz�rvaluer��r�r��	r*r*r*r*rrr[r\r]rr*rr[r\)	rr*rr*rrr[r\r])rzrqr�)rqrzr�)	rrrrr�arrayr;r�r�)rmr}r�r�r�s     r&�"test_intelligently_handle_join_keyz,TestMerge.test_intelligently_handle_join_keyLs����#�d�5��8�n�=��QV�GW�
���"4��U�1�X��O�P���t�U�u�'�:���2����1�a��A�q�!�Q�������"G�H�5�
�
/�

��	���f�h�/r(c��tdgdgd��}tdgdgd��}t||d��}|djd	k(sJ�td
gdgd��}tdgdgd��}t||d��}|djd
k(sJ�tddgi�}tddgi�}tjdg�}tjdg�}t||||d��}|djtjt
�k(sJ�y)Nr*rpryr�r��r�rzr+TFr�bool�val�r�r�r��key_0)rrr-rr��int)rmr`rarnr�r�s      r&�test_merge_join_key_dtype_castz(TestMerge.test_merge_join_key_dtype_cast_s
�����B�4�0�1�����B�4�0�1��
�3���
)���%�y���'�)�)�)����q�c�2�3������s�3�4��
�3���
)���%�y���&�(�(�(������%�������%���x�x���}���x�x���}��
�3��T�D�g�
F���'�{� � �B�H�H�S�M�1�1�1r(c�`�tgd�tjd�d�ddgd��}tdtjd	�id�
�}tjgd�d�
�}t	||d|d�
�}t	|||dd�
�}tj|d|d�|dj�j�sJ�|dj�j�sJ�tdtjd�idg��}tdtjd	�i�}tjgd��}tjgd��}t	||||d�
�}tgd�td��}tj|d|�tdtjd�i�}tdtjd	�i�}tjgd�tj�
�}t	||d|d��}tj|dt|d���y)Nr�r]r�rqrzr+�r�r-r�r�r,r�r�r�r�r�r�r@r[)rr*r*rrr[T)r�r�r�r�)rr�aranger�rr�r��notnar�rr�r+)	rmr}r�rzr�r�r�r�r�s	         r&�test_handle_join_key_pass_arrayz)TestMerge.test_handle_join_key_pass_arrayvs����#�b�i�i��l�;��e�$��
��
�8�R�Y�Y�q�\�2�'�B���h�h�)��9���t�U�E�C�W�M����t�S�5�g�N��
���v�e�}�g�e�n�=��e�}�"�"�$�(�(�*�*�*��u�~�#�#�%�)�)�+�+�+��'�2�9�9�Q�<�0�7�)�D���8�R�Y�Y�q�\�2�3���x�x��(���x�x�*�+���t�U�D�4�W�M���5�S�w�O��
���v�g���9��'�2�9�9�Q�<�0�1���8�R�Y�Y�q�\�2�3���h�h�)����:���t�U�t�c�w�O��
���v�g���s��0I�Jr(c��tj�}tddgi|g��}tdddgi||g��}dd�dd�d	d
�dd
��}tjt
|��5t
||�ddd�y#1swYyxYw)
NrCrVr��yrWruz>No common columns to perform merge on. Merge options: left_on=z, right_on=z
, left_index=Fz, right_index=r�)r�nowrr�r�rr)rm�dtr`rar�s     r&�&test_no_overlap_more_informative_errorz0TestMerge.test_no_overlap_more_informative_error�s���
�\�\�^����s�e��R�D�1����s�C�j�)�"�b��:��
&�&*�V�;�t�f�=����u�g�
7�	��]�]�:�S�
1�	��#�s�O�	�	�	�s�"
A8�8Bc	��tddd�}tddd�}tddd�}tddd�}tddgi|g�	�}td
ddgi||g�	�}t||�tdgd
�i|||g�	�}td
gd�i||||||g�	�}t||�tdddgi||g�	�}td
ddgi||g�	�}t||�y)N��r]r*rr[r\rCrVr�r�rWru)rVrW�q)rurvrw�f�g�hrv�rr�_check_merge)rmr��dt2�dt3�dt4r`ras       r&�test_merge_non_unique_indexesz'TestMerge.test_merge_non_unique_indexes�s���
�d�A�q�
!���t�Q��"���t�Q��"���t�Q��"����s�e��R�D�1����s�C�j�)�"�b��:���S�#����o�.�s�B��n�E���
�0�1�#�s�C��b�RT�9U�
��	�S�#����s�C�j�)�"�b��:����s�C�j�)�"�b��:���S�#�r(c��tddd�}tddd�}tddd�}tdgd�i||||g��}td	gd
�i|||||g��}t||�y)Nrr]r*rr[rC�rVrWrurvr�r�)rwrrz h�ir)rmr�rrr`ras      r&�(test_merge_non_unique_index_many_to_manyz2TestMerge.test_merge_non_unique_index_many_to_many�ss��
�d�A�q�
!���t�Q��"���t�Q��"����2�3�C��b�"�;M�N���
�,�-�c�3��R��5L�
��	�S�#�r(c���tdgdgd��}tdgi�}t||dd��}tj||�t||dd��}tj||�y)Nr*rr�rzr}r�r�r�)rmr}r�r�s    r&�test_left_merge_empty_dataframez)TestMerge.test_left_merge_empty_dataframe�sc���!���s�3�4���5�"�+�&���t�U�u�&�9��
���f�d�+��u�d�u�'�:��
���f�d�+r(r�)r�r}r�r�c��tg|dd��}|j�}|j||��}tj||�y)Nrr�r�)rr�r�r�r�)rmr�r�r}r�r�s      r&�test_merge_empty_dataframez$TestMerge.test_merge_empty_dataframe�sC����5��!�9�-���	�	������5�c��*��
���f�d�+r(�kwargTr�rC�r�r�rV�r�r�r�c��tgd���}tgd���}tgd�t��}t||fd|i|��}tj||�y)N�rVrWrur��rCr��z�rVrWrurCr�rr�r�)rr:rr�r�)rm�	join_typerr}r��exp_inr�s       r&�!test_merge_left_empty_right_emptyz+TestMerge.test_merge_left_empty_right_empty�sK����1���/�2���#A��P���t�U�;�	�;�U�;��
���f�f�-r(c	����tgd����tgd�gd�gd�ggd����ttjtjgdzt��tjtjgdzt��tjtjgdzt��gd	�gd
�gd�d�gd���}|d
d
}��fd�}��fd�}ddd�ddd�fD]}|||�|||��ddd�}|||�gd�|d<|||�ddd�}|||�tjtjgdzt��|d<|||�y)Nrr��r*rr[�r\r]r��rxr��	rr[r,�r*r\rx�rr]r��r[r�r"rrc���t��fddi|��}tj||�t��fddi|��}tj||�y)Nr�r�r}r��r�rr�r}r�s   ��r&�check1z>TestMerge.test_merge_left_empty_right_notempty.<locals>.check1�sO����4��=�G�=�u�=�F��!�!�&�#�.��4��<�F�<�e�<�F��!�!�&�#�.r(c���t��fddi|��}tj||�t��fddi|��}tj||�y)Nr�r�r�r�r's   ��r&�check2z>TestMerge.test_merge_left_empty_right_notempty.<locals>.check2�O����4��=�G�=�u�=�F��!�!�&�#�.��4��=�G�=�u�=�F��!�!�&�#�.r(Tr�rCrrVr�rr*rr�)rrr�r;r:)rm�exp_outrr(r*rr}r�s      @@r&�$test_merge_left_empty_right_notemptyz.TestMerge.test_merge_left_empty_right_notempty�s:�����1���9�i��;�_�U����X�X�r�v�v�h��l�&�9��X�X�r�v�v�h��l�&�9��X�X�r�v�v�h��l�&�9����

�3�

����1���	/�	/� ��5��S�1�
�	#�E�
�6�5�!��7�E�"�	#� ��5���v�u�� �����w����S�1���v�u���x�x�����1��F�;�����w��r(c��������tgd�gd�gd�ggd����tgd����tgd�gd�gd	�tjtjgd
zt��tjtjgd
zt��tjtjgd
zt��d�gd�����d
d
��j
j
t��_��fd��������fd��y)Nrr r!rr�rr#r$r%r[r,rrc���t��fddi|��}tj||�t��fddi|��}tj||�y)Nr�r�r�r�r's   ��r&r(z>TestMerge.test_merge_left_notempty_right_empty.<locals>.check1-r+r(c����t��fddi|��}tj||�t��fddi|��}tj||�ddd�ddd�ddd	�ddd
�fD]}��|���|��y)Nr�r}r�Tr�rCrrVrr�r�)	r�rr�r(r*rr-r}r�s	   ������r&r*z>TestMerge.test_merge_left_notempty_right_empty.<locals>.check23s�����4��<�F�<�e�<�F��!�!�&�#�.��4��=�G�=�u�=�F��!�!�&�#�.� $�D�9�#��5���5��S�1�	�
'���v�u�%��w��&�
'r()rrr�r;r:r�r�)rmr(r*rr-r}r�s @@@@@@r&�$test_merge_left_notempty_right_emptyz.TestMerge.test_merge_left_notempty_right_emptys�����)�Y�	�:�O�T���/�2�������X�X�r�v�v�h��l�&�9��X�X�r�v�v�h��l�&�9��X�X�r�v�v�h��l�&�9�

�3�

����1����|�|�*�*�6�2���	/�	'�	'r(c�4�t||d�ddg��}|dd}tt|jd��t|jd��t|jd��d�gd���}|j|d��}t	j
||�y)	Nr�rzrqr�rr,�rzr�r�r�)rr�dtypesrr�r�)rmrMrQrnr�r��actuals       r&�test_merge_empty_framez TestMerge.test_merge_empty_frameCs���
�#�.>�?��G�$�
���b�q�6����B�I�I�e�$4�5�!��	�	�'�(:�;�!��	�	�'�(:�;�
�
2�

������u��-��
���f�h�/r(c���t||d�ddg��}t||d�ddg��}t|||d�gd���}|j|d��}tj||�y)Nr�rzrqr�r4r�r�)rmrMrT�df_left�df_rightr�r6s       r&�test_merge_all_na_columnz"TestMerge.test_merge_all_na_columnUs}���#�.D�E��G�$�
���#�.D�E��G�$�
���&�1�1�
�
2�

�����x�E��2��
���f�h�/r(c���tjjd�jddd��tjjd�jddd��t	ddd�t	ddd	�t	d
dd�t	ddd�t	ddd	�t	dd	d�t	ddd	�t	dd
d�t	d
dd�t	ddd�g
d�}tj|�}|jj�}tj|�}tj|tjjd�jd�d��}|j|dd��}t||dd��}tj||�|jj�|jj�k(j�sJ�y)Nrrrp��sizerr*�i�r\i�r[i�r])�var1�var2�var3rx)rB�var8rBF�r�r�)rrr �integersrr�	from_dictrB�uniquer�rr�r�r�)rmrvrnrB�newr�r�s       r&�test_merge_nosortzTestMerge.test_merge_nosortjs����I�I�)�)�!�,�5�5�a��"�5�E��I�I�)�)�!�,�5�5�a��"�5�E���q�"�%���q�!�$���q�!�$���q�"�%���q�!�$���q�!�$���q�!�$���q�!�$���q�!�$���q�!�$��
�� �
 �
 ��
#���w�w�~�~����w�w�t�}���!�!��2�9�9�#8�#8��#;�#B�#B�1�#E�F�
�����#�&�u��5���B���U�3��
���f�c�*������ �F�K�K�$6�$6�$8�8�=�=�?�?�?r()r��valuesF)r*r*rr*r*)rr*r*r*r*r}r�c��tdgd�i�}|j|d||��}t|dg��}tj||�y)NrV)r*rr*)r�r�r�r�r�)rmr�rJr�rnr�r�s       r&� test_merge_same_order_left_rightz*TestMerge.test_merge_same_order_left_right�sG����Y�'�
(�����"��#�D��9���V�c�U�3��
���f�h�/r(c	���tddgddgd��}tdgdgd��}|j|dd��}tddd	�ddd	�dtjd	�dtjd	�ddd	�d
�t	gd
�t
����j
d�j�gd
�}|jjd�|_tj||d��y)Nrr*��i1�i2�rO�i3rO�_)r��rsuffix��rr*)rOrP�i1_rRNr,r��rOrPrWrRr:F��check_dtype)rr�rr;r
r:r��reset_indexr�r�r�r��rmr`rar�r�s     r&�test_merge_nan_rightzTestMerge.test_merge_nan_right�s�����1�v�a��V�4�5����s�1�#�.�/�����#�$���4���!�a�.��A�,� �R�V�V�,�!�b�f�f�-��A�,���=�V�L�	
��Y�t�_�
�[�]�4�
6�	� ���.�.�x�8���
���f�h�E�Br(c��tddgddgd��}tdgdgd��}|j|dd	�
�}tddd�dtjd�ddd�dtjd�d
��gd�}t	j
||�y)Nrr*g�?��?rNgffffff�?rQrSrO)rTr�rVrU)rOrWrPrRrX)rr�rr;r�r�r\s     r&�test_merge_nan_right2zTestMerge.test_merge_nan_right2�s�����1�v�c�3�Z�8�9����s�3�%�0�1�����#�s�t��4�����l��2�6�6�*��#�&�-�"�&�&�9�	
�
�$�%��	���f�h�/r(zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningc�z��G�fd�dt���|�}|j|d��}t|��sJ�y)Nc�"��eZdZe�fd��Zy)�0TestMerge.test_merge_type.<locals>.NotADataFramec����Sr?r6)rm�
NotADataFrames �r&�_constructorz=TestMerge.test_merge_type.<locals>.NotADataFrame._constructor�s	���$�$r(N)�__name__�
__module__�__qualname__�propertyrf)res�r&rerc�s���
�
%��
%r(rergr�)rr�
isinstance)rmrnra�nadr�res     @r&�test_merge_typezTestMerge.test_merge_type�s=���	%�I�	%�
�B������3�6��*���&�-�0�0�0r(c
��tjtddddd�gtdd�gd��}tt	d��	�}d
}t
}|rd}t
j||��5t||gd�
�}t||gd�
�}ddd�ttddddd�tddddd�gtdd�tdd�gd��}|r|jt�}t
j|�y#1swY�wxYw)Ni��r]�8ri�W)rv�tr�r�zDThe behavior of DataFrame concatenation with empty or all-NA entriesr�T��ignore_index)rrFrrr�
FutureWarningr��assert_produces_warningrr�r:r�)rmr�rvrnr��warnr�r�s        r&�test_join_append_timedeltasz%TestMerge.test_join_append_timedeltas�s	��
����D�"�a��B�/�0�	�!�U�8K�7L�M�
���t�D�z�
*��T������D�
�
'�
'��C�
8�	8���Q��d�3�B��R��G�$�7�F�	8���t�R��A�r�2�H�T�2�q�!�R�4P�Q���5�)�9�Q��+>�?�
�
������v�.�H�
���f�h�/�	8�	8�s�*C?�?Dc	�v�tjd�}tt||gddg���}tt|gdg���}|j	|dd��}tt||gtd���t|tjgtd���d	��}tj||�y)
Ni���A�Br��rr})rTr��AB)�0�0r)
r�timedelta64rrr�rr4r<r�r�)rm�td�lhs�rhsr�r�s      r&�test_join_append_timedeltas2z&TestMerge.test_join_append_timedeltas2�s����^�^�I�
&�����B�x��S�z�:�;�����t�C�5�1�2�����#�s���7����R��H�D��J�7��b�"�&�&�\��d��<�
�
��	���f�h�/r(�unit)�Dr�m�s�ms�us�nsc� �tdddgi�}tddgddgd��}d|�d�}|dvrd	}n|}|j|�jd�}|dj|k(sJ�|j|dd
��}t
jddg|�
�}tjjjj||j�
�}tddg|d�ddg��}	|	dj|k(sJ�tj||	�y)N�	entity_id�e�f�days�r�rAzdatetime64[�]�r�rr�z
datetime64[s]Tr�natr,�r�r�r�)rrr��to_framer-rrr�r4�core�arrays�
DatetimeArray�_simple_newr�r�)
rmr�r`�serr-�	exp_dtyperar�r�r�s
          r&�test_other_datetime_unitz"TestMerge.test_other_datetime_unit�s����s�C�j�1�2���d�D�\�#�s��&�A���d�V�1�%���?�"�'�I��I��j�j��#�,�,�V�4���6�{� � �I�-�-�-����3����F���x�x����i�8���w�w�~�~�+�+�7�7��D�J�J�7�O���!�3�Z��
�!�&�)�
���6�{� � �I�-�-�-�
���f�c�*r(c�4�tdddgi�}tddgddgd��}d|�d�}|dvrXd	}tjt|�
�5|j|�ddd�|jd�j
d�}n4|j|�j
d�}|dj|k(sJ�|j|dd�
�}tddgtjddg|��d�ddg��}tj||�y#1swY��xYw)Nr�r�r�r�r�zm8[r�r�z/Supported resolutions are 's', 'ms', 'us', 'ns'r�zm8[s]Trr�r,r�r�)
rrr�r�r�r�r�r-rrr�r�r�)	rmr�r`r�r-r�rar�r�s	         r&�test_other_timedelta_unitz#TestMerge.test_other_timedelta_units����s�C�j�1�2���d�D�\�#�s��&�A���d�V�1�
���?�"�C�C����z��5�
"��
�
�5�!�
"��*�*�W�%�.�.�v�6�C��*�*�U�#�,�,�V�4�C��v�;�$�$��-�-�-����3����F�����*�b�h�h��u�~�U�.S�T� �&�)�
��	���f�c�*�
"�
"�s�	D�Dc��tgd�gd�gd�d��}tgd�gd�gd�d��}gd�|_gd�|_tgd�gd�gd�gd�gd�d��}gd�|_tjt	||�|�gd	�|_d
}tjt|��5t	||�ddd�y#1swYyxYw)Nrr r!�rzr{r)rzr/r/)rzr�r�)rzr{r�v3�v4)rzr/r/r�r�)rgr/r/zBData columns not unique: Index\(\['foo'\], dtype='object|string'\)r�)rr�r�r�rr�r�r)rmrnrar�r�s     r&�&test_overlapping_columns_error_messagez0TestMerge.test_overlapping_columns_error_message)s���
�y�	��K�
L���	��)�L�M��*��
�+���� �����
�
��?���
���e�B��n�h�7�-���S��
�]�]�:�S�
1�	��"�c�N�	�	�	�s�'
B=�=Cc��ttjddd��ddgd��}ttjddd��gd	�d��}ttjdd
d��ddtjtjgtjdddgd��}t||dd
��}t
j||�y)N�20151010rr1��periodsr3r*r��20151011r[rr\r4rzr�r�)rr4�
date_rangerr;rr�r�r�s     r&�test_merge_on_datetime64tzz$TestMerge.test_merge_on_datetime64tzAs�����}�}�Z��|�L��Q��
�
����}�}�Z��|�L�"�
�
����}�}�Z��|�L��q�"�&�&�"�&�&�1��F�F�A�q�!�,�
�
���t�U�u�'�:��
���f�h�/r(c��tddgtjddd��d��}tddgtjddd��d��}tgd	�ttjddd���tjgztjgttjddd���zd
��}t||dd�
�}t
j||�|djdk(sJ�|djdk(sJ�y)Nr*rr�r1r�r�r[r�rr4rzr�r�r�zdatetime64[ns, US/Eastern]r�)	rr4r�rr<rr�r�r-r�s     r&�test_merge_datetime64tz_valuesz(TestMerge.test_merge_datetime64tz_valuesZs����1�v����z�1��N�
�
����1�v����z�1��N�
�
��� ���
�
�j�!�� U�V��6�6�(���F�F�8��r�}�}�Z��|�L�M�N�	
�
���t�U�u�'�:��
���f�h�/��i� �&�&�*F�F�F�F��i� �&�&�*F�F�F�Fr(c	��tjd��}ttdg|��dgtdg|��d�gd���}|dd	}|j	|d
��}tt|��tt��t|��tt��t|��d�gd���}tj||�y)
N�UTCr2�2018r,g@�2019)rrq�date2r�rrr�)rr��date2_xr��date2_y)	r4�DatetimeTZDtyperrrrr9r�r�)rm�dtzr�r}r�r�s      r&� test_merge_on_datetime64tz_emptyz*TestMerge.test_merge_on_datetime64tz_emptyus���� � �E�*���%�v�h�c�:���&��x�s�;�
�
/�

���R�a�y�����E�f��-����S�)�!��.�!��,�!��.�!��,�
�I�	
��	���f�h�/r(c��ttjdddd��dg��}d|d	<ttjgd
��dd��}|djjd
�jj
d�|d<t||dd��}ttjdddd��dgdztjgdzztjgdzdgdzzd��}tj||�y)Nz2017-10-29 01:00r\rz
Europe/Madrid)r��freqr3rr�r*rq)z2017-10-29 03:00:00z2017-10-29 04:00:00z2017-10-29 05:00:00r)rrqr�r��r�r�rxr[)rr�r�)rr4r��to_datetimer��tz_localize�
tz_convertrrr;r�r�r\s     r&�+test_merge_datetime64tz_with_dst_transitionz5TestMerge.test_merge_datetime64tz_with_dst_transition�s�����M�M�,�a�c�o�V��H�
����G���������	
�
���&�k�n�n�0�0��7�:�:�E�E�o�V��F���s�C�W��8����
�
�&������3��7�b�f�f�X��\�1��F�F�8�a�<�1�#��'�1�
�
��	���f�h�/r(c	���tjddd��}ttt	t|���|dg��}t
||g�}|j|ddd�	�}ttjtjdtj�
�jd�jdd
�d�ddg|j�j��}t!j"||�y)Nz
2016-01-01��M�r�r��pnum�r�r�Tr�)r�r�r�r,r���r*�pnum_x�pnum_y�r�r�)r4�period_rangerrrrrrrrr�r+�repeat�reshape�
sort_indexr�r�r�)rmr�rnrar�r�s      r&�"test_merge_non_unique_period_indexz,TestMerge.test_merge_non_unique_period_index�s�������b�s�C��
�t�E�#�e�*�-�.�e�f�X�
N���b�"�X������#�$�D�g��N����G�G�B�I�I�b����1�8�8��;�C�C�B��J�A�N��x�(��.�.�"�(�(�
��
	���f�h�/r(c��ttjddd��ddgd��}ttjddd��gd	�d��}ttjdd
d��ddtjtjgtjdddgd��}t||dd
��}t
j||�y)Nr�rr�r�r*r�r�r[rr\r4rzr�r�)rr4r�rr;rr�r�r�s     r&�test_merge_on_periodszTestMerge.test_merge_on_periods�s�����O�O�J���D�PQ�ST�v�V�
������z�1�3�G�"�
�
������z�1�3�G��q�"�&�&�"�&�&�1��F�F�A�q�!�,�
�
���t�U�u�'�:��
���f�h�/r(c�$�tddgtjddd��d��}tddgtjddd��d��}tjddd��}tjddd��}tgd	�t|�tjgztjgt|�zd
��}t||dd�
�}t
j||�|djdk(sJ�|djdk(sJ�y)Nr*rr�r�r�r�r[r�rr4rzr�r�r�z	Period[D]r�)	rr4r�rr<rr�r�r-)rmr}r��exp_x�exp_yr�r�s       r&�test_merge_period_valuesz"TestMerge.test_merge_period_values�s������F�R�_�_�Z��QT�%U�V�
�����F�R�_�_�Z��QT�%U�V�
�����
�A�C�@�����
�A�C�@��� ���;�"�&�&��1��F�F�8�d�5�k�1�
�
���t�U�u�'�:��
���f�h�/��i� �&�&�+�5�5�5��i� �&�&�+�5�5�5r(c��|\}}|j�}|j�}tgd�ddtjtjtjtjgddtjtjtjtjgtjdddddgtjdddddgd	��}t	gd
�gd���|d
<|gd�}t||ddd��}t
j||�|j|ddd��}t
j||�t
j||�t
j||�|}|jd
di��}t||ddd��}	t
j|	|�|j|ddd��}	t
j|	|�y)N�rr*rr[r\r]r*rrVrWr[r\r])rX�col_conflict_xrZ�col_conflict_yr^)�	left_only�both�
right_onlyr�r�r��r�r�r���
categories�_merge)rXr�rZr�r^r�rXr�T�r�r��	indicator�custom_namer�)	r�rrr;r	rr�r��rename)
rmrbr`ra�df1_copy�df2_copy�	df_result�test�df_result_custom_name�test_custom_names
          r&�test_indicatorzTestMerge.test_indicator�s���$���S��8�8�:���8�8�:���*�#$�a�������������"H� �#�r�v�v�r�v�v�r�v�v�r�v�v�F�#%�6�6�1�a��A�q�"9� �f�f�a��A�q�!�4�
�
�	�*�
�;�

�	�(���
�	
�	��S�#�&�g��F��
���d�I�.��y�y���W��y�E��
���d�I�.�	���c�8�,�
���c�8�,�!*�� 5� <� <��}�-�!=�!
��!����W�
�
��	���.�0E�F��9�9��F��=�%�
��	���.�0E�Fr(c��|\}}d}tjt|��5t||ddd��ddd�tjt|��5|j|ddd��ddd�y#1swY�CxYw#1swYyxYw)Nz<indicator option can only accept boolean or string argumentsr�rXr�r]r�r�)rmrbr`rar�s     r&�#test_merge_indicator_arg_validationz-TestMerge.test_merge_indicator_arg_validation%s���$���S�L��
�]�]�:�S�
1�	A��#�s�v�7�a�@�	A�
�]�]�:�S�
1�	@��I�I�c�f�'�Q�I�?�	@�	@�	A�	A��	@�	@�s�A6�B�6A?�Bc�`�|\}}t||ddd��}|jdk7j�sJ�|j|ddd��}|jdk7j�sJ�t||ddd��}|jdk7j�sJ�|j|ddd��}|jdk7j�sJ�t||ddd��}|jd	k(j�sJ�|j|ddd��}|jd	k(j�sJ�y)
NrXr}Tr�r�r�r�r�r�)rr�r�)rmrbr`ra�test2�test3�test4s       r&�%test_merge_indicator_result_integrityz/TestMerge.test_merge_indicator_result_integrity/s%��$���S��c�3�6�v��F������,�1�1�3�3�3��	�	�#�&�f��	�E������,�1�1�3�3�3��c�3�6�w�$�G������+�0�0�2�2�2��	�	�#�&�g��	�F������+�0�0�2�2�2��c�3�6�w�$�G������&�+�+�-�-�-��	�	�#�&�g��	�F������&�+�+�-�-�-r(c	��|\}}dD]�}tdddg|ddgi�}d|�d�}tjt|��5t	||ddd	�
�ddd�tjt|��5|j	|ddd	�
�ddd���tddgddgd��}d}tjt|��5t	||ddd
�
�ddd�tjt|��5|j	|ddd
�
�ddd�y#1swY��xYw#1swY��#xYw#1swY�\xYw#1swYyxYw)N)�_right_indicator�_left_indicatorr�rXr*rzECannot use `indicator=True` option when data contains a column named z;|Cannot use name of an existing column for indicator columnr�r�Tr�)rX�custom_column_namez:Cannot use name of an existing column for indicator columnr��rr�r�r�r)rmrbr`rSr
�df_badcolumnr�s       r&�test_merge_indicator_invalidz&TestMerge.test_merge_indicator_invalidBsi��"���Q�B�	P�A�$�f�q�!�f�a�!�Q��%@�A�L� � !�s�#M�M�
�
���z��5�
Q��c�<�F��4�P�
Q����z��5�
P��	�	�,�6�w�$�	�O�
P�
P�	P�!�1�a�&��A��!O�P��J��
�]�]�:�S�
1�	������.�
�	��]�]�:�S�
1�	��I�I���W�@T�
�
�	�	�#
Q�
Q��
P�
P��	�	��	�	�s/�D�3D!�D.�6D:�D	�!D+	�.D7�:Ec�B�tddgddgd��}tgd�gd�d��}tgd�gd	�d��}tgd
�gd���|d
<t||ddgdd��}tj||�|j|ddgdd��}tj||�y)Nrr*rVrW)rX�col2)r*r*r[)rWrCr�)rr*r*r[�rVrWrCr�)r�r�r�r�r�r�r�rXr�r�Tr��rr	rr�r�)rm�df3�df4�hand_coded_result�test5s     r&�%test_merge_indicator_multiple_columnsz/TestMerge.test_merge_indicator_multiple_columnsds����!�Q��#�s��<�=����O�D�E��%�!�+?�@�
��'2�=�:�'
��(�#�
�c�3�F�F�#3��D�Q��
���e�%6�7��	�	�#�6�6�"2��4�	�P��
���e�%6�7r(c�	�tgd�gd�d�td���}tgd�gd�d�td	���}|j�}|j�}t||d
d
d��}t	j
||�t	j
||�tgd�gd�gd�gd
�d�td�gd���}t||d
d
d��}t	j
||�tgd�gd�gd
�d�td���}t||dd��}t	j
||�t	j
||�t	j
||�t||dd��}t	j
||�tgd�gd�gd
�d�gd�td���}|j
d�}	t|	|d
dd��}t	j
||�t|tdgdgd�dg��g�}
t||
d
d
d��d}tjt|��5t||
d
d
d��ddd�tjt|��5t||
dd��ddd�t|tdgdgd�dg��gd
��}t||d
d
d��d }tjt|��5t||d
d
d��ddd�tjt|��5t||dd��ddd�t||
dd!��d"}tjt|��5t||
d
d
d��ddd�d#}tjt|��5t||
dd��ddd�d$}tjt|��5t||dd%��ddd�tgd&�gd'�gd�d�td���}tgd(�gd)�gd*�d+�td���}tgd(�gd)�gd,�gd*�d�td���}
d-}tjt|��5t||dd��ddd�t||dd.gd��}t	j
||
�y#1swY��ExYw#1swY��xYw#1swY���xYw#1swY���xYw#1swY��hxYw#1swY��@xYw#1swY��xYw#1swY��xYw)/Nr)�cat�dog�weasel�horser�r\r��rVrWrurvrw)�meow�bark�um... weasel noise?�nay�chirp�rVrur]Tz1:1)r�r��validate)rrrr	)�a_xrW�a_yrur��
one_to_onerrV)r�r�rWrVrur�)r�r�rrw�moo�one_to_manyzBMerge keys are not unique in right dataset; not a one-to-one merger��cowr[)r��many_to_onezAMerge keys are not unique in left dataset; not a one-to-one merge�many_to_manyzCMerge keys are not unique in right dataset; not a many-to-one mergezBMerge keys are not unique in left dataset; not a one-to-many mergez�"jibberish" is not a valid argument. Valid arguments are:
- "1:1"
- "1:m"
- "m:1"
- "m:m"
- "one_to_one"
- "one_to_many"
- "many_to_one"
- "many_to_many"�	jibberish)rVrVrWrW)rr*rr*�rVrVrW)rr*r)rrr)rVrWrv)rrrzQMerge keys are not unique in either left or right dataset; not a one-to-one mergerW)rrr�rr�r�r�rr�r�rr�)rmr}r��	left_copy�
right_copyr�r��
expected_2�
expected_3�left_index_reset�right_w_dupsr��left_w_dups�expected_multis              r&�test_validationzTestMerge.test_validationws����&�-N�O���(�
��
�.�L�
���(�
���I�I�K�	��Z�Z�\�
��t�U�t��PU�V��
���d�I�.�
���e�Z�0��+�6�+�C�	
���(�,�	
����%�D�d�\�
��	���f�h�/��)�6�C�
�
��(�

�
��t�U�s�U�;��
���d�I�.�
���e�Z�0�
���f�j�1��t�U�s�\�B��
���f�j�1��6�)�C�
�
$���(�
�
� �>�>�#�.�������!�
��	���f�j�1��u�i�s�e�5�'�0J�ST�RU�&V�W�X��
�����"�	
�S��
�]�]�:�S�
1�	����� �%�
�	��]�]�:�S�
1�	E��$���|�D�	E��
�9�C�5��w�7��s�C�D�4�
��	�����"�	
�R��
�]�]�:�S�
1�	����� �%�
�	��]�]�:�S�
1�	E��+�u��|�D�	E�	�k�<�C�.�I�S��
�]�]�:�S�
1�	����� �&�
�	�S��
�]�]�:�S�
1�	M��+�|��m�L�	M�
	
�	��]�]�:�S�
1�	=��$��#��<�	=��)�!�6�
�
��(�

���$��<�
�
��(�

��#�$��-�<�	
���(�
��
%�	��]�]�:�S�
1�	7��$��#��6�	7��t�U��S�z�E�B��
���f�n�5�W	�	��	E�	E�� 	�	��	E�	E��	�	��	M�	M�� 	=�	=��H	7�	7�s`�Q2�Q?�7R�+R�/R&�%R3�S�2S
�2Q<�?R	�R�R#�&R0�3R=�S
�
Sc��tgggd��}tjd��5t||d��ddd�y#1swYyxYw)Nr�raise)�divider�r�)rr�errstater)rmrVs  r&�)test_merge_two_empty_df_no_division_errorz3TestMerge.test_merge_two_empty_df_no_division_error<s@���B�R�b�1�2��
�[�[��
(�	'��!�Q�:�&�	'�	'�	'�s	�>�Ar�zindex,expected_index)r*rr\)r*rr\NNN)�
2001-01-01�
2002-02-02�
2003-03-03zM8[ns]r,r&r'r(r)r*rr[NNN)�r*r�rr[�r[r\r)r*r+)r&�
2001-01-02�
2001-01-03r�)r�r,r-)�1d�2d�3dr.r/r0c
�b�tgd�gd�d�|��}tdgd�i�}|j|dd|��}tgd	�gd
�gd�tjddgtjd
d
gtjddgggd���}|j	|d��tj||�y)Nr,�rVrzr�rWr�rzTr�)rrr�r*r*r*�rrrr[r\r]�rVrzrWr�)�inplace)rrrr;r�r�r�)rmr�r��expected_indexr`rar�r�s        r&�$test_merge_on_index_with_more_valuesz.TestMerge.test_merge_on_index_with_more_valuesBs���^�i�	�:�%�H����0�1�2�����3��4�S��I����������A������A������A��

�&�

��	���>�4��8�
���f�h�/r(c���tgd�gd�d��}tdgd�i�}tgd�gd�gd�d�gd�d	d
dtjg��}|j|d
dd��}t	j
||�y)Nr)rr*r*r2rW�r*rr[N)rr*r*r)r*rrr[r5rr*rr�rzTr�r��rrr;rr�r�r�s     r&�test_merge_right_index_rightz&TestMerge.test_merge_right_index_right�sq���y��;�<���3�	�*�+���!�,�\�J�%��a��B�F�F�#�
��
���E�5�d���P��
���f�h�/r(c��tddgddgd��}tddgddgd��}|j|dd	g|�
�}|dk(rtddgddgd��}ntddgddgd��}tj||�y)Nr�pig�(ro)�animal�	max_speed�quetzal�Pr@rAr�r�r�)rmr��left_df�right_dfr�r�s      r&�test_merge_preserves_row_orderz(TestMerge.test_merge_preserves_row_order�s�����u�~�R��H�M�N����E�(:�"�b��R�S�����x�X�{�,C���M���'�>� �Y��,>�b�RT�X�!V�W�H� �U�E�N�"�b��!R�S�H�
���f�h�/r(c	�j�tgd�tgd�td���d��}tdgd�itgd����}|j	|d	d
d��}tgd
�tgd��gd�d�dddt
jg��}|jgd���}tj||�y)Nrr�abcr�r2rWrr�rzTr�r�r:)rVrVrWru)r*r*rr[r5rr*rr�)
rr	rr
rrr;�reindexr�r�r�s     r&�8test_merge_take_missing_values_from_index_of_other_dtypezBTestMerge.test_merge_take_missing_values_from_index_of_other_dtype�s�����"�?�t�E�{�K�
�
���3�	�*�2B�?�2S�T�����E�5�d���P���$�"�#7�8�!�
�
�a��B�F�F�#�

���#�#�,=�#�>��
���f�h�/r(c�N�ttjd�jd�dzgd���}ttjd�jd�dzgd���}|jj
D]}d|j_�|j|�y)	Nr�)r\r]r*rr�)r]r\r�F)	rrr�r��_mgrr��flags�	writeabler)rmrirjr%s    r&�test_merge_readonlyzTestMerge.test_merge_readonly�s�����I�I�b�M�!�!�&�)�A�-�7P�
����I�I�b�M�!�!�&�)�A�-�7K�
��
�:�:�$�$�	(�C�"'�C�I�I��	(�	���E�r(N)Prgrhrir��fixturernrar}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
rr�mark�parametrizerrr.r2r7r;rIrLr]r`�filterwarningsrmrwr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r r%r
rr4r<r��ALL_REAL_NUMPY_DTYPESr
r�float64r�from_tuplesr;rrr8r<rFrJrO)�.0�dtypr
rs0000r&rdrdosk���^�^�����^�^�
��
��^�^�
��
��^�^�
��
�0�+�

0�0�H�8G�*H�&�8 �7�(
+�M�0�&2�.K�@
��*�,��[�[���U�$G�H�,�I�,��[�[������5��S�1��D�1���-�		
��.��.�-�^('�T0�$0�*@�@�[�[����e�_�5��o�7N�O���[�[���U�V�W�$5�6�0�7��0�C�*0��[�[���W��	1��	1�0�40� �[�[���V�%K�L�+�M�+�:�[�[���V�%K�L�+�M�+�2�00�2G�60�20�@0�0�*6�,=G�~@�.�& �D8�&C6�J'��[�[���U�W�g�$6�7��[�[����!��+� �!<�=�
�
�>�h���!�<��r�v�v�r�v�v�r�v�v�V�"��	
�&	
�&�4�4���
��)�4�0��5�R�Z�Z�H���&	
�,*�
�)�)�*B�C�)�
�)�)��V�V�R�V�V�R�V�V�R�V�V�D��
�+&	
�8�F�S�Q��!�<��r�v�v�r�v�v�r�v�v�V���
�7&	
�F�1�2���d�D�"�&�&�"�&�&�"�&�&�I�J�
�E&	
�)�T0�U)�8�V0�*
0��[�[���U�V�W�$5�6�	0�7�	0�0�*
��s�+3Nrdc���dD]q}dD]j}|j|||��}t|j�|j�||��}|jd�}t	j
||d���l�sy)N)r�r}r�)TF�r�r�r�F)�check_names)r�rr[r�r�r�)rCr�r�r�r�r�s      r&rr�sx��)�G��!�	G�D��V�V�A�3�T�V�2�F��Q�]�]�_�a�m�m�o�3�T�R�H��)�)�'�2�H�
�!�!�&�(��F�	G�Gr(c��eZdZejjdddgeddg�jd�g�d��Zejjde	je	je	je	je	je	jg�ejjde	je	j e	j"e	j$g�d���Zejjd	gd
�gd�gd
�gd�d�fgd
�d
dgddgd
dgd�fddggd�ddgd
dgd�fg�d��Zd�Zd�Zd�Zd�Zejjdgd�egd��jd�fgd�egd��jd�fddgeddge��fddgeddge��fg�d ��Zejjdeddgd!��gd"�feddgd#��gd"�fgd�gd$�fgd�gd$�fgd�gd$�fej:d%dd&�'�d(d)gfej:d%dd&�'�ddgfej:d%dd&�'�d*d
gfej:d+d�,�ej:d+dd-�.�fg	�d/��Zejjd0ddgd1fgd2fdgd3fdgd4fg�d5��Zejjd0d6d7gd1fgd2fd7gd3fd6gd4fg�d8��Z ejjd9d2gd:�gd;�gfd1gd;�gd:�gfd4gd:�gd;�gfd3gd;�gd:�gfg�d<��Z!d=�Z"ejjd>gd?��d@��Z#yA)B�TestMergeDtypes�
right_valsr/r��categoryc�T�tddgtddg�jd�ddgddgtddgd�	�tddgd
�	�d��}td|i�}t||d�
�}t	|j
j�s"t|j
j�sJ�yy)Nr/r�r_r*r��?�@�uint64r,�int32)ryrz�Cr��E�Fryr�)rrr�rrryr-r)rmr^r}r�r�s     r&�test_differentzTestMergeDtypes.test_different�s�����U�^��U�E�N�+�2�2�:�>���V��3�Z��Q��F�(�3��Q��F�'�2�

�	
���3�
�+�,��
�t�U�s�+���v�x�x�~�~�.�/�&�(�(�.�.�2Q�Q�Q�2Q�.r(�d1�d2c	���tj|�}tj|�}ttjgd�dz|��ddgdztjtjd�tj
��d��}t
jd	d
g�}tdtjdd
g|��i|��}|j|ddg��}|j�}	|jdk(rtjd�}tjtj|��|	d<d|	j|	jdk(|	jdk(zdf<d
|	j|	jdk(|	jdk(zdf<tj ||	�|j|ddgd��}|	j#ddgdd��tj ||	�y)Nr,r�r,r/r�r?�)�k1�k2�v)rr�)r*r/rr]rxr�rmrnr�r
rUrr*TrD�	mergesort)�kindr6)rr-rr�r�r+rrVr�r�rqr;r�rmrnr�r��sort_values)
rmrirj�dtype1�dtype2r}r�r�r�r�s
          r&�test_join_multi_dtypesz&TestMergeDtypes.test_join_multi_dtypes�s���
���"������"�����h�h�y�1�}�F�;��e�n�r�)��X�X�b�i�i��m�2�8�8�<�
�
���&�&�
�J�'?�@���4����1�a�&��!?�@��N�����5�d�D�\��2���9�9�;���;�;�#���X�X�i�(�F����"�&�&��7����JK����h�k�k�Q�&�8�;�;�%�+?�@�$�F�G�JK����h�k�k�Q�&�8�;�;�%�+?�@�$�F�G�
���f�h�/����5�d�D�\���=�����d�D�\��T��J�
���f�h�/r(zint_vals, float_vals, exp_valsr)rarb�@��X�Yrarvr*r[rrbc��td|i�}td|i�}t|�}|j|dd��}tj||�|j|dd��}tj||ddg�y)Nrxryr�r�)rm�int_vals�
float_vals�exp_valsryrzr�r�s        r&�test_merge_on_ints_floatsz)TestMergeDtypes.test_merge_on_ints_floatss|��
�s�H�o�&���s�J�'�(���X�&������C�#��6��
���f�h�/�����C�#��6��
���f�h��S�z�&:�;r(c��tddgddgd�ddg��}td	gd
gd�ddg��}|j|dd
��}tddgddgtjdgd�gd���}t	j
||�y)Nrarbrpr�ryrzr{r�r��)rzrrr}r�gi@r�)rrrr;r�r�r\s     r&�test_merge_key_dtype_castz)TestMergeDtypes.test_merge_key_dtype_casts�����c�
�2�r�(�;�e�T�]�S�����C�5�1�E�4�=�I�����3�5�f��5����#�J�r�2�h�r�v�v�u�o�F�'�
��	���f�h�/r(c���tdgd�i�}tdgd�i�}tdgdgd��}tjt�5|j	|dd��}tj
||�ddd�tjt�5|j	|dd��}tj
||ddg�ddd�tdtjtjdgi�}tjd�5|j	|dd��}tj
||ddg�ddd�y#1swY��xYw#1swY��xYw#1swYyxYw)	Nrxrry)皙�����?g@rvr[rvrwr�)rr�ru�UserWarningrr�rr;)rmryrzr�r�s     r&�!test_merge_on_ints_floats_warningz1TestMergeDtypes.test_merge_on_ints_floats_warning)sL��

�s�I�&�'���s�O�,�-���A�3�c�U�3�4��
�
'�
'��
4�	4��W�W�Q��c�W�:�F��!�!�&�(�3�	4��
'�
'��
4�	@��W�W�Q��c�W�:�F��!�!�&�(�C��:�*>�?�	@�

�s�R�V�V�R�V�V�S�1�2�3��
�
'�
'��
-�	@��W�W�Q��c�W�:�F��!�!�&�(�C��:�*>�?�	@�	@�	4�	4��	@�	@��	@�	@�s$�+E�0E�
0E�E�E�E'c��tdtddgt��i�}tdddgi�}tdddgit��}t||d��}t	j
||�t||d��}t	j
||�y�NrzTFr,r�)rrr:rr�r��rmr`rar�r�s     r&�(test_merge_incompat_infer_boolean_objectz8TestMergeDtypes.test_merge_incompat_infer_boolean_objectAs�������e�}�F� C�D�E�����u�
�.�/���e�d�E�]�3�6�B���s�C�E�*��
���f�h�/��s�C�E�*��
���f�h�/r(c�6�tdtddtjgt��i�}tdddgi�}tdddgit��}t||d��}t
j||�t||d��}t
j||�yr�)rrrr;r:rr�r�r�s     r&�5test_merge_incompat_infer_boolean_object_with_missingzETestMergeDtypes.test_merge_incompat_infer_boolean_object_with_missingLs�������e�R�V�V�'<�F� K�L�M�����u�
�.�/���e�d�E�]�3�6�B���s�C�E�*��
���f�h�/��s�C�E�*��
���f�h�/r(zdf1_vals, df2_valsr,)rVrWrV)rUrarbrFTr,c�8�td|i�}td|i�}t||dg��}t|jj�sJ�t||dg��}t|jj�s"t|jj�sJ�yy)Nryr�)rrrryr-r)rm�df1_vals�df2_valsr`rar�s      r&�!test_merge_incompat_dtypes_are_okz1TestMergeDtypes.test_merge_incompat_dtypes_are_okXs��� ��h��(����h��(���s�C�S�E�*���v�x�x�~�~�.�.�.��s�C�S�E�*���v�x�x�~�~�.�/�&�(�(�.�.�2Q�Q�Q�2Q�.r(rcrrd)r}�1�2z1/1/2011r�r�z
2011-01-01z
2011-01-02rU�20130101)r�r1r�c�\�td|i�}td|i�}d|dj�d|dj�d�}tj|�}t	j
t|��5t||dg��ddd�d|dj�d|dj�d�}tj|�}t	j
t|��5t||dg��ddd�t|�t|�k(r�t|||d��}t|||d��}d|dj�d|dj�d	�}tj|�}t	j
t|��5t||�ddd�d|d
j�d|d
j�d�}tj|�}t	j
t|��5t||dd
g��ddd�yy#1swY���xYw#1swY��"xYw#1swY��xYw#1swYyxYw)Nry�You are trying to merge on � and zE columns for key 'A'. If you wish to proceed you should use pd.concatr�r��ryrzrerzzE columns for key 'B'. If you wish to proceed you should use pd.concatrezE columns for key 'C'. If you wish to proceed you should use pd.concat)	rr-�re�escaper�r�r�rr)rmr�r�r`rar�r�r�s        r&� test_merge_incompat_dtypes_errorz0TestMergeDtypes.test_merge_incompat_dtypes_errorps)��4��h��(����h��(��*�#�c�(�.�.�)9��s�3�x�~�~�>N�OS�
S�	��i�i��n��
�]�]�:�S�
1�	&��#�s��u�%�	&�
*�#�c�(�.�.�)9��s�3�x�~�~�>N�OS�
S�	��i�i��n��
�]�]�:�S�
1�	&��#�s��u�%�	&�
�x�=�C��M�)��(���I�J�C��(���I�J�C�
.�c�#�h�n�n�-=�U�3�s�8�>�>�BR�SW�W�
��)�)�C�.�C����z��5�
 ��c�3��
 �.�c�#�h�n�n�-=�U�3�s�8�>�>�BR�SW�W�
��)�)�C�.�C����z��5�
/��c�3�C��:�.�
/�
/�/*�	&�	&��	&�	&��$
 �
 ��
/�
/�s0�.G<�H	�9
H�!H"�<H�	H�H�"H+zexpected_data, howr�r�r�r}c���tdgdg|��}tdgdg|��}t|||��}tt|��}t||dg|��}t	j
||�y)N)r*�idr�)rr��r�r�r-�rrrrr�r�)	rm�any_numeric_ea_dtyper��
expected_datarirjr��	exp_indexr�s	         r&�test_merge_EA_dtypez#TestMergeDtypes.test_merge_EA_dtype�so����v��v�5I�
J��
��v��v�5I�
J���r�2�3�'���s�=�1�2�	����T�F�BV�
��	���f�h�/r(rVrWc���tdgdg|��}tdgdg|��}t|||��}tt|��}t||dg|��}t	j
||�y)N)rVr�r�)rWr�r�r�)	rmr�r��any_string_dtyperirjr��exp_idxr�s	         r&�test_merge_string_dtypez'TestMergeDtypes.test_merge_string_dtype�so����x�$��7G�
H��
��x�$��7G�
H���r�2�3�'���S��/�0�����4�&�@P�
��	���f�h�/r(zhow, expected_data)Tr*r\)Fr]r[c��tddgddgd��}tddgddgd��}t|||�	�}t|gd
���}tj||�y)NTFr*r]�ryrzr[r\�ryrer�r�r�r�)rmr�r�r`rar�r�s       r&�test_merge_bool_dtypez%TestMergeDtypes.test_merge_bool_dtype�s\���t�U�m�1�a�&�9�:���u�d�m�1�a�&�9�:���s�C�S�)���]�O�D��
���f�h�/r(c�n�tgd�gd�d�tj���}|j�}tdddtjdgd	d
dtjdgd
�|��}|j�}t||dg|��}t
j||�t
j||�ttjd�tj�tjd�gtjgd����}t
j|j|�y)N)r�r��3�4N)r��5�6�7�8)��lvl0zlvl1-a�r�zlvl1-b)�datar-r�r�r�r�r�r��9�11)r��r�zlvl1-cr�)r}r�r�r��O)r�r�r�r�)rr4�StringDtyper��NArr�r�rrr-rrVr�r5)	rmr�string_dtyper`r�rar�r�r�s	         r&�test_merge_ea_with_stringz)TestMergeDtypes.test_merge_ea_with_string�s����$>�$=���.�.�"�
���8�8�:���%(�#�s�B�E�E�3�$?�%(�#�s�B�E�E�4�$@���
���8�8�:���C�s�0B�/C��S��	���c�8�,�
���c�8�,��
�X�X�c�]�B�N�N�,�b�h�h�s�m�<��(�(�L��
��	���v�}�}�h�7r(zleft_empty, how, exp)
)Fr}r})Fr��empty)Fr�r�)Fr�r})F�cross�empty_cross)Tr}r�)Tr�r�)Tr�r�)Tr�r�)Tr�r�c�$�tddgddgd��}tdgdgd�d�	�}|r|jd
�}n|jd
�}|j||��}|dk(r2tddgddgtjtjgd
��}nO|dk(r!tdgtjgdgd
��}n)|dk(rtgd
�d��}n|dk(rtgd�d��}|dk(rjdd��}t
j|�y)Nrr*r[r\r�r]r�r+r,rr�r}r�r�r�r�r�)�A_xrz�A_yrer�ryTrr)r�headrrr;rrr�r�)rm�
left_emptyr�r�r}r�r�r�s        r&�test_merge_emptyz TestMergeDtypes.test_merge_emptys�� ��1�v�Q��F�3�4�����1�#�.�g�>����9�9�Q�<�D��J�J�q�M�E����E�s��+���&�=� ��1�v�Q��F�"�&�&�"�&�&�AQ�!R�S�H�
�G�^� ��s�"�&�&����!D�E�H�
�G�^� ���H�H�
�M�
!� �)A��Q�H��'�>��+�+�C�d�+�C�H�
���f�h�/r(N)$rgrhrir�rQrRrr�rhrr+rd�intc�int16�int8�uint8rU�float32�float16rur~r�r�r�r�r:r�r�r4r�r�r�r�r�r�r�r6r(r&r]r]�s����[�[�����u�~�v�u�e�n�'=�'D�'D�Z�'P�Q��R��R�&�[�[����r�x�x����2�7�7�B�H�H�b�g�g�r�x�x�H���[�[���T�B�H�H�b�j�j�"�*�*�b�j�j�#Q�R�0�S��0�>�[�[���(�
��y��)O�P�
��c�
�1�a�&��S�z�$B�C���V�_�Q��F�#�s��&D�E�	
��<��<�	0�@�0	0�
0��[�[�������/�6�6�z�B�C�
�f�_�5�<�<�Z�H�I���V�V�U�D�M��8�9���V�V�U�D�M��6�7�
	
�
�R�
�R��[�[�����Q��F�(�
+�_�=�
�Q��F�'�
*�O�<�
��(�
�o�.�
��(���
�
�j�!�#�>��|�,�
��R�]�]�:�q�s�
;�a��V�D�
�R�]�]�:�q�s�
;�c�3�Z�H���
�
�j�!�4���
�
�j�!��E�
�	
��*3/�+�*3/�j�[�[������V�W��
��M��S�'�N��S�&�M�		
��	0��	0��[�[�����3�Z��!�
��M��U�G���U�F�O�		
��	0��	0��[�[����
�|�]�3�4�
�}�l�3�4�
�l�M�2�3�
�}�l�3�4�		
��0��0�8�B�[�[����	
��0��0r(r]c�$�tttjj	d�jddgd���j
tddg��tjj	d�jgd�d��d��S)Nrr/r�)rpr=)�one�two�threerw)rrrrr �choicer�rr6r(r&r}r}=sy�����	�	�%�%�a�(�/�/����U�/�K���f�%�u�e�n�5�6����&�&�q�)�0�0�1H�u�0�U�		
��r(c�l�ttddg�jtddg��ddgd��S)Nr/r�r*r)rx�Z)rrr�rr6r(r&r�r�Is<�������'�.�.�/?����/O�P��Q��	
��r(c
��eZdZd�Zd�Zd�Zd�Zejjdddg�d��Z
d	�Zejjd
d�d�d
�g�d��Zd�Z
d�Zejjdddg�ejjdgd�ddgddgfgd�ddgddgfgd�ddgddgfg�d���Zd�Zy)�TestMergeCategoricalc���t||d��}|jj�}|stjd�nd}tt
ddg��||ggd��	�}tj||�y)
Nrxr�r��stringr/r�r�)rx�Y_x�Y_yr��	rr5r�rr-rrr�r�)rmr}r�r�r�r-r�s       r&�test_identicalz#TestMergeCategorical.test_identicalTse���t�T�c�*�����)�)�+��%7�����
�X���
�%���
8�%��G�%�
��	���v�x�0r(c��t||d��}|jj�}|stjd�nd}tt
ddg��|tjd�ggd	��
�}tj||�y)Nrxr�r�r�r/r�r�r+�rxryr�r�r��rmr}r�r�r�r�r-r�s        r&�
test_basiczTestMergeCategorical.test_basic_sv���t�U�s�+�����)�)�+��%7�����
�X��� �U�E�N�;������!�
�
"�

��	���v�x�0r(c	�
�tdddddd�dddddd�d��}td	d	d	d	d	d�d
d
d
d
d
d�d��}t||ddd�
�}|j�}|j�}|djd�|d<t||ddd�
�}|djt	dg��|d<tj||�|j�}|djd�|d<t||ddd�
�}tj||�|j�}|djd�|d<|j�}|djd�|d<t||ddd�
�}tj||�y)NrVrWrurvrw)rr*rr[r\�nullr�rrr�r})r�r�r�r_)rrr�r�rr�r�)rmr�r}rnr��crightr��clefts        r&�test_merge_categoricalz+TestMergeCategorical.test_merge_categoricalos���������=��F�v�&�V�L�
�
��������=������=�
�
���4��F�C�#�
F���7�7�9��
������S�k�(�(��4��s���t�V���s�K�� ��
�,�,�-=�v�h�-G�H���
�
���f�h�/��	�	����3�Z�&�&�z�2��c�
��u�f�&�#��L��
���f�h�/�������S�k�(�(��4��s���	�	����3�Z�&�&�z�2��c�
��u�f�&�#��L��
���f�h�/r(c��ttgd�gd���gd�d��}ttgd�gd���gd�d��}t||dg�	�}ttgd��gd�gd
�d��}tj||�y)Nr�r�)�A0�B0�C0)�Foo�Left)rerzry)�C1�B1�A1)r��Rightr�r�)r�r�r�)r�r�r�r�r\s     r&�'tests_merge_categorical_unordered_equalz<TestMergeCategorical.tests_merge_categorical_unordered_equal�s}���"�?��O�*�
�
���"�?��O�+�
�
���s�C�U�G�,���"�?�3�*�+�
�
��	���f�h�/r(�orderedTFc��tddg|��}tgd�tgd�|��gd�d��jd	d
g�}tgd�tgd�|��gd
�d��jd	d
g�}t	||ddd��}tgd�tgd�|��gd�ddt
jgd��jd	d
g�}tj||�y)N�P2�P1�r�r�)rerer�)r�r�r�r,r,)r��prVr�r�)ryrere)r�r�r�)rpror?)r�r�rir}Tr�g&@g(@)r�r�rVri)	rrr	r�rrr;r�r�)rmr��pcatr`rar�r�s       r&�5test_multiindex_merge_with_unordered_categoricalindexzJTestMergeCategorical.test_multiindex_merge_with_unordered_categoricalindex�s��� �D�$�<��I���%� �!3�4�@��
�
��)�T�3�K�
 �
	��%� �!3�4�@�"�
�
��)�T�3�K�
 �
	��s�C�V��$�O���%� �!3�4�@���T�2�6�6�*�	
�
��)�T�3�K�
 �	�	���f�h�/r(c�H�|j|jjd���}t||d��}|jj�}|st
jd�nd}ttddg�	�|td
dg�	�ggd��
�}tj||�|jjj|jj�sJ�|jjj|jj�sJ�y)Nr_)r�rxr�r�r�r/r�r�r*rr�r�)�assignr�r�rr5r�rr-rrr�r�rxrJ�#_categories_match_up_to_permutationr�s        r&�test_other_columnsz'TestMergeCategorical.test_other_columns�s������u�w�w�~�~�j�9��:���t�U�s�+�����)�)�+��%7�����
�X��� �U�E�N�;�� �Q��F�3�
�
"�

��	���v�x�0��v�v�}�}�@�@������Q�Q�Q��w�w�~�~�A�A�&�(�(�/�/�R�R�Rr(�changec��|Sr?r6rBs r&rDzTestMergeCategorical.<lambda>�s��a�r(c�:�|jtgd���S)N)r/r��bah�r�rrBs r&rDzTestMergeCategorical.<lambda>�s��a�h�h�/�0E�F�G�r(c�8�|jtd���S)NT�r�r�rBs r&rDzTestMergeCategorical.<lambda>�s��a�h�h�/��=�>�r(c���||jjd��}|j|��}t|jjj
t�sJ�t||d|��}|jj�}|stj
d�nd}	t|	|	tj
d�ggd��	�}
tj||
�y)
Nr:)rxrxr�r�r�r+r�r�)rxr�r�rkrJr-rrr5r�rrr�r�)rmr�rr}r�r�rxr�r�r-r�s           r&�test_dtype_on_merged_differentz3TestMergeCategorical.test_dtype_on_merged_different�s���
�5�7�7�>�>�(�+�,�����q��!���$�&�&�-�-�-�-�/?�@�@�@��t�U�s�	�:�����)�)�+��%7�����
�X���5�%����'�):�;�?�S��
���v�x�0r(c�^�d}tgd�|zgd�dz|zdD��cgc]}|gdz|zD]}|���c}}dD��cgc]}|g|zD]}|���c}}d��}|jd��}t||t|j��	�}tj||�ycc}}wcc}}w)
Nr])
rVrWrurvrwrrrr
�j)rq�wrCr�rr)r�r#�ur��o)
�aa�bb�cc�dd�ee�ff�gg�hh�ii�jjrc�$�|jd�S)Nr_)r�rBs r&rDzITestMergeCategorical.test_self_join_multiple_categories.<locals>.<lambda> s������ 4�r(r�)r�applyrrr�r�r�)rmr��each�letterrnr�s      r&�"test_self_join_multiple_categoriesz7TestMergeCategorical.test_self_join_multiple_categories�s���
��
�G�!�K�.��2�Q�6�!:���#'�&�1�*�q�.�������!���$(�&�1�*�������
�
��:�X�X�4�
5���r�2�$�r�z�z�"2�3��
���f�b�)��=��
s
�B#�B)c�@�ttddd�dgtddd�dggddg��}|djd	�|d<ttddd�dgtddd
�dggddg��}|djd	�|d<ttjd
�j�ddgtjd�j�dt
jgtjd�j�t
jdgggd���}t||ddg��}tj||�ttjd
�j�ddgggd���}t||ddg��}tj||�y)Ni�r*r�r��������?r�num2r�r_r[�ffffff�?�num4r&r,r-)rrrr�r�r�)
rrr�r4r5rr;rr�r�)rmrnra�expected_outer�result_outer�expected_inner�result_inners       r&�test_dtype_on_categorical_datesz4TestMergeCategorical.test_dtype_on_categorical_dates's�����4��A���
$�t�D�!�Q�'7��&=�>��QW�HX�
����Z�&�&�z�2��6�
���4��A���
$�t�D�!�Q�'7��&=�>��QW�HX�
���&�k�(�(��4��F��"����l�+�0�0�2�C��=����l�+�0�0�2�C����@����l�+�0�0�2�B�F�F�C�@�
�
-�

���R��'�v�h�?��
���l�N�;�"��l�l�<�(�-�-�/��c�
:�;�,�
���R��'�v�h�?��
���l�N�;r(z.category_column,categories,expected_categories)FTTF)rr*r*rr*r)�False�Truer#r"r#r"c�D�tgd�|d��}|djt||���|d<tddgddgd	��}|j|�}tddg|ddgd
��}|djt||���|d<t	j
||�y)Nr�)r�rrrrr\r*r")r��num)r�rr%)rr�rrr�r�)	rm�category_columnr��expected_categoriesr�r`rar�r�s	         r&�/test_merging_with_bool_or_int_cateorical_columnzDTestMergeCategorical.test_merging_with_bool_or_int_cateorical_columnGs����|�O�D�E����Z�&�&�'7�
�G�'T�U��E�
���1�v�q�!�f�5�6�����3����Q��F�3F�PQ�ST�v�V�W��"�5�/�0�0��Z��9�
����	���h��/r(c��ttddtjgd��dd��}t	||d��}ttddtjgd��ddd��}tj||�y)	Nr*rr.r,r�ryr�)ry�B_x�B_y)rrrr;rr�r�)rmrnr�r�s    r&�test_merge_on_int_arrayz,TestMergeCategorical.test_merge_on_int_array_sg��
�V�Q��2�6�6�N�'�B��K�
L���r�2�#�&����!�Q�����w�7��!�L�
��	���f�h�/r(N)rgrhrir�r�r�r�r�rQrRr�r�rrr!r(r,r6r(r&r�r�Ss��	1�1� )0�V0�2�[�[���Y��u�
�6�0�7�0�8S�*�[�[�����G�>�	
��1��1�$&*�P<�@�[�[���Y��u�
�6��[�[���8�
'�$����u�
�F�
�A�q�6�A�q�6�*�
/�&�'�1B�V�W�DU�V�	
��
0��7�
0�0r(r�c�(�tdgd�igd���S)NrV�r�rpr�rr*rr�r_r6r(r&rDrDis���c�;�'�y�9�9r(c�(�tdgd�igd���S)NrW��,�dr��r[r*rr�r_r6r(r&rErEns���c�?�+�9�=�=r(c�X�eZdZejjdddeddgddgd�d	d
g��fddeddgddgd�d
d	g��fd
degd�ddejgd�gd���fd
degd�ejddgd�gd���fddeejddggd�d�gd���fddeddejggd�d�gd���fddedddejgejdddgd�gd���fddedddejgejdddgd�gd���fg�d��Z	y)�TestMergeOnIndexeszhow, sort, expectedr�Fr�rpr�r3r�rr*r�Tr}r.r/)rrpr�r,r�r1r4�r3r�r2rr�rr2r�c�R�t||dd||��}tj||�y)NT)r�r�r�r�r�)rmrDrEr�r�r�r�s       r&�test_merge_on_indexesz(TestMergeOnIndexes.test_merge_on_indexests/��`��X�$�D�c�PT�
��	���f�h�/r(N)
rgrhrir�rQrRrrr;r9r6r(r&r6r6ss����[�[����
�e�Y�b�"�X�S�#�J�'G�PQ�ST�v�V�W�
�d�I�R��H�C��:�&F�q�RS�f�U�V�����3��R�V�V�2D�E�Y�W�
�����2�6�6�3��2D�E�Y�W�
�����6�6�2�r�*��A���
�����r�2�6�6�*��A���
�����b�"�b�f�f�-�R�V�V�S�#�s�4K�L�&��
�����b�"�b�f�f�-�R�V�V�S�#�s�4K�L�&��
�G+	
�.�^0�_.�^0r(r6r�r*r�	index_colr@ryrz)r�rA)�start�stoprAr0z
2018-01-02r�c�L�t|�j�d|j�d�S)N�[r�)�typergr-rBs r&rDrD�s"��T�!�W�%�%�&�a����y��2�r()rGc���tdddgi|��}tdddgi|��}|j|dg�	�}tddgddgd
�|��}tj||�y)N�	left_datar*rr��
right_datararbr:r�)rArBr�)r�r}r�r�r�s     r&�test_merge_index_typesrC�sl���k�A�q�6�*�%�8�D��|�c�3�Z�0��>�E�
�Z�Z��;�-�Z�
0�F���1�v�c�3�Z�H�PU�V�H����&�(�+r(z-on,left_on,right_on,left_index,right_index,nmr�r�F)NNNTTrzT)NNNTTNc
��tdgd�itjddgddggddg�	��
�}tgd�tjddgddggddg�	�|��}tdd
gddgd�tjddgdggddg�	��
�}|�)t	|||||||��}	tj|	|�yd}
tjt|
��5t	|||||||��}	ddd�y#1swYyxYw)Nryr�rVrWrr*r�r���namesr�rr�r\r[r�)r�r�r�r�r�z$Cannot merge a Series without a namer�)
rr�from_productrrr�r�r�r�r�)r�r�r�r�r��nmrVrWr�r�r�s           r&�test_merge_seriesrI�s'��	�	�l���%�%��S�z�A�q�6�&:�7�G�BT�U�	�A�	���%�%��S�z�A�q�6�&:�7�G�BT�U�
�	�A�
��!�f�A�q�6�"��%�%��S�z�A�3�&7���?Q�R��H�
�~��
�
����!�#�
��	���f�h�/�4��
�]�]�:�S�
1�		������!�%�'��F�		�		�		�s�C0�0C9c�:�tdgd�itjddgddggddg�	��
�}tgd�tjddgddggddg�	�d�
�}t	j
td��5t||ddg��ddd�y#1swYyxYw)Nryr�rVrWrr*r�r�rEr�r)rzrer�z-Not allowed to merge between different levelsr�r�)rrrGrr�r�rrr�s  r&�test_merge_series_multilevelrK�s���	�	�l���%�%��S�z�A�q�6�&:�7�G�BT�U�	�A�	���%�%��S�z�A�q�6�&:�7�G�BT�U�
�	�A�

����I�
�+�	�a����)�*�+�+�+�s�7B�Bz!col1, col2, kwargs, expected_cols�suffixes)��_dupr}�0_dup)NrN)�_x�_y�0_x�0_yrPrQrV)NrQrU)rPNz0.0_xrW�b_yr
)NrP)�_aN�0_arc��t|gd�i�}t|gd�i�}tddgddgddgg|�	�}|j|fd
d
d�|��}tj||�t||fd
d
d�|��}tj||�y)Nrr r*r\rr]r[r�r�Tr�r�)rXr��kwargs�
expected_colsrVrWr�r�s        r&�test_merge_suffixrZ	s���(	�4��#�$�A��4��#�$�A��1�a�&�1�a�&�1�a�&�1�=�I�H�
�Q�W�W�Q�
D�4�T�
D�V�
D�F����&�(�+�
�1�a�
E�D�d�
E�f�
E�F����&�(�+r(zhow,expectedr�r7�<�F��X�� )ryr��B2)r*r3r�r2rCr^r_r`c��tgd�gd�d��}tgd�gd�d��}t||d|d��}gd	�|_tj||�y)
N)r3r�r*)r[r\rCr�r7r]ry)rPrP)r�r�rL)ryr*r*)rrr�r�r�)r�r�rDrEr�s     r&�test_merge_duplicate_suffixrc'	sL��,�m�,�?�@�G���_�E�F�H�
�7�H��#��
M�F�*�H�����&�(�+r(zcol1, col2, suffixes))rVrV)NN)rVrV)rMN)rr)NrMc���t|gd�i�}t|gd�i�}d}tjt|��5t	||dd|��ddd�y#1swYyxYw)Nr�r[r\r]z'columns overlap but no suffix specifiedr�T�r�r�rLr�)rXr�rLrVrWr�s      r&�test_merge_suffix_errorrgE	s`��	�4��#�$�A��4��#�$�A�4�C�	���z��	-�J�
�a��t���I�J�J�J�s�A�Ar}�r}r�c��tdgd�i�}tdgd�i�}tjtd��5t	||dd|��ddd�y#1swYyxYw)	NrVrrWrezPassing 'suffixes' as ar�Trf)rr�r��	TypeErrorr)rLrVrWs   r&�test_merge_suffix_raisesrkT	sX���3�	�"�#�A��3�	�"�#�A�	���y�(A�	B�J�
�a��t���I�J�J�J���A�Azcol1, col2, suffixes, msg)rVrVrz(too many values to unpack \(expected 2\)z1not enough values to unpack \(expected 2, got 1\)c��t|gd�i�}t|gd�i�}tjt|��5t	||dd|��ddd�y#1swYyxYw)Nrrer�Trfr�)rXr�rLr�rVrWs      r&�test_merge_suffix_length_errorrn]	sY��	�4��#�$�A��4��#�$�A�	���z��	-�J�
�a��t���I�J�J�J�rl�	cat_dtyper�r��reversec�P�tgd�d��tgd�d��d�}ttgd��j|d�gd�d��j	d�}gd�}gd�}|r |j�|j�tt|�j||�|d	��j	d�}|j
|d
d
��}tgd�gd�tgd��j|d�d��j	d�}tj||�y)
NrFr�)r�r�r�r�r/r}r/�r/r�Tr��r}r�r/)	rrrr�r�rprr�r�)	rorp�
cat_dtypesr`�data_foo�
data_rightrar�r�s	         r&�test_merge_equal_cat_dtypesrxl	s��
 �?�E�J��?�E�J��J�
���'�.�.�z�%�/@�A�9�U���i�����H��J����������
��x� �'�'�
�9�(=�>��T���i�����Y�Y�s�t��Y�
>�F�����/�*�1�1�*�U�2C�D�	
���i���

����&�(�+r(c���tgd�d��}ttddg�j|�ddgd��j	d	�}ttgd��j|�gd
�d��j	d	�}|j|dd�
�}tddgddgtddg�j|�d��j	d	�}t
j||�y)NrFr�rVrWr*rrrr/)r[rr*rsTr�r[rt)rrrr�r�rr�r�)ror`rar�r�s     r&�test_merge_equal_cat_dtypes2rz�	s��� �O�U�K�I����S�z�"�)�)�)�4�q�!�f�E���i�������'�.�.�y�9�I�N���i�����Y�Y�s�t��Y�
>�F���Q��1�a�&���c�
�1C�1J�1J�9�1U�V���i���
����&�(�+r(c
�@�tdttjdd�tjdd�gd��i�}|j	�}|djd�|d<t
||dd�	�}|j	�}tj||�y)
NrVrr*r�intervalr,r_r�r�)	rrr4�Intervalr�r�rr�r�)r�r}r�r�s    r&�test_merge_on_cat_and_ext_arrayr~�	s����	�f�b�k�k�!�Q�'����Q��):�;�:�N�O�
�E��:�:�<�D��S�	� � ��,�D��I�
�4��G��
4�F��z�z�|�H����&�(�+r(c���gd�}gd�}tj||fddg��}t|��}d|d<t|��}d|d<d	}d
}|j|d||f��}|D��	cgc]}|D]	}	||z|	f���}
}}	|
dgz
}
|
|D��	cgc]}|D]	}	||z|	f���c}	}z
}
tj|
ddg��}t|��}tj||d
��ycc}	}wcc}	}w)Nr�r�r�r�r�r�rEr�rMr�rPrQ�r�rL)r�rMFrY)rrGrrrVr�r�)
�letters�numbersr��frame_x�frame_y�l_suf�r_sufr�rr%�tuplesr7r�s
             r&�test_merge_multiindex_columnsr��	s��#�G��G��#�#�W�g�$6�w��>P�Q�E���&�G��G�D�M���&�G��G�D�M��E��E�
�]�]�7�t��u�~�]�
G�F�3:�
M��W�
M�c�v��~�s�#�
M�#�
M�F�
M�
�z�l��F�
�7�N��g�N�s�����$�N�$�N�N�F��+�+�F�7�G�:L�M�N���0�H����&�(��>��N��Ns�%C"�	C(c��tgd�gd�d��}tgd�tjgd��d��}t||dd�	�}tgd�gd�tjgd
��d��}t	j
||�y)Nr)r�r�r�)rCr�r�)�2000�2001�2002)r�rr}r�r�)r�r�r<r)rr4r�rr�r��r`rar�r�s    r&� test_merge_datetime_upcast_dtyper��	ss��
�/��@�
A�C�
��B�N�N�3K�$L�M��C��3���C�
0�F�� � ���� 7�8�	
��H����&�(�+r(�n_categoriesr]�c��tdgtt|��z�}tt|dz�dg|��}tdggdgtdgtt|������}t	||ddd�	�}tt|dz�D�cgc]}|d
kr|dgn|t
jg��c}dd
g|��}tj||�ycc}w)Nrr*rqr�r�r�r}Tr�rg@r�r�)	r
rrrrrr;r�r�)r�r�r`rar�r
r�s       r&�%test_categorical_non_unique_monotonicr��	s���
"�1�#��U�<�-@�(A�"A�B�J�
�E�,��*�+�g�Y�j�
Q�C�
�
����	���s�t�E�,�4G�/H�I��C��3���D�d�
K�F��5:�<�!�;K�5L�M��Q��U�!�S���B�F�F��	+�M��I�&���H�
���(�F�+��		Ns�"Cc���tgd�gd��gd�d�}t|�}tgd�gd��gd�gd�d�}t|�jd	d
g�d}t||j	�dd
gd	d
gd��}|jd	d
gd��}|j
|dd
g��}tj||�tgd�gd�d��gd�d�}t|�}tgd�gd�d��gd�gd�d�}t|�jd	d
g�d}t||j	�dd
gd	d
gd��}|jd	d
gd��}|j
|dd
g��}tj||�y)N)rVrWrVrurVrWr)rr*rr*rr)�Cat1�Int1)rVrWrurVrWru)rrrr*r*r*)r�g333333�?rrr_g�������?)�Cat�Int�Factorr�r�r�r�r�r}r�r*)�axisr�rTr)	r	rr�rr[�dropr�r�r�)rVrWr�r�s    r&�&test_merge_join_categorical_multiindexr��	s����:�O�L�"�	�A�	�!��A��9�?�K�!�0�	�A�
	�!�����u�~�.�x�8�A��	�	�
�
���� ������H��}�}�e�U�^�!�}�4�H�
�V�V�A�6�6�*�V�
+�F����(�F�+��*�O�T�
�#�		�A�	�!��A��*�O�T�
�"�0�	�A�	�!�����u�~�.�x�8�A��	�	�
�
���� ������H��}�}�e�U�^�!�}�4�H�
�V�V�A�6�6�*�V�
+�F����(�F�+r(�funcr�
merge_asof)rX�err_msg)r�r�r�r�)r�r�r�r�c��tddgddgd��}tddgddgd��}d	|d
�d|d�d�}tjt|�
�5t	t
|�||fi|��ddd�y#1swYyxYw)Nr*rr[r\r�r]r�rzCan only pass argument "r�" OR "z" not both\.r��rr�r�r�getattrr4�r�rXr�r}r�r�s      r&�/test_merge_join_cols_error_reporting_duplicatesr�2
s����A�q�6��A��/�0�D��Q��F�!�Q��0�1�E�
%�g�a�j�\����
�|�<�
P�C�	���z��	-�1����D��$��0��0�1�1�1���A1�1A:c��tddgddgd��}tddgddgd��}d	|d
�d|d�d�}tjt|�
�5t	t
|�||fi|��ddd�y#1swYyxYw)Nr*rr[r\r�r]r�rzMust pass "rr�z"\.r�r�r�s      r&�,test_merge_join_cols_error_reporting_missingr�C
s����A�q�6��A��/�0�D��Q��F�!�Q��0�1�E�
�����F�7�1�:�,�c�
:�C�	���z��	-�1����D��$��0��0�1�1�1�r�rXc���tddgddgd��}tddgddgd��}d	}tjt|�
�5t	t
|�||fddi|��ddd�y#1swYyxYw)
Nr*rr[r\r�r]r�rzZCan only pass argument "on" OR "left_index" and "right_index", not a combination of both\.r�r�rVr�)r�rXr}r�r�s     r&�1test_merge_join_cols_error_reporting_on_and_indexr�T
s~���A�q�6��A��/�0�D��Q��F�!�Q��0�1�E�	:��
���z��	-�9����D��$��8�#�8��8�9�9�9�s�A&�&A/c���tddgddgd��}tddgddgd��}t||ddd��}tddgddgddgddgddgd��}tj||�y)	Nr*r/)rCrr�TrC)r�r�r�)rC�x_x�z_x�x_y�z_yr��r}r�r�r�s    r&�test_merge_right_left_indexr�h
s����A�q�6����7�8�D��Q��F�%���8�9�E�
�4��G��s�
K�F���Q���q�6��5�>��q�6��5�>�	
��H����&�(�+r(c�x�tdgdgd��jddg�}tddgi�jdg�}tggd�tj��jddg�}t	||dgd��}tj||�t	||ddg�	�}tj||�y)
Nr*rr�rVrWr,Trr)rr�rr+rr�r��r`rar�r�s    r&�$test_merge_result_empty_index_and_onr�y
s���
�1�#�Q�C�(�
)�
3�
3�S�#�J�
?�C�
�S�1�#�J�
�
)�
)�3�%�
0�C��r��+�2�8�8�<�F�F��S�z�R�H�
�3��c�U��
=�F����&�(�+�
�3����u�
=�F����&�(�+r(c�@�tgd�ddd��}tgd�dd��}tjtd��5t	||d�	�ddd�tjtd��5t	||dd
��ddd�y#1swY�=xYw#1swYyxYw)Nrr*r)rVrW�b_xr��(Passing 'suffixes' which cause duplicater�rVr�)rQrPr��rr�r�rrrhs  r&�.test_merge_suffixes_produce_dup_columns_raisesr��
s����9�1�Q�7�8�D��I�A�.�/�E�	���z�)S�	T�#�
�d�E�c�"�#�
���z�)S�	T�:�
�e�T�c�L�9�:�:�#�#��:�:�s�B�/B�B�Bc��tgd�gd�ggd���}tddgdd��}t||d	�
�}tgd�ggd���}tj||�y)
Nr3r4)rVrWrWr�r*r[rr�rVr�)r*r*r*r)rVr�r�rTr�r�s    r&�3test_merge_duplicate_columns_with_suffix_no_warningr��
sU���i��+�_�E�D��Q��F��+�,�E�
�4��3�
'�F��,��1K�L�H����&�(�+r(c���tgd�gd�ggd���}tddgdd��}tjtd	�
�5t	||d��ddd�y#1swYyxYw)
N)r*r*r*r*)rrrr)rVrWrWr�r�r*r[rr�r�r�rVr�r�rhs  r&�Itest_merge_duplicate_columns_with_suffix_causing_another_duplicate_raisesr��
sY���l�L�1�;Q�R�D��Q��F��+�,�E�	���z�)S�	T�#�
�d�E�c�"�#�#�#�s�A�A"c���tddgddggtddg���}tdd	gd
dggdd
g��}t||ddd��}tgd�gd�gtgd����}tj||�y)Nr*rr[r\rV��\@r�r"rpror?rCr�r�Tr�)r"rpr*r)ror?r[r\)rCr�rVr��rr
rr�r�r�s    r&�%test_merge_string_float_column_resultr��
s��
�a��V�a��V�$�e�S�%�L�.A�
B�C�
�a��W�r�2�h�'�#�s��
<�C�
�3���T�t�
L�F��	��'��7M�1N��H����&�(�+r(c���tdgdgdg��}tdgdgdg��}tjtd��5t	||dgd�	�ddd�y#1swYyxYw)
Nrxre�)r�r�r�i�zCan only pass argumentr�T)r�r�r�)�df_1�df_2s  r&�/test_mergeerror_on_left_index_mismatched_dtypesr��
s^���3�%�#��r�d�;�D��3�%�#��s�e�<�D�	���z�)A�	B�5�
�d�D�c�U�t�4�5�5�5�s�A�A!c��ttd��}t|td�d��}tdtdd�i�}t|||d��}t|||jd��}tj||�y)Nr[r�rer�ryr�)r
rrr�_datar�r�)�cir�r}�resr�s     r&�#test_merge_on_left_categoricalindexr��
sl��	�%��(�	#�B��B�U�1�X�.�/�E��c�5��A�;�'�(�D�
��e�R�#�
6�C��T�5�"�(�(�S�A�H����#�x�(r(r-r.c���tddgddgd�|��}ttjtjgddgd�|��}t||dd	�
�}tddtjtjgddtjtjgtjtjddgd�|��}t	j
||�t||dd	�
�}tddtjtjgtjtjddgddtjtjgd�|��}t	j
||�y)
Nr*r)rzrXr,r[r\)rzr�rzr�r�)rzrXr�)rzr�rXr;)r-r}r�r�r�s     r&�test_merge_outer_with_NaNr��
s%���a��V�a��V�4�E�B�D��r�v�v�r�v�v�.��A��?�u�M�E�
�4��5�g�
6�F���q�"�&�&�"�&�&�)���2�6�6�2�6�6�*��V�V�R�V�V�Q��*�	
�
�
�H����&�(�+��5�$�5�g�
6�F���q�"�&�&�"�&�&�)��V�V�R�V�V�Q��*���2�6�6�2�6�6�*�	
�
�
�H����&�(�+r(c���tddgitdgd����}tddgitdgd����}t||dd��}tdgdd��}tj||�y)	NrVr*rur�r�rvr�)r
rr�r�s    r&� test_merge_different_index_namesr��
si���c�A�3�Z�u�a�S�s�';�<�D��s�Q�C�j��q�c��(<�=�E�
�4���c�
:�F��!��Q�/�0�H����&�(�+r(c���tgd�dd�|��}tgd�dd�|��}|j||��}tgd�ddd�|��}tj||�y)	Nrr*r�r,rrr�rr��r�rr}r�r�r�s      r&�
test_merge_ear��
s\���9�1�-�5I�J�D��I�A�.�6J�K�E�
�Z�Z��9�Z�
-�F��y�q�q�9�AU�V�H����&�(�+r(c	�B�tgd�dd�|��}tgd�dd�|j���}|j||��}ttgd�|��tgd�|��tgd	�|j���d
��}t	j
||�y)Nrr*r�r,rrr�r3r4r)r�lowerrrr�r�r�s      r&�test_merge_ea_and_non_ear��
s����9�1�-�5I�J�D��I�A�.�6J�6P�6P�6R�S�E�
�Z�Z��9�Z�
-�F���	�)=�>��	�)=�>��	�)=�)C�)C�)E�F�	
��H����&�(�+r(r+�int64[pyarrow]c�N�tjd�tdddgi|��}tdddgid��}|j|�}|j	�}tj||�|j|�}|j	�}tj||�y)N�pyarrowrVr*rr,r�)r��importorskiprrr�r�r�)r-rnrar�r�s     r&�!test_merge_arrow_and_numpy_dtypesr�s������	�"�	�C�!�Q��=��	.�B�
�S�1�a�&�M�)9�
:�C�
�X�X�c�]�F��w�w�y�H����&�(�+�
�Y�Y�r�]�F��x�x�z�H����&�(�+r(r�)r�r}r�r�r3zAmerica/Chicagoc�&�tjddd|��tjddd|��tjddd|��g}t|dddd	gd
��}|djj	d�|d<t|d
ddd	gd��}|djj	d�|d<t|dd	t
jgt
jdd	gd��}|djj	d�|d<|dk(r!|jd
gjd��}n=|dk(r|jdd
g}n&|dk(r!|jd
dgjd��}|j|d|��}tj||�y)Ni�r]r?r2�
�rrarb)rqrVrqr�r*)rqrWr�)rqrVrWr�T�r�r}rr�r�)r4r5rr��as_unitrr;�ilocr[rr�r�)r3r��valsr`rar�r�s       r&�(test_merge_datetime_different_resolutionr�s|��
	���T�1�b�R�(�
���T�1�b�R�(�
���T�1�b�R�(��D�
�$�r��(�#�s��4�
5�C��3�x�{�{�"�"�4�(�C��H�
�$�q�r�(�#�s��4�
5�C��3�x�{�{�"�"�3�'�C��H��t�3��R�V�V�*<�B�F�F�C�QT�CU�V�W�H��S�M�$�$�,�,�T�2�H�S�M�
�g�~��=�=�!��%�1�1�t�1�<��	����=�=�!�Q��(��	����=�=�!�Q��(�4�4�$�4�?��
�Y�Y�s�s��Y�
,�F����&�(�+r(c�
�tdddgi�}tddgitjddgdg���	�}tddgdtjgd
��}|j|dgdd�
�}t
j||�y)N�colryrzrWr3)ry)rerE)r�r�)r�rWTr}r�)rrrVrr;rr�r�)rnrar�r�s    r&�"test_merge_multiindex_single_levelr�+s���	�E�C��:�&�	'�B�
��C�5�\��$�$�f�f�%5�e�W�E��C��#�s��3����-�@�A�H�
�X�X�c�E�7��&�X�
I�F����&�(�+r()r}r�r�r�r��on_index�left_unique�left_monotonic�right_unique�right_monotonicc��ddg}|r|j|rdnd�n|j|rdnd�ddg}|r|j|rdnd�n|j|rdnd�td|i�}td|i�}|r(|jd�}|jd�}ddd�}	nddi}	t||f||d	�|	��}
|r |j	�}|j	�}|d
vr�|dvr|||}
}}n|||}
}}|dk(rMt|dj�j|dj�}|dj|�}||}|r|jd�}|
�s+|dj�}|j|djd�
�}|jtj�}|dj|j�}|j!�}n�|dk(r�|dj�}|dj�}|j#|d�
�}|jtj�}|j$jj|j�}td|i�}|jd�}|rjd�}nj	d��}t'j(|
|�y)Nrr[r\r*rzTr�r�rZ)r}r�r�)r}r�r�)�
fill_valuer�r�)�appendrr�rr[�setrJ�intersection�isinrrr�rIr�r�intpr�r��mulr�r�r�)r�r�r�r�r�r�r�r}r��	on_kwargsr�r��other�other_unique�keep_values�	keep_mask�other_value_counts�repeats�left_counts�right_counts�expected_countss                     r&�test_merge_combinationsr�8s���
�q�6�D������A�Q�/�����A�Q�/�
��F�E��
���/�Q�q�1�
���/�Q�q�1��e�T�]�#�D��u�e�n�%�E���~�~�e�$������&��#'��=�	��5�M�	�
�4��
@�C�d�
@�i�
@�F�����!���!�!�#��
�(�(��#�#�,0�%��\�e�H�,1�4��\�e�H��'�>��d�5�k�0�0�1�>�>�u�U�|�?R�?R�S�K� ���,�,�[�9�I��	�*�H���+�+�E�2�H��!&�u��!:�!:�!<��(�0�0��%��1G�1G�TU�0�V�G��n�n�R�W�W�-�G����-�-�g�n�n�=�H��(�(�*�H�	����5�k�.�.�0���U�|�0�0�2��%�/�/�,�1�/�E��)�0�0����9��"�(�(�/�/�6�6��7M�7M�N���e�X�.�/���'�'��.����%�%�e�,���'�'�T�'�2�����&�(�+r(c��tdtjgtj���}tdg�}tdgd��}tjtd��5|j|�}ddd�tj|�tjtd��5|j|�}ddd�tj||jd	��tdg�}td
gdgd��}|j|�}tj||�|j|�}tj||jd	��y#1swY��xYw#1swY��xYw)Nrar,r_rr.r�zYou are mergingr�rUr*)rrr;r4�
Int64Dtyper�rur�rr�r�r�s    r&�!test_merge_ea_int_and_float_numpyr�s&��
�S�"�&�&�M�����
9�C�
�S�E�
�C��!��G�4�H�	�	#�	#�K�7H�	I� ����3��� ����&�(�+�	�	#�	#�K�7H�	I� ����3��� ����&�(�/�/�)�"<�=�
�S�E�
�C��!��q�c��9�H�
�Y�Y�s�^�F����&�(�+�
�Y�Y�s�^�F����&�(�/�/�)�"<�=� � �� � �s�%E)�0E5�)E2�5E>c�4�tjd�tdddgi|��}tdditddg|����}|j	|ddd	�
�}ttddg|��dtjgd��}tj||�y)Nr�rVrWr,r*rur�Tr}r�r�)
r�r�rr
rrrr;r�r�)r�r}r�r�r�s     r&�test_merge_arrow_string_indexr�s���
���	�"��c�C��:�&�.>�?�D��s�A�h�e�S�#�J�>N�&O�P�E�
�Z�Z��s��&�Z�
I�F���c�3�Z�'7�8��2�6�6�{�K��H����&�(�+r(r��right_emptyc�|�tddgddg��}tddggd���}|r|jdd}|r|jdd}t||dgd��}tddggd	���}|r|r|jdd}n-|rtj|d<n|rtj|d
dg<tj||�y)Nr*rryrzr�)ryrer�r�r�)ryrzrer�rer�)rr�rrr;r�r�)r�rr`rar�r�s      r&�$test_merge_empty_frames_column_orderr�s����A�a�S�3��*�
5�C�
�A�a�S�/�
:�C���h�h�r��l����h�h�r��l��
�3����7�
3�F���1�#�/C�D�H��k��=�=��!�$��	������
�	�!�v�v��#�s������&�(�+r(c�R�tdtddgd��i�}tdtdgd��i�}d|dj�d|dj�d�}tjt
t
j|��	�5|j|d|�
�ddd�d|dj�d|dj�d�}tjt
t
j|��	�5|j|d|�
�ddd�y#1swY�xxYw#1swYyxYw)Nrzr*zdatetime64[ns]r,ztimedelta64[ns]r�r�zG columns for key 'key'. If you wish to proceed you should use pd.concatr�r�)	rrr-r�r�r�r�r�r)r�r}r�r�s    r&�!test_merge_datetime_and_timedeltar�s'���e�V�Q��I�5E�F�G�H�D��u�f�a�S�0A�B�C�D�E�&�d�5�k�&7�&7�%8��e�E�l�>P�>P�=Q�RQ�	Q��
���z����3��	8�-��
�
�5�U��
�,�-�&�e�E�l�&8�&8�%9��t�E�{�?P�?P�>Q�RQ�	Q��
���z����3��	8�-�
���D�U���,�-�-�-�-��-�-�s�D�3D�D�D&)r�rf)]rrrr��numpyrr��pandas.core.dtypes.commonrr�pandas.core.dtypes.dtypesr�pandasr4r	r
rrr
rrrrrr�pandas._testing�_testingr��pandas.core.reshape.concatr�pandas.core.reshape.mergerrr'r7r=rPrMrQrTrbrdrr]r}r�r�rDrEr6rQrRrTrCrIrKrZr;rcrgrk�tuplernrxrzr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr)rXs0r&�<module>rs	����

��
��7�������-���	������z�|�)?�@��A������z�|�)?�@��A������}��,B�C��D�����	��	�P�P�f*	G�l0�l0�^������������S0�S0�l���:��:����>��>�40�40�n������=?�=U�=U�V�T�U�A�q�6��K�0�V��#�s���c�
��M�����5��|�\�2��E���	3��	�	,�	�	,������3�
�7�	�T�4���s�;�+�	
���!�4���c�:�	
�t�g�w�'��u�c�:�
�7�	�T�4���t�<�,�	
���!�4���d�;�	
�t�g�w�'��u�d�;�	��%��%�P+�$�����'�	
�A�
�L�)�C��>�:�	
�A�
�N�+�a��\�:�	
�A�
�L�)�E�5�>�:�	
�A�
�T�4�L�)�E�5�>�:�	�a�*�l�+�c�1�X�6�	�c�J��-���~�>�	�c�J��-��U�|�<�	�c�J��-��s�|�<�	�c�J��-��S�z�:�	�c�J��-��U�|�<�	
�A�
�L�)�E�1�:�6�	�c�2��u�~�&�	
�A�r�E�5�>�"���$,�%�$,�������
��%�b�"�b�f�f�-=�_�U�
�	
�
��+��r�2�r�v�v�.��6�6�3��S�1��
�		
���*,�+�*,�������J��J�	�J�������v�w�&7�!�a�9P�%Q�R�J�S�J�������P�	�c�5��:�S�T���J��J�������u�e�n�5�������T�5�M�2� ,�3�6� ,�F,�,,�?�<,�"������!�S��2�,�3�,�*5,�p������'�<�!8�9���������	-�	�<�/H�I��$�	/�*�m�1L�M���1��:�1�������'�<�!8�9�������
�S�	�J�
�6�7�
�c�	�Y��5�6���1��:�1�������'�<�!8�9�������	���	�t����	9��:�	9�,�"	,�	:�,�#�,�5�	)�������4��/�2�,�3�,�8,�,�,�������7�,<�"=�>�,�?�,������� C�D��������&7�8�9�,�:�E�,�2
,������� C�D�������$���/�������d�E�]�3��������u�
�6������)�D�%�=�9�������$���7������*�T�5�M�:�?,�;�8�:�7�4�0�E�?,�D>�.	,��������e�}�5��������u�
�6�,�7�6�,�*������ C�D�-�E�-��aWs�*[<

Youez - 2016 - github.com/yon3zu
LinuXploit