+
     BiD-                        ^ RI Ht ^ RIt^ RIHtHtHt ^ RIHt ^ RI	H
t
Ht ^ RI	Ht ^ RItR tR t ! R	 R
4      t ! R R]P$                  4      t ! R R]P$                  4      t ! R R]P$                  4      t ! R R]P$                  4      t ! R R]P$                  4      t ! R R]P$                  4      t ! R R]P$                  4      t]R8X  d   ]P6                  ! ^R7       R# R# )    )searchengineN)
BooleanVar	StringVarTclError)
messagebox)VarMbox)Textc                  `    \         \        n        \         \        n        \        \        n        R # N)r   ser   r   r	   r        :/usr/lib/python3.14/idlelib/idle_test/test_searchengine.pysetUpModuler      s    BMBLBMr   c                  `    \         \        n         \        \        n        \        \        n        R # r   )r   r   r   r   r   r   r   tearDownModuler      s    BMBLBMr   c                   &   a  ] tR t^t o R tRtV tR# )Mockc                    R # r   r   )selfargskwargss   &*,r   __init__Mock.__init__    s    r   r   N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   r   r      s     --r   r   c                   &   a  ] tR t^"t o R tRtV tR# )GetTestc                   \         P                  p\        \         n         \        4       p\         P                  ! V4      pV P	                  V\         P                  4       V P                  VP                  V4       V P                  \         P                  ! V4      V4       V\         n        R #   T\         n        i ; ir   )r   SearchEnginer   getassertIsInstanceassertIs_searchengine)r   saved_Enginerootengines   &   r   test_getGetTest.test_get$   sx    	+6DVVD\F!!&"//:MM$,,f5MM"&&,/*BOlBOs   BB0 0B=r   N)r   r   r   r   r/   r    r!   r"   s   @r   r%   r%   "   s     
+ 
+r   r%   c                   &   a  ] tR t^0t o R tRtV tR# )GetLineColTestc                2   V P                  \        P                  ! R 4      R4       V P                  \        P                  ! R4      R4       V P                  \        \        P                  R4       V P                  \        \        P                  R4       R# )1.0z1.11z1.0 lineendendN)   r   )r6      )assertEqualr   get_line_colassertRaises
ValueErrorr   s   &r   test_get_line_col GetLineColTest.test_get_line_col2   s`    /80':*booG*boo?r   r   N)r   r   r   r   r=   r    r!   r"   s   @r   r2   r2   0   s     @ @r   r2   c                   &   a  ] tR t^9t o R tRtV tR# )GetSelectionTestc                    \        4       pVP                  R R4       R pW!n        V P                  \        P
                  ! V4      R4       R pW1n        V P                  \        P
                  ! V4      R4       R# )r4   zHello World!c                 2    V R 8X  d   R# V R8X  d   R# \         h)	sel.firstr4   sel.last1.12r   ss   &r   sel0GetSelectionTest.test_get_selection.<locals>.selL   s    KJvNr   c                      V R 8X  d   R# \         hinsert1.5rF   rG   s   &r   mark1GetSelectionTest.test_get_selection.<locals>.markT       H}UNr   N)r4   rE   )rN   rN   )mockTextrM   indexr8   r   get_selection)r   textrI   rO   s   &   r   test_get_selection#GetSelectionTest.test_get_selectionF   se    zEN+	
 
))$/A	 
))$/@r   r   N)r   r   r   r   rV   r    r!   r"   s   @r   r@   r@   9   s     A Ar   r@   c                   &   a  ] tR t^\t o R tRtV tR# )ReverseSearchTestc           	        V P                   pR p\        P                  ! R4      pV! \        P                  ! W2\        V4      4      P                  4       R4       V! \        P                  ! W2^4      P                  4       R4       V! \        P                  ! W2^4      P                  4       R4       V! \        P                  ! W2^4      P                  4       R4       V! \        P                  ! W2^4      R4       R# )zHere is an 'is' test text.isN)      )      )r8   recompiler   search_reverselenspan)r   Equallineprogs   &   r   test_search_reverse%ReverseSearchTest.test_search_reverse^   s      +zz$bCI6;;=xHbB/446AbB/446?bA.335v>bA.5r   r   N)r   r   r   r   rh   r    r!   r"   s   @r   rY   rY   \   s     6 6r   rY   c                   D   a  ] tR t^it o R tR tR tR tR tR t	Rt
V tR# )	SearchEngineTestc                >    \         P                  ! R R7      V n        R # )N)r-   )r   r'   r.   r<   s   &r   setUpSearchEngineTest.setUpl   s    oo40r   c                   V P                   pV P                  pV! VP                  4       R 4       VP                  R4       V! VP                  4       R4       V! VP	                  4       R4       VP
                  P                  ^4       V! VP	                  4       R4       V! VP                  4       R4       VP                  P                  ^4       V! VP                  4       R4       V! VP                  4       R4       VP                  P                  ^4       V! VP                  4       R4       V! VP                  4       R4       VP                  P                  ^ 4       V! VP                  4       R4       V! VP                  4       R4       VP                  P                  ^4       V! VP                  4       R4       R# ) helloFTN)r.   r8   getpatsetpatisrerevarsetiscasecasevariswordwordvariswrapwrapvarisbackbackvarr   r.   re   s   &  r   test_is_getSearchEngineTest.test_is_getq   s<     fmmor"gfmmow'fkkmU#fkkmT"fmmou%1fmmot$fmmou%1fmmot$fmmot$1fmmou%fmmou%1fmmot$r   c                   V P                   pVP                  R 4       V P                  VP                  4       R 4       VP                  P                  ^4       VP                  R 4       V P                  VP                  4       R4       R# )\s\\sN)r.   setcookedpatr8   rr   ru   rv   )r   r.   s   & r   test_setcookedpat"SearchEngineTest.test_setcookedpat   se    E"%0E"&1r   c                   V P                   pV P                  pV! VP                  4       R 4       VP                  R4       V! VP                  4       R4       VP                  P                  R4       V! VP                  4       R4       VP                  P                  R4       VP                  R4       V! VP                  4       R4       VP                  P                  R4       V! VP                  4       R4       R# )rp   rq   Tz	\bhello\bFr   r   N)r.   r8   getcookedpatrs   rz   rv   ru   r   s   &  r   test_getcookedpat"SearchEngineTest.test_getcookedpat   s      f!!#R(gf!!#W-4 f!!#\25!ef!!#V,f!!#U+r   c                   V P                   pV P                  pVP                  R 4       VP                  4       pV! VP                  \
        P                  ! R \
        P                  4      P                  4       VP                  P                  ^4       VP                  4       pV! VP                  \
        P                  ! R 4      P                  ^ 4       VP                  R4       V! VP                  4       R4       V! \        P                  P                  R4       VP                  R4       VP                  P                  ^4       V! VP                  4       R4       V! \        P                  P                  R4       R# )Hellorp   NzError: Empty regular expression+z-Error: nothing to repeat
Pattern: +
Offset: 0)r.   r8   rs   getprogpatternr`   ra   
IGNORECASErx   rv   r	   	showerrormessageru   )r   r.   re   temppats   &   r   test_getprogSearchEngineTest.test_getprog   s	     g.."goorzz'2==AIIJ1.."goorzz'2::A>bfnn%dnn$$/	1cfnn%dnn$$?	Ar   c                   \         P                  pV P                  pR pRpV! V P                  P	                  W44      R4       V! VP
                  R4       RV,           R,           pV! VP                  V4       V! V P                  P	                  W4^4      R4       V! VP
                  R4       VR,          pV! VP                  V4       R# )z[a-zz$unexpected end of regular expressionNzRegular expression errorzError: z
