
    Owg8                        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                  j                  dddgddgg      d        Zd Zd	 Zd
 Zd Zej                  j                  d e        eg        eg d       eg        eg d      g      d        Zd Zd Zd Zej                  j                  dddg      ej                  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                  j                  d#dgdd$g d g      d%        Zy)&    )datetimeN)	DataFrameNaTconcatsubsetaBc                     t        g dg dg dd      }t        j                  d      }t        j                  t
        |      5  |j                  |        d d d        y # 1 sw Y   y xY w)N)r   r      Ar	   CzIndex(['a'], dtype=match)r   reescapepytestraisesKeyErrordrop_duplicates)r   dfmsgs      f/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_drop_duplicates.py0test_drop_duplicates_with_misspelled_column_namer      sU     
C	DB
)))
*C	xs	+ #
6"# # #s   A!!A*c                  
   t        g dg dg dt        d      d      } | j                  d      }| d d }t        j                  ||       | j                  dd	      }| j
                  d
dg   }t        j                  ||       | j                  dd	      }| j
                  g    }t        j                  ||       t        |      dk(  sJ | j
                  g d   }| j                  t        j                  ddg            }t        j                  ||       | j                  ddg      }t        j                  ||       | j                  dd	      }| j
                  g d   }t        j                  ||       | j                  dd	      }| j
                  dg   }t        j                  ||       | j
                  d d g df   }|j                         }|j                  ddg      }t        j                  ||       |j                  d	      }|j                  ddgd	      }t        j                  ||       |j                  d	      }|j                  ddgd	      }t        j                  ||       | j                  d      }| j                  ddg   }t        j                  ||       | j                  dd	      }| j                  ddg   }t        j                  ||       | d   j                  d      | d<   | j                  d      }| j                  ddg   }t        j                  ||       | j                  dd	      }| j                  ddg   }t        j                  ||       t        g dg dd      } | j
                  | j                  dk7     }t        j                  | j                         |       t        ddgddgg      } t        j                  | j                         |        t        ddgddgg      } t        j                  | j                         |        t        j                  t        j                        j                  dz  dz  }t        | |gd|dz   gg      } t        j                  | j                         |        t        | |g||dz   gg      } t        j                  | j                         |        t        d t        d       D              } t        | t        dgdgdz  z   g      gd!"      } d#D ]'  }| j!                  |	      j#                         dk(  r'J  y )$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    yw)r6   N ).0is     r   	<genexpr>z'test_drop_duplicates.<locals>.<genexpr>r   s     .qA37.s      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_duplicatesrU      s   	KI)q		

B &F"1vH&(+F3Fvvq!f~H&(+E2FvvbzH&(+v;! vvl#H% 67F&(+-F&(+6:Fvvl#H&(+59Fvvqc{H&(+ &&%%
&C  "F""E3<0H&(+  f -F""E3<f"=H&(+  e ,F""E3<e"<H&(+ $Fww1vH&(+&1FwwBx H&(+gnnV$BsG$Fww1vH&(+&1FwwBx H&(+ 
.5JK	LBvvbhh!m$H",,.9	QFQF#	$B",,.3	RGaW%	&B",,.3
"Q&A	aRGaQZ(	)B",,.3	aRGaQZ(	)B",,.3 
.E"I.	.B	YqcAg/0t	DB( 3}}$}'++-2223    c                      t        g dg dg dgg d      } | j                         }t        j                  ||        | j                  d      }| d d }t        j                  ||       y )N)r   r#   r0   )r.   r5   r+   )r.   r5   r,   )r   r   bcolumnsr   r#   )r   r   rD   rE   )r   result0result1	expected1s       r   0test_drop_duplicates_with_duplicate_column_namesr^   y   s^    	Iy)4o	NB  "G'2&  %G2AI'9-rV   c                     t        g dg dg dt        d      d      } | j                  d      }| j                  g d   }t	        j
                  ||       | j                  dd	      }| j                  g d
   }t	        j
                  ||       | j                  dd	      }| j                  ddg   }t	        j
                  ||       | j                  ddg      }| j                  g d   }t	        j
                  ||       | j                  ddgd	      }| j                  g d   }t	        j
                  ||       | j                  ddgd	      }| j                  g d   }t	        j
                  ||       y )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   rC   r   rJ   rD   rE   r   rR   rS   s      r   !test_drop_duplicates_for_take_allrc      s^   	KI)q		

