+
    BiP                     .   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RIH
t
 ]	P                  ! R4      t]P                  tRtRtRtR	 t ! R
 R]P$                  4      t ! R R4      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8X  d   ]P:                  ! 4        R# R# )    N)support)import_helper)	os_helperturtlea_  width = 0.75
height = 0.8
canvwidth = 500
canvheight = 200
leftright = 100
topbottom = 100
mode = world
colormode = 255
delay = 100
undobuffersize = 10000
shape = circle
pencolor  = red
fillcolor  = blue
resizemode  = auto
visible  = None
language = english
exampleturtle = turtle
examplescreen = screen
title = Python Turtle Graphics
using_IDLE = ''
z# Comments!
# Testing comments!
pencolor  = red
fillcolor  = blue
visible  = False
language = english
# Some more
# comments
using_IDLE = False
z0
pencolor = red
fillcolor: blue
visible = False
c                 f    \         P                  P                  ! R/ R\        P                  RR/B # )zPatch turtle._Screen for testing without a display.

We must patch the _Screen class itself instead of the _Screen
instance because instantiating it requires a display.
zreturn_value.__class__zreturn_value.mode.return_valuestandard)zturtle._Screen.__new__)unittestmockpatchr   _Screen     '/usr/lib/python3.14/test/test_turtle.pypatch_screenr   9   s5     ==  %fnn,j
 r   c                   8   a  ] tR t^Ht o R tR tR tR tRtV t	R# )TurtleConfigTestc                :   V P                  \        P                  \        P                  4       \	        \        P                  R 4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  #   + '       g   i     \        P                  # ; i)wN)
