Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_turtle.cpython-311.opt-2.pyc
�

�Ke�2��r�ddlZddlZddlmZddlmZddlmZejd��Zej	Z	dZ
dZdZGd	�d
ej
��ZGd�d��ZGd
�d��ZGd�deej
��ZGd�deej
��ZGd�dej
��Zedkrej��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�&�eZdZd�Zd�Zd�Zd�ZdS)�TurtleConfigTestc��|�tjtj��t	tjd��5}|�|��ddd��n#1swxYwYtjS)N�w)�
addCleanupr�unlink�TESTFN�open�write)�self�cfg_str�fs   �:/usr/local/apps/python3/lib/python3.11/test/test_turtle.py�get_cfg_filezTurtleConfigTest.get_cfg_file7s������	�(�)�*:�;�;�;�
�)�"�C�
(�
(�	�A�
�G�G�G����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	���s�A'�'A+�.A+c��|�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�?�heightg�������?�	canvwidth���
canvheight���	leftright�d�	topbottom�mode�world�	colormode��delay�undobuffersize�'�shape�circle�pencolor�red�	fillcolor�blue�
resizemode�auto�visible�language�english�
exampleturtler�screenzPython Turtle Graphics�)�
examplescreen�title�
using_IDLE)r�test_configr�config_dict�assertEqual�r�cfg_name�
parsed_cfg�expecteds    r�test_config_dictz!TurtleConfigTest.test_config_dict=s/���$�$�[�1�1���'�'��1�1�
�
��d�
��s�
�
�#�
�
�#�	
�

��
�
��

�
�G�
�
��
�
�S�
�
�e�
�
�X�
�
��
�
�&�
�
�6�
�
��
� 
�	�!
�"
�X�#
�$&�-��)
�
�
��.	
����X�.�.�.�.�.�c��|�t��}t�|��}dddddd�}|�||��dS)Nr)r+Fr0)r(r*r.r/r6)r�test_config_tworr8r9r:s    r�&test_partial_config_dict_with_commentsz7TurtleConfigTest.test_partial_config_dict_with_comments[sc���$�$�_�5�5���'�'��1�1�
����!��
�
��	
����X�.�.�.�.�.r?c�v�|�t��}tj��5}t�|��}ddd��n#1swxYwY|���}|�d|��|�d|��|�|ddd���dS)NzBad line in config-file zfillcolor: bluer)F)r(r.)	r�invalid_test_configr�captured_stdoutrr8�getvalue�assertInr9)rr;�stdoutr<�err_msgs     r�test_config_dict_invalidz)TurtleConfigTest.test_config_dict_invalidjs����$�$�%8�9�9��
�
$�
&�
&�	6�&��+�+�H�5�5�J�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6��/�/�#�#���
�
�0�'�:�:�:��
�
�'��1�1�1�������&
�&
�	�	�	�	�	s�A�A�AN)�__name__�
__module__�__qualname__rr>rBrJ�r?rrr5sP������ � � �/�/�/�<
/�
/�
/�����r?rc��eZdZd�ZdS)�VectorComparisonMixinc��t|��t|��kr|�d��tt||����D]3\}\}}|�||d�|������4dS)NzTuples are not of equal sizezvalues at index {} do not match)�msg)�len�fail�	enumerate�zip�assertAlmostEqual�format)r�vec1�vec2�idx�i�js      r�assertVectorsAlmostEqualz.VectorComparisonMixin.assertVectorsAlmostEqual~s����t�9�9��D�	�	�!�!��I�I�4�5�5�5�$�S��t�_�_�5�5�	I�	I�K�C��!�Q��"�"��1�;�B�B�3�G�G�
#�
I�
I�
I�
I�	I�	Ir?N)rKrLrMr^rNr?rrPrP|s(������I�I�I�I�Ir?rPc��eZdZd�Zd�ZdS)�
Multiplierc��d|��S)N�M*rN�r�others  r�__mul__zMultiplier.__mul__�s���E�|�|�r?c��|�d�S)N�*MrNrcs  r�__rmul__zMultiplier.__rmul__�s���|�|�|�r?N)rKrLrMrerhrNr?rr`r`�s2�������������r?r`c�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�	TestVec2Dc��tdd��}|�|dd��|�|dd��|�|t��|�tt��|�ttd��|�ttd��|�tt|��|�ttddd��dS)N��?�r��rrn)�Vec2Dr9�assertIsInstance�assertRaises�	TypeError�r�vecs  r�test_constructorzTestVec2D.test_constructor�s����C��m�m������Q���%�%�%�����Q���#�#�#����c�5�)�)�)����)�U�+�+�+����)�U�A�.�.�.����)�U�F�3�3�3����)�U�C�0�0�0����)�U�A�q�!�4�4�4�4�4r?c�l�tdd��}|�t|��d��dS)Ng��/�$�?gX9��v��?z(0.57,1.23))rpr9�reprrts  r�	test_reprzTestVec2D.test_repr�s3���E�5�!�!������c���M�2�2�2�2�2r?c�v�tdd��}tdd��}tdd��}|�||��|�|t|����|�t|��|��|�||��|�||��dS)Nrrn��*)rpr9�tuple�assertNotEqual)rrYrZ�vec3s    r�
test_equalityzTestVec2D.test_equality�s����Q��{�{���S�!�}�}���R��|�|������t�$�$�$�����u�T�{�{�+�+�+�����t���d�+�+�+����D�$�'�'�'����D�$�'�'�'�'�'r?c�v�tdd��}ttjdz��D]�}|�|���5tj||���}tj|��}|�||��|�|t��ddd��n#1swxYwY��dS)Nrlrmrn)�proto)�protocol)	rp�range�pickle�HIGHEST_PROTOCOL�subTest�dumps�loadsr9rq)rrur��pickled�	unpickleds     r�
test_picklingzTestVec2D.test_pickling�s����C��m�m���6�2�Q�6�7�7�	8�	8�E����E��*�*�
8�
8� �,�s�U�;�;�;��"�L��1�1�	�� � ��C�0�0�0��%�%�i��7�7�7�	
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8����
8�
8�
8�
8��	8�	8s�AB-�-B1	�4B1	c��|D]u}|�|���5|\\}}}t|�}t|�}|||��}	t|�}|�|	|��ddd��n#1swxYwY�vdS)N��case)r�rpr^)
r�
test_cases�lambda_operator�	test_case�first�secondr=�op1�op2�results
          r�_assert_arithmetic_casesz"TestVec2D._assert_arithmetic_cases�s���#�	@�	@�I����9��-�-�
@�
@�.7�+��%��(��U�m���V�n��(���c�2�2�� �(�+���-�-�f�h�?�?�?�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@��	@�	@s�AA-�-A1	�4A1	c�<�gd�}|�|d���dS)N))��rr�rnrn)��?r�))����r)rmrm)rnrm)))g�?rr�)�@rnc��||zS�NrN��x�ys  r�<lambda>z0TestVec2D.test_vector_addition.<locals>.<lambda>��
��q�1�u�r?�r��rr�s  r�test_vector_additionzTestVec2D.test_vector_addition�s5��
�
�
�
�	
�%�%�j�2D�2D�E�E�E�E�Er?c�<�ddg}|�|d���dS)N)r�)r�r�)))g@%@��?)�
r)g�?r�c��||z
Sr�rNr�s  rr�z3TestVec2D.test_vector_subtraction.<locals>.<lambda>�r�r?r�r�s  r�test_vector_subtractionz!TestVec2D.test_vector_subtraction�s3��
)�8�
�
�
	
�%�%�j�2D�2D�E�E�E�E�Er?c�N�tdd��}tdd��}||z}d}|�||��tdd��}tdd��}|�|dz|��|�d|z|��|�|dz|��|�d|z|��t��}|�||zt|d�d	�|d
�d	�����|�||zd|����dS)Nr�rl��#��g$@rrgrnrb)rprWr^r`r9)rrYrZ�answerr=ru�Ms       r�test_vector_multiplyzTestVec2D.test_vector_multiply�s)���R��}�}���S�!�}�}�����������v�x�0�0�0��C��m�m����B�<�<���%�%�c�B�h��9�9�9��%�%�b�3�h��9�9�9��%�%�c�D�j�(�;�;�;��%�%�d�S�j�(�;�;�;��L�L������q��%�3�q�6�
�
�
�#�a�&�}�}�}�"E�"E�F�F�F�����S��*�s�*�*�-�-�-�-�-r?c�X�tdd��}d}|�||��dS)Nr����)r�r�)rpr^)rrur=s   r�test_vector_negativezTestVec2D.test_vector_negative�s2���B��n�n�����%�%�s�d�H�5�5�5�5�5r?c�,�|�ttdd����d��|�ttdd����d��|�ttdd����d��dS)N��r�rr�g@)rW�absrpr9�rs r�
test_distancezTestVec2D.test_distance�sz�����s�5��A�;�;�/�/��4�4�4�����U�1�a�[�[�)�)�1�-�-�-����s�5��a�=�=�1�1�3�7�7�7�7�7r?c���gd�}|D]l}|�|���5|\\}}}t|�}|�|��}|�||��ddd��n#1swxYwY�mdS)N)))r�rr�))ro�Zr�))roi�����rnr))r��r�))r��hr�r�)r�rp�rotater^)r�casesr�ru�rotr=�gots       r�test_rotatezTestVec2D.test_rotate�s���
�
�
���	=�	=�D����4��(�(�
=�
=�'+�$�
��c�H��S�k���j�j��o�o���-�-�c�8�<�<�<�	
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��	=�	=s�=A(�(A,	�/A,	N)rKrLrMrvryr�r�r�r�r�r�r�r�r�rNr?rrjrj�s�������
5�
5�
5�3�3�3�(�(�(�8�8�8�
@�
@�
@�F�F�F�F�F�F�.�.�.�&6�6�6�
8�8�8�
=�=�=�=�=r?rjc�t�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�ZdS)�TestTNavigatorc�B�t���|_dSr�)r�
TNavigator�navr�s r�setUpzTestTNavigator.setUps���$�$�&�&����r?c���|j�dd��|�|j���d��|�|j���d��dS�Nr���)r��gotorW�xcor�ycorr�s r�	test_gotozTestTNavigator.test_goto	s^����
�
�c�4� � � ����t�x�}�}����4�4�4����t�x�}�}����5�5�5�5�5r?c��|�|j���|jj��|j�dd��|�|j���|jj��dSr�)r9r��pos�	_positionr�r�s r�test_poszTestTNavigator.test_possh�������������);�<�<�<���
�
�c�4� � � ������������);�<�<�<�<�<r?c��|�|jjd��|j�d��|�|jjd��dS)N�r�rr�)r{r�)r9r��_orient�leftr^r�s r�	test_leftzTestTNavigator.test_leftsR�������)�8�4�4�4���
�
�b�����%�%�d�h�&6�
�C�C�C�C�Cr?c��|�|jjd��|j�d��|�|jjd��dS)Nr�r�)rg�)r9r�r��rightr^r�s r�
test_rightzTestTNavigator.test_rightsR�������)�8�4�4�4�����r�����%�%�d�h�&6�	�B�B�B�B�Br?c���|j�dd��|�|j���d��|�|j���d��|j���|�|j���d��|�|j���d��dS)Nrr�r)r�r�rWr�r��resetr�s r�
test_resetzTestTNavigator.test_resets�����
�
�c�4� � � ����t�x�}�}����4�4�4����t�x�}�}����5�5�5�����������t�x�}�}����2�2�2����t�x�}�}����2�2�2�2�2r?c��|j�d��tdd��}|�|j���|��|j���|j�d��|j�d��tdd��}|�|j���|��|�t|jjd��dS)N�rr��
skldjfldsk)	r��forwardrpr^�positionr�r�rrrs�rr=s  r�test_forwardzTestTNavigator.test_forward%s�������������a�=�=���%�%�d�h�&7�&7�&9�&9�8�D�D�D����������
�
�b��������������C�=�=���%�%�d�h�&7�&7�&9�&9�8�D�D�D����)�T�X�%5�|�D�D�D�D�Dr?c���|j�d��tdd��}|�|j���|��|j���|j�d��|j�d��tdd��}|�|j���|��dS)Nr�8���rr�)r��backrpr^r�r�r�r�s  r�test_backwardszTestTNavigator.test_backwards2s�����
�
�c������q�>�>���%�%�d�h�&7�&7�&9�&9�8�D�D�D������������r������
�
�c������C�=�=���%�%�d�h�&7�&7�&9�&9�8�D�D�D�D�Dr?c��|j�d��d}|�|j�t	dd����|��dS)Nrr)r�r�rW�distancerpr�s  rr�zTestTNavigator.test_distance=sQ���������������t�x�0�0��q����<�<�h�G�G�G�G�Gr?c��|j�d��|�|j���d��|j���|�|j���d��|j���|�|j���d��dS)Nr�g�m U�!�?)r�r�rW�heading�radians�degreesr�s r�test_radians_and_degreesz'TestTNavigator.test_radians_and_degreesBs�����
�
�b�������t�x�/�/�1�1�2�6�6�6�����������t�x�/�/�1�1�:�>�>�>�����������t�x�/�/�1�1�2�6�6�6�6�6r?c	�Z�gd�}|D]�\\}}}|�|j�||��|��|�|j�||f��|��|�|j�t||����|����dS)N)))rrr{))rrg�F@))rrg�V@))r�rg�`@))r�rg�f@))r�r�g l@))rr�g�p@))rr�g�s@)r9r��towardsrp)r�coordinatesr�r�r=s     r�test_towardszTestTNavigator.test_towardsJs���

�

�

��!,�	F�	F��F�Q��H����T�X�-�-�a��3�3�X�>�>�>����T�X�-�-�q�!�f�5�5�x�@�@�@����T�X�-�-�e�A�q�k�k�:�:�H�E�E�E�E�	F�	Fr?c�(�|j�d��|�|j���d��|j�d��|�|j���d��|j�d��|�|j���d��|�t|jjd��|j���gd�}t|��dz}|D]}|j�|���|�	|j���|��|j���dt|��z
dz}|D]}|j�|���|�	|j���|��|j���gd	�}d
}|D]}|d
kr(|j�t|����n|j�|��||z
}|�|j���|dz����dS)Nr��-�g�������?g����̬`@�sdkfjdsf)r����,r�)
r�riV���ri.���gfffff&A@g�����I�r�g{�G�=�rr)r�r�rWr�r�rrrsr��sumr9r�)r�	rotationsr��num�
sum_so_fars     r�test_headingzTestTNavigator.test_heading]s]����
�
�b�������t�x�/�/�1�1�2�6�6�6���
�
�b�������t�x�/�/�1�1�3�7�7�7�����s�������t�x�/�/�1�1�5�9�9�9����)�T�X�^�Z�@�@�@��������&�&�&�	��Y���#�%���	�	�C��H�M�M�#����������)�)�+�+�V�4�4�4���������c�)�n�n�$��+���	 �	 �C��H�N�N�3����������)�)�+�+�V�4�4�4��������L�L�L�	��
��	I�	I�C��Q�w�w�����s�3�x�x�(�(�(�(���
�
�c�"�"�"��#��J��"�"�4�8�#3�#3�#5�#5�z�C�7G�H�H�H�H�
	I�	Ir?c�>�|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��
setheadingrWr�r�s r�test_setheadingzTestTNavigator.test_setheadings�������F�#�#�#����t�x�/�/�1�1�6�:�:�:�����G�$�$�$����t�x�/�/�1�1�?�C�C�C�����H�%�%�%����t�x�/�/�1�1�3C�D�D�D�����F�#�#�#����t�x�/�/�1�1�:�>�>�>�>�>r?c��|j�d��|j�d��|j�d��|�|j���d��dS)Nrr�r�)gY@gi�)r�r�r�r^r�r�s r�test_positionszTestTNavigator.test_positions�sh������������
�
�b�������������%�%�d�h�l�l�n�n�o�F�F�F�F�Fr?c���|j�d��|j�d��|�|j���d��dS)N�������Zd;�Y�A)rr)r��setx�setyr^r�r�s r�test_setx_and_setyz!TestTNavigator.test_setx_and_sety�sQ����
�
�j�!�!�!���
�
�j�!�!�!��%�%�d�h�l�l�n�n�6N�O�O�O�O�Or?c�T�|j�d��|j�d��|j���|�|j���d��|�|j���d��dS)Nr�i`y��r�r)r�r�r��homer^r�rWr�r�s r�	test_homezTestTNavigator.test_home�s�����
�
�b���������!�!�!���
�
�����%�%�d�h�l�l�n�n�e�<�<�<����t�x�/�/�1�1�1�5�5�5�5�5r?c���|�|j�dd��d��tdd��}|�|j�|��d��t���}|�d��|�d��|�|j�|��d��dS)	Nr��(�2g)\��(�?g����MbP?g�-�)�?r�r%)rWr�r�rprr�r�r�)rru�another_turtles   r�test_distance_methodz#TestTNavigator.test_distance_method�s������t�x�0�0��R�8�8�"�=�=�=��D�$�������t�x�0�0��5�5�7J�K�K�K��*�*�,�,�����B�������u�%�%�%����t�x�0�0��@�@�%�H�H�H�H�Hr?N)rKrLrMr�r�r�r�r�r�r�r�r�r�r�rrrrrrrNr?rr�r�s4������'�'�'�6�6�6�
=�=�=�
D�D�D�
C�C�C�
3�3�3�E�E�E�	E�	E�	E�H�H�H�
7�7�7�F�F�F�& I� I� I�D?�?�?�G�G�G�P�P�P�
6�6�6�I�I�I�I�Ir?r�c��eZdZd�Zd�ZdS)�TestTPenc�r�t���}|�|�����|���|�|�����|���|�|�����dSr�)r�TPen�
assertTrue�isdown�penup�assertFalse�pendown�r�tpens  r�test_pendown_and_penupzTestTPen.test_pendown_and_penup�s���{�{�}�}��������
�
�&�&�&��
�
������������'�'�'�������������
�
�&�&�&�&�&r?c�r�t���}|�|�����|���|�|�����|���|�|�����dSr�)rr r!�	isvisible�
hideturtler$�
showturtler&s  r�(test_showturtle_hideturtle_and_isvisiblez1TestTPen.test_showturtle_hideturtle_and_isvisible�s����{�{�}�}��������(�(�)�)�)�������������)�)�*�*�*�������������(�(�)�)�)�)�)r?N)rKrLrMr(r-rNr?rrr�s2������'�'�'�*�*�*�*�*r?r�__main__)r��unittest�testr�test.supportrr�
import_modulerrpr7rArD�TestCaserrPr`rjr�rrK�mainrNr?r�<module>r5s���
�
�
�
�����������&�&�&�&�&�&�"�"�"�"�"�"�
%��	$�X�	.�	.�������.
����D�D�D�D�D�x�(�D�D�D�NI�I�I�I�I�I�I�I���������s=�s=�s=�s=�s=�%�x�'8�s=�s=�s=�l^I�^I�^I�^I�^I�*�H�,=�^I�^I�^I�B*�*�*�*�*�x� �*�*�*�.�z����H�M�O�O�O�O�O��r?