HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/__pycache__/test_turtle.cpython-310.opt-2.pyc
o

�i�2�@s�ddlZddlZddlmZddlmZddlmZe�d�Zej	Z	dZ
dZdZGd	d
�d
ej
�ZGdd�d�ZGd
d�d�ZGdd�deej
�ZGdd�deej
�ZGdd�dej
�Zedkrfe��dSdS)�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@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TurtleConfigTestcCsP|�tjtj�ttjd��}|�|�Wd�tjS1s wYtjS)N�w)Z
addCleanupr�unlinkZTESTFN�open�write)�selfZcfg_str�f�r
�-/usr/local/lib/python3.10/test/test_turtle.py�get_cfg_file7s
��zTurtleConfigTest.get_cfg_filecCs�|�t�}t�|�}idd�dd�dd�dd�d	d
�dd
�dd
�dd�dd
�dd�dd�dd�dd�dd�dd�dd�dd�d d!d"d#��}|�||�dS)$N�widthg�?Zheightg�������?Z	canvwidth��Z
canvheight��Z	leftright�dZ	topbottom�modeZworldZ	colormode��delayZundobuffersize�'�shapeZcircle�pencolor�red�	fillcolor�blueZ
resizemode�auto�visible�language�englishZ
exampleturtlerZscreenzPython Turtle Graphics�)Z
examplescreen�title�
using_IDLE)r�test_configr�config_dict�assertEqual�r�cfg_name�
parsed_cfg�expectedr
r
r�test_config_dict=sT

��������	�
���
������z!TurtleConfigTest.test_config_dictcCs4|�t�}t�|�}dddddd�}|�||�dS)NrrFr )rrrrr#)r�test_config_tworr%r&r'r
r
r�&test_partial_config_dict_with_comments[s

�z7TurtleConfigTest.test_partial_config_dict_with_commentscCsr|�t�}t���
}t�|�}Wd�n1swY|��}|�d|�|�d|�|�|ddd��dS)NzBad line in config-file zfillcolor: bluerF)rr)	r�invalid_test_configrZcaptured_stdoutrr%�getvalueZassertInr&)rr(�stdoutr)�err_msgr
r
r�test_config_dict_invalidjs

��z)TurtleConfigTest.test_config_dict_invalidN)�__name__�
__module__�__qualname__rr+r-r2r
r
r
rr5s
rc@seZdZdd�ZdS)�VectorComparisonMixincCsPt|�t|�kr
|�d�tt||��D]\}\}}|j||d�|�d�qdS)NzTuples are not of equal sizezvalues at index {} do not match)�msg)�lenZfail�	enumerate�zip�assertAlmostEqual�format)r�vec1�vec2�idx�i�jr
r
r�assertVectorsAlmostEqual~s
��z.VectorComparisonMixin.assertVectorsAlmostEqualN)r3r4r5rBr
r
r
rr6|sr6c@�eZdZdd�Zdd�ZdS)�
MultipliercCs
d|��S)N�M*r
�r�otherr
r
r�__mul__��
zMultiplier.__mul__cCs
|�d�S)N�*Mr
rFr
r
r�__rmul__�rIzMultiplier.__rmul__N)r3r4r5rHrKr
r
r
rrD�srDc@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�	TestVec2DcCs�tdd�}|�|dd�|�|dd�|�|t�|�tt�|�ttd�|�ttd�|�tt|�|�ttddd�dS)N��?�r��rrO)�Vec2Dr&�assertIsInstance�assertRaises�	TypeError�r�vecr
r
r�test_constructor�s
zTestVec2D.test_constructorcCstdd�}|�t|�d�dS)Ng��/�$�?gX9��v��?z(0.57,1.23))rQr&�reprrUr
r
r�	test_repr�s
zTestVec2D.test_reprcCsftdd�}tdd�}tdd�}|�||�|�|t|��|�t|�|�|�||�|�||�dS)NrrO��*)rQr&�tupleZassertNotEqual)rr=r>Zvec3r
r
r�
test_equality�s


