
    dafA                        d Z ddlZddlZddl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. d/e!e      Z" eed       G d0 d1e!e             Z#e$d2k(  r ejJ                          yy)3zUnittests for heapq.    N)import_helper)TestCase
skipUnless)
itemgetterheapq_heapq)blocked)fresh)heapifyheappopheappushheappushpopheapreplace_heappop_max_heapreplace_max_heapify_maxc                   0    e Zd Zd Z eed      d        Zy)TestModulesc                 n    t         D ],  }| j                  t        t        |      j                  d       . y )Nr   )
func_namesassertEqualgetattrpy_heapq
__module__selffnames     */root/Python-3.12.4/Lib/test/test_heapq.pytest_py_functionszTestModules.test_py_functions   s0     	KEWXu5@@'J	K    requires _heapqc                 n    t         D ],  }| j                  t        t        |      j                  d       . y )Nr   )r   r   r   c_heapqr   r   s     r   test_c_functionszTestModules.test_c_functions   s0     	KEWWe4??J	Kr    N)__name__r   __qualname__r   r   r#   r$    r    r   r   r      s&    K *+K ,Kr    r   c                 x     G d d      }|j                  t        j                  t         |                    |S )Nc                       e Zd Zd Zy)+load_tests.<locals>.HeapqMergeDocTestFinderc                 h    t        j                         }|j                  t        j                        S N)doctestDocTestFinderfindr   merge)r   argskwargsdtfs       r   r/   z0load_tests.<locals>.HeapqMergeDocTestFinder.find'   s#    '')C88HNN++r    N)r%   r   r&   r/   r'   r    r   HeapqMergeDocTestFinderr*   &   s    	,r    r4   )test_finder)addTestsr-   DocTestSuiter   )loadertestsignorer4   s       r   
load_testsr;      s6    , ,
 
NN7''4K4MO PLr    c                   r    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y)TestHeapc                    g }g }| j                  |       t        d      D ]T  }t        j                         }|j                  |       | j                  j                  ||       | j                  |       V g }|r@| j                  j                  |      }| j                  |       |j                  |       |r@|d d  }|j                          | j                  ||       | j                  |       | j                  t        | j                  j
                  g        	 | j                  t        | j                  j
                  d d        | j                  t        | j                  j                  d        y # t        $ r Y y 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_pop1   sE   T"s 	'A==?DKKKK  t,  &		'
 ;;&&t,D  &NN4   1gg.W%)T[[%9%92>	i)=)=tTJi)<)<dC 		s    AE8 8	FFc                 n    t        |      D ]'  \  }}|s	|dz
  dz	  }| j                  ||   |k         ) y N   )	enumerate
assertTrue)r   rI   posrL   	parentposs        r   r@   zTestHeap.check_invariantM   s>    "4 	9IC UqL	Y4 78	9r    c                 J   t        t        d            dgz   D ]X  }t        |      D cg c]  }t        j                          }}| j                  j	                  |       | j                  |       Z | j                  t        | j                  j                  d        y c c}w )N    N  )listrA   rB   rD   r   r@   rF   rG   )r   sizedummyrI   s       r   test_heapifyzTestHeap.test_heapifyT   s    rOug- 	'D16t=FMMO=D=KK%  &	'
 	)T[[%8%8$?	 >s   B c                 ^   t        d      D cg c]  }t        j                  d       }}g }|D ]H  }| j                  j	                  ||       t        |      dkD  s.| j                  j                  |       J |j                          | j                  |t        |      dd         y c c}w )N    
   )