Pattern: [a-zz

Offset: 5)r	   r   r8   r.   report_errortitler   )r   r   re   patmsgexpected_messages   &     r   test_report_error"SearchEngineTest.test_report_error   s    NN	  4dkk&&s0$7ioo9:%O.??i!12dkk&&s3T:ioo9:M)i!12r   )r.   N)r   r   r   r   rm   r   r   r   r   r   r    r!   r"   s   @r   rk   rk   i   s)     1
%82, A*3 3r   rk   c                   6   a  ] tR t^t o ]R 4       tR tRtV tR# )
SearchTestc                   \        4       V n        R pV P                  P                  RV4       \        P                  ! R4      V n        \        P                  ! R4      V n        R V P                  n	        R V P                  n
        R# )&First line
Line with target
Last line
r4   targetNc                  
    R V 3# )fr   r   s   *r   <lambda>'SearchTest.setUpClass.<locals>.<lambda>   s    3+r   c                  
    R V 3# )br   r   s   *r   r   r      s    C;r   )rR   rU   rM   r`   ra   r   r   r'   r.   search_forwardsearch_backwardcls	test_texts   & r   
setUpClassSearchTest.setUpClass   sc    
 : 	 	y)**X&__T*
$=

!%>

"r   c           
     <   V P                   pV P                  pVP                  pV P                  pV P                  pVP
                  P                  R 4       V! V! V4      R 4       R pWdn        V! V! WE4      RWE^^RR334       VP                  P                  R4       V! V! WE4      RWE^^RR334       VP                  P                  R4       VP                  P                  R4       V! V! WE4      RWE^^RR334       VP                  P                  R4       R pWtn        V! V! WE4      RWE^^RR334       V! V! WER4      RWE^^
