
    <eA                     
   d Z ddlZddlZddlZddlmZ ddlmZ ddlmZm	Z	 ddl
mZ  ej        ddg	          Z ej        ddg
          Zg dZ G d de          Zd Z G d d          Z G d dee          Z e	ed           G d dee                      Z G d d          Z G d d          Zd Z G d d          Z G d d          Z G d d           Z G d! d"          Z G d# d$          Z G d% d&          Z G d' d(          Zdd)lm Z  d* Z! G d+ d,          Z" G d- d.          Z# G d/ d0e#e          Z$ e	ed           G d1 d2e#e                      Z%e&d3k    r ej'                     dS dS )4zUnittests for heapq.    N)support)import_helper)TestCase
skipUnless)
itemgetterheapq_heapq)blocked)fresh)heapifyheappopheappushheappushpopheapreplace_heappop_max_heapreplace_max_heapify_maxc                   >    e Zd Zd Z eed          d             ZdS )TestModulesc                 v    t           D ]0}|                     t          t          |          j        d           1d S )Nr   )
func_namesassertEqualgetattrpy_heapq
__module__selffnames     &/usr/lib/python3.11/test/test_heapq.pytest_py_functionszTestModules.test_py_functions   sE     	K 	KEWXu55@'JJJJ	K 	K    requires _heapqc                 v    t           D ]0}|                     t          t          |          j        d           1d S )Nr	   )r   r   r   c_heapqr   r   s     r   test_c_functionszTestModules.test_c_functions   sE     	K 	KEWWe44?JJJJ	K 	Kr!   N)__name__r   __qualname__r    r   r$   r%    r!   r   r   r      sT        K K K Z*++K K ,+K K Kr!   r   c                      G d d          }|                     t          j        t           |                                 |S )Nc                       e Zd Zd ZdS )+load_tests.<locals>.HeapqMergeDocTestFinderc                 f    t          j                    }|                    t          j                  S N)doctestDocTestFinderfindr   merge)r   argskwargsdtfs       r   r0   z0load_tests.<locals>.HeapqMergeDocTestFinder.find(   s$    '))C88HN+++r!   N)r&   r   r'   r0   r(   r!   r   HeapqMergeDocTestFinderr+   '   s#        	, 	, 	, 	, 	,r!   r5   )test_finder)addTestsr.   DocTestSuiter   )loadertestsignorer5   s       r   
load_testsr<      so    , , , , , , , ,
 
NN7'4K4K4M4MO O O P P PLr!   c                   t    e 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S )TestHeapc                 <   g }g }|                      |           t          d          D ]Z}t          j                    }|                    |           | j                            ||           |                      |           [g }|rF| j                            |          }|                      |           |                    |           |F|d d          }|                                 |                     ||           |                      |           | 	                    t          | j        j        g            	 | 	                    t          | j        j        d d            | 	                    t          | j        j        d            d S # t          $ r Y d S w xY w)N   )check_invariantrangerandomappendmoduler   r   sortr   assertRaises	TypeErrorAttributeError)r   heapdataiitemresultsdata_sorteds          r   test_push_popzTestHeap.test_push_pop2   s   T"""s 	' 	'A=??DKKK  t,,,  &&&& 	!;&&t,,D  &&&NN4     	! 111gg...W%%%)T[%92>>>	i)=tTJJJi)<dCCCCC 	 	 	DD	s   >AF 
FFc                     t          |          D ].\  }}|r'|dz
  dz	  }|                     ||         |k               /d S N   )	enumerate