addCleanupr   unlinkTESTFNopenwrite)selfcfg_strfs   && r   get_cfg_fileTurtleConfigTest.get_cfg_fileJ   sc    	(()*:*:;)""C((AGGG ) )(s   A;;B	c                    V P                  \        4      p\        P                  V4      p/ R RbRRbRRbR^bR^dbR^dbR	R
bR^bR^dbRRbRRbRRbRRbRRbRRbRRbRRbRRRR R!R"/CpV P	                  W#4       R# )#widthg      ?heightg?	canvwidth  
canvheight	leftright	topbottommodeworld	colormodedelayundobuffersize'  shapecirclepencolorred	fillcolorblue
resizemodeautovisibleNlanguageenglishexampleturtler   examplescreenscreentitlezPython Turtle Graphics
using_IDLE )r   test_configr   config_dictassertEqualr   cfg_name
parsed_cfgexpecteds   &   r   test_config_dict!TurtleConfigTest.test_config_dictP   s   $$[1''1

d
s
 #
 #	

 
 
 G
 
 S
 e
 X
 
 &
 6
 
  	!
" X#
$ X-")
. 	.r   c           
         V P                  \        4      p\        P                  V4      pR RRRRRRRRR/pV P	                  W#4       R	# )
r/   r0   r1   r2   r5   Fr6   r7   r<   N)r   test_config_twor   r?   r@   rA   s   &   r   &test_partial_config_dict_with_comments7TurtleConfigTest.test_partial_config_dict_with_commentsn   sT    $$_5''1
 u	%
 	.r   c                `   V P                  \        4      p\        P                  ! 4       ;_uu_ 4       p\        P                  V4      pR R R 4       XP                  4       pV P                  RV4       V P                  RV4       V P                  XRRRR/4       R #   + '       g   i     L\; i)NzBad line in config-file zfillcolor: bluer/   r0   r5   F)	r   invalid_test_configr   captured_stdoutr   r?   getvalueassertInr@   )r   rB   stdoutrC   err_msgs   &    r   test_config_dict_invalid)TurtleConfigTest.test_config_dict_invalid}   s    $$%89$$&&&++H5J ' //#0':'1u&
 	 '&s   BB-	r   N)
__name__
__module____qualname____firstlineno__r   rE   rI   rR   __static_attributes____classdictcell____classdict__s   @r   r   r   H   s      /</ r   r   c                   &   a  ] tR t^t o R tRtV tR# )VectorComparisonMixinc                    \        V4      \        V4      8w  d   V P                  R 4       \        \        W4      4       F*  w  pw  rEV P	                  WERP                  V4      R7       K,  	  R# )zTuples are not of equal sizezvalues at index {} do not match)msgN)lenfail	enumeratezipassertAlmostEqualformat)r   vec1vec2idxijs   &&&   r   assertVectorsAlmostEqual.VectorComparisonMixin.assertVectorsAlmostEqual   s]    t9D	!II45$S_5KC!"";BB3G # I 6r   r   N)rT   rU   rV   rW   rk   rX   rY   rZ   s   @r   r]   r]      s     I Ir   r]   c                   ,   a  ] tR t^t o R tR tRtV tR# )
Multiplierc                    R V 2# )M*r   r   others   &&r   __mul__Multiplier.__mul__   s    E7|r   c                    V R 2# )*Mr   rq   s   &&r   __rmul__Multiplier.__rmul__   s    |r   r   N)rT   rU   rV   rW   rs   rw   rX   rY   rZ   s   @r   rn   rn      s      r   rn   c                   b   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tRtV tR# )	TestVec2Dc                   \        R ^4      pV P                  V^ ,          R 4       V P                  V^,          ^4       V P                  V\         4       V P                  \        \         4       V P                  \        \         ^ 4       V P                  \        \         R4       V P                  \        \         V4       V P                  \        \         ^ ^^4       R# )      ?Nr      )Vec2Dr@   assertIsInstanceassertRaises	TypeErrorr   vecs   & r   test_constructorTestVec2D.test_constructor   s    CmQ%Q#c5))U+)UA.)UF3)UC0)UAq!4r   c                T    \        R R4      pV P                  \        V4      R4       R# )g/$?gX9v?z(0.57,1.23)N)r   r@   reprr   s   & r   	test_reprTestVec2D.test_repr   s"    E5!cM2r   c                    \        ^ ^4      p\        R^4      p\        ^*^4      pV P                  W4       V P                  V\        V4      4       V P                  \        V4      V4       V P                  W4       V P                  W#4       R# )r           N)r   r@   tupleassertNotEqual)r   rf   rg   vec3s   &   r   test_equalityTestVec2D.test_equality   su    Q{S!}R|$uT{+td+D'D'r   c                   \        R ^4      p\        \        P                  ^,           4       Fz  pV P	                  VR7      ;_uu_ 4        \        P
                  ! WR7      p\        P                  ! V4      pV P                  WA4       V P                  V\         4       RRR4       K|  	  R#   + '       g   i     K  ; i)r|   )proto)protocolN)	r   rangepickleHIGHEST_PROTOCOLsubTestdumpsloadsr@   r   )r   r   r   pickled	unpickleds   &    r   test_picklingTestVec2D.test_pickling   s    Cm622Q67EE** ,,s;"LL1	  0%%i7	 +* 8***s   
AB--B>c                    V Fa  pV P                  VR 7      ;_uu_ 4        Vw  w  rEp\        V!  p\        V!  pV! Wx4      p	\        V!  pV P                  W4       RRR4       Kc  	  R#   + '       g   i     Kx  ; i)caseN)r   r   rk   )
r   
test_caseslambda_operator	test_casefirstsecondrD   op1op2results
   &&&       r   _assert_arithmetic_cases"TestVec2D._assert_arithmetic_cases   so    #I9--.7+%(UmVn(2 (+--f? .- $---s   <A**A;c                4    . ROpV P                  VR 4       R# )r   c                     W,           # Nr   xys   &&r   <lambda>0TestVec2D.test_vector_addition.<locals>.<lambda>       qur   N))r   r   r~   r~   )      ?r   ))r   )   r   )r~   r   )))g      ?r   r   )      @r~   r   r   r   s   & r   test_vector_additionTestVec2D.test_vector_addition   s    

 	%%j2DEr   c                4    RR.pV P                  VR 4       R# )r   c                     W,
          # r   r   r   s   &&r   r   3TestVec2D.test_vector_subtraction.<locals>.<lambda>   r   r   N)r   )r   r   )))g     @%@      ?)
   r   )g      ?r   r   r   s   & r   test_vector_subtraction!TestVec2D.test_vector_subtraction   s$     )8


 	%%j2DEr   c                   \        ^
^
4      p\        R^4      pW,          p^#pV P                  W44       \        R^4      p\        ^^4      pV P                  V^
,          V4       V P                  ^
V,          V4       V P                  VR,          V4       V P                  RV,          V4       \        4       pV P	                  WV,          \        V^ ,           R2V^,           R24      4       V P	                  We,          RV 24       R# )r   r|   g      $@rv   rp   N)r   rd   rk   rn   r@   )r   rf   rg   answerrD   r   Ms   &      r   test_vector_multiplyTestVec2D.test_vector_multiply   s    R}S!}v0CmB<%%cBh9%%b3h9%%cDj(;%%dSj(;L%3q6("#a&}"EFBse*-r   c                H    \        ^
R4      pRpV P                  V) V4       R# )r   N)r   r   )r   rk   )r   r   rD   s   &  r   test_vector_negativeTestVec2D.test_vector_negative   s$    Bn%%sdH5r   c                    V P                  \        \        ^^4      4      ^
4       V P                  \        \        ^ ^ 4      4      ^ 4       V P                  \        \        R^4      4      R4       R# )   r   g      @N)rd   absr   r@   r   s   &r   test_distanceTestVec2D.test_distance  sS    s5A;/4U1a[)1-s5a=137r   c                    . ROpV FX  pV P                  VR7      ;_uu_ 4        Vw  w  r4p\        V!  pVP                  V4      pV P                  We4       RRR4       KZ  	  R#   + '       g   i     Ko  ; i)r   r   N)))r   r   r   ))r}   Z   r   ))r}   ir~   r   ))r      r   ))r   h  r   )r   r   rotaterk   )r   casesr   r   rotrD   gots   &      r   test_rotateTestVec2D.test_rotate  sh    
 D4(('+$
HSkjjo--c<	 )( (((s   3A%%A6r   N)rT   rU   rV   rW   r   r   r   r   r   r   r   r   r   r   r   rX   rY   rZ   s   @r   rz   rz      sD     
53(8@FF.&6
8
= =r   rz   c                      a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tRtV tR# )TestTNavigatori  c                8    \         P                  4       V n        R # r   )r   
TNavigatornavr   s   &r   setUpTestTNavigator.setUp  s    $$&r   c                    V P                   P                  ^dR4       V P                  V P                   P                  4       ^d4       V P                  V P                   P	                  4       R4       R# d   N)r   gotord   xcorycorr   s   &r   	test_gotoTestTNavigator.test_goto  sH    c4 txx}}4txx}}5r   c                   V P                   P                  ^RRR7       V P                  V P                   P                  4       ^4       V P                  V P                   P	                  4       R4       V P                   P                  R^RR7       V P                  V P                   P                  4       R4       V P                  V P                   P	                  4       ^4       R# )   Tfill_gapFNii)r   teleportrd   r   r   r   s   &r   test_teleportTestTNavigator.test_teleport"  s    "cD1txx}}3txx}}4#rE2txx}}4txx}}3r   c                6   V P                  V P                  P                  4       V P                  P                  4       V P                  P	                  ^dR4       V P                  V P                  P                  4       V P                  P                  4       R# r   )r@   r   pos	_positionr   r   s   &r   test_posTestTNavigator.test_pos*  s\    ););<c4 ););<r   c                    V P                  V P                  P                  R4       V P                  P                  ^Z4       V P	                  V P                  P                  R4       R# )r   Nr   r   )r   r   )r@   r   _orientleftrk   r   s   &r   	test_leftTestTNavigator.test_left/  sF    ))84b%%dhh&6&6
Cr   c                    V P                  V P                  P                  R4       V P                  P                  ^Z4       V P	                  V P                  P                  R4       R# )r   Nr   )r   g      )r@   r   r   rightrk   r   s   &r   
test_rightTestTNavigator.test_right4  sF    ))84r%%dhh&6&6	Br   c                   V P                   P                  ^dR4       V P                  V P                   P                  4       ^d4       V P                  V P                   P	                  4       R4       V P                   P                  4        V P                  V P                   P                  4       ^ 4       V P                  V P                   P	                  4       ^ 4       R# r   )r   r   rd   r   r   resetr   s   &r   
test_resetTestTNavigator.test_reset9  s    c4 txx}}4txx}}5txx}}2txx}}2r   c                
   V P                   P                  ^4       \        ^^ 4      pV P                  V P                   P	                  4       V4       V P                   P                  4        V P                   P                  ^Z4       V P                   P                  ^4       \        ^ ^4      pV P                  V P                   P	                  4       V4       V P                  \        V P                   P                  R4       R# )   
skldjfldskN)	r   forwardr   rk   positionr	  r  r   r   r   rD   s   & r   test_forwardTestTNavigator.test_forwardA  s    a=%%dhh&7&7&98DbC=%%dhh&7&7&98D)TXX%5%5|Dr   c                   V P                   P                  ^4       \        R^ 4      pV P                  V P                   P	                  4       V4       V P                   P                  4        V P                   P                  ^Z4       V P                   P                  ^4       \        ^ ^4      pV P                  V P                   P	                  4       V4       R# )   N8)r   backr   rk   r  r	  r  r  s   & r   test_backwardsTestTNavigator.test_backwardsN  s    cq>%%dhh&7&7&98DrcC=%%dhh&7&7&98Dr   c                    V P                   P                  ^d4       ^dpV P                  V P                   P                  \	        ^ ^ 4      4      V4       R# )r   N)r   r  rd   distancer   r  s   & r   r   TestTNavigator.test_distanceY  s>    txx00q<hGr   c                   V P                   P                  ^Z4       V P                  V P                   P                  4       ^Z4       V P                   P	                  4        V P                  V P                   P                  4       R4       V P                   P                  4        V P                  V P                   P                  4       ^Z4       R# )r   gm U!?N)r   r  rd   headingradiansdegreesr   s   &r   test_radians_and_degrees'TestTNavigator.test_radians_and_degrees^  s    btxx//126txx//1:>txx//126r   c           	     @   . ROpV F  w  w  r#pV P                  V P                  P                  W#4      V4       V P                  V P                  P                  W#34      V4       V P                  V P                  P                  \        W#4      4      V4       K  	  R# )r   N)))r   r   r   ))r   r   g     F@))r   r   g     V@))r   r   g     `@))r   r   g     f@))r   r   g      l@))r   r   g     p@))r   r   g     s@)r@   r   towardsr   )r   coordinatesr   r   rD   s   &    r   test_towardsTestTNavigator.test_towardsf  s    

 !,FQHTXX--a3X>TXX--qf5x@TXX--eAk:HE !,r   c                J   V P                   P                  ^Z4       V P                  V P                   P                  4       ^Z4       V P                   P                  ^-4       V P                  V P                   P                  4       ^4       V P                   P	                  R4       V P                  V P                   P                  4       R4       V P                  \        V P                   P                  R4       V P                   P                  4        . ROp\        V4      R,          pV F  pV P                   P                  V4       K   	  V P                  V P                   P                  4       V4       V P                   P                  4        R\        V4      ,
          R,          pV F  pV P                   P	                  V4       K   	  V P                  V P                   P                  4       V4       V P                   P                  4        . ROp^ pV F  pV^ 8  d&   V P                   P	                  \        V4      4       MV P                   P                  V4       WC,          pV P                  V P                   P                  4       VR,          4       K  	  R# )r   g?g̬`@sdkfjdsfr   N)r   r      ,  )
