
    4iLj                        S SK Jr  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\R0                  R3                  S\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\Rh                  \
Rj                  4/5       " S S5      5       r6 " S S5      r7 " S S5      r8S r9S r:S r;S r<S r=S r>\R0                  R3                  S\?" SSS5      5      S 5       r@\R0                  R3                  S\RD                  \
RF                  4\RT                  \
RV                  4\R8                  \
R:                  4\RH                  \
RJ                  4/5       " S S5      5       rAS rBS  rCS! rD\R0                  R3                  S"\
R6                  \
R:                  \
R>                  \
RB                  \
RF                  \
RJ                  \
RN                  \
RR                  \
RV                  \
RZ                  \
R^                  \
Rb                  \
Rf                  \
Rj                  /5       " S# S$5      5       rES% rFS& rGS' rH\R0                  R3                  S"\
RF                  \
RV                  \
R:                  \
RJ                  /5       " S( S)5      5       rIS* rJS+ rKg),    )
namedtuple)	Generator)contextmanagerN)	hashtable)isinreturn)NNNc               #      #    [         R                  " 5          S v   [         R                  " 5         g ! [         R                  " 5         f = f7fN)tracemallocstartstop     b/var/www/html/dynamic-report/venv/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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_len7   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   PyObjectHashTabler2   skipr/   r0   r1   r3   r4   get_naset_napdrB   r5   r6   s        r   test_get_set_contains_len_mask,TestHashTable.test_get_set_contains_len_mask[   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ranger1   )	r7   r8   r9   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   )rN   rO   rP   rR   rS   map_locationsrU   r1   )r7   r8   r9   rV   rW   r;   rX   rZ   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        [        R                  " [        R                  " SUS-
  5      S//SS9nUR                  Xg5        [        US-
  5       H  nUR                  Xh   5      U:X  a  M   e   [        R                  " [        [         R"                  " [%        XdS-
     5      5      S	9   UR                  XdS-
     5        S S S 5        UR'                  5       US-
  :X  d   eg ! , (       d  f       N(= f)
Nr?      Tr@   Fr)   r   )axisr-   )r   rD   r2   rE   rN   rO   rP   rR   rS   concatenaterepeatr_   rU   r1   r3   r4   reescaper5   rF   )	r7   r8   r9   rV   rW   r;   rX   maskrZ   s	            r   test_map_locations_mask%TestHashTable.test_map_locations_mask   s   ---KK78T*		!q ((/'

~~ryyA6?aHD'q1uA>>$'*a///  ]]8299S!e5E+FGNN4A;' H ||~Q&&& HGs   E
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 )NrC   )
rN   rO   rP   rR   rS   r_   lookuptmassert_numpy_array_equalrQ   )	r7   r8   r9   rV   rW   r;   rX   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   )rN   int8uint8rO   rP   r_   rm   all)r7   r8   r9   rW   r;   rX   
wrong_keysrp   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?   rC   Tr@   )FTFr)   Frv   r9   )r   rD   r2   rE   rN   rO   rP   arrayrR   rS   r_   rm   rn   ro   rQ   )
r7   r8   r9   rV   rW   r;   rX   ri   rp   rq   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&   )rN   rw   rx   rO   rP   rf   rR   rS   uniquern   ro   )	r7   r8   r9   rV   rW   r;   rq   rX   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   )	rN   rw   rx   rO   rP   r   r_   r!   sizeof)r7   r8   r9   rW   rX   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   )r7   r8   r9   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)r7   r8   r9   r;   states        r   test_get_stateTestHashTable.test_get_state   sY    4 !V}!!!\"a'''e###%%%r   rW   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   )rN   rO   rP   r   r_   )	r7   r8   r9   rW   rX   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<   rI   r[   r`   rj   rr   r{   r   r   r   r   r   r2   markparametrizerU   r   __static_attributes__r   r   r   r#   r#   #   sq    ("&H"&H80'"X
$
$
655& [[S%3"23G 4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-   r      z'val' has incorrect type)r   StringHashTabler0   r1   r2   r3   	TypeError)r7   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+   rC   writer~   )rN   r   nansetflagsr   Float64HashTabler_   rn   ro   rm   rO   r/   intpr7   rV   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   r0   r/   )r7   rW   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   r0   r/   )r7   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            r~   r   )rN   r   uint64r   r   UInt64HashTabler_   rn   ro   rm   rO   r/   r   r   s       r   test_lookup_overflow*TestHashTableUnsorted.test_lookup_overflow9  si    XXm2995
(# 	
##AHHRL"))CG2772STr   nvalsr   
   z&htable, uniques, dtype, safely_resizesobjectFTfloat64rQ   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   r~   r   r   rv   zexternal reference.*r-   )
rN   r   rU   r   
get_labelsto_arrayshaper2   r3   
ValueError)
r7   rV   htableuniquesr9   safely_resizesr   rY   tmpoldshapes
             r   test_vector_resize(TestHashTableUnsorted.test_vector_resizeA  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)rN   iinfouint32max)r7   r   r   s      r   test_hashtable_large_sizehint3TestHashTableUnsorted.test_hashtable_large_sizehintp  s)     HHRYY'++a/	I&r   r   N)r   r   r   r   r   r   r   r   r   r2   r   r   r   rD   ObjectVectorr   r   Float64VectorrM   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                   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)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   rD   r0   r1   r7   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   rD   r0   r1   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                  " [        [        R                  " [        U5      5      S9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r)   r+   r(   r-   r   r   r   rD   r0   r1   r2   r3   r4   rg   rh   reprr7   r   r   otherr;   s        r   test_nan_complex_real3TestPyObjectHashTableWithNans.test_nan_complex_real  s    uU|Q'uU|Q'ea($$&tR ~~d#r)))]]8299T%[+ABNN5! CBB   :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                  " [        [        R                  " [        U5      5      S9   UR                  U5        S S S 5        g ! , (       d  f       g = 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)))]]8299T%[+ABNN5! CBBr  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                  " [        [        R                  " [        U5      5      S9   UR	                  U5        S S S 5        g ! , (       d  f       g = f)Nr)   r+   r   )r)   r+   r(   r-   )r   r   rD   r0   r1   r2   r3   r4   rg   rh   r  r  s        r   test_nan_in_nested_tuple6TestPyObjectHashTableWithNans.test_nan_in_nested_tuple  s    Ae'(Ae'($$&tR ~~d#r)))]]8299T%[+ABNN5! CBBs   B22
C c                    [        SS/5      nU" [        S5      5      nU" [        S5      5      nUR                  UR                  Ld   e[        R                  " 5       nUR                  US5        UR                  U5      S:X  d   eg )NTr   r   r(   )r   r   r   r   rD   r0   r1   )r7   r  r   r   r;   s        r   test_nan_in_namedtuple4TestPyObjectHashTableWithNans.test_nan_in_namedtuple  ss    sSE"uuvvTVV###$$&tR ~~d#r)))r   c                    [        SSS/5      nU" SS[        S5      445      nU" SS[        S5      445      nU" SS5      n[        R                  " 5       nUR	                  US5        UR                  U5      S:X  d   e[        R                  " [        [        R                  " [        U5      5      S9   UR                  U5        S S S 5        g ! , (       d  f       g = f)	Nr  r   yr)   r+   r   r(   r-   )r   r   r   rD   r0   r1   r2   r3   r4   rg   rh   r  )r7   r  r   r   r  r;   s         r   test_nan_in_nested_namedtuple;TestPyObjectHashTableWithNans.test_nan_in_nested_namedtuple  s    sS#J'Qu()Qu()!Q$$&tR ~~d#r)))]]8299T%[+ABNN5! CBBs   6C
Cr   N)r   r   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   [        SSS/5      n U " [        S5      [        S5      [        S5      45      nU " [        S5      [        S5      [        S5      45      n[        R                  " U5      [        R                  " U5      :X  d   e[        R                  " X5      (       d   eg )Nr  r   r  r   )r   r   r   r  r  r  r  r  s      r   $test_hash_equal_namedtuple_with_nansr!    s    3c
#A	%,uuU|45A	%,uuU|45A>>!q 1111%%%%r   c                      [        SSS/5      n U " SS5      nSn[        R                  " U5      [        R                  " U5      :X  d   e[        R                  " X5      (       d   eg )Nr  r   r  r)   r+   rC   )r)   r#  )r   r   r  r  r   s      r   $test_hash_equal_namedtuple_and_tupler$    sY    3c
#A	!VAA>>!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+   rv   r+   r)   rv   r~   )r   r)   rv   r)   r   rv   r)   r+   )r   rM   rN   r   rQ   rR   rS   get_labels_groupbyr   rn   ro   )rV   r;   rY   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   )rN   rO   rP   str_object_r   r   r   r_   r!   r   )rW   rX   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_StringHashTabler0    sS    		 ""$)+,,.)+q000 
!	 	 s   AA
A+rW   r)   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   )	rN   rO   rP   r,  r-  r   r   r   r_   )rW   rX   r   r   r   r   s         r   $test_no_reallocation_StringHashTabler2    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   r0   r/   r1   r6   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   r~   r)   )rN   fullr   r_   r/   r1   )r7   r8   r9   rW   r;   rX   s         r   r`   (TestHashTableWithNans.test_map_locations0  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  r~   r)   )rN   r8  r   r   ry   isnanr/   )r7   r8   r9   rW   r;   rX   r   s          r   r   !TestHashTableWithNans.test_unique8  s^    wwq"&&.d#vvbhhv&''CK1,<<<,<r   r   N)r   r   r   r   r<   r`   r   r   r   r   r   r4  r4    s    +/=r   r4  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   r~   r)   	r   rD   rN   r   rU   r   r-  r   r/   r;   rZ   rX   r   s       r   "test_unique_for_nan_objects_floatsrA  @  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         ?r~   r)   )
r   rD   rN   r   rU   r   r   r-  r   r/   r@  s       r   #test_unique_for_nan_objects_complexrD  G  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>  rC  r   r~   r+   r?  r@  s       r   !test_unique_for_nan_objects_tuplerF  N  sv      "E88	
59=9aeElC()9==RZZD \\$Fv;! >s   B
r9   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)TestHelpFunctionsiW  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)rN   rO   rP   rf   rR   rS   r   value_countrn   ro   sortry   )	r7   r9   rV   rW   rq   valuesrX   counts_s	            r   test_value_count"TestHelpFunctions.test_value_countk  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&   r~   )r&   Tr   F)ri   r+   )
rN   r-  r2   rE   r   zerosbool_r   rK  r/   )r7   r9   rM  ri   rX   rN  
na_counters          r   test_value_count_mask'TestHelpFunctions.test_value_count_maskt  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&      rC   rv   r^   Fr)   )
rN   r   rP   rR   rS   r   rK  rn   ro   ry   )r7   r9   rV   rM  rX   rN  rO  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 )Nru   r&   r~   F)rN   rf   rO   rP   rR   rS   r   
duplicated	ones_likerT  rn   ro   )r7   r9   rV   rW   rM  rp   rq   s          r   test_duplicated_first'TestHelpFunctions.test_duplicated_first  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   r~   )rN   rO   rP   rR   rS   r   ismemberr_  rT  rn   ro   )r7   r9   rV   rW   r'  rM  rp   rq   s           r   test_ismember_yes#TestHelpFunctions.test_ismember_yes  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   r~   )	rN   rO   rP   r   rd  
zeros_likerT  rn   ro   )r7   r9   rW   r'  rM  rp   rq   s          r   test_ismember_no"TestHelpFunctions.test_ismember_no  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)
rN   rw   rx   rf   rO   rP   rR   rS   r   mode)r7   r9   rV   rW   rM  rp   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 )NrY  Fr   )	rN   r   rP   rR   rS   r   rn  rn   ro   )r7   r9   rV   rM  rX   s        r   test_mode_stable"TestHelpFunctions.test_mode_stable  sI    1299%@!)wwvu%a(
##D1r   r   N)r   r   r   r   rP  rV  r[  r`  re  rj  ro  rr  r   r   r   r   rH  rH  W  s*    (#	#666	2r   rH  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+   r~   Fr   )rH   rB   rN   r   NaTr   r-  r   rn  r   r/   )nullsrM  modess      r   test_modes_with_nansrx    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)   rC   r~   )r   r)   r&   )	rN   r   r   rR   rS   r   unique_label_indicesrn   ro   )rV   rX   rp   rq   s       r   test_unique_label_indices_intpr{    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_dtyperv   r   )rN   randomdefault_rngintegersrP   r   r   rz  r   rn   ro   choicer/   )r  leftrights      r   test_unique_label_indicesr    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 )Nr~   Tr   Fr)   rC   )rN   r   r   r   rK  r/   ry   r;  )r7   r9   rM  rX   rN  rO  s         r   rP  *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 )Nr~   )FTT)rN   r   r   r   r^  rn   ro   )r7   r9   rM  rp   rq   s        r   r`  /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 )Nr~   )TTTrN   r   r   r   rd  rT  rn   ro   r7   r9   r'  rM  rp   rq   s         r   re  +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 )Nr~   r)   )FFFr  r  s         r   rj  *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(   r~   Tr   F)rN   r   r   r   rn  r;  )r7   r9   rM  s      r   ro  #TestHelpFunctionsWithNans.test_mode  sj    2rvvrvvrvv6eDwwvt$Q'2---xx.q12222r   r   N)
r   r   r   r   rP  r`  re  rj  ro  r   r   r   r   r  r    s    6663r   r  c                     [         R                  " S[        S9n S[        S5      4S/U S S & S[        S5      4/n[	        X5      n[         R
                  " SS/[         R                  S9n[        R                  " X#5        g )Nr+   r~   r  r   )r  r)   TF)	rN   emptyr   r   r   r   rT  rn   ro   rM  compsrp   rq   s       r   test_ismember_tuple_with_nansr    sj    XXav&FuU|$h/F1I5< !E& FxxuRXX6H1r   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      @        rc   r~   )FTTT)
listrU   r   rN   r   r   asarrayrT  rn   ro   r  s       r   +test_float_complex_int_are_equal_as_objectsr  	  sX    $FsE"((60"**U2CDFxx1BH1r   )Lcollectionsr   collections.abcr   
contextlibr   rg   r   r   numpyrN   r2   pandas._libsr   r   pandasrH   pandas._testing_testingrn   pandas.core.algorithmsr   r   r!   r   r   rD   r-  Complex128HashTable
complex128rM   rQ   r   r   r   r   Complex64HashTable	complex64r   r   UInt32HashTabler   Float32HashTablefloat32Int16HashTableint16UInt16HashTableuint16Int8HashTablerw   UInt8HashTablerx   IntpHashTabler   r#   r   r   r  r!  r$  r*  r.  r0  rU   r2  r4  rA  rD  rF  rH  rx  r{  r  r  r  r  r   r   r   <module>r     so   " % % 	     (   ' y)9:  0 			rzz*			/			BHH%			RYY'			bjj)			-			BHH%			RYY'			bjj)			BHH%			RYY'			277#			BHH%			277#&PG PG'&PGfu' u'pK" K"\&&&9
11 eAsA./C 0C 			bjj)			bjj)			/			-	= ==@ 





		





		


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







	 3  3 3F22r   