assertTrue)r   rJ   posrM   	parentposs        r   rA   zTestHeap.check_invariantN   sV    "4 	9 	9IC 9 UqL	Y4 7888	9 	9r!   c                 (   t          t          d                    dgz   D ]J}d t          |          D             }| j                            |           |                     |           K|                     t          | j        j        d            d S )N    N  c                 4    g | ]}t          j                     S r(   rC   ).0dummys     r   
<listcomp>z)TestHeap.test_heapify.<locals>.<listcomp>W   s    ===FMOO===r!   )listrB   rE   r   rA   rG   rH   )r   sizerJ   s      r   test_heapifyzTestHeap.test_heapifyU   s    rOOug- 	' 	'D==t===DK%%%  &&&&)T[%8$?????r!   c                 T   d t          d          D             }g }|D ]J}| j                            ||           t          |          dk    r| j                            |           K|                                 |                     |t          |          dd                     d S )Nc                 6    g | ]}t          j        d           S   rC   	randranger]   rL   s     r   r_   z-TestHeap.test_naive_nbest.<locals>.<listcomp>^   #    <<<1 &&<<<r!     
   )rB   rE   r   lenr   rF   r   sortedr   rK   rJ   rM   s       r   test_naive_nbestzTestHeap.test_naive_nbest]   s    <<d<<< 	* 	*DK  t,,,4yy2~~##D)))		vd||CDD122222r!   c              #   f   K   	 	 | j                             |          V  # t          $ r Y d S w xY wr-   )rE   r   
IndexErrorr   rJ   s     r   heapiterzTestHeap.heapiterg   sS      	0k))$/////0 	 	 	DD	s   " 
00c                 f   d t          d          D             }|d d         }| j                            |           |dd          D ])}||d         k    r| j                            ||           *|                     t          |                     |                    t          |          dd                     |                     t          | j        j        d            |                     t          | j        j        d d            |                     t          | j        j        g d            d S )Nc                 6    g | ]}t          j        d           S re   rg   ri   s     r   r_   z'TestHeap.test_nbest.<locals>.<listcomp>u   rj   r!   rk   rl   r   rm   )rB   rE   r   r   r   r`   ru   ro   rG   rH   rs   rp   s       r   
test_nbestzTestHeap.test_nbesto   s    =<d<<<CRCyD!!!I 	4 	4Dd1g~~''d333dmmD1122F4LL4FGGG)T[%<dCCC)T[%<dDIII*dk&=r4HHHHHr!   c                    d t          d          D             }|d d         }| j                            |           |dd          D ]}| j                            ||           |                     t          |                     |                    t          |          dd                     |                     | j                            g d          d           d S )Nc                 6    g | ]}t          j        d           S re   rg   ri   s     r   r_   z4TestHeap.test_nbest_with_pushpop.<locals>.<listcomp>   rj   r!   rk   rl   rm   x)rB   rE   r   r   r   r`   ru   ro   rp   s       r   test_nbest_with_pushpopz TestHeap.test_nbest_with_pushpop   s    <<d<<<CRCyD!!!I 	0 	0DK##D$////dmmD1122F4LL4FGGG00S993?????r!   c                 v   g }| j                             |d          }|                     ||fg df           dg}| j                             |d          }|                     ||fdgdf           |                     t          |d                   t                     |                     t          |          t
                     dg}| j                             |d          }|                     ||fdgdf           dg}| j                             |d          }|                     ||fdgdf           d S )Nrl   g      $@r   	      )rE   r   r   typeintfloat)r   hr{   s      r   test_heappushpopzTestHeap.test_heappushpop   s8   K##Ar**!Q"b***DK##At,,!Q2$...adS)))a%(((DK##Aq))!Q2$+++DK##Ar**!Q2$,,,,,r!   c                     ddg}|                      | j                            |          d           |                      | j                            |          d           d S )N      )r   rE   r   )r   r   s     r   test_heappop_maxzTestHeap.test_heappop_max   s_     F11!44a88811!44a88888r!   c                     t          d          D ]}t          j        d          }d t          |          D             }|dz  r%|d d           j                                       n"g |D ]} j                            |            fdt          |          D             }                     |t          |                     d S )Nd   2   c                 6    g | ]}t          j        d           S )   rg   ri   s     r   r_   z*TestHeap.test_heapsort.<locals>.<listcomp>   s#    >>>QF$R((>>>r!   rS   c                 D    g | ]}j                                       S r(   )rE   r   )r]   rL   rJ   r   s     r   r_   z*TestHeap.test_heapsort.<locals>.<listcomp>   s)    JJJ4;..t44JJJr!   )rB   rC   rh   rE   r   r   r   ro   )r   trialra   rK   rM   heap_sortedrJ   s   `     @r   test_heapsortzTestHeap.test_heapsort   s    3ZZ 	8 	8E#B''D>>%++>>>Dqy 5AAAw##D))))  5 5DK((t4444JJJJJeDkkJJJK[&,,7777	8 	8r!   c                    g }t          t          j        d                    D ]{}g }t          t          j        d                    D ]@}t          j        d          t          j        dd          f}|                    |           A|                    |           |d t          d          t          d          t          dd          fD ]}dD ]}g }|D ]'}	|                    t          |	||	                     (|                     t          t          | ||	          t           | j
        j        |||d	                     |                     t          | j
                                                  g            d S )