rA   rB   	randrangerD   r   lenr   rE   r   sortedr   rK   rJ   rI   rL   s        r   test_naive_nbestzTestHeap.test_naive_nbest\   s    05d<1  &<< 	*DKK  t,4y2~##D)	* 			vd|CD12 =s   B*c              #   h   K   	 	 | j                   j                  |       # t        $ r Y y w xY wwr,   )rD   r   
IndexErrorr   rI   s     r   heapiterzTestHeap.heapiterf   s9     	kk))$//  		s   2# 	/2/2c                 t   t        d      D cg c]  }t        j                  d       }}|d d }| j                  j	                  |       |dd  D ]'  }||d   kD  s| j                  j                  ||       ) | j                  t        | j                  |            t        |      dd         | j                  t        | j                  j
                  d        | j                  t        | j                  j
                  d d        | j                  t        | j                  j
                  g d        y c c}w )Nr_   r`   ra   r   rb   )rA   rB   rc   rD   r   r   r   rZ   rk   re   rF   rG   ri   rf   s        r   
test_nbestzTestHeap.test_nbestn   s     16d<1  &<<CRyD!I 	4Dd1g~''d3	4 	dmmD12F4L4FG)T[[%<%<dC)T[[%<%<dDI*dkk&=&=r4H =s   D5c                    t        d      D cg c]  }t        j                  d       }}|d d }| j                  j	                  |       |dd  D ]  }| j                  j                  ||         | j                  t        | j                  |            t        |      dd         | j                  | j                  j                  g d      d       y c c}w )Nr_   r`   ra   rb   x)
rA   rB   rc   rD   r   r   r   rZ   rk   re   rf   s        r   test_nbest_with_pushpopz TestHeap.test_nbest_with_pushpop   s    05d<1  &<<CRyD!I 	0DKK##D$/	0dmmD12F4L4FG00S93? =s   Cc                 2   g }| j                   j                  |d      }| j                  ||fg df       dg}| j                   j                  |d      }| j                  ||fdgdf       | j                  t        |d         t               | j                  t        |      t
               dg}| j                   j                  |d      }| j                  ||fdgdf       dg}| j                   j                  |d      }| j                  ||fdgdf       y )Nra   g      $@r   	      )rD   r   r   typeintfloat)r   hro   s      r   test_heappushpopzTestHeap.test_heappushpop   s   KK##Ar*!Q"b*DKK##At,!Q2$.adS)a%(DKK##Aq)!Q2$+DKK##Ar*!Q2$,r    c                     ddg}| j                  | j                  j                  |      d       | j                  | j                  j                  |      d       y )N      )r   rD   r   )r   rw   s     r   test_heappop_maxzTestHeap.test_heappop_max   sK     F11!4a811!4a8r    c                    t        d      D ]  }t        j                  d      }t        |      D cg c]  }t        j                  d       }}|dz  r!|d d  }| j                  j	                  |       n%g }|D ]  }| j                  j                  ||         t        |      D cg c]  }| j                  j                  |       }}| j                  |t        |              y c c}w c c}w )Nd   2      rR   )	rA   rB   rc   rD   r   r   r   r   re   )r   trialr[   rK   rJ   rI   rL   heap_sorteds           r   test_heapsortzTestHeap.test_heapsort   s    3Z 	8E##B'D27+>QF$$R(>D>qyAw##D)  5DKK((t45>CDkJ4;;..t4JKJ[&,7	8> Ks   C)'"C.c                    g }t        t        j                  d            D ]t  }g }t        t        j                  d            D ]>  }t        j                  d      t        j                  dd      f}|j	                  |       @ |j	                  |       v d t        d      t        d      t        dd      fD ]  }dD ]  }g }|D ]  }	|j	                  t        |	||	             ! | j                  t        t        | ||	      t         | j                  j                  |||d	             | j                  t        | j                  j                               g          y )
Nr   r~   ABCi  r   rR   )FTkeyreverse)rA   rB   rc   choicerC   r   re   r   chainrZ   rD   r0   )
r   inputsrK   rowjtupr   r   seqsseqs
             r   
test_mergezTestHeap.test_merge   sI   v''+, 	AC6++C01  mmE*F,<,<T3,GG

