
    shx8                         S SK rS SKrS SKrS SKJrJr  S SKJ	r	J
r
  S rS rS rS rS rS	 rS
 r " S S\
5      r " S S\\	5      r " S S\\	5      rg)    N)jittyped)TestCaseMemoryLeakMixinc                 .    [         R                  " U 5      $ N)hqheapify)xs    j/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_heapq.pyr
   r
   
   s    ::a=    c                 .    [         R                  " U 5      $ r   )r	   heappop)heaps    r   r   r      s    ::dr   c                 .    [         R                  " X5      $ r   )r	   heappushr   items     r   r   r      s    ;;t""r   c                 .    [         R                  " X5      $ r   )r	   heappushpopr   s     r   r   r          >>$%%r   c                 .    [         R                  " X5      $ r   )r	   heapreplacer   s     r   r   r      r   r   c                 .    [         R                  " X5      $ r   )r	   	nsmallestniterables     r   r   r      s    <<$$r   c                 .    [         R                  " X5      $ r   )r	   nlargestr   s     r   r    r    "   s    ;;q##r   c                      ^  \ rS rSrU 4S j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S rS rS rS rS rS rS rS rS rS rS rSrU =r$ )
_TestHeapq&   c                 r   > [         [        U ]  5         [        R                  R                  S5      U l        g )N*   )superr"   setUpnprandomRandomStaternd)self	__class__s    r   r'   _TestHeapq.setUp(   s&    j$%'99((,r   c                    [         n[        SS9" U5      n/ SQnU R                  U5      nU" U5        U" U5        U R                  U[	        U5      5        SSS[
        R                  [
        R                  * [
        R                  /n[        R                  " US5       HJ  n[	        U5      nU R                  U5      nU" U5        U" U5        U R                  U[	        U5      5        ML     [        [        U5      5       HD  nXW   /nU R                  U5      nU" U5        U" U5        U R                  U[	        U5      5        MF     / SQnU R                  U5      nU" U5        U" U5        U R                  U[	        U5      5        g )	NTnopython
            	               r   A`"	@g      $g      @r:   )r4   !   )r3      )r8      )r
   r   listimplassertPreciseEquallistr(   naninf	itertoolscombinations_with_replacementrangelen)r,   pyfunccfuncabelement_poolr   is           r   test_heapify_basic_sanity$_TestHeapq.test_heapify_basic_sanity,   sG   T"6**MM!q	a47+ uc266BFF7BFFC 88qIAQAa A1I!H##AtAw/ J s<()A!Aa A1I!H##AtAw/ * (MM!q	a47+r   c                 z    [        U5       H,  u  p#U(       d  M  US-
  S-	  nU R                  X   U:*  5        M.     g )Nr3   )	enumerate
assertTrue)r,   r   posr   	parentposs        r   check_invariant_TestHeapq.check_invariantS   s7    "4ICs 1WN	4 78 )r   c                    [         n[        SS9" U5      n[        n[        SS9" U5      nU R                  S/5      nU R                  S/5      nU R	                  U5        [        S5       HW  nU R                  R                  S5      R                  S5      nUR                  U5        U" XX5        U R	                  U5        MY     / n	U(       a3  U" U5      nU R	                  U5        U	R                  U5        U(       a  M3  US S  n
U
R                  5         U R                  [        U
5      U	5        U R	                  U	5        g )NTr0            r3   r   )r   r   r   rA   rW   rH   r+   randnr   appendsortrB   rC   )r,   pyfunc_heappushcfunc_heappushpyfunc_heappopcfunc_heappopr   datarO   r   resultsdata_sorteds              r   test_push_pop_TestHeapq.test_push_popY   s    #d+O< T*>:}}dV$}}dV$T"sA88>>!$))!,DKK4&  &	 
  &D  &NN4  d 1g[ 17;W%r   c                     [         n[        SS9" U5      n[        [        SS5      5      S/-    HF  nU R	                  U R
                  R                  U5      5      nU" U5        U R                  U5        MH     g )NTr0   r3      i N  )r
   r   rC   rH   rA   r+   random_samplerW   )r,   rJ   rK   sizer   s        r   test_heapify_TestHeapq.test_heapifyt   sf     T"6*q"&%0D==!7!7!=>D$K  & 1r   c                    [         n[        SS9" U5      nU R                  5         U R                  5        nU" S5        S S S 5        SnU R	                  U[        WR                  5      5        U R                  5        nU" U R                  SS/5      5        S S S 5        SnU R	                  U[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NG= f)NTr0   r3   r5   r9   heap argument must be a listy      ?      ?y       @      z>'<' not supported between instances of 'complex' and 'complex')r
   r   disable_leak_checkassertTypingErrorassertInstr	exceptionrA   r,   rJ   rK   emsgs        r   test_heapify_exceptions"_TestHeapq.test_heapify_exceptions   s    T"6* 	!##%) & -c3q{{+,##%$-- 012 &,c3q{{+, &% &%s   	C>C
C
C'c                 6   [         n[        SS9" U5      nS nU" 5        Hv  n[        U5        U R                  U5      n[	        [        U5      5       H?  nU" U5      nU" U5      nU R                  U[        U5      5        U R                  Xx5        MA     Mx     g )NTr0   c               3      #    / SQv   / SQv   [         R                  " S[         R                  S9R                  5       v   [         R                  " SSS5      R                  5       v   g 7f)Nr2   )r=   )r3   o   )r8   i  r5   )
fill_valued   )r(   fullrD   tolistlinspace r   r   a_variations:_TestHeapq.test_heappop_basic_sanity.<locals>.a_variations   sK     0000''!/6688++c2s+2244s   A)A+)r   r   r
   rA   rH   rI   rB   rC   )	r,   rJ   rK   r   rL   rM   rO   val_pyval_cs	            r   test_heappop_basic_sanity$_TestHeapq.test_heappop_basic_sanity   s    T"6*	5 AAJa A3q6]a''473''6	 #	  r   c                     [         n[        SS9" U5      nU R                  5         U R                  5        nU" S5        S S S 5        SnU R	                  U[        WR                  5      5        g ! , (       d  f       N6= f)NTr0   ro   rp   )r   r   rq   rr   rs   rt   ru   rv   s        r   test_heappop_exceptions"_TestHeapq.test_heappop_exceptions   sf    T"6* 	!##%) & -c3q{{+,	 &%s   	A//
A=c              #     #    U R                  / SQ5      v   [        R                  " SSS5      nU R                  U5      v   U R                  US S S2   5      v   U R                  R	                  U5        U R                  U5      v   g 7f)Nr2   r   r8      )rA   r(   r   r+   shuffle)r,   rL   s     r   	iterables_TestHeapq.iterables   sn     mm:;;KKQ#mmAmmAddG$$mmAs   B	Bc                 ~   [         n[        SS9" U5      n[        n[        SS9" U5      nU R                  5        Hz  n[	        U5      nU R                  UR                  S5      /5      nU H  nU" Xx5        M     [        [        U5      5       V	s/ s H
  o" U5      PM     n
n	U R                  Xj5        M|     g s  sn	f )NTr0   r   )
r   r   r   r   sortedrA   poprH   rI   rB   )r,   pyfunc_push
cfunc_push
pyfunc_pop	cfunc_popr   expectedr   value_gots              r   test_heappush_basic_TestHeapq.test_heappush_basic   s    $'4

&z2	(Hh'H==(,,q/!23D!4' " -2#d),<=,<q9T?,<C=##H2 ) >s   B:c                    [         n[        SS9" U5      nU R                  5         U R                  5        nU" SS5        S S S 5        SnU R	                  U[        WR                  5      5        U R                  5        nU" U R                  / SQ5      S5        S S S 5        SnU R	                  U[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NG= f)NTr0   ro   r:   rp   g      @'heap type must be the same as item type)r   r   rq   rr   rs   rt   ru   rA   rv   s        r   test_heappush_exceptions#_TestHeapq.test_heappush_exceptions   s    T"6* 	!##%)Q & -c3q{{+,##%$--	*C0 & 8c3q{{+, &% &%   
C
?C

C
C)c                 .   [         n[        SS9" U5      nU R                  5        HE  n[        S[	        U5      S-   5       H&  nU" SU5      nU" SU5      nU R                  XV5        M(     MG     U" SU R                  / SQ5      5      nU R                  U/ 5        U" SU R                  / SQ5      5      nU R                  US/5        U" SS	5      nU R                  USS/5        U" S[        R                  " S
5      5      nU R                  U/ SQ5        g )NTr0   r   r4   r3   Fr4   r8   r3   r8   r:   r5   r9   r4   r8   r3   r:   )r   r3   r8   )	r   r   r   rH   rI   rB   rA   r(   aranger,   rJ   rK   r   r   r   r   outs           r   test_nsmallest_basic_TestHeapq.test_nsmallest_basic   s    T"6*(H2s8}q01!!X.Ax(''6 2 ) E4==34R(D$--	23aS) A)*aV,Aryy|$Y/r   c                 .   [         n[        SS9" U5      nU R                  5        HE  n[        S[	        U5      S-   5       H&  nU" SU5      nU" SU5      nU R                  XV5        M(     MG     U" SU R                  / SQ5      5      nU R                  U/ 5        U" SU R                  / SQ5      5      nU R                  US/5        U" SS	5      nU R                  US
S/5        U" S[        R                  " S
5      5      nU R                  U/ SQ5        g )NTr0   r   r4   r3   Fr   r8   r   r:   r5   )r5   r9   r4   )	r    r   r   rH   rI   rB   rA   r(   r   r   s           r   test_nlargest_basic_TestHeapq.test_nlargest_basic   s    T"6*(H2s8}q01!!X.Ax(''6 2 ) E4==34R(D$--	23aS) A)*aV,Aryy|$Y/r   c                    U R                  5         U R                  5        nU" SU R                  / SQ5      5        S S S 5        SnU R                  U[	        WR
                  5      5        U R                  5        nU" SS5        S S S 5        SnU R                  U[	        UR
                  5      5        g ! , (       d  f       N= f! , (       d  f       NG= f)Ng@r   z%First argument 'n' must be an integerr8   r   z+Second argument 'iterable' must be iterable)rq   rr   rA   rs   rt   ru   )r,   rK   rw   rx   s       r   _assert_typing_error_TestHeapq._assert_typing_error  s     	!##%#t}}Y/0 & 6c3q{{+,##%!SM & <c3q{{+, &% &%s   B5;
C5
C
Cc                 P    [         n[        SS9" U5      nU R                  U5        g NTr0   )r   r   r   r,   rJ   rK   s      r   test_nsmallest_exceptions$_TestHeapq.test_nsmallest_exceptions!  s$    T"6*!!%(r   c                 P    [         n[        SS9" U5      nU R                  U5        g r   )r    r   r   r   s      r   test_nlargest_exceptions#_TestHeapq.test_nlargest_exceptions&  s$    T"6*!!%(r   c                 T   [         n[        SS9" U5      n/ SQn[        U5        U R                  U5      nS H.  nU" X55        U" XE5        U R	                  U[        U5      5        M0     [        R                  " SSS5      n[        R                  US'   [        R                  US	'   UR                  5       n[        U5        U R                  U5      nS
S[        R                  * [        R                  4 H.  nU" X55        U" XE5        U R	                  U[        U5      5        M0     g )NTr0   r2   )r9            r9   r   g      r<   )r   r   r
   rA   rB   rC   r(   r   rD   rE   r   )r,   rJ   rK   rL   rM   r   s         r   test_heapreplace_basic!_TestHeapq.test_heapreplace_basic+  s    T"6**
MM!D1O!N##AtAw/  
 KKB#vv!"HHJ
MM!5266'2662D1O!N##AtAw/ 3r   c                    [         n[        SS9" U5      nU R                  5         U R                  5        nU" SS5        S S S 5        SnU R	                  U[        WR                  5      5        U R                  5        nU" U R                  / SQ5      S5        S S S 5        SnU R	                  U[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NG= f)NTr0   ro   r   rp   rZ   r   )r   r   rq   rr   rs   rt   ru   rA   rv   s        r   test_heapreplace_exceptions&_TestHeapq.test_heapreplace_exceptionsF  s    T"6* 	!##%)R  & -c3q{{+,##%$--	*D1 & 8c3q{{+, &% &%r   c              #   L   #      [        U5      v   M  ! [         a     g f = f7fr   )r   
IndexError)r,   r   s     r   heapiter_TestHeapq.heapiterY  s-     	dm#  		s   $ 
!$!$c           	         [        SS9" [        5      n[        SS9" [        5      nU R                  R	                  [        S5      S5      R                  5       nU R                  US S 5      nU" U5        USS   H  nXTS   :  d  M  U" XE5        M     U R                  [        U R                  [        U5      5      5      [        U5      SS  5        g )NTr0       
   r   r   )r   r
   r   r+   choicerH   r   rA   rB   rC   r   r   )r,   cfunc_heapifycfunc_heapreplacerc   r   r   s         r   
test_nbest_TestHeapq.test_nbest`  s     T*73.{;xxuT{D188:}}T#2Y'dID1g~!$-  	T]]4:%> ? &tST 2	4r   c                 8   [        SS9" [        5      n[        SS9" [        5      n[        SS9" [        5      n[	        S5       H  n[
        R                  " S[
        R                  S9nU R                  U R                  R                  US5      5      nUS-  (       a  US S  nU" U5        O)U R                  US   /5      nUSS   H  nU" Xx5        M     [	        S5       V	s/ s H
  o" U5      PM     n
n	U R                  U
[        U5      5        M     g s  sn	f )	NTr0   r   r5   dtyper   r3   r   )r   r
   r   r   rH   r(   r   float64rA   r+   r   rB   r   )r,   r   r`   rb   trialvaluesrc   r   r   r   heap_sorteds              r   test_heapsort_TestHeapq.test_heapsortq  s     T*73d+H5T*733ZE YYq

3F==!<=DqyAwd#}}d1gY/ HD"4. %8=b	B	1=.	KB##K>   Cs   $Dc           	         [         n[        SS9" U5      nU R                  U R                  R	                  [        S5      S5      5      nS H0  nU R                  [        U" XC5      5      [        U5      S U 5        M2     g )NTr0   r   r   	r   r3   r8   r   r   i  i  r   iL  )	r   r   rA   r+   r   rH   rB   rC   r   r,   rJ   rK   rc   r   s        r   test_nsmallest_TestHeapq.test_nsmallest  sg     T"6*}}TXX__U4[$?@9A##Dq$8&,r:JK :r   c           	          [         n[        SS9" U5      nU R                  U R                  R	                  [        S5      S5      5      nS H/  nU R                  [        U" XC5      5      [        USS9S U 5        M1     g )NTr0   r   r   r   )reverse)	r    r   rA   r+   r   rH   rB   rC   r   r   s        r   test_nlargest_TestHeapq.test_nlargest  sn     T"6*}}TXX__U4[$?@9A##Dq$8$*4$>r$BD :r   c           	         [         n[        SS9" U5      n[        n[        SS9" U5      n[        R                  " S[        R
                  S9nU R                  U R                  R                  US5      5      nUS S nU" U5        USS   H  nU" Xx5        M     U R                  [        U R                  [        U5      5      5      [        U5      SS  5        g )NTr0   r   r   r   r   r   )r   r   r
   r(   r   r   rA   r+   r   rB   rC   r   r   )	r,   pyfunc_heappushpopcfunc_heappushpoppyfunc_heapifyr   r   rc   r   r   s	            r   test_nbest_with_pushpop"_TestHeapq.test_nbest_with_pushpop  s     )./AB T*>: 4rzz2}}TXX__VT:;CRydIDd)  	T]]4:%> ? &tST 2	4r   c                    [         n[        SS9" U5      nU R                  S/5      nU" US5      nU R                  [	        U5      U4S/S45        U R                  [        US   5      [        5        U R                  [        U5      [        5        U R                  S/5      nU" US5      nU R                  [	        U5      U4S/S45        U R                  S/5      nU" US5      nU R                  [	        U5      U4S/S45        g )	NTr0   g      ?g      $@r   r   r7   r?   )r   r   rA   rB   rC   typefloat)r,   rJ   rK   hr   s        r   test_heappushpop_TestHeapq.test_heappushpop  s     T"6*MM3% !TNa!vsm<QqT
E2Q/MM2$!QKa!tQi8MM2$!RLa!tRj9r   c                    [         n[        SS9" U5      nU R                  5         U R                  5        nU" SS5        S S S 5        SnU R	                  U[        WR                  5      5        U R                  5        nU" U R                  / SQ5      S5        S S S 5        SnU R	                  U[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NG= f)NTr0   ro   r   rp   Fr   )r   r   rq   rr   rs   rt   ru   rA   rv   s        r   test_heappushpop_exceptions&_TestHeapq.test_heappushpop_exceptions  s    T"6* 	!##%)R  & -c3q{{+,##%$--	*E2 & 8c3q{{+, &% &%r   )r+   ) __name__
__module____qualname____firstlineno__r'   rP   rW   rf   rl   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classcell__)r-   s   @r   r"   r"   &   s    -%,N9&6	'-(7(-3"-&0000-")
)
06-&4"?,	L
D4*:(- -r   r"   c                       \ rS rSrSr\rSrg)TestHeapqReflectedListi  zTest heapq with reflected listsr   N)r   r   r   r   __doc__rC   rA   r   r   r   r   r   r     s
    )Hr   r   c                   0    \ rS rSrSr\R                  rSrg)TestHeapqTypedListi  zTest heapq with typed listsr   N)	r   r   r   r   r   r   ListrA   r   r   r   r   r   r     s    %zzHr   r   )heapqr	   rF   numpyr(   numbar   r   numba.tests.supportr   r   r
   r   r   r   r   r   r    r"   r   r   r   r   r   <module>r     sb        9#&&%$r- r-jZ X r   