Nr   r   ABCi  r   rS   )FTkeyreverse)rB   rC   rh   choicerD   r   ro   r   chainr`   rE   r1   )
r   inputsrL   rowjtupr   r   seqsseqs
             r   
test_mergezTestHeap.test_merge   s   v'++,, 	 	AC6+C0011    mE**F,<T3,G,GG

3MM#*Q--A
1a8H8HI 	@ 	@C( @ @! G GCKKsW E E EFFFF  vC!Q!Q!Q!%&7dk&73PW&X&X&X!Y!Y[ [ [  dk&7&7&9&9!:!:B????@	@ 	@r!   c           	          |                      t          | j                            g g                     g            |                      t          | j                            g g d                     g            d S )Nc                      dS )N   r(   r(   r!   r   <lambda>z,TestHeap.test_empty_merges.<locals>.<lambda>   s    A r!   r   )r   r`   rE   r1   r   s    r   test_empty_mergeszTestHeap.test_empty_merges   sq     	dk//B7788"===dk//BII/FFGGLLLLLr!   c                     d }|                      t                    5  t          | j                             |             |                                 d d d            d S # 1 swxY w Y   d S )Nc               3   z   K   t          t          d                    } t          d          D ]}| |         V  d S )Nrl      )r`   rB   )srL   s     r   iterablezCTestHeap.test_merge_does_not_suppress_index_error.<locals>.iterable   sE      U2YYA2YY  d



 r!   )rG   rs   r`   rE   r1   )r   r   s     r   (test_merge_does_not_suppress_index_errorz1TestHeap.test_merge_does_not_suppress_index_error   s    	 	 	 z** 	< 	<""88::xxzz::;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   9A$$A(+A(c                     G d dt                     }g g g g g}t          d          D ]Y}t          j        d          }t          j        d          } ||          }||f|_        ||                             |           Z|D ]}|                                 d  | j        j        | D             }| 	                    |t          |                     d S )Nc                       e Zd ZdS )*TestHeap.test_merge_stability.<locals>.IntN)r&   r   r'   r(   r!   r   Intr      s        Dr!   r   rZ      r   c                     g | ]	}|j         
S r(   )pairri   s     r   r_   z1TestHeap.test_merge_stability.<locals>.<listcomp>   s    ===Q!&===r!   )r   rB   rC   rh   r   rD   rF   rE   r1   r   ro   )r   r   r   rL   streamr{   objresults           r   test_merge_stabilityzTestHeap.test_merge_stability   s   	 	 	 	 	# 	 	 	b"b!u 	' 	'A%a((F %%A#a&&C6{CH6N!!#&&&& 	 	FKKMMMM=="3$+"3V"<===00000r!   c                    d t          d          D             }d d fD ]}dD ]}|                     t          | j                            ||                    t          |          d |                    |                     t          | j                            |||                    t          ||          d |                    d S )Nc                 :    g | ]}t          j        d           |fS re   rg   ri   s     r   r_   z+TestHeap.test_nsmallest.<locals>.<listcomp>   (    AAA!$''+AAAr!   rk   c                     | d         dz  dz  S Nr   i#  rf   r(   r{   s    r   r   z)TestHeap.test_nsmallest.<locals>.<lambda>       1Q4#:#4 r!   	r   rS   r   rl   r   i  i  rk   iL  r   )rB   r   r`   rE   	nsmallestro   r   rK   fns       r   test_nsmallestzTestHeap.test_nsmallest   s    AAU4[[AAA445 	: 	:A= : :  dk&;&;At&D&D!E!E!'bqb!13 3 3  dk&;&;At&;&K&K!L!L!'!!4!4!4RaR!8: : : ::	: 	:r!   c                    d t          d          D             }d d fD ]}dD ]}|                     t          | j                            ||                    t          |d          d |                    |                     t          | j                            |||                    t          ||d          d |                    d S )	Nc                 :    g | ]}t          j        d           |fS re   rg   ri   s     r   r_   z*TestHeap.test_nlargest.<locals>.<listcomp>   r   r!   rk   c                     | d         dz  dz  S r   r(   r   s    r   r   z(TestHeap.test_nlargest.<locals>.<lambda>   r   r!   r   Tr   r   r   )rB   r   r`   rE   nlargestro   r   s       r   test_nlargestzTestHeap.test_nlargest   s   AAU4[[AAA445 	H 	HA= H H  dk&:&:1d&C&C!D!D!'d!;!;!;BQB!?A A A  dk&:&:1d&:&J&J!K!K!'!T!B!B!B2A2!FH H H HH	H 	Hr!   c                      fd} G d d          } G d d          }d t          d          D             }t          |d	          }                      |||          |                                t          ||           d S )
Nc                      fd D              j                                          fdt          t                               D             S )Nc                 &    g | ]} |          S r(   r(   )r]   r{   comps     r   r_   zDTestHeap.test_comparison_operator.<locals>.hsort.<locals>.<listcomp>   s!    ***DDGG***r!   c                 N    g | ]!}j                                       j        "S r(   )rE   r   r{   )r]   rL   rK   r   s     r   r_   zDTestHeap.test_comparison_operator.<locals>.hsort.<locals>.<listcomp>   s,    JJJADK''--/JJJr!   )rE   r   rB   rn   )rK   r   r   s   ``r   hsortz0TestHeap.test_comparison_operator.<locals>.hsort   s_    ****T***DK%%%JJJJJs4yy9I9IJJJJr!   c                       e Zd Zd Zd ZdS )-TestHeap.test_comparison_operator.<locals>.LTc                     || _         d S r-   r   r   r{   s     r   __init__z6TestHeap.test_comparison_operator.<locals>.LT.__init__       r!   c                 "    | j         |j         k    S r-   r   r   others     r   __lt__z4TestHeap.test_comparison_operator.<locals>.LT.__lt__   s    v''r!   Nr&   r   r'   r   r   r(   r!   r   LTr      s2          ( ( ( ( (r!   r   c                       e Zd Zd Zd ZdS )-TestHeap.test_comparison_operator.<locals>.LEc                     || _         d S r-   r   r   s     r   r   z6TestHeap.test_comparison_operator.<locals>.LE.__init__  r   r!   c                 "    | j         |j         k    S r-   r   r   s     r   __le__z4TestHeap.test_comparison_operator.<locals>.LE.__le__  s    v((r!   N)r&   r   r'   r   r   r(   r!   r   LEr     s2          ) ) ) ) )r!   r   c                 4    g | ]}t          j                     S r(   r\   ri   s     r   r_   z5TestHeap.test_comparison_operator.<locals>.<listcomp>  s    444A444r!   r   Tr   )rB   ro   r   rG   rH   )r   r   r   r   rK   targets   `     r   test_comparison_operatorz!TestHeap.test_comparison_operator   s    	K 	K 	K 	K 	K	( 	( 	( 	( 	( 	( 	( 	(
	) 	) 	) 	) 	) 	) 	) 	)
 54s444d+++tR&111)T2.....r!   N)r&   r   r'   rP   rA   rb   rq   ru   rx   r|   r   r   r   r   r   r   r   r   r   r   r(   r!   r   r>   r>   0   s%         89 9 9@ @ @3 3 3  I I I$@ @ @- - -&9 9 98 8 8@ @ @$M M M< < <1 1 1: : :H H H/ / / / /r!   r>   c                       e Zd ZeZdS )TestHeapPythonNr&   r   r'   r   rE   r(   r!   r   r   r             FFFr!   r   r"   c                       e Zd ZeZdS )	TestHeapCNr&   r   r'   r$   rE   r(   r!   r   r   r             FFFr!   r   c                       e Zd ZdZd ZdS )LenOnlyz:Dummy sequence class defining __len__ but not __getitem__.c                     dS Nrl   r(   r   s    r   __len__zLenOnly.__len__  s    rr!   N)r&   r   r'   __doc__r   r(   r!   r   r   r     s)        @@    r!   r   c                   ,    e Zd ZdZd ZexZxZxZxZZ	dS )CmpErrz;Dummy element that always raises an error during comparisonc                     t           r-   )ZeroDivisionErrorr   s     r   __eq__zCmpErr.__eq__  s    r!   N)
r&   r   r'   r   r   __ne__r   r   __gt____ge__r(   r!   r   r   r     s<        AA     177F7V7f7vr!   r   c              #      K   | D ]}|V  dS )zRegular generatorNr(   seqnrL   s     r   Rr   "  s*         r!   c                       e Zd ZdZd Zd ZdS )GzSequence using __getitem__c                     || _         d S r-   r   r   r   s     r   r   z
G.__init__)  s    			r!   c                     | j         |         S r-   r  )r   rL   s     r   __getitem__zG.__getitem__+  s    y|r!   N)r&   r   r'   r   r   r  r(   r!   r   r  r  '  s8                r!   r  c                   $    e Zd ZdZd Zd Zd ZdS )Iz Sequence using iterator protocolc                 "    || _         d| _        d S Nr   r   r  s     r   r   z
I.__init__0      	r!   c                     | S r-   r(   r   s    r   __iter__z
I.__iter__3      r!   c                     | j         t          | j                  k    rt          | j        | j                  }| xj         dz  c_         |S rR   rL   rn   r   StopIterationr   vs     r   __next__z
I.__next__5  >    6S^^##=%8Idf!r!   Nr&   r   r'   r   r   r  r  r(   r!   r   r	  r	  .  sG        &&        r!   r	  c                       e Zd ZdZd Zd ZdS )Igz9Sequence using iterator protocol defined with a generatorc                 "    || _         d| _        d S r  r   r  s     r   r   zIg.__init__=  r  r!   c              #   &   K   | j         D ]}|V  d S r-   r  )r   vals     r   r  zIg.__iter__@  s,      9 	 	CIIII	 	r!   Nr&   r   r'   r   r   r  r(   r!   r   r  r  ;  s8        ??      r!   r  c                       e Zd ZdZd Zd ZdS )Xz Missing __getitem__ and __iter__c                 "    || _         d| _        d S r  r   r  s     r   r   z
X.__init__F  r  r!   c                     | j         t          | j                  k    rt          | j        | j                  }| xj         dz  c_         |S rR   r  r  s     r   r  z
X.__next__I  r  r!   N)r&   r   r'   r   r   r  r(   r!   r   r  r  D  s8        &&      r!   r  c                       e Zd ZdZd Zd ZdS )NzIterator missing __next__()c                 "    || _         d| _        d S r  r   r  s     r   r   z
N.__init__Q  r  r!   c                     | S r-   r(   r   s    r   r  z
N.__iter__T  r  r!   Nr  r(   r!   r   r#  r#  O  s8        !!      r!   r#  c                   $    e Zd ZdZd Zd Zd ZdS )EzTest propagation of exceptionsc                 "    || _         d| _        d S r  r   r  s     r   r   z
E.__init__Y  r  r!   c                     | S r-   r(   r   s    r   r  z
E.__iter__\  r  r!   c                     ddz   d S )Nr   r   r(   r   s    r   r  z
E.__next__^  s    	Qr!   Nr  r(   r!   r   r'  r'  W  sG        $$        r!   r'  c                   $    e Zd ZdZd Zd Zd ZdS )SzTest immediate stopc                     d S r-   r(   r  s     r   r   z
S.__init__c  s    r!   c                     | S r-   r(   r   s    r   r  z
S.__iter__e  r  r!   c                     t           r-   )r  r   s    r   r  z
S.__next__g  s    r!   Nr  r(   r!   r   r,  r,  a  sG                r!   r,  )r   c                     t          t          d t          t          t	          |                                                   S )z Test multiple tiers of iteratorsc                     | S r-   r(   r   s    r   r   zL.<locals>.<lambda>m  s    a r!   )r   mapr   r  r  r  s    r   Lr3  k  s.    ZZ2agg;;00111r!   c                       e Zd Zd Zd ZdS )SideEffectLTc                 "    || _         || _        d S r-   )valuerJ   )r   r7  rJ   s      r   r   zSideEffectLT.__init__q  s    
			r!   c                 :    g | j         d d <   | j        |j        k     S r-   )rJ   r7  r   s     r   r   zSideEffectLT.__lt__u  s     	!!!zEK''r!   Nr   r(   r!   r   r5  r5  p  s2          ( ( ( ( (r!   r5  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestErrorHandlingc                 ,   | j         j        | j         j        fD ]%}|                     t          t
          f|d           &| j         j        | j         j        | j         j        | j         j	        fD ]&}|                     t          t
          f|dd           'd S r   )
rE   r   r   rG   rH   rI   r   r   r   r   r   r   s     r   test_non_sequencez#TestErrorHandling.test_non_sequence|  s    +%t{':; 	B 	BAy.91bAAAA+&(?+&(=? 	F 	FAy.91b"EEEE	F 	Fr!   c                    | j         j        | j         j        fD ]1}|                     t          t
          f|t                                 2| j         j        | j         j        fD ]2}|                     t          t
          f|t                      d           3| j         j	        | j         j
        fD ]+}|                     t          |dt                                 ,d S Nrl   r   )rE   r   r   rG   rH   rI   r   r   r   r   r   r<  s     r   test_len_onlyzTestErrorHandling.test_len_only  s    +%t{':; 	I 	IAy.91giiHHHH+&(?@ 	M 	MAy.91giiLLLL+&(=> 	: 	:AiAwyy9999	: 	:r!   c                    t                      t                      t                      g}| j        j        | j        j        fD ]}|                     t
          ||           | j        j        | j        j        fD ]}|                     t
          ||d            | j        j        | j        j	        fD ]}|                     t
          |d|            d S r?  )
