o
    5c!                     @   sb   d dl Zd dlZd dlZd dlmZmZ d dlmZ	 ej
dd Zej
dd ZG dd dZdS )	    N)	DataFramemerge_orderedc                   C      t g dg ddS )N)ace)   g       @   )keylvaluer    r   r   c/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/reshape/merge/test_merge_ordered.pyleft      r   c                   C   r   )N)br   df)r            @   r
   rvaluer   r   r   r   r   right   r   r   c                   @   s  e Zd Zdd Zdd Zdd Zdd Zej	d	d
g dfi dfdgdfddgdfgdd Z
ej	de gde ge dggdd Zdd Zej	deddgddgddgdedgdgddgddgdedgd dgd g d ejd!ejgd"feddgddgddgdedgdgddddgdedgd dgd g d ejd!ejgd"fedgdgdeddgddgddgddgdddgeg d ejd!ejgdgd dgd d#fgd$d% Zd&d' Zd(d) ZdS )*TestMergeOrderedc              	   C   sT   t ||dd}tg ddtjdtjdtjgtjdddtjdgd}t|| d S )	Nr
   onr   r   r   r   r   r   r   r   r	   r   r
   r   r   r   r   npnantmassert_frame_equalselfr   r   resultexpectedr   r   r   
test_basic   s   zTestMergeOrdered.test_basicc              	   C   sF   t ||ddd}tg dg dtjddddd	gd
}t|| d S )Nr
   ffill)r   fill_methodr         ?r   r   r   r	   r   r   r   r	   r   r   r   r$   r   r   r   
test_ffill#   s   zTestMergeOrdered.test_ffillc              	   C   s   t j||gdd}dgd dgd  |d< t||dddd	}tg d
d g dd tjdddddgd d}dgd dgd  |d< t||jd d |j	f  t||dddd}t||jd d |j	f  t||ddd}|d 
  szJ d S )NT)ignore_indexr   r	   r   groupr
   r)   )r   left_byr*   r   r   r+   r   r   r      )r   right_byr*   r   r0   )pdconcatr   r   r    r!   r"   r#   loccolumnsnotnaall)r%   r   r   r&   r'   result2r   r   r   test_multigroup.   s&   



z TestMergeOrdered.test_multigroupc                    s<   G  fdddt   |}|j|dd}t| sJ d S )Nc                       s   e Zd Ze fddZdS )z7TestMergeOrdered.test_merge_type.<locals>.NotADataFramec                    s    S Nr   )r%   NotADataFramer   r   _constructorK   s   zDTestMergeOrdered.test_merge_type.<locals>.NotADataFrame._constructorN)__name__
__module____qualname__propertyr?   r   r=   r   r   r>   J   s    r>   r
   r   )r   merge
isinstance)r%   r   r   nadr&   r   r=   r   test_merge_typeI   s   z TestMergeOrdered.test_merge_typezdf_seq, pattern)r   [Nn]o objectsrH   Nzobjects.*Nonec                 C   s>   t jt|d t| W d    d S 1 sw   Y  d S )Nmatch)pytestraises
ValueErrorr4   r5   )r%   df_seqpatternr   r   r   test_empty_sequence_concatT   s   "z+TestMergeOrdered.test_empty_sequence_concatargc                 C   s   t | d S r<   )r4   r5   )r%   rQ   r   r   r   test_empty_sequence_concat_okc   s   z.TestMergeOrdered.test_empty_sequence_concat_okc              	   C   s   t tdg dg dd d}t g dg dd}t||dd	d
}t tdg dd g dd tjddddgd d}t|| d S )Naaabbb)r   r   r   r   r   r   r   r   r	   r   )r/   r
   r   )r   r   r   r   r)   r/   )r*   r0   
aaaaabbbbb)r   r   r   r   r   )r   r   r   r   r	   r   r	   )r/   r
   r   r   r   listr   r    r!   r"   r#   r$   r   r   r   test_doc_examplei   s    


	z!TestMergeOrdered.test_doc_examplez,left, right, on, left_by, right_by, expectedghr   r	   )GHTr   )r]   Er]   r[   r\   rT   r,   )r[   r\   r]   r^   )r]   r^   r[   r\   c                 C   s"   t |||||d}t|| d S )N)r   r   r   r0   r2   )r   r"   r#   )r%   r   r   r   r0   r2   r'   r&   r   r   r   test_list_type_by   s   4z"TestMergeOrdered.test_list_type_byc                 C   s   t g dg dgtdd}t ddggtdd}t||dd	d
gd}t dgd dgd g dtjdtjgd}t|| d S )NrY   rZ   r   rY   rZ   r	   GHEr7   r   r   ETr^   r[   r\   r3   rY   r	   rZ   rT   r,   )r[   r\   r^   r]   rV   r$   r   r   r   *test_left_by_length_equals_to_right_shape0   s   &z;TestMergeOrdered.test_left_by_length_equals_to_right_shape0c                 C   s~   t g dg dgtdd}t ddggtdd}d}tjt|d	 t||d
ddgd W d    d S 1 s8w   Y  d S )Nr`   ra   rb   rc   r   r   rd   z!\{'h'\} not found in left columnsrI   r^   r[   rZ   r3   )r   rW   rK   rL   KeyErrorr   )r%   r   r   msgr   r   r   !test_elements_not_in_by_but_in_df   s   "z2TestMergeOrdered.test_elements_not_in_by_but_in_df)r@   rA   rB   r(   r-   r;   rG   rK   markparametrizerP   r   rR   rX   r    r!   r_   re   rh   r   r   r   r   r      s    




2r   )numpyr    rK   pandasr4   r   r   pandas._testing_testingr"   fixturer   r   r   r   r   r   r   <module>   s    