RR334       VP                  P                  R4       V! V! WE4      RWE^^
RR334       V! V! WER4      RWE^^RR334       R # )Nc                      V R 8X  d   R# \         hrL   rF   rG   s   &r   rO   $SearchTest.test_search.<locals>.mark   rQ   r   r   TFr   c                 2    V R 8X  d   R# V R8X  d   R# \         h)rC   z2.10rD   z2.16rF   rG   s   &r   rI   #SearchTest.test_search.<locals>.sel   s    KJvNr   )
r8   r.   search_textrU   r   patvarrv   rS   r|   r~   )r   re   r.   searchrU   r   rO   rI   s   &       r   test_searchSearchTest.test_search   s     ##yyhh$fTlD!	 
fT#1au'E!FG5!fT#1a'F!GH4 4 fT#1au'E!FG5!	 
fT#1b$'F!GHfT%dBd-K'LM4 fT#1b$'F!GHfT%dBd-K'LMr   r   N)	r   r   r   r   classmethodr   r   r    r!   r"   s   @r   r   r      s%      ? ?*!N !Nr   r   c                   B   a  ] tR tRt o ]R 4       tR tR tR tRt	V t
R# )ForwardBackwardTesti  c                j   \         P                  ! R 4      V n        \        4       V n        R V P                  n        RpV P                  P                  RV4       \        P                  ! R4      V n	        RV n
        \        P                  ! R4      V n        \        P                  ! R4      V n        R # )Nc                     R # )z4.0r   )rS   s   &r   r   0ForwardBackwardTest.setUpClass.<locals>.<lambda>  s    ur   r   r4   r   xyzz\w*)   )
      )r   r'   r.   rR   rU   rS   rM   r`   ra   r   resfailpatemptypatr   s   & r   r   ForwardBackwardTest.setUpClass  s}    __T*
 :, 	 	y)**X&jj'zz&)r   c                   a a RVV 3R llpV# )r   c                    < S! SP                   WW#V4      pV'       d!   V^ ,          V^,          P                  4       3# T# r   )rU   rd   )r   rf   colwrapokr   funcr   s   &&&&& r   r   /ForwardBackwardTest.make_search.<locals>.search#  s7    tyy#S;C.1CFCFKKM*:s:r   r   r   )r   r   r   s   ff r   make_searchForwardBackwardTest.make_search"  s    	; 	; r   c           
        V P                   pV P                  V P                  P                  4      pV P                  pV! V! V^^ R4      V P
                  4       V! V! V^^ R4      V P
                  4       V! V! V^^ R4      R4       V! V! V^^
R4      V P
                  4       V! V! V P                  ^^ R4      R4       V! V! V P                  ^^	RRR7      R4       V! V! V P                  ^^
R4      V P
                  4       R# )r6   TFNr   r   )	   r   )r8   r   r.   r   r   r   r   r   )r   re   forwardr   s   &   r   test_search_forward'ForwardBackwardTest.test_search_forward)  s      ""4;;#=#=>hhgc1a&1gc1a&1gc1a'.gc1b%($((3gdllAq$/6gdmmQDT:KH 	gdmmQD1488<r   c           
        V P                   pV P                  V P                  P                  4      pV P                  pV! V! V^^R4      V P
                  4       V! V! V^^ R4      V P
                  4       V! V! V^^ R4      R4       V! V! V^^R4      V P
                  4       V! V! V P                  ^^	R4      R4       V! V! V P                  ^^
RRR7      R4       V! V! V P                  ^^	R4      R4       R# )   TFNr   r   )r   )r^   r   )r8   r   r.   r   r   r   r   r   )r   re   backwardr   s   &   r   test_search_backward(ForwardBackwardTest.test_search_backward:  s      ##DKK$?$?@hhhsAq$'2hsAq$'2hsAq%($/hsAr5)4884ht||Q40$7ht}}a"dt<jI 	ht}}aD1;?r   r   N)r   r   r   r   r   r   r   r   r   r    r!   r"   s   @r   r   r     s/      * *$="@ @r   r   __main__)	verbosity)idlelibr   r   unittesttkinterr   r   r   r   idlelib.idle_test.mock_tkr   r	   r
   rR   r`   r   r   r   TestCaser%   r2   r@   rY   rk   r   r   r   mainr   r   r   <module>r      s    '  4 4  / 6 	. .+h +@X&& @ Ax((  AF
6)) 
6_3x(( _3D:N"" :Nz@@(++ @@F zMMA r   