r   rE   r   r   rG   r   r   r   r   r   )r   r   r   s      r   test_cmp_errzTestErrorHandling.test_cmp_err  s    xx688,+%t{':; 	9 	9A/C8888+&(?@ 	= 	=A/C<<<<+&(=> 	< 	<A/As;;;;	< 	<r!   c                     | j         j        | j         j        | j         j        | j         j        | j         j        | j         j        fD ]%}|                     t          t          f|d           &d S r   )
rE   r   r   r   r   r   r   rG   rH   rI   r<  s     r   test_arg_parsingz"TestErrorHandling.test_arg_parsing  sp    +%t{':+&(?+&(=? 	B 	BA y.91bAAAA	B 	Br!   c                    | j         j        | j         j        fD ]S}ddt          d          dt          ddd          fD ]+}t          t
          t          t          t          fD ]O}| 	                    t           |d ||                              t           |d|                               P| 	                    t           |dt          |                              g            |                     t          |dt          |                     |                     t          |dt          |                     |                     t           |dt#          |                     -Ud S )	N123 rk   )rS   g333333?rf   i     r   )rE   r   r   rB   r  r	  r  r3  r   r   r`   r,  rG   rH   r  r#  r   r'  )r   r   r   gs       r   test_iterable_argsz$TestErrorHandling.test_iterable_args  sS   +&(=> 	A 	AARthd48J8JK A AQAq) E EA$$T!!Aqqtt**%5%5tAAaFF||DDDD  aa1Q44jj!1!12666!!)Q1Q44888!!)Q1Q44888!!"3Q1Q44@@@@A	A 	Ar!   c                 .   g                      fdt          d          D                        |                     t          t          f          5  | j                            t          d                     d d d            d S # 1 swxY w Y   d S )Nc              3   8   K   | ]}t          |          V  d S r-   r5  r]   rL   rJ   s     r   	<genexpr>z@TestErrorHandling.test_heappush_mutating_heap.<locals>.<genexpr>  -      >>aLD))>>>>>>r!      rH  )extendrB   rG   rs   RuntimeErrorrE   r   r5  rt   s    @r   test_heappush_mutating_heapz-TestErrorHandling.test_heappush_mutating_heap  s    >>>>5::>>>>>>