3  MM#	 *Q-A
1a8HI 	@C( @! GCKKsW EFG  vC!Q!%&7dkk&7&73PW&X!Y[  dkk&7&7&9!:B?@	@r    c           	          | j                  t        | j                  j                  g g             g        | j                  t        | j                  j                  g g d             g        y )Nc                       y)N   r'   r'   r    r   <lambda>z,TestHeap.test_empty_merges.<locals>.<lambda>   s    r    r   )r   rZ   rD   r0   r   s    r   test_empty_mergeszTestHeap.test_empty_merges   sU     	dkk//B78"=dkk//BI/FGLr    c                     d }| j                  t              5  t        | j                  j	                   |        |                    d d d        y # 1 sw Y   y xY w)Nc               3   b   K   t        t        d            } t        d      D ]	  }| |     y w)Nra      )rZ   rA   )srK   s     r   iterablezCTestHeap.test_merge_does_not_suppress_index_error.<locals>.iterable   s/     U2YA2Y d
s   -/)rF   ri   rZ   rD   r0   )r   r   s     r   (test_merge_does_not_suppress_index_errorz1TestHeap.test_merge_does_not_suppress_index_error   sI    	 z* 	<""8:xz:;	< 	< 	<s   0AAc                     G d dt               }g g g g g}t        d      D ]Q  }t        j                  d      }t        j                  d      } ||      }||f|_        ||   j                  |       S |D ]  }|j                            | j                  j                  | D cg c]  }|j                   }}| j                  |t        |             y c c}w )Nc                       e Zd Zy)*TestHeap.test_merge_stability.<locals>.IntN)r%   r   r&   r'   r    r   Intr      s    r    r   rY      r   )ru   rA   rB   rc   pairrC   rE   rD   r0   r   re   )r   r   r   rK   streamro   objresults           r   test_merge_stabilityzTestHeap.test_merge_stability   s    	# 	b"b!u 	'A%%a(F  %Aa&C6{CH6N!!#&	'  	FKKM	"3$++"3"3V"<=Q!&&==0 >s   'Cc                    t        d      D cg c]  }t        j                  d      |f }}d d fD ]  }dD ]  }| j                  t	        | j
                  j                  ||            t        |      d |        | j                  t	        | j
                  j                  |||            t        ||      d |          y c c}w )Nr_   r`   c                     | d   dz  dz  S Nr   i#  r`   r'   ro   s    r   r   z)TestHeap.test_nsmallest.<locals>.<lambda>       1Q4#:#4 r    	r   rR   r{   ra   r~   i  i  r_   iL  r   )rA   rB   rc   r   rZ   rD   	nsmallestre   r   rK   rJ   fns        r   test_nsmallestzTestHeap.test_nsmallest   s    5:4[A!!$'+AA45 	:A= :  dkk&;&;At&D!E!'bq!13  dkk&;&;At&;&K!L!'!!4Ra!8::	: Bs   Cc                    t        d      D cg c]  }t        j                  d      |f }}d d fD ]  }dD ]  }| j                  t	        | j
                  j                  ||            t        |d      d |        | j                  t	        | j
                  j                  |||            t        ||d      d |          y c c}w )	Nr_   r`   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   )rA   rB   rc   r   rZ   rD   nlargestre   r   s        r   test_nlargestzTestHeap.test_nlargest   s    5:4[A!!$'+AA45 	HA= H  dkk&:&:1d&C!D!'d!;BQ!?A  dkk&:&:1d&:&J!K!'!T!B2A!FHH	H Bs   C	c                      fd} G d d      } G d d      }t        d      D cg c]  }t        j                          }}t        |d      } j                   |||      |        j	                  t
        ||       y c c}w )	Nc                    | D cg c]
  } ||       } }j                   j                  |        t        t        |             D cg c]'  }j                   j	                  |       j
                  ) c}S c c}w c c}w r,   )rD   r   rA   rd   r   ro   )rJ   compro   rK   r   s       r   hsortz0TestHeap.test_comparison_operator.<locals>.hsort   sc    %)*DG*D*KK%9>s4y9IJADKK''-//JJ +Js   A7,A<c                       e Zd Zd Zd Zy)-TestHeap.test_comparison_operator.<locals>.LTc                     || _         y r,   r   r   ro   s     r   __init__z6TestHeap.test_comparison_operator.<locals>.LT.__init__   	    r    c                 4    | j                   |j                   kD  S r,   r   r   others     r   __lt__z4TestHeap.test_comparison_operator.<locals>.LT.__lt__   s    vv''r    Nr%   r   r&   r   r   r'   r    r   LTr      s    (r    r   c                       e Zd Zd Zd Zy)-TestHeap.test_comparison_operator.<locals>.LEc                     || _         y r,   r   r   s     r   r   z6TestHeap.test_comparison_operator.<locals>.LE.__init__  r   r    c                 4    | j                   |j                   k\  S r,   r   r   s     r   __le__z4TestHeap.test_comparison_operator.<locals>.LE.__le__  s    vv((r    N)r%   r   r&   r   r   r'   r    r   LEr      s    )r    r   r~   Tr   )rA   rB   re   r   rF   rG   )r   r   r   r   rK   rJ   targets   `      r   test_comparison_operatorz!TestHeap.test_comparison_operator   su    	K	( 	(
	) 	)
 */s4A44d+tR&1)T2. 5s   BN)r%   r   r&   rO   r@   r]   rg   rk   rm   rp   rx   r|   r   r   r   r   r   r   r   r   r'   r    r   r=   r=   /   s]    89@3I$@-&98@$M<1:H/r    r=   c                       e Zd ZeZy)TestHeapPythonNr%   r   r&   r   rD   r'   r    r   r   r         Fr    r   r!   c                       e Zd ZeZy)	TestHeapCNr%   r   r&   r#   rD   r'   r    r   r   r         Fr    r   c                       e Zd ZdZd Zy)LenOnlyz:Dummy sequence class defining __len__ but not __getitem__.c                      yNra   r'   r   s    r   __len__zLenOnly.__len__  s    r    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	y)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 177F7V7f7vr    r   c              #   "   K   | D ]  }|  yw)zRegular generatorNr'   seqnrK   s     r   Rr   !  s      s   c                       e Zd ZdZd Zd Zy)GzSequence using __getitem__c                     || _         y r,   r   r   r   s     r   r   z