r   r   iVr+  i.gfffff&A@gIr   g{G=r#   )r   r  rd   r  r  r   r   r	  sumr@   r   )r   	rotationsr   num
sum_so_fars   &    r   test_headingTestTNavigator.test_headingy  s   btxx//126btxx//137stxx//159)TXX^^Z@&	Y#%CHHMM# ))+V4c)n$+CHHNN3 ))+V4L	
CQws3x(c"J""488#3#3#5zC7GH r   c                .   V P                   P                  R 4       V P                  V P                   P                  4       R 4       V P                   P                  R4       V P                  V P                   P                  4       R4       V P                   P                  R4       V P                  V P                   P                  4       R4       V P                   P                  R4       V P                  V P                   P                  4       ^x4       R# )gGzY@i NgQ^gp=
ףm@gQBgףp=S@)r   
setheadingrd   r  r   s   &r   test_setheadingTestTNavigator.test_setheading  s    F#txx//16:G$txx//1?CH%txx//13CDF#txx//1:>r   c                    V P                   P                  ^d4       V P                   P                  ^Z4       V P                   P                  R4       V P                  V P                   P	                  4       R4       R# )r   Nr  )g      Y@g      i)r   r  r  rk   r   r   s   &r   test_positionsTestTNavigator.test_positions  sP    b%%dhhllnoFr   c                    V P                   P                  R4       V P                   P                  R4       V P                  V P                   P	                  4       R4       R# )g @Zd;YAN )r;  r:  )r   setxsetyrk   r   r   s   &r   test_setx_and_sety!TestTNavigator.test_setx_and_sety  s=    j!j!%%dhhlln6NOr   c                N   V P                   P                  ^4       V P                   P                  R4       V P                   P                  4        V P	                  V P                   P                  4       R4       V P                  V P                   P                  4       ^ 4       R# )   Ni`yr   )r   r  r  homerk   r   rd   r  r   s   &r   	test_homeTestTNavigator.test_home  sh    b!%%dhhllne<txx//115r   c                   V P                  V P                  P                  ^^(4      ^24       \        RR4      pV P                  V P                  P                  V4      R4       \        P                  4       pVP                  ^Z4       VP                  R4       V P                  V P                  P                  V4      R4       R# )rA  g)\(?gMbP?g-)?r,   N)rd   r   r  r   r   r   r  r  )r   r   another_turtles   &  r   test_distance_method#TestTNavigator.test_distance_method  s    txx00R8"=D$txx0057JK**,Bu%txx00@%Hr   )r   N)rT   rU   rV   rW   r   r   r   r   r  r  r
  r  r  r   r!  r&  r0  r4  r7  r>  rC  rG  rX   rY   rZ   s   @r   r   r     sp     '6
4=
D
C
3E	EH
7F& ID?GP
6I Ir   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestTPeni  c                (   \         P                  4       pV P                  VP                  4       4       VP	                  4        V P                  VP                  4       4       VP                  4        V P                  VP                  4       4       R # r   )r   TPen
assertTrueisdownpenupassertFalsependownr   tpens   & r   test_pendown_and_penupTestTPen.test_pendown_and_penup  sW    {{}&

'&r   c                (   \         P                  4       pV P                  VP                  4       4       VP	                  4        V P                  VP                  4       4       VP                  4        V P                  VP                  4       4       R # r   )r   rL  rM  	isvisible
hideturtlerP  
showturtlerR  s   & r   (test_showturtle_hideturtle_and_isvisible1TestTPen.test_showturtle_hideturtle_and_isvisible  s\    {{}())*()r   c                L   \         P                  4       pR F  pVP                  4        VP                  ^d^dVR7       V P	                  VP                  4       4       VP                  4        VP                  RRVR7       V P                  VP                  4       4       K  	  R# )Tr   N)TFr   )r   rL  rO  r   rP  rN  rQ  rM  )r   rS  fill_gap_values   &  r   r   TestTPen.test_teleport  ss    {{}+NJJLMM#s^M<T[[]+LLNMM$~M>OODKKM* ,r   r   N)	rT   rU   rV   rW   rT  rZ  r   rX   rY   rZ   s   @r   rJ  rJ    s     '*
+ 
+r   rJ  c                      a  ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR ltR t	R t
R tRtV tR# )TestTurtleScreeni  c                   < V ^8  d   QhRR/# r   returnNr   )re   r[   s   "r   __annotate__TestTurtleScreen.__annotate__  s     O OT Or   c                   \         P                  P                  4       pR p\        P                  ! 4       ;_uu_ 4       pV P                  \        \        P                  ! V4      4      ;_uu_ 4        \        P                  P                  V\        P                  P                  VR4      4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)z>Unknown file extension: '.png', must be one of {'.ps', '.eps'}zfile.pngN)r	   r
   MocktempfileTemporaryDirectoryassertRaisesRegex
ValueErrorreescaper   TurtleScreensaveospathjoin)r   r:   r_   tmpdirs   &   r   #test_save_raises_if_wrong_extension4TestTurtleScreen.test_save_raises_if_wrong_extension  s    ##%N''))V"":ryy~>>$$VRWW\\&*-MN ? *)>> *))s#   3C1?C	0CCCC&	c                   < V ^8  d   QhRR/# rb  r   )re   r[   s   "r   rd  re    s     O Od Or   c                   \         P                  P                  4       p\        P                  ! 4       ;_uu_ 4       p\
        P                  P                  VR 4      pRV R2pV P                  \        \        P                  ! V4      4      ;_uu_ 4        \        P                  P                  V\
        P                  P                  VR4      4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)unknown_parentzThe directory 'z#' does not exist. Cannot save to itza.psN)r	   r
   rg  rh  ri  rp  rq  rr  rj  FileNotFoundErrorrl  rm  r   rn  ro  )r   r:   rs  parentr_   s   &    r   $test_save_raises_if_parent_not_found5TestTurtleScreen.test_save_raises_if_parent_not_found  s    ##%((**fWW\\&*:;F#F8+NOC''(9299S>JJ##((ff1MN K	 +* KJ	 +**s$   AC9?C&	C9&C61C99D
	c                   < V ^8  d   QhRR/# rb  r   )re   r[   s   "r   rd  re    s     < < <r   c           	     ^   \         P                  P                  4       p\        P                  ! 4       ;_uu_ 4       p\
        P                  P                  VR 4      p\        VR4      ;_uu_ 4       pVP                  R4       RRR4       RV R2pV P                  \        \        P                  ! V4      4      ;_uu_ 4        \        P                  P!                  W4       RRR4       RRR4       R#   + '       g   i     Lz; i  + '       g   i     L-; i  + '       g   i     R# ; i)some_file.psr   	some textNz