L9:: 	> 	>K  |At'<'<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   *B

BBc                    g                      fdt          d          D                        |                     t          t          f          5  | j                                       d d d            d S # 1 swxY w Y   d S )Nc              3   8   K   | ]}t          |          V  d S r-   rM  rN  s     r   rO  z?TestErrorHandling.test_heappop_mutating_heap.<locals>.<genexpr>  rP  r!   rQ  )rR  rB   rG   rs   rS  rE   r   rt   s    @r   test_heappop_mutating_heapz,TestErrorHandling.test_heappop_mutating_heap  s    >>>>5::>>>>>>
L9:: 	& 	&K%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   A;;A?A?c                      G fddt                     }g | j                             |d                     |                     t          | j        j        d           d S )Nc                       e Zd Z fdZdS )MTestErrorHandling.test_comparison_operator_modifiying_heap.<locals>.EvilClassc                 :                                      t          S r-   clearNotImplemented)r   orJ   s     r   r   zTTestErrorHandling.test_comparison_operator_modifiying_heap.<locals>.EvilClass.__lt__  s    

%%r!   Nr&   r   r'   r   )rJ   s   r   	EvilClassrZ    .        & & & & & & &r!   ra  r   rS   )r   rE   r   rG   rs   r   )r   ra  rJ   s     @r   (test_comparison_operator_modifiying_heapz:TestErrorHandling.test_comparison_operator_modifiying_heap  s    	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 T99Q<<000*dk&=tQGGGGGr!   c                     G fddt                     } G fddt                     }g g c| j                             |d                     | j                             |d                     |                     t          t
          f| j        j         |d                     |                     t          t
          f| j        j         |d                     d S )Nc                       e Zd Z fdZdS )OTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.hc                 :                                      t          S r-   r\  )r   r_  list2s     r   r   zVTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.h.__lt__      %%r!   Nr`  )rh  s   r   r   rf    rb  r!   r   c                       e Zd Z fdZdS )OTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.gc                 :                                      t          S r-   r\  )r   r_  list1s     r   r   zVTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.g.__lt__  ri  r!   Nr`  )rm  s   r   rI  rk    rb  r!   rI  r   rS   )r   rE   r   rG   rs   rS  )r   r   rI  rm  rh  s      @@r   2test_comparison_operator_modifiying_heap_two_heapszDTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps  s!   	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 2uUAAaDD)))UAAaDD))):|4dk6JESTSTUVSWSWXXX:|4dk6JESTSTUVSWSWXXXXXr!   N)r&   r   r'   r=  r@  rB  rD  rJ  rT  rW  rc  rn  r(   r!   r   r:  r:  z  s        F F F: : :< < <B B BA A A> > >& & &
H 
H 
HY Y Y Y Yr!   r:  c                       e Zd ZeZdS )TestErrorHandlingPythonNr   r(   r!   r   rp  rp    r   r!   rp  c                       e Zd ZeZdS )TestErrorHandlingCNr   r(   r!   r   rr  rr    r   r!   rr  __main__)(r   rC   unittestr.   testr   test.supportr   r   r   operatorr   import_fresh_moduler   r$   r   r   r<   r>   r   r   r   r   r   r  r	  r  r  r#  r'  r,  	itertoolsr   r3  r5  r:  rp  rr  r&   mainr(   r!   r   <module>r{     s3              & & & & & & ) ) ) ) ) ) ) )      ,=,WxjIII
+-
+GH:
F
F
FB B B
K K K K K( K K K  "Y/ Y/ Y/ Y/ Y/ Y/ Y/ Y/x    Xx    G&''    (   ('       
8 8 8 8 8 8 8 8  
                     	 	 	 	 	 	 	 	                           2 2 2
( ( ( ( ( ( ( (XY XY XY XY XY XY XY XYt    /    G&''    *H   (' zHMOOOOO r!   