zTestVec2D.test_equalityc	Cs~tdd�}ttjd�D]0}|j|d�� tj||d�}t�|�}|�||�|�|t�Wd�n1s7wYqdS)NrMrNrO)�proto)�protocol)	rQ�range�pickle�HIGHEST_PROTOCOL�subTest�dumps�loadsr&rR)rrVr^ZpickledZ	unpickledr
r
r�
test_pickling�s

���zTestVec2D.test_picklingc
	Cst|D]5}|j|d��%|\\}}}t|�}t|�}|||�}	t|�}|�|	|�Wd�n1s2wYqdS)N��case)rcrQrB)
r�
test_casesZlambda_operatorZ	test_case�first�secondr*Zop1Zop2�resultr
r
r�_assert_arithmetic_cases�s
���z"TestVec2D._assert_arithmetic_casescCsgd�}|�|dd��dS)N))��rr�rOrO)��?rq))����r)rNrN)rOrN)))g�?rrp)�@rOcSs||S�Nr
��x�yr
r
r�<lambda>��z0TestVec2D.test_vector_addition.<locals>.<lambda>�rm�rrir
r
r�test_vector_addition�szTestVec2D.test_vector_additioncCsddg}|�|dd��dS)N)rn)rsrs)))g@%@��?)�
r)g�?r~cSs||Srur
rvr
r
rry�rzz3TestVec2D.test_vector_subtraction.<locals>.<lambda>r{r|r
r
r�test_vector_subtraction�s�z!TestVec2D.test_vector_subtractioncCs�tdd�}tdd�}||}d}|�||�tdd�}tdd�}|�|d|�|�d||�|�|d|�|�d||�t�}|�||t|d�d	�|d
�d	���|�||d|���dS)NrrM��#��g$@rrJrOrE)rQr;rBrDr&)rr=r>Zanswerr*rV�Mr
r
r�test_vector_multiply�s



*zTestVec2D.test_vector_multiplycCs tdd�}d}|�||�dS)Nr���)r�r)rQrB)rrVr*r
r
r�test_vector_negative�s
zTestVec2D.test_vector_negativecCsF|�ttdd��d�|�ttdd��d�|�ttdd��d�dS)N��rrrtg@)r;�absrQr&�rr
r
r�
test_distance�szTestVec2D.test_distancec	Cslgd�}|D]-}|j|d��|\\}}}t|�}|�|�}|�||�Wd�n1s.wYqdS)N)))rorro))rP�Zrr))rPi�����rOr))r��rr))r��hr�rg)rcrQ�rotaterB)r�casesrhrVZrotr*Zgotr
r
r�test_rotate�s
���zTestVec2D.test_rotateN)r3r4r5rWrYr]rfrmr}r�r�r�r�r�r
r
r
rrL�s
	
	rLc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#S)$�TestTNavigatorcCst��|_dSru)r�
TNavigator�navr�r
r
r�setUpszTestTNavigator.setUpcCs6|j�dd�|�|j��d�|�|j��d�dS�Nr���)r��gotor;�xcor�ycorr�r
r
r�	test_goto	szTestTNavigator.test_gotocCs>|�|j��|jj�|j�dd�|�|j��|jj�dSr�)r&r��posZ	_positionr�r�r
r
r�test_posszTestTNavigator.test_poscC�0|�|jjd�|j�d�|�|jjd�dS)N�rqrr�)rZrq)r&r��_orient�leftrBr�r
r
r�	test_left�zTestTNavigator.test_leftcCr�)Nr�r�)rg�)r&r�r��rightrBr�r
r
r�
test_rightr�zTestTNavigator.test_rightcCsd|j�dd�|�|j��d�|�|j��d�|j��|�|j��d�|�|j��d�dS)Nrr�r)r�r�r;r�r��resetr�r
r
r�
test_resets
zTestTNavigator.test_resetcCs||j�d�tdd�}|�|j��|�|j��|j�d�|j�d�tdd�}|�|j��|�|�t|jjd�dS)N�rr�Z
skldjfldsk)	r��forwardrQrB�positionr�r�rSrT�rr*r
r
r�test_forward%s