The file 'zY' already exists. To overwrite it use the 'overwrite=True' argument of the save function.)r	   r
   rg  rh  ri  rp  rq  rr  r   r   rj  FileExistsErrorrl  rm  r   rn  ro  )r   r:   rs  	file_pathr   r_   s   &     r   test_save_raises_if_file_found/TestTurtleScreen.test_save_raises_if_file_found  s    ##%((**fV^<Ii%%$ & YK (G G  ''3HH##((; I +*%% IH +**s<   5D1C5	A D D	#D5D DDDD,	c                   < V ^8  d   QhRR/# rb  r   )re   r[   s   "r   rd  re    s     9 94 9r   c           	        \         P                  P                  4       pR VP                  P                  n        \        P                  ! 4       ;_uu_ 4       p\        P                  P                  VR4      p\        VR4      ;_uu_ 4       pVP                  R4       RRR4       \        P                  P                  WRR7       \        V4      ;_uu_ 4       pV P!                  VP#                  4       R 4       RRR4       RRR4       R#   + '       g   i     Lw; i  + '       g   i     L-; i  + '       g   i     R# ; i)
postscriptr  r   r  NT)	overwrite)r	   r
   rg  cvr  return_valuerh  ri  rp  rq  rr  r   r   r   rn  ro  r@   readr   r:   rs  r  r   s   &    r   !test_save_overwrites_if_specified2TestTurtleScreen.test_save_overwrites_if_specified  s    ##%,8		)((**fV^<Ii%%$ & $$V$$GiA  <8 ! +*%% ! +**s<   5D3D	<D3!D 	;D3DD3 D0+D33E	c                   < V ^8  d   QhRR/# rb  r   )re   r[   s   "r   rd  re    s     	9 	94 	9r   c           	        \         P                  P                  4       pR VP                  P                  n        \        P                  ! 4       ;_uu_ 4       p\        P                  P                  VR4      p\        P                  P                  W4       \        V4      ;_uu_ 4       pV P                  VP!                  4       R 4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  r  N)r	   r
   rg  r  r  r  rh  ri  rp  rq  rr  r   rn  ro  r   r@   r  r  s   &    r   	test_saveTestTurtleScreen.test_save  s    ##%,8		)((**fV^<I$$V7iA  <8 !	 +* !	 +**s%   AC0*!C	C0C-(C00D	c                   \         P                  \        P                  P	                  4       R 7      pVP                  4       ;_uu_ 4        V P                  VP                  4       ^ 4       RRR4       R#   + '       g   i     R# ; ir  N)r   rn  r	   r
   	MagicMockno_animationr@   tracerr   ss   & r   test_no_animation_sets_tracer_00TestTurtleScreen.test_no_animation_sets_tracer_0   sT    8==#:#:#<=^^QXXZ+ s   !A66B	c                H   \         P                  \        P                  P	                  4       R 7      pR FV  pVP                  V4       VP                  4       ;_uu_ 4         RRR4       V P                  VP                  4       V4       KX  	  R#   + '       g   i     L6; i)r  N)r   r~      )r   rn  r	   r
   r  r  r  r@   )r   r  r  s   &  r   ,test_no_animation_resets_tracer_to_old_value=TestTurtleScreen.test_no_animation_resets_tracer_to_old_value&  sj    8==#:#:#<=FHHV!! "QXXZ0	  !!s   !BB!c                   \         P                  \        P                  P	                  4       R 7      p\        P                  P	                  4       Vn        VP                  4       ;_uu_ 4        VP
                  P                  4        RRR4       VP
                  P                  4        R#   + '       g   i     L,; ir  )	r   rn  r	   r
   r  updater  assert_not_calledassert_called_oncer  s   & r   &test_no_animation_calls_update_at_exit7TestTurtleScreen.test_no_animation_calls_update_at_exit/  sq    8==#:#:#<===**,^^HH&&( 	##% s   .B--B=	r   N)rT   rU   rV   rW   rt  r{  r  r  r  r  r  r  rX   rY   rZ   s   @r   r`  r`    sO     O OO O< <9 9	9 	9,1& &r   r`  c                   V   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tRtV tR# )