B &Fww|$H&(+F3Fww|$H&(+E2Fww1vH&(+ -Fww)*H&(+6:Fww)*H&(+59Fww|$H&(+rV   c                     t        g dg dg dt        d      d      } | j                  d      }| d d }t        j                  ||       | j                  dd	      }| j
                  d
dg   }t        j                  ||       | j                  dd	      }| j
                  g    }t        |      dk(  sJ t        j                  ||       | j
                  g d   }| j                  d      }t        j                  ||       y )Nr   r   r"   r$   )AAABr	   r   r'   re   r#   r(   r)   r+   r,   Fr   r-   )re   r	   )r   rC   r   rD   rE   rF   rG   rb   s      r   test_drop_duplicates_tuplerh      s    	RI)q		

B -F"1vH&(+6:Fvvq!f~H&(+59FvvbzHv;!&(+ vvl#H 34F&(+rV   r   rY   r   rL   c                     | j                         }t        j                  ||        | j                         }|j                  d       t        j                  ||        y )NTinplace)r   rD   rE   copy)r   rR   s     r   test_drop_duplicates_emptyrn      sN     !F&"%WWYF
4(&"%rV   c                     t        g dg ddt        j                  t        j                  t        j                  ddddgt        d      d      } | j	                  d      }| j
                  g d   }t        j                  ||       | j	                  dd	
      }| j
                  g d   }t        j                  ||       | j	                  dd
      }| j
                  g    }t        j                  ||       t        |      dk(  sJ | j	                  ddg      }| j
                  g d   }t        j                  ||       | j	                  ddgd	
      }| j
                  g d   }t        j                  ||       | 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      } | j	                  d      }| d d }t        j                  ||       | j	                  dd	
      }| j
                  ddg   }t        j                  ||       | j	                  dd
      }| j
                  g    }t        j                  ||       t        |      dk(  sJ | j	                  ddg      }| j
                  g d   }t        j                  ||       | j	                  ddgd	
      }| j
                  g d   }t        j                  ||       | j	                  ddgd
      }| j
                  dg   }t        j                  ||       y )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   rH   nanrC   r   rF   rD   rE   rG   rb   s      r   test_drop_duplicates_NArs      s   	GIrvvrvvrvvsCC@q		

B $Fvvi H&(+&1Fvvi H&(+%0FvvbzH&(+v;! c
+Fvvl#H&(+c
8Fvvl#H&(+c
7Fvvqc{H&(+ 
IIrvvrvvrvvsCC@q		

B $F"1vH&(+&1Fvvq!f~H&(+%0FvvbzH&(+v;! c
+Fvvl#H&(+c
8Fvvl#H&(+c
7Fvvqc{H&(+rV   c                  8   t        g ddt        j                  t        j                  t        j                  ddddgd      } | j                  d      }| j                  g d   }t        j                  ||       | j                  dd	      }| j                  g d
   }t        j                  ||       | j                  dd	      }| j                  ddg   }t        j                  ||       | j                  d      }| j                  g d   }t        j                  ||       | j                  dd	      }| j                  g d   }t        j                  ||       | j                  dd	      }| j                  ddg   }t        j                  ||       y )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   rH   rr   r   rJ   rD   rE   rb   s      r   $test_drop_duplicates_NA_for_take_allru   $  sf   	GrvvrvvrvvsCC@	