G.__init__(  s	    	r    c                      | j                   |   S r,   r   )r   rK   s     r   __getitem__zG.__getitem__*  s    yy|r    N)r%   r   r&   r   r   r   r'   r    r   r   r   &  s     r    r   c                   "    e Zd ZdZd Zd Zd Zy)Iz Sequence using iterator protocolc                      || _         d| _        y Nr   r   r   s     r   r   z
I.__init__/      	r    c                     | S r,   r'   r   s    r   __iter__z
I.__iter__2      r    c                     | j                   t        | j                        k\  rt        | j                  | j                      }| xj                   dz  c_         |S rQ   rK   rd   r   StopIterationr   vs     r   __next__z
I.__next__4  ?    66S^#=%8IIdff!r    Nr%   r   r&   r   r   r   r   r'   r    r   r   r   -  s    &r    r   c                       e Zd ZdZd Zd Zy)Igz9Sequence using iterator protocol defined with a generatorc                      || _         d| _        y r   r   r   s     r   r   zIg.__init__<  r   r    c              #   6   K   | j                   D ]  }|  y wr,   r   )r   vals     r   r   zIg.__iter__?  s     99 	CI	s   Nr%   r   r&   r   r   r   r'   r    r   r  r  :  s    ?r    r  c                       e Zd ZdZd Zd Zy)Xz Missing __getitem__ and __iter__c                      || _         d| _        y r   r   r   s     r   r   z
X.__init__E  r   r    c                     | j                   t        | j                        k\  rt        | j                  | j                      }| xj                   dz  c_         |S rQ   r   r   s     r   r   z
X.__next__H  r  r    N)r%   r   r&   r   r   r   r'   r    r   r
  r
  C  s    &r    r
  c                       e Zd ZdZd Zd Zy)NzIterator missing __next__()c                      || _         d| _        y r   r   r   s     r   r   z