TestTurtlei8  c                    \        4       ;_uu_ 4        \        P                  4       V n        R R R 4       V P                  \        \        P                  RR 4       R #   + '       g   i     L8; i)N_screen)r   r   Turtler   setattrr   s   &r   r   TestTurtle.setUp9  s;    ^^ --/DK  		4@	 ^s   AA-	c                d   V P                  V P                  P                  4       4       V P                  P                  4        V P	                  V P                  P                  4       4       V P                  P                  4        V P                  V P                  P                  4       4       R # r   )rP  r   filling
begin_fillrM  end_fillr   s   &r   test_begin_end_fillTestTurtle.test_begin_end_fill@  sq    ,,./ ++-.,,./r   c                x   V P                  V P                  P                  4       4       V P                  P                  4       ;_uu_ 4        V P	                  V P                  P                  4       4       R R R 4       V P                  V P                  P                  4       4       R #   + '       g   i     L;; ir   )rP  r   r  fillrM  r   s   &r   	test_fillTestTurtle.test_fillG  sr    ,,./[[OODKK//12  ,,./  s   *B))B9	c                F    V P                   P                  4       ;_uu_ 4        V P                  V P                   P                  4       4       \        h  + '       g   i     R # ; i  \         d.    T P                  T P                   P                  4       4        R # i ; ir   )r   r  rM  r  rk  rP  r   s   &r    test_fill_resets_after_exception+TestTurtle.test_fill_resets_after_exceptionN  sp    	4!!## 3 3 56   $##  	4T[[0023	4s(   "A( 0AA%	A( %A( (4B B c                   V P                   P                  4        V P                  V P                   P                  4       4       V P                   P	                  4       ;_uu_ 4        V P                  V P                   P                  4       4       R R R 4       V P                  V P                   P                  4       4       R #   + '       g   i     L;; ir   )r   r  rM  r  r  rP  r   s   &r   test_fill_context_when_filling)TestTurtle.test_fill_context_when_fillingW  s     ++-.[[OODKK//12  ,,./  s   &*CC	c                L   V P                  V P                  P                  4       V P                  P                  4        V P	                  V P                  P                  4       V P                  P                  4        V P                  V P                  P                  4       R # r   )rP  r   _creatingPoly
begin_polyrM  end_polyr   s   &r   test_begin_end_polyTestTurtle.test_begin_end_poly_  sh    223 112223r   c                `   V P                  V P                  P                  4       V P                  P                  4       ;_uu_ 4        V P	                  V P                  P                  4       R R R 4       V P                  V P                  P                  4       R #   + '       g   i     L7; ir   )rP  r   r  polyrM  r   s   &r   	test_polyTestTurtle.test_polyf  si    223[[OODKK556  223  s   &BB-	c                6    V P                   P                  4       ;_uu_ 4        V P                  V P                   P                  4       \        h  + '       g   i     R # ; i  \         d*    T P                  T P                   P                  4        R # i ; ir   )r   r  rM  r  rk  rP  r   s   &r    test_poly_resets_after_exception+TestTurtle.test_poly_resets_after_exceptionm  sj    	8!!## 9 9:   $##  	8T[[667	8s(   "A$ ,AA!	A$ !A$ $0BBc                   V P                   P                  4        V P                  V P                   P                  4       V P                   P	                  4       ;_uu_ 4        V P                  V P                   P                  4       R R R 4       V P                  V P                   P                  4       R #   + '       g   i     L7; ir   )r   r  rM  r  r  rP  r   s   &r   $test_poly_context_when_creating_poly/TestTurtle.test_poly_context_when_creating_polyv  sw     112[[OODKK556  223  s   "&B77C	)r   N)rT   rU   rV   rW   r   r  r  r  r  r  r  r  r  rX   rY   rZ   s   @r   r  r  8  s8     A00404484 4r   r  c                   &   a  ] tR tRt o R tRtV tR# )TestModuleLeveli  c           
     *   ^ RI pRRRRRRRR	R
R/pV Fh  pV P                  VR7      ;_uu_ 4        \        \        V4      pVP	                  V4      pV P                  \        V4      W#,          4       RRR4       Kj  	  R#   + '       g   i     K  ; i)r   Nr   z3(x=None, y=None, *, fill_gap: bool = False) -> Noneundoz()r   z(x, y=None)bgcolorz(*args)penz(pen=None, **pendict))name)inspectr   getattrr   	signaturer@   str)r   r  known_signaturesr  objsigs   &     r   test_all_signatures#TestModuleLevel.test_all_signatures  s     EDMy*
 %D4((fd+'',  S+;+AB )( %(((s   ABBr   N)rT   rU   rV   rW   r  rX   rY   rZ   s   @r   r  r    s     C Cr   r  __main__)rp  r   rl  rh  r	   unittest.mocktestr   test.supportr   r   import_moduler   r   r>   rH   rL   r   TestCaser   r]   rn   rz   r   rJ  r`  r  r  rT   mainr   r   r   <module>r     s   	  	     & " 
	$	$X	..
 Dx(( DNI I s=%x'8'8 s=lfI*H,=,= fIR +x    +FQ&x(( Q&hD4"" D4NCh'' C( zMMO r   