B $Fww'H&(+&1Fww'H&(+%0Fww1vH&(+
 $Fww|$H&(+&1Fww|$H&(+%0Fww1vH&(+rV   c                  P   t        g dg dg dt        d      d      } | j                         }|j                  dd      }| d d	 }|}t	        j
                  ||       |J | j                         }|j                  dd
d      }| j                  ddg   }|}t	        j
                  ||       |J | j                         }|j                  ddd      }| j                  g    }|}t	        j
                  ||       t        |      dk(  sJ |J | j                         }|j                  ddgd      }| j                  g d   }|}t	        j
                  ||       |J | j                         }|j                  ddgd
d      }| j                  g d   }|}t	        j
                  ||       |J | j                         }|j                  ddgdd      }| j                  dg   }|}t	        j
                  ||       |J | j                  d d g df   j                         }|j                         }|j                  d      }|j                  ddg      }|}t	        j
                  ||       |J |j                         }|j                  d
d      }|j                  ddgd
      }|}t	        j
                  ||       |J |j                         }|j                  dd      }|j                  ddgd      }|}t	        j
                  ||       |J y )Nr   r   r"   r$   rq   r   Trk   r#   r(   )r*   rl   r+   r,   Fr   r	   r-   r/   r   r)   )r   rC   rm   r   rD   rE   rF   rG   )origr   return_valuerS   rR   orig2rT   s          r   test_drop_duplicates_inplacerz   J  sI   II)q		
D 
B%%c4%8LBQxHF&(+	B%%c%ELxxAHF&(+	B%%ct%DLxx|HF&(+r7a<< 
B%%sCj$%?Lxx%HF&(+	B%%sCjvt%LLxx%HF&(+	B%%sCjud%KLxx}HF&(+ HHQ'(--/E
**,C&&t&4L$$c3Z0HF&(+
**,C&&FD&AL$$c3Zf$=HF&(+
**,C&&E4&@L$$c3Ze$<HF&(+rV   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$|j                         }|j                  ||        n|j                  ||       }t        j                  ||       t        j                  |t        |             y )Nri   )rA   rl   )r   rm   r   rD   rE   )rl   origin_dictoutput_dictrA   output_indexr   rS   	result_dfs           r   !test_drop_duplicates_ignore_indexr     su     
;	BL9HGGI	!!|W!M&&L'&R	)X."i45rV   c                 ~    t        d| gddggt              }|j                         }t        j                  ||       y )Nr   r#   r   )dtype)r   objectr   rD   rE   )nulls_fixturer   rR   s      r   *test_drop_duplicates_null_in_object_columnr     s:    	Q&C1	@B!F&"%rV   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 ]Q  }||g   j                  | 	      }||   j                  | 	      }t        j                  ||j                                S y )
N)r   r   r   r    r    r#   r.   three)r   r#   r.   r5   r5   i  r   )r   rX   cder)   )
r   rH   rr   r   r   rZ   r   rD   rE   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F844$4?F333>
m^-D-D-FGHrV   argTruec                     t        dg di      }d}t        j                  t        |      5  |j	                  |        d d d        y # 1 sw Y   y xY w)Nr   )r   r#   r   r.   zC^For argument "ignore_index" expected type bool, received type .*.$r   r@   )r   r   r   
ValueErrorr   )r   r   r   s      r   -test_drop_duplicates_non_boolean_ignore_indexr     sL     
C&	'B
OC	z	- -
,- - -s   A		A)r   r   numpyrH   r   pandasr   r   r   pandas._testing_testingrD   markparametrizer   rU   r^   rc   rh   rn   rs   ru   rz   r   r   r   r   r;   rV   r   <module>r      s    	   
  C#c
#;<# =#]3@	.!,H,: "/*(	&	&G,T#,LM ` T5M2:
y	C!Q=$A7
y	C!Q=%!Q8y	)!Qq!f+EtaQRVTy	)!Qq!f+EuqRSfU	6 36"&H. !aQ 78- 9-rV   