
    J/Phx8                         d dl Zd dlZd dlZd dlmZmZ d dlm	Z	m
Z
 d Zd Zd Zd Zd Zd	 Zd
 Z G d de
          Z G d dee	          Z G d dee	          ZdS )    N)jittyped)TestCaseMemoryLeakMixinc                 *    t          j        |           S N)hqheapify)xs    V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_heapq.pyr
   r
   
   s    :a==    c                 *    t          j        |           S r   )r	   heappop)heaps    r   r   r      s    :dr   c                 ,    t          j        | |          S r   )r	   heappushr   items     r   r   r      s    ;tT"""r   c                 ,    t          j        | |          S r   )r	   heappushpopr   s     r   r   r          >$%%%r   c                 ,    t          j        | |          S r   )r	   heapreplacer   s     r   r   r      r   r   c                 ,    t          j        | |          S r   )r	   	nsmallestniterables     r   r   r      s    <8$$$r   c                 ,    t          j        | |          S r   )r	   nlargestr   s     r   r    r    "   s    ;q(###r   c                        e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z xZS )
_TestHeapqc                     t          t          |                                            t          j                            d          | _        d S )N*   )superr"   setUpnprandomRandomStaternd)self	__class__s    r   r&   z_TestHeapq.setUp(   s:    j$%%'''9((,,r   c                    t           } t          d          |          }g d}|                     |          } ||            ||           |                     |t	          |                     dddt
          j        t
          j         t
          j        g}t          j	        |d          D ]_}t	          |          }|                     |          } ||            ||           |                     |t	          |                     `t          t          |                    D ]Y}||         g}|                     |          } ||            ||           |                     |t	          |                     Zg d}|                     |          } ||            ||           |                     |t	          |                     d S )	NTnopython
            	               r   A`"	@g      $g      @r8   )r2   !   )r1      )r6      )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_sanityz$_TestHeapq.test_heapify_basic_sanity,   s   "T"""6*****MM!q			a477+++ uc26BF7BFC 8qII 	0 	0AQAa  AF1IIIE!HHH##AtAww//// s<(()) 	0 	0Aa!Aa  AF1IIIE!HHH##AtAww//// (''MM!q			a477+++++r   c                     t          |          D ].\  }}|r'|dz
  dz	  }|                     ||         |k               /d S )Nr1   )	enumerate