zTestTNavigator.test_forwardcCsj|j�d�tdd�}|�|j��|�|j��|j�d�|j�d�tdd�}|�|j��|�dS)Nr�8���rr�)r�ZbackrQrBr�r�r�r�r
r
r�test_backwards2s


zTestTNavigator.test_backwardscCs.|j�d�d}|�|j�tdd��|�dS)Nrr)r�r�r;�distancerQr�r
r
rr�=szTestTNavigator.test_distancecCsZ|j�d�|�|j��d�|j��|�|j��d�|j��|�|j��d�dS)Nr�g�m U�!�?)r�r�r;�heading�radians�degreesr�r
r
r�test_radians_and_degreesBs

z'TestTNavigator.test_radians_and_degreescCsfgd�}|D]*\\}}}|�|j�||�|�|�|j�||f�|�|�|j�t||��|�qdS)N)))rrrZ))rrg�F@))rrg�V@))r�rg�`@))r�rg�f@))r�r�g l@))rr�g�p@))rr�g�s@)r&r�ZtowardsrQ)rZcoordinatesrwrxr*r
r
r�test_towardsJs�zTestTNavigator.test_towardscCs\|j�d�|�|j��d�|j�d�|�|j��d�|j�d�|�|j��d�|�t|jjd�|j��gd�}t|�d}|D]}|j�|�qG|�	|j��|�|j��dt|�d}|D]}|j�|�qh|�	|j��|�|j��gd	�}d
}|D]$}|d
kr�|j�t
|��n|j�|�||7}|�|j��|d�q�dS)Nr��-�g�������?g����̬`@Zsdkfjdsf)r���,r�)
rr�iV���r�i.���gfffff&A@g�����I�r�g{�G�=�rr)r�r�r;r�r�rSrTr��sumr&r�)rZ	rotationsrl�numZ
sum_so_farr
r
r�test_heading]s8


�zTestTNavigator.test_headingcCs||j�d�|�|j��d�|j�d�|�|j��d�|j�d�|�|j��d�|j�d�|�|j��d�dS)Ng�G�z�Y@g��Q��^�gp=
ף�m@g��Q�B��gףp=�S@i��x)r�Z
setheadingr;r�r�r
r
r�test_setheadingszTestTNavigator.test_setheadingcCs:|j�d�|j�d�|j�d�|�|j��d�dS)Nrr�r�)gY@gi�)r�r�r�rBr�r�r
r
r�test_positions�szTestTNavigator.test_positionscCs.|j�d�|j�d�|�|j��d�dS)N�������Zd;�Y�A)r�r�)r�ZsetxZsetyrBr�r�r
r
r�test_setx_and_sety�sz!TestTNavigator.test_setx_and_setycCsJ|j�d�|j�d�|j��|�|j��d�|�|j��d�dS)Nr�i`y��ror)r�r�r��homerBr�r;r�r�r
r
r�	test_home�s

zTestTNavigator.test_homecCsh|�|j�dd�d�tdd�}|�|j�|�d�t��}|�d�|�d�|�|j�|�d�dS)	Nr��(�2g)\��(�?g����MbP?g�-�)�?r�r)r;r�r�rQrr�r�r�)rrVZanother_turtler
r
r�test_distance_method�s


z#TestTNavigator.test_distance_methodN)r3r4r5r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr�s$
"
r�c@rC)�TestTPencC�Ft��}|�|���|��|�|���|��|�|���dSru)r�TPen�
assertTrueZisdownZpenup�assertFalseZpendown�rZtpenr
r
r�test_pendown_and_penup��zTestTPen.test_pendown_and_penupcCr�ru)rr�r�Z	isvisibleZ
hideturtler�Z
showturtler�r
r
r�(test_showturtle_hideturtle_and_isvisible�r�z1TestTPen.test_showturtle_hideturtle_and_isvisibleN)r3r4r5r�r�r
r
r
rr��s
r��__main__)raZunittest�testrZtest.supportrr�
import_modulerrQr$r,r.ZTestCaserr6rDrLr�r�r3�mainr
r
r
r�<module>s(
G		v"