
    h3                         d dl Z 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        Zej                  d        Z G d d      Zy)    N)	DataFramemerge_orderedc                  &    t        g dg dd      S )N)ace)          @   )keylvaluer        RD:\jyotish\venv\Lib\site-packages\pandas/tests/reshape/merge/test_merge_ordered.pyleftr      s    _DEEr   c                  &    t        g dg dd      S )N)br   df)r	            @   r   rvaluer   r   r   r   rightr      s    1^LMMr   c                      e Zd Zd Zd Zd Zej                  j                  d      d        Z	ej                  j                  ddg dfi dfd	gd
fd	d	gd
fg      d        Zej                  j                  d e       gd	 e       g e       d	gg      d        Zd Zej                  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z  dgdz  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z  dgdz  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z  dgdz  d      fg      d        Zd Zd  Zej                  j                  d!d"d#g      d$        Zd% Zy	)&TestMergeOrderedc           
         t        ||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	        j
                  ||       y )	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expecteds        r   
test_basiczTestMergeOrdered.test_basic   sh    tUu55bffaBFF;661aBFFA6
 	fh/r   c           
          t        ||dd      }t        g dg dt        j                  ddddd	gd
      }t	        j
                  ||       y )Nr   ffillr!   fill_methodr"         ?r	   r   r   r   r   r	   r   r   r   r#   r$   r)   s        r   
test_ffillzTestMergeOrdered.test_ffill%   sM    tUu'J50661aAq1
 	fh/r   c           
      >   t        j                  ||gd      }dgdz  dgdz  z   |d<   t        ||ddd	      }t        g d
dz  g ddz  t        j
                  dddddgdz  d      }dgdz  dgdz  z   |d<   t        j                  ||j                  d d |j                  f          t        ||ddd      }t        j                  ||j                  d d |j                  f          t        ||dd      }|d   j                         j                         sJ y )NT)ignore_indexr   r   r   groupr   r/   )r!   left_byr1   r"   r   r2   r	   r   r#      )r!   right_byr1   r!   r8   )pdconcatr   r   r%   r&   r'   r(   loccolumnsnotnaall)r*   r   r   r+   r,   result2s         r   test_multigroupz TestMergeOrdered.test_multigroup0   s&   yy$D9	SEAI-W%E7
 59014661aAq1A5
 !EAI	1
fhll1fnn3D&EF4EG
 	fgkk!V^^2C&DEtUugFg$$&**,,,r   zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningc                 z     G fddt                |      }|j                  |d      }t        |      sJ y )Nc                   "    e Zd Ze fd       Zy)7TestMergeOrdered.test_merge_type.<locals>.NotADataFramec                     S Nr   )r*   NotADataFrames    r   _constructorzDTestMergeOrdered.test_merge_type.<locals>.NotADataFrame._constructorP   s	    $$r   N)__name__
__module____qualname__propertyrJ   )rI   s   r   rI   rF   O   s    % %r   rI   r   r    )r   merge
isinstance)r*   r   r   nadr+   rI   s        @r   test_merge_typez TestMergeOrdered.test_merge_typeK   s=    	%I 	%
 D!5U+&-000r   zdf_seq, pattern)r   [Nn]o objectsrS   Nzobjects.*Nonec                     t        j                  t        |      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nmatch)pytestraises
ValueErrorr<   r=   )r*   df_seqpatterns      r   test_empty_sequence_concatz+TestMergeOrdered.test_empty_sequence_concatY   s*     ]]:W5IIf 655s	   ;Aargc                 .    t        j                  |       y rH   )r<   r=   )r*   r]   s     r   test_empty_sequence_concat_okz.TestMergeOrdered.test_empty_sequence_concat_okh   s     			#r   c           
      "   t        t        d      g dg ddz  d      }t        g dg dd      }t        ||dd	
      }t        t        d      g ddz  g ddz  t        j                  ddddgdz  d      }t        j                  ||       y )Naaabbbr   r   r   r   r   r   r	   r   r   r   )r7   r   r   r   r   r   r   r/   r7   )r1   r8   