assertTrue)r+   r   posr   	parentposs        r   check_invariantz_TestHeapq.check_invariantS   sV    "4 	9 	9IC 9 1WN	Y4 7888	9 	9r   c                    t           } t          d          |          }t          } t          d          |          }|                     dg          }|                     dg          }|                     |           t          d          D ]e}| j                            d                              d          }|	                    |            |||           |                     |           fg }	|r7 ||          }|                     |           |		                    |           |7|d d          }
|

                                 |                     t          |
          |	           |                     |	           d S )NTr.            r1   r   )r   r   r   r?   rT   rF   r*   randnr   appendsortr@   rA   )r+   pyfunc_heappushcfunc_heappushpyfunc_heappopcfunc_heappopr   datarM   r   resultsdata_sorteds              r   test_push_popz_TestHeapq.test_push_popY   s    #+d+++O<< *T***>::}}dV$$}}dV$$T"""s 	' 	'A8>>!$$))!,,DKKN4&&&  &&&& 	! =&&D  &&&NN4     	! 111g[ 1 17;;;W%%%%%r   c                 (   t           } t          d          |          }t          t          dd                    dgz   D ]O}|                     | j                            |                    } ||           |                     |           Pd S )NTr.   r1      i N  )r
   r   rA   rF   r?   r*   random_samplerT   )r+   rH   rI   sizer   s        r   test_heapifyz_TestHeapq.test_heapifyt   s     "T"""6**q"&&%0 	' 	'D==!7!7!=!=>>DE$KKK  &&&&	' 	'r   c                    t           } t          d          |          }|                                  |                                 5 } |d           d d d            n# 1 swxY w Y   d}|                     |t          |j                             |                                 5 } ||                     ddg                     d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )NTr.   r1   r3   r7   heap argument must be a listy      ?      ?y       @      z>'<' not supported between instances of 'complex' and 'complex')r
   r   disable_leak_checkassertTypingErrorassertInstr	exceptionr?   r+   rH   rI   emsgs        r   test_heapify_exceptionsz"_TestHeapq.test_heapify_exceptions   s~   "T"""6** 	!!!##%% 	E)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 -c3q{++,,,##%% 	3E$-- 011222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3,c3q{++,,,,,s$   	A!!A%(A%*!CCCc                    t           } t          d          |          }d } |            D ]}t          |           |                     |          }t	          t          |                    D ]Q} ||          } ||          }|                     |t          |                     |                     ||           Rd S )NTr.   c               3      K   g dV  g dV  t          j        dt           j                                                  V  t          j        ddd                                          V  d S )Nr0   )r;   )r1   o   )r6   i  r3   )
fill_valued   )r'   fullrB   tolistlinspace r   r   a_variationsz:_TestHeapq.test_heappop_basic_sanity.<locals>.a_variations   s      000000000000'!///6688888+c2s++224444444r   )r   r   r
   r?   rF   rG   r@   rA   )	r+   rH   rI   r   rJ   rK   rM   val_pyval_cs	            r   test_heappop_basic_sanityz$_TestHeapq.test_heappop_basic_sanity   s    "T"""6**	5 	5 	5  	7 	7AAJJJa  A3q66]] 7 7a''477333''6666	7		7 	7r   c                 0   t           } t          d          |          }|                                  |                                 5 } |d           d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )NTr.   ri   rj   )r   r   rk   rl   rm   rn   ro   rp   s        r   test_heappop_exceptionsz"_TestHeapq.test_heappop_exceptions   s    "T"""6** 	!!!##%% 	E)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 -c3q{++,,,,,s   	A!!A%(A%c              #   8  K   |                      g d          V  t          j        ddd          }|                      |          V  |                      |d d d                   V  | j                            |           |                      |          V  d S )Nr0   rx   r6      )r?   r'   r}   r*   shuffle)r+   rJ   s     r   	iterablesz_TestHeapq.iterables   s      mm:::;;;;;KQ##mmAmmAdddG$$$$$mmAr   c                   	 t           } t          d          |          }t          } t          d          |          |                                 D ]}t	          |          }|                     |                    d          g          	|D ]} |	|           	fdt          t          	                    D             }| 	                    ||           d S )NTr.   r   c                 &    g | ]}           S r~   r~   ).0_	cfunc_popr   s     r   
<listcomp>z2_TestHeapq.test_heappush_basic.<locals>.<listcomp>   s!    ===q99T??===r   )
r   r   r   r   sortedr?   poprF   rG   r@   )
r+   pyfunc_push
cfunc_push
pyfunc_popr   expectedvaluegotr   r   s
           @@r   test_heappush_basicz_TestHeapq.test_heappush_basic   s    'S$'''44

&C&&&z22	(( 	3 	3Hh''H==(,,q//!233D! ( (
4''''=====E#d)),<,<===C##Hc2222	3 	3r   c                     t           } t          d          |          }|                                  |                                 5 } |dd           d d d            n# 1 swxY w Y   d}|                     |t          |j                             |                                 5 } ||                     g d          d           d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )NTr.   ri   r8   rj   g      @'heap type must be the same as item type)r   r   rk   rl   rm   rn   ro   r?   rp   s        r   test_heappush_exceptionsz#_TestHeapq.test_heappush_exceptions   s   "T"""6** 	!!!##%% 	 E)Q	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  -c3q{++,,,##%% 	1E$--			**C000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 8c3q{++,,,,,$   	A""A&)A&+"CC Cc                    t           } t          d          |          }|                                 D ]S}t          dt	          |          dz             D ]0} |d|          } |d|          }|                     ||           1T |d|                     g d                    }|                     |g             |d|                     g d                    }|                     |dg            |dd	          }|                     |ddg            |dt          j        d
                    }|                     |g d           d S )NTr.   ry   r2   r1   Fr2   r6   r1   r6   r8   r3   r7   r2   r6   r1   r8   )r   r1   r6   )	r   r   r   rF   rG   r@   r?   r'   aranger+   rH   rI   r   r   r   r   outs           r   test_nsmallest_basicz_TestHeapq.test_nsmallest_basic   sw   "T"""6**(( 	7 	7H2s8}}q011 7 7!6!X..eAx((''#66667 eE4==3344R(((eD$--			2233aS))) eA)**aV,,,eAry||$$YYY/////r   c                    t           } t          d          |          }|                                 D ]S}t          dt	          |          dz             D ]0} |d|          } |d|          }|                     ||           1T |d|                     g d                    }|                     |g             |d|                     g d                    }|                     |dg            |dd	          }|                     |d
