
    Mhe                     f   S SK Jr  S SKJr  S SKrS SKrS SKrS SKrS SK	r	S SK
Jr  S SKrS SKJr  S SKJr  \S\S   4S j5       rS	 r\	R,                  R/                  S
\R0                  \R2                  4\R4                  \R6                  4\R8                  \R:                  4\R<                  \R>                  4\R@                  \RB                  4\RD                  \RF                  4\RH                  \RJ                  4\RL                  \RN                  4\RP                  \RR                  4\RT                  \RV                  4\RX                  \RZ                  4\R\                  \R^                  4\R`                  \Rb                  4\Rd                  \Rf                  4/5       " S S5      5       r4 " S S5      r5 " S S5      r6S r7S r8S r9S r:\	R,                  R/                  S\;" SS5      5      S 5       r<\	R,                  R/                  S
\R@                  \RB                  4\RP                  \RR                  4\R4                  \R6                  4\RD                  \RF                  4/5       " S S5      5       r=S r>S r?S r@\	R,                  R/                  S\R2                  \R6                  \R:                  \R>                  \RB                  \RF                  \RJ                  \RN                  \RR                  \RV                  \RZ                  \R^                  \Rb                  \Rf                  /5       " S S 5      5       rAS! rBS" rCS# rD\	R,                  R/                  S\RB                  \RR                  \R6                  \RF                  /5       " S$ S%5      5       rES& rFS' rGg)(    )	Generator)contextmanagerN)	hashtable)isinreturn)NNNc               #      #    [         R                  " 5          S v   [         R                  " 5         g ! [         R                  " 5         f = f7fN)tracemallocstartstop     R/var/www/html/env/lib/python3.13/site-packages/pandas/tests/libs/test_hashtable.pyactivated_tracemallocr      s1     s   A3 AA

Ac                      [         R                  " 5       n U R                  [         R                  " S[        R
                  " 5       5      45      n [        S U R                   5       5      $ )NTc              3   8   #    U  H  oR                   v   M     g 7fr	   )size).0xs     r   	<genexpr>-get_allocated_khash_memory.<locals>.<genexpr>   s     /!vvs   )r
   take_snapshotfilter_tracesDomainFilterhtget_hashtable_trace_domainsumtraces)snapshots    r   get_allocated_khash_memoryr       sS    ((*H%%		!	!$(E(E(G	HJH /x///r   ztable_type, dtypec                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS r\R"                  R%                  S\" SS5      5      S 5       rSrg)TestHashTable"   c                    SnU" S5      n[        U5      S:X  d   eX4;  d   eUR                  US5        [        U5      S:X  d   eX4;   d   eUR                  U5      S:X  d   eUR                  US-   S5        X4;   d   eUS-   U;   d   e[        U5      S:X  d   eUR                  U5      S:X  d   eUR                  US-   5      S:X  d   eUR                  US5        X4;   d   eUS-   U;   d   e[        U5      S:X  d   eUR                  U5      S:X  d   eUR                  US-   5      S:X  d   eUS-   U;  d   eUR                  US-   S5        X4;   d   eUS-   U;   d   e[        U5      S:X  d   eUR                  U5      S:X  d   eUR                  US-   5      S:X  d   e[        R                  " [
        [        US-   5      S	9   UR                  US-   5        S S S 5        g ! , (       d  f       g = f)
N   7   r   *      )         match)lenset_itemget_itempytestraisesKeyErrorstrself
table_typedtypeindextables        r   test_get_set_contains_len'TestHashTable.test_get_set_contains_len6   s   25zQ!!!ub!5zQ~~~~e$***uqy"%~~qyE!!!5zQ~~e$***~~eai(B...ub!~~qyE!!!5zQ~~e$***~~eai(B...qy%%%uqy"%~~qyE!!!5zQ~~e$***~~eai(B...]]83uqy>:NN519% ;::s   G**
G8c                 t   U[         R                  :X  a  [        R                  " S5        SnU" SSS9n[	        U5      S:X  d   eX4;  d   eUR                  US5        [	        U5      S:X  d   eX4;   d   eUR                  U5      S:X  d   e[        R                  " [        S	S
9   UR                  5         S S S 5        UR                  US-   S5        UR                  S5        [        R                  U;   d   eX4;   d   eUS-   U;   d   e[	        U5      S:X  d   eUR                  U5      S:X  d   eUR                  US-   5      S:X  d   eUR                  5       S:X  d   eUR                  S5        X4;   d   eUS-   U;   d   e[	        U5      S:X  d   eUR                  US-   5      S:X  d   eUR                  5       S:X  d   eUS-   U;  d   e[        R                  " [        [        US-   5      S
9   UR                  US-   5        S S S 5        g ! , (       d  f       GNg= f! , (       d  f       g = f)NMask not supported for objectr%   r&   T	uses_maskr   r'   r(   NAr,   r)      r+   r*   )r   PyObjectHashTabler1   skipr.   r/   r0   r2   r3   get_naset_napdrA   r4   r5   s        r   test_get_set_contains_len_mask,TestHashTable.test_get_set_contains_len_maskZ   s    ---KK782.5zQ!!!ub!5zQ~~~~e$***]]840LLN 1 	uqy"%Ruu~~~~qyE!!!5zQ~~e$***~~eai(B...||~###R~~qyE!!!5zQ~~eai(B...||~###qy%%%]]83uqy>:NN519% ;:+ 10* ;:s   &H9H)
H&)
H7c                    U[         R                  :X  a  SnU" 5       n[        R                  " U5      R	                  U5      n[        R                  " U5      R	                  [        R
                  5      U-   nX6R                  l        X7R                  l        UR                  Xg5        [        U5       H  nUR                  Xh   5      X-   :X  a  M   e   g g )NM   )r   Int64HashTablenparangeastypeint64flags	writeablemap_keys_to_valuesranger0   )	r6   r7   r8   writableNr:   keysvalsis	            r   test_map_keys_to_values%TestHashTable.test_map_keys_to_values~   s    ***ALE99Q<&&u-D99Q<&&rxx014D#+JJ #+JJ $$T01X~~dg.!%777  +r   c                     SnU" 5       n[         R                  " U5      U-   R                  U5      nX6R                  l        UR                  U5        [        U5       H  nUR                  Xg   5      U:X  a  M   e   g )N   )rM   rN   rO   rQ   rR   map_locationsrT   r0   r6   r7   r8   rU   rV   r:   rW   rY   s           r   test_map_locations TestHashTable.test_map_locations   sj    		!q ((/'

D!qA>>$'*a/// r   c           
         U[         R                  :X  a  [        R                  " S5        SnU" SS9n[        R
                  " U5      U-   R                  U5      nX6R                  l        UR                  U[        R                  " / SQ5      5        [        US-
  5       H  nUR                  Xg   5      U:X  a  M   e   [        R                  " [        [        R                   " [#        XdS-
     5      5      S9   UR                  XdS-
     5        S S S 5        UR%                  5       S:X  d   eg ! , (       d  f       N%= f)	Nr>   rB   Tr?   )FFTr(   r,   r*   )r   rC   r1   rD   rM   rN   rO   rQ   rR   r^   arrayrT   r0   r2   r3   reescaper4   rE   r_   s           r   test_map_locations_mask%TestHashTable.test_map_locations_mask   s    ---KK78T*		!q ((/'

D"((+?"@Aq1uA>>$'*a///  ]]8299S!e5E+FGNN4A;' H ||~""" HGs   <D22
E c                    SnU" 5       n[         R                  " U5      U-   R                  U5      nX6R                  l        UR                  U5        UR                  U5      n[         R                  " U5      n[        R                  " UR                  [         R                  5      UR                  [         R                  5      5        g )NrB   )
rM   rN   rO   rQ   rR   r^   lookuptmassert_numpy_array_equalrP   )	r6   r7   r8   rU   rV   r:   rW   resultexpecteds	            r   test_lookupTestHashTable.test_lookup   s    		!q ((/'

D!d#99Q<
##FMM"(($;X__RXX=VWr   c                    U[         R                  [         R                  4;   a  SnOSnU" 5       n[         R                  " U5      U-   R	                  U5      nUR                  U5        [         R                  " U5      R	                  U5      nUR                  U5      n[         R                  " US:H  5      (       d   eg )Nd   i   )rM   int8uint8rN   rO   r^   ri   all)r6   r7   r8   rV   r:   rW   
wrong_keysrl   s           r   test_lookup_wrongTestHashTable.test_lookup_wrong   s    RWWbhh''AA		!q ((/D!YYq\((/
j)vvfl####r   c                 b   U[         R                  :X  a  [        R                  " S5        SnU" SS9n[        R
                  " U5      U-   R                  U5      n[        R                  " / SQ5      nX6R                  l	        UR                  Xg5        UR                  Xg5      n[        R
                  " U5      n	[        R                  " UR                  [        R                  5      U	R                  [        R                  5      5        UR                  [        R                  " SU-   /5      R                  U5      [        R                  " S/5      5      n[        R                  " UR                  [        R                  5      [        R                  " S/[        R                  S	95        g )
Nr>   rB   Tr?   )FTFr(   Frr   r8   )r   rC   r1   rD   rM   rN   rO   rc   rQ   rR   r^   ri   rj   rk   rP   )
r6   r7   r8   rU   rV   r:   rW   maskrl   rm   s
             r   test_lookup_maskTestHashTable.test_lookup_mask   s   ---KK78T*		!q ((/xx,-'

D'd)99Q<
##FMM"(($;X__RXX=VWbhhAw/66u=rxx?PQ
##MM"((#RXXrd"((%C	
r   c                 P   U[         R                  [         R                  4;   a  SnOSnU" 5       n[         R                  " U5      U-   R	                  U5      n[         R
                  " US5      nX7R                  l        UR                  U5      n[        R                  " X5        g )NX     r%   )rM   rs   rt   rN   rO   repeatrQ   rR   uniquerj   rk   )	r6   r7   r8   rU   rV   r:   rm   rW   r   s	            r   test_uniqueTestHashTable.test_unique   s{    RWWbhh''AAIIaL1$,,U3yy1%'

d#
##F5r   c                 ~   U[         R                  [         R                  4;   a  SnOSn[         R                  " U5      R	                  U5      n[        5          U" 5       nUR                  U5        [        5       nUR                  5       nXg:X  d   eA[        5       S:X  d   e S S S 5        g ! , (       d  f       g = f)N   i0u  r   )	rM   rs   rt   rN   rO   r   r^   r    sizeof)r6   r7   r8   rV   rW   r:   usedmy_sizes           r   test_tracemalloc_works$TestHashTable.test_tracemalloc_works   s    RWWbhh''AAyy|""5)"$LE%-/DllnG?"?-/1444 %$$s   AB..
B<c                     [        5          U" 5       n[        5       nUR                  5       nXE:X  d   eA[        5       S:X  d   e S S S 5        g ! , (       d  f       g = fNr   )r   r    r   )r6   r7   r8   r:   r   r   s         r   test_tracemalloc_for_empty(TestHashTable.test_tracemalloc_for_empty   sL    "$LE-/DllnG?"?-/1444 %$$s   :A
Ac                     U" S5      nUR                  5       nUS   S:X  d   eUS   S:X  d   eSU;   d   eSU;   d   eg )Nr   r   r   
n_occupied	n_bucketsupper_bound)	get_state)r6   r7   r8   r:   states        r   test_get_stateTestHashTable.test_get_state   sY    4 !V}!!!\"a'''e###%%%r   rV   r(   n   c                 :   [         R                  " U5      R                  U5      nU" U5      nUR                  5       S   nUR	                  U5        UR                  5       S   nXg:X  d   eU" 5       nUR	                  U5        XhR                  5       S   :X  d   eg Nr   )rM   rN   rO   r   r^   )	r6   r7   r8   rV   rW   preallocated_tablen_buckets_startn_buckets_endclean_tables	            r   test_no_reallocation"TestHashTable.test_no_reallocation   s    yy|""5)'],668E((.*446{C/// l!!$'"7"7"9+"FFFFr   r   N)__name__
__module____qualname____firstlineno__r;   rH   rZ   r`   rf   rn   rw   r|   r   r   r   r   r1   markparametrizerT   r   __static_attributes__r   r   r   r"   r"   "   sn    ("&H"&H80# X
$
$
655& [[S%3-0G 1Gr   r"   c                      \ rS rSrS rS rS rS rS r\	R                  R                  SSS	/5      \	R                  R                  S
\R                  \R                  SS4\R                  \R                  SS4\R                   \R"                  SS4\R$                  \R&                  SS4\R(                  \R*                  SS4\R,                  \R.                  SS4/5      S 5       5       r\	R                  R                  S\R                  \R                  \R                   \R$                  \R(                  \R,                  /5      S 5       rSrg)TestHashTableUnsortedi  c                    [         R                  " 5       nUR                  SS5        UR                  S5      S:X  d   e[        R
                  " [        SS9   UR                  SS5        S S S 5        [        R
                  " [        SS9   UR                  S5        S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)Nkeyr(   z'key' has incorrect typer,         z'val' has incorrect type)r   StringHashTabler/   r0   r1   r2   	TypeError)r6   tbls     r   (test_string_hashtable_set_item_signature>TestHashTableUnsorted.test_string_hashtable_set_item_signature	  s      "UA||E"a''']]9,FGLLA H ]]9,FGLLO HG HG HGs   B'B8'
B58
Cc           	      d   [         R                  " SS[         R                  SSSS/5      nUR                  US9  [        R
                  " 5       nUR                  U5        [        R                  " UR                  U5      [         R                  " [        U5      [         R                  S95        g )	NgX9v@gQ	@ir%   r*   rB   writerz   )rM   rc   nansetflagsr   Float64HashTabler^   rj   rk   ri   rN   r.   intpr6   rU   xsms       r   test_lookup_nan%TestHashTableUnsorted.test_lookup_nan  sv    XXudBFFB1a89
(#!	
##AHHRL"))CG2772STr   c                     Sn[         R                  " U5      nUR                  SS5        UR                  SS5        [        U5      S:X  d   eg )Nr   g        r   g       r(   )r   r   r/   r.   )r6   rV   r   s      r   test_add_signed_zeros+TestHashTableUnsorted.test_add_signed_zeros  sE    
 "	

3	

41v{{r   c                 p   [         R                  " S[         R                  " SS5      5      S   n[         R                  " S[         R                  " SS5      5      S   nX:w  d   eX":w  d   e[        R                  " 5       nUR                  US5        UR                  US5        [        U5      S:X  d   eg )Ndz=Ql          r   l         r(   )structunpackpackr   r   r/   r.   )r6   NAN1NAN2r   s       r   test_add_different_nans-TestHashTableUnsorted.test_add_different_nans)  s     }}S&++d4F"GHK}}S&++d4F"GHK|||| !	

4	

41v{{r   c                 X   [         R                  " / SQ[         R                  S9nUR                  US9  [        R
                  " 5       nUR                  U5        [        R                  " UR                  U5      [         R                  " [        U5      [         R                  S95        g )N)r(   r*   l            rz   r   )rM   rc   uint64r   r   UInt64HashTabler^   rj   rk   ri   rN   r.   r   r   s       r   test_lookup_overflow*TestHashTableUnsorted.test_lookup_overflow7  si    XXm2995
(# 	
##AHHRL"))CG2772STr   nvalsr   
   z&htable, uniques, dtype, safely_resizesobjectFTfloat64rP   int32r   c                    [         R                  " [        S5      US9nUR                  US9  U" 5       nU" 5       nUR	                  US U USS5        UR                  5       nUR                  n	U(       a  UR	                  XsSS5        O5[        R                  " [        SS9   UR	                  XsSS5        S S S 5        UR                  5         UR                  U	:X  d   eg ! , (       d  f       N1= f)Nr   rz   r   r   rr   zexternal reference.*r,   )
rM   rc   rT   r   
get_labelsto_arrayshaper1   r2   
ValueError)
r6   rU   htableuniquesr8   safely_resizesr   rX   tmpoldshapes
             r   test_vector_resize(TestHashTableUnsorted.test_vector_resize?  s    & xxd51 	H%
 ) 	$v,B7 99 dQ3z1GH!!$B7 I 	yyH$$$	 IHs   #C""
C0r   c                 r    [         R                  " [         R                  5      R                  S-   nU" US9  g )Nr(   )	size_hint)rM   iinfouint32max)r6   r   r   s      r   test_hashtable_large_sizehint3TestHashTableUnsorted.test_hashtable_large_sizehintn  s)     HHRYY'++a/	I&r   r   N)r   r   r   r   r   r   r   r   r   r1   r   r   r   rC   ObjectVectorr   r   Float64VectorrL   Int64VectorInt32HashTableInt32Vectorr   UInt64Vectorr   r   r   r   r   r   r   r     sM   U	U [[Wq"g.[[0!!2??HeD(DA  ""2"2IuE??(EB	

!%
 /!%F [[  	

'
'r   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestPyObjectHashTableWithNansi  c                     [        S5      n[        S5      nXLd   e[        R                  " 5       nUR                  US5        UR	                  U5      S:X  d   eg Nr   r'   floatr   rC   r/   r0   r6   nan1nan2r:   s       r   test_nan_float,TestPyObjectHashTableWithNans.test_nan_float  sS    U|U|$$&tR ~~d#r)))r   c                    [        [        S5      [        S5      5      n[        [        S5      [        S5      5      nXLd   e[        R                  " 5       nUR	                  US5        UR                  U5      S:X  d   eg r   )complexr   r   rC   r/   r0   r   s       r   test_nan_complex_both3TestPyObjectHashTableWithNans.test_nan_complex_both  si    uU|U5\2uU|U5\2$$&tR ~~d#r)))r   c                    [        [        S5      S5      n[        [        S5      S5      n[        [        S5      S5      nXLd   e[        R                  " 5       nUR	                  US5        UR                  U5      S:X  d   e[        R                  " [        S S9 nUR                  U5        S S S 5        [        WR                  5      [        U5      :X  d   eg ! , (       d  f       N3= f)Nr   r(   r*   r'   r,   r   r   r   rC   r/   r0   r1   r2   r3   r4   valuer6   r   r   otherr:   errors         r   test_nan_complex_real3TestPyObjectHashTableWithNans.test_nan_complex_real  s    uU|Q'uU|Q'ea($$&tR ~~d#r)))]]840ENN5! 15;;3u:--- 10   C
C*c                    [        S[        S5      5      n[        S[        S5      5      n[        S[        S5      5      nXLd   e[        R                  " 5       nUR	                  US5        UR                  U5      S:X  d   e[        R                  " [        S S9 nUR                  U5        S S S 5        [        WR                  5      [        U5      :X  d   eg ! , (       d  f       N3= f)Nr(   r   r*   r'   r,   r   r   s         r   test_nan_complex_imag3TestPyObjectHashTableWithNans.test_nan_complex_imag  s    q%,'q%,'5<($$&tR ~~d#r)))]]840ENN5! 15;;3u:--- 10r  c                     [        S5      4n[        S5      4nUS   US   Ld   e[        R                  " 5       nUR                  US5        UR	                  U5      S:X  d   eg )Nr   r   r'   r   r   s       r   test_nan_in_tuple/TestPyObjectHashTableWithNans.test_nan_in_tuple  sa    eeAwd1g%%%$$&tR ~~d#r)))r   c                    SS[        S5      444nSS[        S5      444nSn[        R                  " 5       nUR                  US5        UR	                  U5      S:X  d   e[
        R                  " [        S S9 nUR	                  U5        S S S 5        [        WR                  5      [        U5      :X  d   eg ! , (       d  f       N3= f)Nr(   r*   r   )r(   r*   r'   r,   )
r   r   rC   r/   r0   r1   r2   r3   r4   r   r   s         r   test_nan_in_nested_tuple6TestPyObjectHashTableWithNans.test_nan_in_nested_tuple  s    Ae'(Ae'($$&tR ~~d#r)))]]840ENN5! 15;;3u:--- 10s   :B99
Cr   N)r   r   r   r   r   r   r  r  r
  r  r   r   r   r   r   r     s     **
.
.*	.r   r   c                  "   [        S5      [        S5      [        S5      44n [        S5      [        S5      [        S5      44n[        R                  " U 5      [        R                  " U5      :X  d   e[        R                  " X5      (       d   eg )Nr   )r   r   object_hashobjects_are_equal)abs     r   test_hash_equal_tuple_with_nansr    so    	ueeEl34A	ueeEl34A>>!q 1111%%%%r   c                    [         R                  " 5       n[        R                  " / SQ[        R                  S9nXR
                  l        UR                  U5      u  p4[        R                  " / SQ[        R                  S9n[        R                  " SS/[        R                  S9n[        R                  " X55        [        R                  " XF5        g )N)r(   r*   rr   r*   r(   rr   rz   )r   r(   rr   r(   r   rr   r(   r*   )r   rL   rM   rc   rP   rQ   rR   get_labels_groupbyr   rj   rk   )rU   r:   rX   arrr   expected_arrexpected_uniques          r   !test_get_labels_groupby_for_Int64r    s    E88(9D#JJ**40KC880@Lhh1vRXX6O28r   c                     Sn [         R                  " U 5      R                  [         R                  5      R                  [         R                  5      n[        5          [        R                  " 5       nUR                  U5        [        5       nUR                  5       nX4:X  d   eA[        5       S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   r   )rM   rN   rO   str_object_r   r   r   r^   r    r   )rV   rW   r:   r   r   s        r   *test_tracemalloc_works_for_StringHashTabler    s    A99Q<rww'..rzz:D		 ""$D!)+,,.)+q000 
!	 	 s   AC  
Cc                      [        5          [        R                  " 5       n [        5       nU R	                  5       nX:X  d   eA [        5       S:X  d   e S S S 5        g ! , (       d  f       g = fr   )r   r   r   r    r   )r:   r   r   s      r   *test_tracemalloc_for_empty_StringHashTabler     sS    		 ""$)+,,.)+q000 
!	 	 s   AA
A+rV   r(   r   c                    [         R                  " U 5      R                  [         R                  5      R                  [         R                  5      n[
        R                  " U 5      nUR                  5       S   nUR                  U5        UR                  5       S   nX4:X  d   e[
        R                  " 5       nUR                  U5        X5R                  5       S   :X  d   eg r   )	rM   rN   rO   r  r  r   r   r   r^   )rV   rW   r   r   r   r   s         r   $test_no_reallocation_StringHashTabler"    s    99Q<rww'..rzz:D++A.(224[AO$$T*&002;?M+++$$&Kd#335kBBBBr   c                   &    \ rS rSrS rS rS rSrg)TestHashTableWithNansi  c                 :   [        S5      nU" 5       nX4;  d   eUR                  US5        [        U5      S:X  d   eX4;   d   eUR                  U5      S:X  d   eUR                  US5        [        U5      S:X  d   eX4;   d   eUR                  U5      S:X  d   eg )Nr   r'   r(   r)   )r   r/   r.   r0   r5   s        r   r;   /TestHashTableWithNans.test_get_set_contains_len  s    e!!!ub!5zQ~~~~e$***ub!5zQ~~~~e$***r   c                     SnU" 5       n[         R                  " U[         R                  US9nUR                  U5        [	        U5      S:X  d   eUR                  [         R                  5      US-
  :X  d   eg )Nr   rz   r(   )rM   fullr   r^   r.   r0   )r6   r7   r8   rV   r:   rW   s         r   r`   (TestHashTableWithNans.test_map_locations  sa    wwq"&&.D!5zQ~~bff%Q...r   c                     SnU" 5       n[         R                  " U[         R                  US9nUR                  U5      n[         R                  " [         R
                  " U5      5      (       a  [        U5      S:X  d   eg )Ni  rz   r(   )rM   r(  r   r   ru   isnanr.   )r6   r7   r8   rV   r:   rW   r   s          r   r   !TestHashTableWithNans.test_unique  s^    wwq"&&.d#vvbhhv&''CK1,<<<,<r   r   N)r   r   r   r   r;   r`   r   r   r   r   r   r$  r$    s    +/=r   r$  c                     [         R                  " 5       n [        R                  " [	        S5       Vs/ s H  n[        S5      PM     sn[        R                  S9nU R                  U5      n[        U5      S:X  d   eg s  snf )N2   r   rz   r(   	r   rC   rM   rc   rT   r   r  r   r.   r:   rY   rW   r   s       r   "test_unique_for_nan_objects_floatsr1    s`      "E885959aU5\95RZZHD\\$Fv;! 6s   A?c            
         [         R                  " 5       n [        R                  " [	        S5       Vs/ s H  n[        [        S5      S5      PM     sn[        R                  S9nU R                  U5      n[        U5      S:X  d   eg s  snf )Nr.  r         ?rz   r(   )
r   rC   rM   rc   rT   r   r   r  r   r.   r0  s       r   #test_unique_for_nan_objects_complexr4  $  sh      "E88rCAWU5\3/C2::VD\\$Fv;! Ds   B	c            
         [         R                  " 5       n [        R                  " S/[	        S5       Vs/ s H  nS[        S5      S44PM     sn-   [        R                  S9nU R                  U5      n[        U5      S:X  d   eg s  snf )Nr(   r.  r3  r   rz   r*   r/  r0  s       r   !test_unique_for_nan_objects_tupler6  +  sv      "E88	
59=9aeElC()9==RZZD \\$Fv;! >s   B
r8   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestHelpFunctionsi4  c                 p   Sn[         R                  " U5      U-   R                  U5      n[         R                  " US5      nX%R                  l        [        R                  " US5      u  pgn[        R                  " [         R                  " U5      U5        [         R                  " US:H  5      (       d   eg )N+   r%   F)rM   rN   rO   r   rQ   rR   r   value_countrj   rk   sortru   )	r6   r8   rU   rV   rm   valuesrW   counts_s	            r   test_value_count"TestHelpFunctions.test_value_countH  s    IIaL1$,,U38Q'!)..7a
##BGGDM8<vvfk""""r   c                 H   U[         R                  :X  a  [        R                  " S5        [         R                  " S/S-  US9n[         R
                  " S[         R                  S9nSUS'   SUS'   [        R                  " USUS	9u  pEn[        U5      S
:X  d   eUS
:X  d   eg )Nz%mask not implemented for object dtyper(   r%   rz   )r%   Tr   F)r{   r*   )
rM   r  r1   rD   rc   zerosbool_r   r;  r.   )r6   r8   r=  r{   rW   r>  
na_counters          r   test_value_count_mask'TestHelpFunctions.test_value_count_maskQ  s    BJJKK?@1#'/xxBHH-QQ#%>>&%d#K j4yA~~Qr   c                    [         R                  " / SQ5      R                  U5      nX#R                  l        [
        R                  " US5      u  pEn[        R                  " XC5        [         R                  " US:H  5      (       d   eg )Nr*   r(   r%      rB   rr   r]   Fr(   )
rM   rc   rO   rQ   rR   r   r;  rj   rk   ru   )r6   r8   rU   r=  rW   r>  r?  s          r   test_value_count_stable)TestHelpFunctions.test_value_count_stable\  sa    1299%@!)..7a
##D1vvfk""""r   c                 J   Sn[         R                  " [         R                  " U5      R                  U5      S5      nX$R                  l        [        R                  " U5      n[         R                  " U[         R                  S9nSUS S S2'   [        R                  " XV5        g )Nrq   r%   rz   F)rM   r   rN   rO   rQ   rR   r   
duplicated	ones_likerD  rj   rk   )r6   r8   rU   rV   r=  rl   rm   s          r   test_duplicated_first'TestHelpFunctions.test_duplicated_firstd  sq    299Q<..u5q9!)v&<<bhh71
##F5r   c                 z   Sn[         R                  " U5      R                  U5      n[         R                  " U5      R                  U5      nX$R                  l        X%R                  l        [
        R                  " XE5      n[         R                  " U[         R                  S9n[        R                  " Xg5        g )N   rz   )rM   rN   rO   rQ   rR   r   ismemberrO  rD  rj   rk   )r6   r8   rU   rV   r  r=  rl   rm   s           r   test_ismember_yes#TestHelpFunctions.test_ismember_yesm  s{    iil!!%(1$$U+&		!)S)<<bhh7
##F5r   c                 @   Sn[         R                  " U5      R                  U5      n[         R                  " U5      U-   R                  U5      n[        R                  " X45      n[         R
                  " U[         R                  S9n[        R                  " XV5        g )N   rz   )	rM   rN   rO   r   rT  
zeros_likerD  rj   rk   )r6   r8   rV   r  r=  rl   rm   s          r   test_ismember_no"TestHelpFunctions.test_ismember_now  sl    iil!!%())A,"**51S)==rxx8
##F5r   c                 8   U[         R                  [         R                  4;   a  SnOSn[         R                  " [         R                  " U5      R                  U5      S5      nSUS'   X$R                  l        [        R                  " US5      S   nUS:X  d   eg )N5   ig+  r%   r'   r   F)
rM   rs   rt   r   rN   rO   rQ   rR   r   mode)r6   r8   rU   rV   r=  rl   s         r   	test_modeTestHelpFunctions.test_mode  sx    RWWbhh''AA299Q<..u5q9q	!)'*||r   c                     [         R                  " / SQ5      R                  U5      nX#R                  l        [
        R                  " US5      S   n[        R                  " XC5        g )NrI  Fr   )	rM   rc   rO   rQ   rR   r   r^  rj   rk   )r6   r8   rU   r=  rW   s        r   test_mode_stable"TestHelpFunctions.test_mode_stable  sI    1299%@!)wwvu%a(
##D1r   r   N)r   r   r   r   r@  rF  rK  rP  rU  rZ  r_  rb  r   r   r   r   r8  r8  4  s*    (#	#666	2r   r8  c                  "   [         R                  [        R                  [         R                  S /n [        R
                  " S/U S-  -   [        R                  S9n[        R                  " US5      S   nUR                  [        U 5      :X  d   eg )NTr*   rz   Fr   )rG   rA   rM   r   NaTrc   r  r   r^  r   r.   )nullsr=  modess      r   test_modes_with_nansrh    sf    UUBFFBFFD)EXXtfuqy(

;FGGFE"1%E::U###r   c                    [         R                  " / SQ[         R                  S9nXR                  l        [
        R                  " U5      n[         R                  " / SQ[         R                  S9n[        R                  " X#5        g )N)r(   r*   r*   r*   r(   rB   rz   )r   r(   r%   )	rM   rc   r   rQ   rR   r   unique_label_indicesrj   rk   )rU   rW   rl   rm   s       r   test_unique_label_indices_intprk    sS    88&bgg6D#JJ$$T*Fxx	1H1r   c                  &   [         R                  R                  S5      R                  SSS5      R	                  [         R
                  5      n [        R                  " U 5      n[         R                  " U SS9S   n[        R                  " XSS9  S	U [         R                  R                  S5      R                  [        U 5      S
5      '   [        R                  " U 5      n[         R                  " U SS9S   SS  n[        R                  " XSS9  g )Nr*   r(   i   i   T)return_indexF)check_dtyperr   r   )rM   randomdefault_rngintegersrO   r   r   rj  r   rj   rk   choicer.   )r  leftrights      r   test_unique_label_indicesru    s    
		a ))!Wg>EEbggNA""1%DIIad+A.E?57AbiiA%%c!fb12""1%DIIad+A.qr2E?r   c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestHelpFunctionsWithNansi  c                    [         R                  " [         R                  [         R                  [         R                  /US9n[        R                  " US5      u  p4n[        U5      S:X  d   e[        R                  " US5      u  p4n[        U5      S:X  a/  [         R                  " [         R                  " U5      5      (       d   eUS   S:X  d   eg )Nrz   Tr   Fr(   rB   )rM   rc   r   r   r;  r.   ru   r+  )r6   r8   r=  rW   r>  r?  s         r   r@  *TestHelpFunctionsWithNans.test_value_count  s    2662662662%@..6a4yA~~..7a4yA~"&&$"8"888ayA~~r   c                    [         R                  " [         R                  [         R                  [         R                  /US9n[        R                  " U5      n[         R                  " / SQ5      n[
        R                  " X45        g )Nrz   )FTT)rM   rc   r   r   rN  rj   rk   )r6   r8   r=  rl   rm   s        r   rP  /TestHelpFunctionsWithNans.test_duplicated_first  sP    2662662662%@v&88/0
##F5r   c                    [         R                  " [         R                  [         R                  [         R                  /US9n[         R                  " [         R                  [         R                  /US9n[        R                  " X#5      n[         R                  " / SQ[         R
                  S9n[        R                  " XE5        g )Nrz   )TTTrM   rc   r   r   rT  rD  rj   rk   r6   r8   r  r=  rl   rm   s         r   rU  +TestHelpFunctionsWithNans.test_ismember_yes  ss    hh/u=266266*%8S)88.bhh?
##F5r   c                 V   [         R                  " [         R                  [         R                  [         R                  /US9n[         R                  " S/US9n[        R                  " X#5      n[         R                  " / SQ[         R
                  S9n[        R                  " XE5        g )Nrz   r(   )FFFr}  r~  s         r   rZ  *TestHelpFunctionsWithNans.test_ismember_no  sh    hh/u=1#U+S)881B
##F5r   c                 4   [         R                  " S[         R                  [         R                  [         R                  /US9n[        R                  " US5      S   S:X  d   e[         R
                  " [        R                  " US5      S   5      (       d   eg )Nr'   rz   Tr   F)rM   rc   r   r   r^  r+  )r6   r8   r=  s      r   r_  #TestHelpFunctionsWithNans.test_mode  sj    2rvvrvvrvv6eDwwvt$Q'2---xx.q12222r   r   N)
r   r   r   r   r@  rP  rU  rZ  r_  r   r   r   r   rw  rw    s    6663r   rw  c                  6   S[        S5      4S/n S[        S5      4/nSn[        R                  " [        US9   [	        X5      nS S S 5        [
        R                  " SS/[
        R                  S9n[        R                  " WU5        g ! , (       d  f       NK= f)	Nr  r   )r  r(   z+isin with argument that is not not a Seriesr,   TFrz   )	r   rj   assert_produces_warningFutureWarningr   rM   rc   rD  rk   )r=  compsmsgrl   rm   s        r   test_ismember_tuple_with_nansr    s{    E%L!8,F5< !E
7C		#	#M	=f$ 
>xxuRXX6H1 
>	=s   B


Bc                     / SQn [        [        S5      5      n[        [        R                  " U [
        S9[        R                  " U5      5      n[        R                  " / SQ[        R                  S9n[        R                  " X#5        g )N)r  r%   g      @y      @           rz   )FTTT)
listrT   r   rM   rc   r   asarrayrD  rj   rk   )r=  r  rl   rm   s       r   +test_float_complex_int_are_equal_as_objectsr    sX    $FsE"((60"**U2CDFxx1BH1r   )Hcollections.abcr   
contextlibr   rd   r   r
   numpyrM   r1   pandas._libsr   r   pandasrG   pandas._testing_testingrj   pandas.core.algorithmsr   r   r    r   r   rC   r  Complex128HashTable
complex128rL   rP   r   r   r   r   Complex64HashTable	complex64r   r   UInt32HashTabler   Float32HashTablefloat32Int16HashTableint16UInt16HashTableuint16Int8HashTablers   UInt8HashTablert   IntpHashTabler   r"   r   r   r  r  r  r   rT   r"  r$  r1  r4  r6  r8  rh  rk  ru  rw  r  r  r   r   r   <module>r     s]   % % 	     (   ' y)9:  0 			rzz*			/			BHH%			RYY'			bjj)			-			BHH%			RYY'			bjj)			BHH%			RYY'			277#			BHH%			277#&OG OG'&OGdu' u'p:. :.z&9
11 eAsm,C -C 			bjj)			bjj)			/			-	= ==@ 





		





		




		


&G2 G2'&G2T$2@ 







	 3  3 3F	22r   