N.__init__P  r   r    c                     | S r,   r'   r   s    r   r   z
N.__iter__S  r   r    Nr  r'   r    r   r  r  N  s    !r    r  c                   "    e Zd ZdZd Zd Zd Zy)EzTest propagation of exceptionsc                      || _         d| _        y r   r   r   s     r   r   z
E.__init__X  r   r    c                     | S r,   r'   r   s    r   r   z
E.__iter__[  r   r    c                     ddz   y )Nrz   r   r'   r   s    r   r   z
E.__next__]  s	    	Qr    Nr  r'   r    r   r  r  V  s    $r    r  c                   "    e Zd ZdZd Zd Zd Zy)SzTest immediate stopc                      y r,   r'   r   s     r   r   z
S.__init__b  s    r    c                     | S r,   r'   r   s    r   r   z
S.__iter__d  r   r    c                     t         r,   )r   r   s    r   r   z
S.__next__f  s    r    Nr  r'   r    r   r  r  `  s    r    r  )r   c                 d    t        t        d t        t        t	        |                               S )z Test multiple tiers of iteratorsc                     | S r,   r'   r   s    r   r   zL.<locals>.<lambda>l  s    a r    )r   mapr   r  r   r   s    r   Lr  j  s     Z2ag;011r    c                       e Zd Zd Zd Zy)SideEffectLTc                      || _         || _        y r,   )valuerI   )r   r"  rI   s      r   r   zSideEffectLT.__init__p  s    
	r    c                 R    g | j                   d d  | j                  |j                  k  S r,   )rI   r"  r   s     r   r   zSideEffectLT.__lt__t  s"    		!zzEKK''r    Nr   r'   r    r   r   r   o  s    (r    r   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestErrorHandlingc                    | j                   j                  | j                   j                  fD ]  }| j                  t        t
        f|d       ! | j                   j                  | j                   j                  | j                   j                  | j                   j                  fD ]   }| j                  t        t
        f|dd       " y r   )
rD   r   r   rF   rG   rH   r   r   r   r   r   r   s     r   test_non_sequencez#TestErrorHandling.test_non_sequence{  s    ++%%t{{':':; 	BAy.91bA	B++&&(?(?++&&(=(=? 	FAy.91b"E	Fr    c                     | j                   j                  | j                   j                  fD ]'  }| j                  t        t
        f|t                      ) | j                   j                  | j                   j                  fD ](  }| j                  t        t
        f|t               d       * | j                   j                  | j                   j                  fD ]"  }| j                  t        |dt                      $ y Nra   r{   )rD   r   r   rF   rG   rH   r   r   r   r   r   r'  s     r   test_len_onlyzTestErrorHandling.test_len_only  s    ++%%t{{':':; 	IAy.91giH	I++&&(?(?@ 	MAy.91giL	M++&&(=(=> 	:AiAwy9	:r    c                    t               t               t               g}| j                  j                  | j                  j                  fD ]  }| j	                  t
        ||        | j                  j                  | j                  j                  fD ]  }| j	                  t
        ||d        | j                  j                  | j                  j                  fD ]  }| j	                  t
        |d|        y r*  )
r   rD   r   r   rF   r   r   r   r   r   )r   r   r   s      r   test_cmp_errzTestErrorHandling.test_cmp_err  s    x68,++%%t{{':':; 	9A/C8	9++&&(?(?@ 	=A/C<	=++&&(=(=> 	<A/As;	<r    c                 H   | j                   j                  | j                   j                  | j                   j                  | j                   j                  | j                   j
                  | j                   j                  fD ]  }| j                  t        t        f|d       ! y r   )
rD   r   r   r   r   r   r   rF   rG   rH   r'  s     r   test_arg_parsingz"TestErrorHandling.test_arg_parsing  sy    ++%%t{{':':++&&(?(?++&&(=(=? 	BA y.91bA	Br    c                 v   | j                   j                  | j                   j                  fD ]	  }ddt        d      dt        ddd      fD ]  }t        t
        t        t        t        fD ]:  }| j                  t         |d ||                  t         |d|                   < | j                  t         |dt        |                  g        | j                  t        |dt        |             | j                  t        |dt        |             | j                  t         |dt#        |               y )	N123 r_   )rR   g333333?r`   i     r{   )rD   r   r   rA   r   r   r  r  r   r   rZ   r  rF   rG   r
  r  r   r  )r   r   r   gs       r   test_iterable_argsz$TestErrorHandling.test_iterable_args  s   ++&&(=(=> 	AARthd48JK AQAq) EA$$T!Aqt*%5tAaF|DE  a1Q4j!126!!)Q1Q48!!)Q1Q48!!"3Q1Q4@A	Ar    c                     g j                  fdt        d      D               | j                  t        t        f      5  | j
                  j                  t        d             d d d        y # 1 sw Y   y xY w)Nc              3   6   K   | ]  }t        |        y wr,   r   .0rK   rI   s     r   	<genexpr>z@TestErrorHandling.test_heappush_mutating_heap.<locals>.<genexpr>       >aLD)>      r3  )extendrA   rF   ri   RuntimeErrorrD   r   r   rj   s    @r   test_heappush_mutating_heapz-TestErrorHandling.test_heappush_mutating_heap  sa    >5:>>