dg            |dt          j        d
                    }|                     |g d           d S )NTr.   ry   r2   r1   Fr   r6   r   r8   r3   )r3   r7   r2   )	r    r   r   rF   rG   r@   r?   r'   r   r   s           r   test_nlargest_basicz_TestHeapq.test_nlargest_basic   sw   "T"""6**(( 	7 	7H2s8}}q011 7 7!6!X..eAx((''#66667 eE4==3344R(((eD$--			2233aS))) eA)**aV,,,eAry||$$YYY/////r   c                    |                                   |                                 5 } |d|                     g d                     d d d            n# 1 swxY w Y   d}|                     |t	          |j                             |                                 5 } |dd           d d d            n# 1 swxY w Y   d}|                     |t	          |j                             d S )Ng@r   z%First argument 'n' must be an integerr6   rz   z+Second argument 'iterable' must be iterable)rk   rl   r?   rm   rn   ro   )r+   rI   rq   rr   s       r   _assert_typing_errorz_TestHeapq._assert_typing_error  s_    	!!!##%% 	1E#t}}YYY//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 6c3q{++,,,##%% 	E!SMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 <c3q{++,,,,,s#   "AAA B99B= B=c                 p    t           } t          d          |          }|                     |           d S NTr.   )r   r   r   r+   rH   rI   s      r   test_nsmallest_exceptionsz$_TestHeapq.test_nsmallest_exceptions!  s;    "T"""6**!!%(((((r   c                 p    t           } t          d          |          }|                     |           d S r   )r    r   r   r   s      r   test_nlargest_exceptionsz#_TestHeapq.test_nlargest_exceptions&  s;    "T"""6**!!%(((((r   c                    t           } t          d          |          }g d}t          |           |                     |          }dD ]=} |||            |||           |                     |t          |                     >t          j        ddd          }t          j        |d<   t          j	        |d	<   |
                                }t          |           |                     |          }d
dt          j	         t          j	        fD ]=} |||            |||           |                     |t          |                     >d S )NTr.   r0   )r7            r7   r   g      r:   )r   r   r
   r?   r@   rA   r'   r}   rB   rC   r|   )r+   rH   rI   rJ   rK   r   s         r   test_heapreplace_basicz!_TestHeapq.test_heapreplace_basic+  sK   "T"""6*****


MM! 	0 	0DF1dOOOE!TNNN##AtAww////KB##v!"HHJJ


MM!526'262 	0 	0DF1dOOOE!TNNN##AtAww////	0 	0r   c                     t           } t          d          |          }|                                  |                                 5 } |dd           d d d            n# 1 swxY w Y   d}|                     |t          |j                             |                                 5 } ||                     g d          d           d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )NTr.   ri   r   rj   rV   r   )r   r   rk   rl   rm   rn   ro   r?   rp   s        r   test_heapreplace_exceptionsz&_TestHeapq.test_heapreplace_exceptionsF  s   "T"""6** 	!!!##%% 	!E)R   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! -c3q{++,,,##%% 	2E$--			**D111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 8c3q{++,,,,,r   c              #   P   K   	 	 t          |          V  # t          $ r Y d S w xY wr   )r   
IndexError)r+   r   s     r   heapiterz_TestHeapq.heapiterY  sI      	$dmm###$ 	 	 	DD	s    
%%c           	      <    t          d          t                    } t          d          t                    }| j                            t          d          d                                          }|                     |d d                   } ||           |dd          D ]}||d         k    r |||           |                     t          | 
                    t          |                              t          |          dd                     d S )NTr.       
   r   rx   )r   r
   r   r*   choicerF   r|   r?   r@   rA   r   r   )r+   cfunc_heapifycfunc_heapreplacer_   r   r   s         r   
