
    Eg8                         d dl m Z  d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z ej                            dddgddgg          d             Zd Zd	 Zd
 Zd Zej                            d e             eg            eg d           eg            eg d          g          d             Zd Zd Zd Zej                            dddg          ej                            ddg didddgidd dgfdg didddgidd dgfg dg ddddgddgddd dgfg dg ddddgddgddd dgfg          d                          Zd! Zd" Zej                            d#dgdd$g d g          d%             ZdS )&    )datetimeN)	DataFrameNaTconcatsubsetaBc                     t          g dg dg dd          }t          j        d          }t          j        t
          |          5  |                    |            d d d            d S # 1 swxY w Y   d S )N)r   r      Ar	   CzIndex(['a'], dtype=match)r   reescapepytestraisesKeyErrordrop_duplicates)r   dfmsgs      d/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/frame/methods/test_drop_duplicates.py0test_drop_duplicates_with_misspelled_column_namer      s     
CC	D	DB
))
*
*C	xs	+	+	+ # #
6"""# # # # # # # # # # # # # # # # # #s   	A,,A03A0c                  X   t          g dg dg dt          d          d          } |                     d          }| d d         }t          j        ||           |                     dd	          }| j        d
dg         }t          j        ||           |                     dd	          }| j        g          }t          j        ||           t          |          dk    sJ | j        g d         }|                     t          j        ddg                    }t          j        ||           |                     ddg          }t          j        ||           |                     dd	          }| j        g d         }t          j        ||           |                     dd	          }| j        dg         }t          j        ||           | j        d d g df         }|                                }|                    ddg          }t          j        ||           |                    d	          }|                    ddgd	          }t          j        ||           |                    d	          }|                    ddgd	          }t          j        ||           |                     d          }| j	        ddg         }t          j        ||           |                     dd	          }| j	        ddg         }t          j        ||           | d         
                    d          | d<   |                     d          }| j	        ddg         }t          j        ||           |                     dd	          }| j	        ddg         }t          j        ||           t          g dg dd          } | j        | j        dk             }t          j        |                                 |           t          ddgddgg          } t          j        |                                 |            t          ddgddgg          } t          j        |                                 |            t          j        t          j                  j        dz  dz  }t          | |gd|dz   gg          } t          j        |                                 |            t          | |g||dz   gg          } t          j        |                                 |            t          d t          d           D                       } t          | t          dgdgdz  z   g          gd!"          } d#D ]0}|                     |	                                          dk    sJ 1d S )$Nfoobarr   r   r   r   r   r   oner    twor!   r!   r!   r    r!   r   r      r#   r#   r#   r   r#      AAAr	   r   Dr&   r#   lastkeep      Fr   r   r   r#      r	   )r&   r	   r      r+   r,   )r&   r	   r   r   int8E)r,   r+   r.   r.      r$   r   )r   r+   r0   r0   	   r   r#   )xyr.   r   r5   c              3   "   K   | ]
}|gd z  V  dS )r6   N ).0is     r   	<genexpr>z'test_drop_duplicates.<locals>.<genexpr>r   s(      ..qA37......       Tignore_index)firstr(   F)r   ranger   tmassert_frame_equalloclennparrayilocastypeindexiinfoint64maxr   
duplicatedsum)r   resultexpecteddf2r7   r*   s         r   test_drop_duplicatesrV      s   	KKKIII)))q		
 	

 
B &&F"1"vH&(+++F33Fvq!f~H&(+++E22FvbzH&(+++v;;! vlll#H% 6 677F&(+++--F&(+++6::Fvlll#H&(+++599Fvqc{H&(+++ &%%%%
&C  ""F""E3<00H&(+++  f --F""E3<f"==H&(+++  e ,,F""E3<e"<<H&(+++ $$Fw1vH&(+++&11FwBx H&(+++gnnV$$BsG$$Fw1vH&(+++&11FwBx H&(+++ 
...5J5J5JKK	L	LBvbh!m$H",,..999	QFQF#	$	$B",,..333	RGaW%	&	&B",,..333
"Q&A	aRGaQZ(	)	)B",,..333	aRGaQZ(	)	)B",,..333 
..E"II...	.	.B	YqcAg//0t	D	D	DB( 3 3}}$}''++--222223 3r?   c                      t          g dg dg dgg d          } |                                 }t          j        ||            |                     d          }| d d         }t          j        ||           d S )N)r   r#   r0   )r.   r5   r+   )r.   r5   r,   )r   r   bcolumnsr   r#   )r   r   rE   rF   )r   result0result1	expected1s       r   0test_drop_duplicates_with_duplicate_column_namesr^   y   s    	IIIyyy)))4ooo	N	N	NB  ""G'2&&&  %%G2A2I'9-----r?   c                     t          g dg dg dt          d          d          } |                     d          }| j        g d         }t	          j        ||           |                     dd	          }| j        g d
         }t	          j        ||           |                     dd	          }| j        ddg         }t	          j        ||           |                     ddg          }| j        g d         }t	          j        ||           |                     ddgd	          }| j        g d         }t	          j        ||           |                     ddgd	          }| j        g d         }t	          j        ||           d S )N)r   r   bazr   r   r   quxr   r   r"   r$   r%   r&   )r   r   r#   r+   r(   r)   )r#   r0   r+   r,   Fr#   r+   r	   )r   r   r#   r.   r5   r+   )r   r   r#   r0   r+   r,   )r   rD   r   rK   rE   rF   r   rS   rT   s      r   !test_drop_duplicates_for_take_allrc      s   	KKKIII)))q		
 	

 
B &&Fw|||$H&(+++F33Fw|||$H&(+++E22Fw1vH&(+++ --Fw)))*H&(+++6::Fw)))*H&(+++599Fw|||$H&(+++++r?   c                  @   t          g dg dg dt          d          d          } |                     d          }| d d         }t          j        ||           |                     dd	          }| j        d
dg         }t          j        ||           |                     dd	          }| j        g          }t          |          dk    sJ t          j        ||           | j        g d         }|                     d          }t          j        ||           d S )Nr   r   r"   r$   )AAABr	   r   r'   re   r#   r(   r)   r+   r,   Fr   r-   )re   r	   )r   rD   r   rE   rF   rG   rH   rb   s      r   test_drop_duplicates_tuplerh      s:   	RRRIII)))q		
 	

 
B --F"1"vH&(+++6::Fvq!f~H&(+++599FvbzHv;;!&(+++ vlll#H 344F&(+++++r?   r   rY   r   rM   c                     |                                  }t          j        ||            |                                 }|                     d           t          j        ||            d S )NTinplace)r   rE   rF   copy)r   rS   s     r   test_drop_duplicates_emptyrn      se     !!F&"%%%WWYYF
4(((&"%%%%%r?   c                      t          g dg ddt          j        t          j        t          j        ddddgt          d          d          } |                     d          }| j        g d         }t          j        ||           |                     dd	
          }| j        g d         }t          j        ||           |                     dd
          }| j        g          }t          j        ||           t          |          dk    sJ |                     ddg          }| j        g d         }t          j        ||           |                     ddgd	
          }| j        g d         }t          j        ||           |                     ddgd
          }| j        dg         }t          j        ||           t          g dg ddt          j        t          j        t          j        ddddgt          d          d          } |                     d          }| d d         }t          j        ||           |                     dd	
          }| j        ddg         }t          j        ||           |                     dd
          }| j        g          }t          j        ||           t          |          dk    sJ |                     ddg          }| j        g d         }t          j        ||           |                     ddgd	
          }| j        g d         }t          j        ||           |                     ddgd
          }| j        dg         }t          j        ||           d S )N)NNr   r   r   r   r   r   r         ?r   r$   r   r	   r   r'   r   )r   r#   r.   r(   r)   )r   r+   r,   Fr   r	   )r   r#   r.   r+   )r   r0   r+   r,   r+   r   r   r#   r.   r,   )r   r   r#   r5   )r   r.   r+   r,   )	r   rI   nanrD   r   rG   rE   rF   rH   rb   s      r   test_drop_duplicates_NArs      s   	GGGIIIrvrvrvsCC@q		
 	

 
B $$Fviii H&(+++&11Fviii H&(+++%00FvbzH&(+++v;;! c
++Fvlll#H&(+++c
88Fvlll#H&(+++c
77Fvqc{H&(+++ 
IIIIIIrvrvrvsCC@q		
 	

 
B $$F"1"vH&(+++&11Fvq!f~H&(+++%00FvbzH&(+++v;;! c
++Fvlll#H&(+++c
88Fvlll#H&(+++c
77Fvqc{H&(+++++r?   c                  6   t          g ddt          j        t          j        t          j        ddddgd          } |                     d          }| j        g d         }t          j        ||           |                     dd	          }| j        g d
         }t          j        ||           |                     dd	          }| j        ddg         }t          j        ||           |                     d          }| j        g d         }t          j        ||           |                     dd	          }| j        g d         }t          j        ||           |                     dd	          }| j        ddg         }t          j        ||           d S )N)NNr   r   r   r`   r   ra   rp   g       @r.   )r   r   r   )r   r#   r.   r0   r,   r(   r)   )r   r5   r0   r+   r,   Fr0   r,   r   )r   r   r0   r+   )r.   r0   r+   r,   r+   )r   rI   rr   r   rK   rE   rF   rb   s      r   $test_drop_duplicates_NA_for_take_allru   $  s   	GGGrvrvrvsCC@	
 	

 
B $$Fw'H&(+++&11Fw'H&(+++%00Fw1vH&(+++
 $$Fw|||$H&(+++&11Fw|||$H&(+++%00Fw1vH&(+++++r?   c                     t          g dg dg dt          d          d          } |                                 }|                    dd          }| d d	         }|}t	          j        ||           |J |                                 }|                    dd
d          }| j        ddg         }|}t	          j        ||           |J |                                 }|                    ddd          }| j        g          }|}t	          j        ||           t          |          dk    sJ |J |                                 }|                    ddgd          }| j        g d         }|}t	          j        ||           |J |                                 }|                    ddgd
d          }| j        g d         }|}t	          j        ||           |J |                                 }|                    ddgdd          }| j        dg         }|}t	          j        ||           |J | j        d d g df                                         }|                                }|                    d          }|                    ddg          }|}t	          j        ||           |J |                                }|                    d
d          }|                    ddgd
          }|}t	          j        ||           |J |                                }|                    dd          }|                    ddgd          }|}t	          j        ||           |J d S )Nr   r   r"   r$   rq   r   Trk   r#   r(   )r*   rl   r+   r,   Fr   r	   r-   r/   r   r)   )r   rD   rm   r   rE   rF   rG   rH   )origr   return_valuerT   rS   orig2rU   s          r   test_drop_duplicates_inplacerz   J  s   IIIIII)))q		
 	
 D 
B%%c4%88LBQBxHF&(+++	B%%c%EELxAHF&(+++	B%%ct%DDLx|HF&(+++r77a<<<< 
B%%sCj$%??Lx%HF&(+++	B%%sCjvt%LLLx%HF&(+++	B%%sCjud%KKLx}HF&(+++ HQQQ'(--//E
**,,C&&t&44L$$c3Z00HF&(+++
**,,C&&FD&AAL$$c3Zf$==HF&(+++
**,,C&&E4&@@L$$c3Ze$<<HF&(+++r?   rl   TFz4origin_dict, output_dict, ignore_index, output_indexr   )r#   r#   r.   r#   r.   r   )r#   r#   r5   )r   r	   r5   c                 >   t          |          }t          ||          }| r,|                                }|                    ||            n|                    ||           }t          j        ||           t          j        |t          |                     d S )Nri   )rB   rl   )r   rm   r   rE   rF   )rl   origin_dictoutput_dictrB   output_indexr   rT   	result_dfs           r   !test_drop_duplicates_ignore_indexr     s     
;		BL999H SGGII	!!|W!MMMM&&L'&RR	)X..."i4455555r?   c                     t          d| gddggt                    }|                                }t          j        ||           d S )Nr   r#   r   )dtype)r   objectr   rE   rF   )nulls_fixturer   rS   s      r   *test_drop_duplicates_null_in_object_columnr     sL    	Q&C1	@	@	@B!!F&"%%%%%r?   c                    t          g dddt          j        t          j        t          j        gddt          j        t          j        dgg dt          ddd          t          ddd          t          ddd          t          t          gd          }|j        D ]b}||g                             | 	          }||                             | 	          }t          j        ||	                                           cd S )
N)r   r   r   r    r    r#   r.   three)r   r#   r.   r5   r5   i  r   )r   rX   cder)   )
r   rI   rr   r   r   rZ   r   rE   rF   to_frame)r*   r   columndropped_framedropped_seriess        r   (test_drop_duplicates_series_vs_dataframer     s   	(((Q/Q0 q!$$q!$$q!$$	
 	

 
B * H HF844$4??F333>>
m^-D-D-F-FGGGGH Hr?   argTruec                     t          dg di          }d}t          j        t          |          5  |                    |            d d d            d S # 1 swxY w Y   d S )Nr   )r   r#   r   r.   zC^For argument "ignore_index" expected type bool, received type .*.$r   rA   )r   r   r   
ValueErrorr   )r   r   r   s      r   -test_drop_duplicates_non_boolean_ignore_indexr     s     
C&	'	'B
OC	z	-	-	- - -
,,,- - - - - - - - - - - - - - - - - -s   AAA)r   r   numpyrI   r   pandasr   r   r   pandas._testing_testingrE   markparametrizer   rV   r^   rc   rh   rn   rs   ru   rz   r   r   r   r   r;   r?   r   <module>r      s         				              
       C#c
#;<<# # =<#]3 ]3 ]3@	. 	. 	.!, !, !,H, , ,: 		"	///***		(((	 	& &	 	&G, G, G,T#, #, #,LM  M  M ` T5M22:
yyy	C!Q=$A7
yyy	C!Q=%!Q8yyyyy	)	)!Qq!f+E+EtaQRVTyyyyy	)	)!Qq!f+E+EuqRSfU	 6 6  326"& & &H H H. !aQ 788- - 98- - -r?   