L9: 	>KK  |At'<=	> 	> 	>s   'A22A;c                     g j                  fdt        d      D               | j                  t        t        f      5  | j
                  j                         d d d        y # 1 sw Y   y xY w)Nc              3   6   K   | ]  }t        |        y wr,   r8  r9  s     r   r;  z?TestErrorHandling.test_heappop_mutating_heap.<locals>.<genexpr>  r<  r=  r>  )r?  rA   rF   ri   r@  rD   r   rj   s    @r   test_heappop_mutating_heapz,TestErrorHandling.test_heappop_mutating_heap  sX    >5:>>
L9: 	&KK%	& 	& 	&s   A''A0c                      G fddt               }g | j                  j                   |d             | j                  t        | j                  j
                  d       y )Nc                       e Zd Z fdZy)MTestErrorHandling.test_comparison_operator_modifiying_heap.<locals>.EvilClassc                 0    j                          t        S r,   clearNotImplemented)r   orI   s     r   r   zTTestErrorHandling.test_comparison_operator_modifiying_heap.<locals>.EvilClass.__lt__  s    

%%r    Nr%   r   r&   r   )rI   s   r   	EvilClassrG        &r    rN  r   rR   )ru   rD   r   rF   ri   r   )r   rN  rI   s     @r   (test_comparison_operator_modifiying_heapz:TestErrorHandling.test_comparison_operator_modifiying_heap  sL    	& 	&
 T9Q<0*dkk&=&=tQGr    c                     G fddt               } G fddt               }g g c| j                  j                   |d             | j                  j                   |d             | j                  t        t
        f| j                  j                   |d             | j                  t        t
        f| j                  j                   |d             y )Nc                       e Zd Z fdZy)OTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.hc                 0    j                          t        S r,   rI  )r   rL  list2s     r   r   zVTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.h.__lt__      %%r    NrM  )rU  s   r   rw   rS    rO  r    rw   c                       e Zd Z fdZy)OTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.gc                 0    j                          t        S r,   rI  )r   rL  list1s     r   r   zVTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.g.__lt__  rV  r    NrM  )rZ  s   r   r4  rX    rO  r    r4  r   rR   )ru   rD   r   rF   ri   r@  )r   rw   r4  rZ  rU  s      @@r   2test_comparison_operator_modifiying_heap_two_heapszDTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps  s    	& 	&
	& 	&
 2uUAaD)UAaD):|4dkk6J6JESTUVSWX:|4dkk6J6JESTUVSWXr    N)r%   r   r&   r(  r+  r-  r/  r5  rA  rD  rP  r[  r'   r    r   r%  r%  y  s4    F:<BA>&
HYr    r%  c                       e Zd ZeZy)TestErrorHandlingPythonNr   r'   r    r   r]  r]    r   r    r]  c                       e Zd ZeZy)TestErrorHandlingCNr   r'   r    r   r_  r_    r   r    r_  __main__)&r   rB   unittestr-   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   r  r   r%  r]  r_  r%   mainr'   r    r   <module>rg     sr       & ) ,=,,WxjI
+-
+
+GH:
FB
K( K"Y/ Y/xXx  G&'(  ( 
8 8
   	 	    2
( (XY XYt/  G&'*H  ( zHMMO r    