test_nbestz_TestHeapq.test_nbest`  s    +T***733.C...{;;xuT{{D1188::}}T#2#Y''dI 	. 	.Dd1g~~!!$---T]]4::%>%> ? ? &tSTT 2	4 	4 	4 	4 	4r   c                   	  t          d          t                    } t          d          t                    } t          d          t                    t	          d          D ]}t          j        dt
          j                  }|                     | j	        
                    |d                    }|dz  r|d d          	 |	           n5|                     |d         g          	|dd          D ]} |	|           	fd	t	          d          D             }|                     |t          |                     d S )
NTr.   rz   r3   dtyper   r1   r   c                 &    g | ]}           S r~   r~   )r   r   r^   r   s     r   r   z,_TestHeapq.test_heapsort.<locals>.<listcomp>  s#    BBB1==..BBBr   )r   r
   r   r   rF   r'   r   float64r?   r*   r   r@   r   )
r+   r   r\   trialvaluesr_   r   heap_sortedr^   r   s
           @@r   test_heapsortz_TestHeapq.test_heapsortq  s\    +T***733+d+++H55*T***7333ZZ 	? 	?E Yq
333F==!<!<==Dqy /AAAwd####}}d1gY// H / /D"N4....BBBBBb		BBBK##K>>>>	? 	?r   c           	      J   t           } t          d          |          }|                     | j                            t          d          d                    }dD ]D}|                     t           |||                    t          |          d |                    Ed S )NTr.   r   r   	r   r1   r6   r   rz   i  i  r   iL  )	r   r   r?   r*   r   rF   r@   rA   r   r+   rH   rI   r_   r   s        r   test_nsmallestz_TestHeapq.test_nsmallest  s     "T"""6**}}TX__U4[[$??@@9 	L 	LA##Dq$$8$8&,,rr:JKKKK	L 	Lr   c           	      N   t           } t          d          |          }|                     | j                            t          d          d                    }dD ]F}|                     t           |||                    t          |d          d |                    Gd S )NTr.   r   r   r   )reverse)	r    r   r?   r*   r   rF   r@   rA   r   r   s        r   test_nlargestz_TestHeapq.test_nlargest  s     "T"""6**}}TX__U4[[$??@@9 	D 	DA##Dq$$8$8$*4$>$>$>rr$BD D D D	D 	Dr   c           	      .   t           } t          d          |          }t          } t          d          |          }t          j        dt          j                  }|                     | j                            |d                    }|d d         } ||           |dd          D ]} |||           | 	                    t          |                     t          |                              t          |          dd                     d S )NTr.   r   r   r   r   rx   )r   r   r
   r'   r   r   r?   r*   r   r@   rA   r   r   )	r+   pyfunc_heappushpopcfunc_heappushpoppyfunc_heapifyr   r   r_   r   r   s	            r   test_nbest_with_pushpopz"_TestHeapq.test_nbest_with_pushpop  s    ).C.../ABB *T***>:: 4rz222}}TX__VT::;;CRCydI 	* 	*DdD))))T]]4::%>%> ? ? &tSTT 2	4 	4 	4 	4 	4r   c                    t           } t          d          |          }|                     dg          } ||d          }|                     t	          |          |fdgdf           |                     t          |d                   t                     |                     t          |          t                     |                     dg          } ||d          }|                     t	          |          |fdgdf           |                     dg          } ||d          }|                     t	          |          |fdgdf           d S )	NTr.   g      ?g      $@r   r   r5   r=   )r   r   r?   r@   rA   typefloat)r+   rH   rI   hr   s        r   test_heappushpopz_TestHeapq.test_heappushpop  s=    "T"""6**MM3%  E!TNNa!vsm<<<QqT

E222Q///MM2$E!QKKa!tQi888MM2$E!RLLa!tRj99999r   c                     t           } t          d          |          }|                                  |                                 5 } |dd           d d d            n# 1 swxY w Y   d}|                     |t          |j                             |                                 5 } ||                     g d          d           d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )NTr.   ri   r   rj   Fr   )r   r   rk   rl   rm   rn   ro   r?   rp   s        r   test_heappushpop_exceptionsz&_TestHeapq.test_heappushpop_exceptions  s   "T"""6** 	!!!##%% 	!E)R   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! -c3q{++,,,##%% 	3E$--			**E222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 8c3q{++,,,,,r   )__name__
__module____qualname__r&   rN   rT   rb   rg   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)r,   s   @r   r"   r"   &   s       - - - - -%, %, %,N9 9 9& & &6	' 	' 	'- - -(7 7 7(- - -  3 3 3"- - -&0 0 000 0 00- - -") ) )
) ) )
0 0 06- - -&  4 4 4"? ? ?,	L 	L 	L
D 
D 
D4 4 4*: : :(- - - - - - -r   r"   c                       e Zd ZdZeZdS )TestHeapqReflectedListzTest heapq with reflected listsN)r   r   r   __doc__rA   r?   r~   r   r   r   r     s        ))HHHr   r   c                        e Zd ZdZej        ZdS )TestHeapqTypedListzTest heapq with typed listsN)r   r   r   r   r   Listr?   r~   r   r   r   r     s        %%zHHHr   r   )heapqr	   rD   numpyr'   numbar   r   numba.tests.supportr   r   r
   r   r   r   r   r   r    r"   r   r   r~   r   r   <module>r      sW                       9 9 9 9 9 9 9 9    # # #& & && & &% % %$ $ $r- r- r- r- r- r- r- r-j    Z       X     r   