aaaaabbbbb)r   r   r   r   r   )r	   r	   r   r   r   r	   r   )r7   r   r   r   r   listr   r%   r&   r'   r(   r)   s        r   test_doc_examplez!TestMergeOrdered.test_doc_examplen   s    h5#a-
 /YGHtUQl+014)A-661aA.2	
 	fh/r   z,left, right, on, left_by, right_by, expectedghr	   r   )GHTr   )rm   Erm   rk   rl   rc   r3   )rk   rl   rm   rn   )rm   rn   rk   rl   c                 P    t        |||||      }t        j                  ||       y )N)r   r   r!   r8   r:   )r   r'   r(   )r*   r   r   r!   r8   r:   r,   r+   s           r   test_list_type_byz"TestMergeOrdered.test_list_type_by   s0    h 
 	fh/r   c                 .   t        g dg dgt        d            }t        ddggt        d            }t        ||dd	d
g      }t        dgdz  dgdz  g dt        j                  dt        j                  gd      }t        j                  ||       y )Nri   rj   r	   ri   rj   r   GHEr?   r   r	   ETrn   rk   rl   r;   ri   r   rj   rc   r3   )rk   rl   rn   rm   rf   r)   s        r   *test_left_by_length_equals_to_right_shape0z;TestMergeOrdered.test_left_by_length_equals_to_right_shape0   s    -7eMAq6(DJ7tUsS#JG%!)3%!))2663PRPVPVBWX
 	fh/r   c                     t        g dg dgt        d            }t        ddggt        d            }d}t        j                  t        |	      5  t        ||d
ddg       d d d        y # 1 sw Y   y xY w)Nrr   rs   rt   ru   r   r	   rv   z!\{'h'\} not found in left columnsrU   rn   rk   rj   r;   )r   rg   rW   rX   KeyErrorr   )r*   r   r   msgs       r   !test_elements_not_in_by_but_in_dfz2TestMergeOrdered.test_elements_not_in_by_but_in_df   s^    -7eMAq6(DJ72]]83/$#SzB 0//s   A..A7invalid_methodlinearcarrotc                     t        j                  t        t        j                  d            5  t        ||d|       d d d        y # 1 sw Y   y xY w)Nz#fill_method must be 'ffill' or NonerU   r   r0   )rW   rX   rY   reescaper   )r*   r   r   r|   s       r   test_ffill_validate_fill_methodz0TestMergeOrdered.test_ffill_validate_fill_method   s?     ]]bii(MN
 $%^L
 
 
s   AAc                    t        g dg dg dd      }t        g dg dd      }t        ||dd	d
      }t        g dg dg dt        j                  ddt        j                  ddgd      }t	        j
                  ||       y )Nrb   )r	   r   r   r	   r   r   )r   r   r   r   r   r   )r   r   r7   rd   rc   r   r/   r7   r   )r1   r8   howr
   )r   r   r7   r   )r   r   r%   r&   r'   r(   )r*   df1df2r+   r,   s        r   test_ffill_left_mergez&TestMergeOrdered.test_ffill_left_merge   s    5,7
 9EF'7
 5,7663RVVS#>	
 	fh/r   )rK   rL   rM   r-   r4   rC   rW   markfilterwarningsrR   parametrizer\   r   r_   rh   r%   r&   rp   rw   r{   r   r   r   r   r   r   r      s   
0	0-6 [[W	1	1 [[!!!V_%D\?+	
		
 [[ik2Y[$4GH00 [[6 c
#s1a&IJ1#./c
!UQY!UQY& ffc2662	  c
#s1a&IJ1#./c
!UQY!UQY& ffc2662	  1#./c
#s1a&IJc
& ffc2662!UQY!UQY	?.	
1d
0e1d
0	0C [[-(/CDM EM0r   r   )r   numpyr%   rW   pandasr<   r   r   pandas._testing_testingr'   fixturer   r   r   r   r   r   <module>r      s[    	     F F N N\0 \0r   