Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.11/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.11/test/__pycache__/test_curses.cpython-311.opt-1.pyc

�

SԚg���V�ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZm
Z
ddlmZed��ed��Zed��ed��	ddlZn#e$rYnwxYwd�Zd�Zd	�Zej�d
��ZdZejepedkd
ez��ejejdkd��Gd�dej������ZGd�dej��ZGd�dej��Zd�Z e!dkrej"��dSdS)�N)�requires�verbose�SaveSignals�cpython_only�check_disallow_instantiation�MISSING_C_DOCSTRINGS)�
import_module�curseszcurses.asciizcurses.textpadc�X�tjtt|��d|z��S)Nzrequires curses.%s)�unittest�
skipUnless�hasattrr
)�names �-/usr/local/lib/python3.11/test/test_curses.py�requires_curses_funcrs+����w�v�t�4�4�3�d�:�<�<�<�c����fd�}|S)Nc�J���tj�����fd���}|S)Nc�x��t|j���stjd�z����|g|�Ri|��dS)Nzrequires curses.window.%s)r�stdscrr�SkipTest)�self�args�kwargsr�tests   ��r�wrappedz:requires_curses_window_meth.<locals>.deco.<locals>.wrapped!sU����4�;��-�-�
L��'�(C�d�(J�K�K�K��D��'��'�'�'��'�'�'�'�'r��	functools�wraps)rrrs` �r�decoz)requires_curses_window_meth.<locals>.deco s>����	���	�	�	(�	(�	(�	(�	(�
�	�	(��r�)rr s` r�requires_curses_window_methr"s#���������Krc�F��tj����fd���}|S)Nc���tj��s|�d��tj���|g|�Ri|��dS)N�requires colors support)r
�
has_colors�skipTest�start_color)rrrrs   �rrz requires_colors.<locals>.wrapped+s\���� �"�"�	5��M�M�3�4�4�4��������T�#�D�#�#�#�F�#�#�#�#�#rr)rrs` r�requires_colorsr)*s8����_�T���$�$�$�$���$�
�Nr�TERMi��unknownz*$TERM=%r, calling initscr() may cause exit�cygwinz!cygwin's curses mostly just hangsc�j�eZdZed���Zd�Zed��d���Zed��d���Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zed��d���Zd�Zd�Zd�Zed��d���Zed��d���Zd�Zd�Zd�Zd �Z d!�Z!d"�Z"d#�Z#d$�Z$d%�Z%ed&��d'���Z&d(�Z'd)�Z(d*�Z)d+�Z*ed,��d-���Z+ed.��d/���Z,ed0��d1���Z-d2�Z.d3�Z/d4�Z0d5�Z1d6�Z2e3d7���Z4e3d8���Z5d9�Z6e3d:���Z7e3d;���Z8e3d<���Z9ed=��e3d>�����Z:d?�Z;ed@��dA���Z<edB��dC���Z=edD��dE���Z>edD��dF���Z?edD��dG���Z@eAedD��dH�����ZBedI��dJ���ZCedK��dL���ZDedM��dN���ZEdO�ZFdP�ZGedQ��eHjIeJeKdRdS��dTkdU��dV�����ZLdW�ZMeHjIeNdX��dY���ZOed��dZ���ZPd[S)\�
TestCursesc���tr$tdt��tjd���tj���}tj|���dS)NzTERM=T��file�flush)�fd)	r�print�term�sys�stderr�
__stdout__�filenor
�	setupterm)�cls�	stdout_fds  r�
setUpClasszTestCurses.setUpClass=sV���	?��.�$�.�.�s�z��>�>�>�>��N�)�)�+�+�	���I�&�&�&�&�&�&rc�L�d|_tj|_tj���}tj����stj|��}|�t
j|��|�t
j	||��tj
���rtj
}tj
|_nb	tddd���}n-#t$r tjdd���}d|_YnwxYw|�|j��d|_tj	|���|��t��|_|j���|�|jj��t&rY|j�Rtj���tj���t/|jd���t1j��|_|jrQt1j��|�t0j��|�t0j��|j���dS)	NTz/dev/tty�wbr)�	buffering)�moder@Fr0)�isattyr6r8�outputr9�os�dup�
addCleanup�close�dup2�
__stderr__�open�OSError�tempfile�
TemporaryFiler�save_signals�save�restorerr7r2�stdoutr4r
�initscrr�savetty�endwin�resetty�erase)rr<�dup_fd�tmps    r�setUpzTestCurses.setUpFs������n����N�)�)�+�+�	��~�$�$�&�&�	-��V�I�&�&�F��O�O�B�H�f�-�-�-��O�O�B�G�V�Y�7�7�7��~�$�$�&�&�
#��n��!�n����	(��z�4�1�=�=�=�C�C���(�(�(�
#�0�d�a�H�H�H�C�"'�D�K�K�K�
(��������	�*�*�*�"����G�C�J�J�L�L�)�,�,�,�'�M�M������� � � �����)�1�2�2�2��	0�t�{�.��J�������J�������t�{�$�/�/�/�/��n�&�&����;�	,��N�����O�O�F�M�*�*�*��O�O�F�N�+�+�+���������s�(C;�;'D%�$D%�filterc�,�tj��dS�N)r
rZ�rs r�test_filterzTestCurses.test_filtervs��	�
�����r�use_envc�V�tjd��tjd��dS)NFT)r
r_r]s r�test_use_envzTestCurses.test_use_env|s*��	��u������t�����rc���tjdd��}|�|���d��|�|���d��|�|���d��tjdddd��}|�|���d��|�|���d��|�|���d	��|�d
d��}|�|���d��|�|���d
��|�|���d��|�ddd
d��}|�|���d��|�|���d
��|�|���d��|�dd
��}|�|���d��|�|���d��|�|���d��|�dddd
��}|�|���d��|�|���d��|�|���d��|�dd��|�|���d��|�|���d��|�|���d	��|�|���d��|�|���d
��|�|���d��|�|���d��|�|���d��|�|���d��|�	dd��|�|���d��|�|���d��|�|���d��|�	dd��|�|���d��|�|���d��|�|���d��dS)N��
�rr����rg)rcrd��)rirc)rdrh��)rjrk��ri)�	�
)��)rirj)rq���)rsrtrrm)rrm)rirm)
r
�newwin�assertEqual�getbegyx�getparyx�getmaxyx�subwin�derwin�mvwin�mvderwin)r�win�win2�win3s    r�test_create_windowszTestCurses.test_create_windows�s����m�A�r�"�"�����������0�0�0����������2�2�2����������1�1�1��m�B��A�q�)�)�����������0�0�0����������2�2�2����������2�2�2��z�z�!�Q������������&�1�1�1���������&�1�1�1���������'�2�2�2��z�z�!�R��A�&�&����������&�1�1�1���������&�1�1�1���������'�2�2�2��z�z�!�Q������������&�1�1�1���������&�1�1�1���������'�2�2�2��z�z�!�R��A�&�&����������&�1�1�1���������&�1�1�1���������'�2�2�2��	�	�!�Q�������������0�0�0����������2�2�2����������2�2�2���������&�1�1�1���������&�1�1�1���������'�2�2�2���������&�1�1�1���������&�1�1�1���������'�2�2�2��
�
�a�������������&�1�1�1���������&�1�1�1���������'�2�2�2��
�
�a�������������&�1�1�1���������&�1�1�1���������'�2�2�2�2�2rc��|j}|�dddd��}|�dd��|�dd��|�|���d��|�|���d��|���|�|���d	��dS)
Nrdrhrircrmrprl)rirp)rprn)rrz�moverv�getyx�	cursyncup)rrr~s   r�test_move_cursorzTestCurses.test_move_cursor�s�������m�m�B��A�q�)�)�����A�q��������A�������������0�0�0���������f�-�-�-��
�
�������������0�0�0�0�0rc�(�|j}|���|�|���d��|���|�|���d��|���|�|���d��|���|�|���d��|���|�|���d��|�dd��|�|�d��d��|�|�d��d��|�|���d��|�ddd��|�|�d��d��|�dddd��}|�ddd	d
��}|���|���|�	��|�|���d��|�|���d��|���|���|���|�
��|�|���d��t|d��r�tj
�d��s�|���|���d
D]�}|�|��|�d��|�|���|��|�|���|���}dSdSdS)NFTrcrirsrmrdrhrjrk�syncok�sunos)FT�a)r�refresh�assertIs�
is_wintouched�touchwin�
untouchwin�	touchline�is_linetouchedrz�syncup�syncdownrr6�platform�
startswithr��addch)rrr~rr�s     r�test_refresh_controlzTestCurses.test_refresh_control�s�������������
�
�f�*�*�,�,�e�4�4�4��������
�
�f�*�*�,�,�d�3�3�3��������
�
�f�*�*�,�,�e�4�4�4��������
�
�f�*�*�,�,�d�3�3�3��������
�
�f�*�*�,�,�e�4�4�4�	����A�����
�
�f�+�+�A�.�.��5�5�5��
�
�f�+�+�A�.�.��5�5�5��
�
�f�*�*�,�,�d�3�3�3�����A�u�%�%�%��
�
�f�+�+�A�.�.��6�6�6��m�m�B��A�q�)�)���z�z�!�R��A�&�&���
�
�������������
�
�
��
�
�c�'�'�)�)�4�0�0�0��
�
�f�*�*�,�,�d�3�3�3�	�������������������
�
�����
�
�d�(�(�*�*�D�1�1�1��6�8�$�$�	>�S�\�-D�-D�W�-M�-M�	>��N�N����������'�
>�
>�����F�#�#�#��
�
�3�����
�
�c�/�/�1�1�6�:�:�:��
�
�f�2�2�4�4�f�=�=�=�=�	>�	>�	>�	>�
>�
>rc�*�|j}|j}|���|�dd��|�d��|�d��|�d��d}	|�|��n�#t
$r$|�t
|j|��YnUt$rI|�|��}|�	t|��dt|����YnwxYw|�dtj
��|�ddd��|�dddtj
��|�|���d	��|���|�dd��|�d��|�d��|�d��|�t
tf��5|�d
��ddd��n#1swxYwY|�dtj
��|�|���d��dS)Nr�A�A�A�€rmrirjTuĔF)r�encodingr�r�r��UnicodeEncodeError�assertRaises�encode�
OverflowError�assertNotEqual�len�reprr
�A_BOLDr�r��echochar)rrr��c�encodeds     r�test_output_characterz TestCurses.test_output_character�s�������?�����������A�q�������S�������T�������R������	@��L�L��O�O�O�O��!�	F�	F�	F����0�!�(�H�E�E�E�E�E��	@�	@�	@��h�h�x�(�(�G�����G���a��g���?�?�?�?�?�	@����	���S�&�-�(�(�(����Q��3�������Q��3��
�.�.�.��
�
�f�*�*�,�,�d�3�3�3�	���������A�q�������������������������
�
�
� 2�M�B�
C�
C�	&�	&�
�O�O�H�%�%�%�
	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	����V�]�+�+�+��
�
�f�*�*�,�,�e�4�4�4�4�4s+�;B�+D�>AD�D�I�I�Ic	���|j}|j}|j|jfD]�}|�|j��5|�dd��|d��|d��d}	||��n1#t$r$|�t|j	|��YnwxYw|dtj��|ddd��|dddtj��ddd��n#1swxYwY��|j|j
fD]�}|�|j��5|�dd��|dd��|d	d��d
}	||d��n1#t$r$|�t|j	|��YnwxYw|dd��|ddtj��|dddd��|ddddtj��ddd��n#1swxYwY��dS)Nr�abcdsabcduàßçđrmrirj�1234s1234u١٢٣٤rc)rr��addstr�insstr�subTest�__qualname__r�r�r�r�r
r��addnstr�insnstr)rrr��func�ss     r�test_output_stringzTestCurses.test_output_strings�������?���]�F�M�2�	2�	2�D����d�/�0�0�
2�
2����A�q�!�!�!���V������W�
�
�
���N��D��G�G�G�G��)�N�N�N��%�%�&8�!�(�H�M�M�M�M�M�N������V�V�]�+�+�+���Q��6�"�"�"���Q��6�6�=�1�1�1�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2����
2�
2�
2�
2���^�V�^�4�
	5�
	5�D����d�/�0�0�
5�
5����A�q�!�!�!���V�Q������W�a� � � �.��N��D��A�J�J�J�J��)�N�N�N��%�%�&8�!�(�H�M�M�M�M�M�N������V�Q������V�Q��
�.�.�.���Q��6�1�%�%�%���Q��6�1�f�m�4�4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5��
	5�
	5sl�/C-�)A5�4C-�5+B#� C-�"B#�#>C-�-C1	�4C1	�#1G)�E"�!G)�"+F�
G)�F�A
G)�)G-	�0G-	c��|j}dD]�}|�|���5|�t|j|��|�t|j|d��|�t|j|��|�t|j|d��ddd��n#1swxYwY��dS)N)zasa)�argrm)rr�r��
ValueErrorr�r�r�r�)rrr�s   r�&test_output_string_embedded_null_charsz1TestCurses.test_output_string_embedded_null_chars:s
�����"�	F�	F�C����#��&�&�
F�
F��!�!�*�f�m�S�A�A�A��!�!�*�f�n�c�1�E�E�E��!�!�*�f�m�S�A�A�A��!�!�*�f�n�c�1�E�E�E�	
F�
F�
F�
F�
F�
F�
F�
F�
F�
F�
F����
F�
F�
F�
F��	F�	Fs�BB5�5B9	�<B9	c��|j}|�dddtj��|�dd��|�|���dtjz��|�|�dd��dtjz��|�dd��|�|���dd�d��|�|�d��dd�d	��|�|�dd
��dd�d��|�|�dd
d��d��|�t|jd
��|�t|jdd
d
��dS)Nrrm�ABCDr�rj�Crss ABCD s ABrirpsBCD ���)
rr�r
r�r�rv�inch�instrr�r��rrs  r�test_read_from_windowz TestCurses.test_read_from_windowDs|������
�
�a��F�F�M�2�2�2����A�q�������������V�]�(:�;�;�;�������Q��*�*�B���,>�?�?�?����A�q���������������+�Y�7�7�7�������a����!��,�f�5�5�5�������a��+�+�B�Q�B�/��9�9�9�������a��A�.�.��8�8�8����*�f�l�B�7�7�7����*�f�l�A�q�"�=�=�=�=�=rc��tjdddd��}dddd�D]}tj|���|�|�dd��d��|�|���d	��|�|�dd
��d��|�|���d��|�|���d
��|�|���d��|�|���d��|�|���d��dS)Nrcrrrizspam
rgrjrm�s)rjrmrp�p)rjrp�a�mrd)r
ru�ungetchrv�getchr��rr~r�s   r�
test_getchzTestCurses.test_getchTsC���m�A�r�1�a�(�(���$�$�B�$��	�	�A��N�1�����������1�a���'�2�2�2���������f�-�-�-�������1�a���'�2�2�2���������f�-�-�-���������g�.�.�.���������f�-�-�-���������g�.�.�.���������h�/�/�/�/�/rc��tjdddd��}tj��|�tj��|�t|jd��|�t|jddd��dddd�D]}tj|���|�	|�ddd��d	��|�	|�
dd
��d��|�	|�ddd��d
��|�	|�
dd
��d��|�	|�dd��d��|�	|�
dd
��d��|�	|�d��d��|�	|�
dd
��d��|�	|���d��|�	|�
dd
��d��dS)Nrcrrriip���rjzLorem
ipsum
dolor
sit
amet
rgrmsLors Lo         rdsipsums Lo  ipsum  sdolors     dolor  ssissi   dolor  sametsamet dolor  )r
ru�echorF�noechor�r��getstrr�rvr�r�s   r�test_getstrzTestCurses.test_getstrcs����m�A�r�1�a�(�(����
�
�
�����
�&�&�&����*�c�j�$�7�7�7����*�c�j�!�Q��=�=�=�4�D�D�b�D�9�	�	�A��N�1�����������A�q�!�,�,�e�4�4�4�������1�a���/�:�:�:�������A�q�"�-�-�x�8�8�8�������1�a���/�:�:�:�������A�q�)�)�8�4�4�4�������1�a���/�:�:�:�������A����.�.�.�������1�a���/�:�:�:���������w�/�/�/�������1�a���/�:�:�:�:�:rc��tjdddd��}t|��|�dd��|���|�|�dd�����d��|�|�dd�����d��|�dd	��|���|�|�dd�����d
��|�|�dd�����d��|j	|j
fD]�}t|��|��|�|�dd�����d��|�|�dd�����d����dS)NrcrhrirrqsLorem iprm�dolor sit amet,rjsLorr)r
ru�lorem_ipsumr��clrtoeolrvr��rstrip�clrtobotrV�clear)rr~r�s   r�
test_clearzTestCurses.test_clearys����m�A�r�1�a�(�(���C��������A����������������1�a���/�/�1�1�;�?�?�?�������1�a���/�/�1�1�3E�F�F�F�����A����������������1�a���/�/�1�1�6�:�:�:�������1�a���/�/�1�1�3�7�7�7��Y��	�*�	<�	<�D�������D�F�F�F����S�Y�Y�q�!�_�_�3�3�5�5�s�;�;�;����S�Y�Y�q�!�_�_�3�3�5�5�s�;�;�;�;�		<�	<rc��tjdddd��}t|��|�dd��|���|�|�dd��d��|�dd��|�|�dd��d��|�dd��|���|�|�dd��d��|�|�dd��d	��|�|�dd��d
��|�|�dd��d��|�|�d
d��d��|�dd��|���|�|�dd��d��|�|�dd��d��|�|�dd��d	��|�	��t|��|�dd��|�
d��|�|�dd��d��|�|�dd��d��|�|�dd��d��|�|�dd��d��|�	��t|��|�dd��|�
d��|�|�dd��d��|�|�dd��d
��|�|�dd��d��|�|�dd��d��dS)NrcrhrirsLoem ipsum     rksLoem ipum      rmsconsectetur    �adipiscing elitrjssed do eiusmod rp�               sLorem ipsum    r�r�)r
rur�r��delchrvr��deleteln�insertlnr��insdelln�rr~s  r�test_insert_deletezTestCurses.test_insert_delete�s����m�A�r�1�a�(�(���C��������A�����	�	����������1�a���*<�=�=�=��	�	�!�Q����������1�a���*<�=�=�=�����A����������������1�a���*<�=�=�=�������1�a���*<�=�=�=�������1�a���*<�=�=�=�������1�a���*<�=�=�=�������1�a���*<�=�=�=�����A����������������1�a���*<�=�=�=�������1�a���*<�=�=�=�������1�a���*<�=�=�=��	�	�����C��������A�������Q����������1�a���*<�=�=�=�������1�a���*<�=�=�=�������1�a���*<�=�=�=�������1�a���*<�=�=�=��	�	�����C��������A�������R����������1�a���*<�=�=�=�������1�a���*<�=�=�=�������1�a���*<�=�=�=�������1�a���*<�=�=�=�=�=rc���tjdddd��}t|��|�d��|���|�|�dd��d��|�d��|�|�dd��d��|�d��|�|�dd��d	��|�|�dd��d	��|�|�d
d��d��|�d��dS)NrcrhriTrr�r����r�rjF)r
rur��scrollok�scrollrvr�r�s  r�test_scrollzTestCurses.test_scroll�s)���m�A�r�1�a�(�(���C�������T�����
�
����������1�a���*<�=�=�=��
�
�1�
�
�
�������1�a���*<�=�=�=��
�
�2����������1�a���*<�=�=�=�������1�a���*<�=�=�=�������1�a���*<�=�=�=����U�����rc�>�tjdddd��}|�tj��|�tj��|�tj��|���|���dS)Nrcrhri)r
ru�attronr��attroff�attrset�standout�standendr�s  r�test_attributeszTestCurses.test_attributes�sq���m�A�r�1�a�(�(���
�
�6�=�!�!�!����F�M�"�"�"����F�M�"�"�"��������������r�chgatc��tjdddd��}|�ddd��|�ddd��|�dd��|�tj��|�|�dd	��d
��|�|�dd��dtjz��|�|�dd��d
tjz��|�dd��|�dtj��|�|�dd��d��|�|�dd��dtjz��|�|�dd��dtjz��|�|�dd��d��|�ddtj	��|�|�dd��d��|�|�dd��dtj	z��|�|�dd��d
tj	z��|�ddd	tj��|�|�dd��dtj	z��|�|�dd��dtjz��|�|�dd��dtjz��|�|�dd��dtj	z��|�|�dd��d
tj	z��dS)Nrcrhrir�Lorem ipsumrjzdolor sit ametrqrkr�r��� rm�L�o�erpr��l�rrdr�rt)
r
rur�r�r��A_BLINKrvr�r��A_UNDERLINEr�s  r�
test_chgatzTestCurses.test_chgat�s���m�A�r�1�a�(�(���
�
�1�a��'�'�'��
�
�1�a�)�*�*�*�����A�����	�	�&�.�!�!�!�������!�Q����1�1�1�������!�Q����6�>�)A�B�B�B�������!�R���'�F�N�*B�C�C�C�����A�����	�	�!�V�]�#�#�#�������!�Q����1�1�1�������!�Q����6�=�)@�A�A�A�������!�Q����6�=�)@�A�A�A�������!�Q����1�1�1��	�	�!�Q��*�+�+�+�������!�Q����1�1�1�������!�Q����6�3E�)E�F�F�F�������!�R���'�F�4F�*F�G�G�G��	�	�!�Q��6�>�*�*�*�������!�Q����6�3E�)E�F�F�F�������!�Q����6�>�)A�B�B�B�������!�R���'�F�N�*B�C�C�C�������!�R���'�F�4F�*F�G�G�G�������!�R���'�F�4F�*F�G�G�G�G�Grc��tjdddd��}|�ddd��|�|���d��|�d��|�|���d��|�d	��|�|���d
��|�d��|�|���d��|�d��|�|���d��|�d
tj��|�|���d
tjz��|�|�dd��d��|�|�dd��d��|�d��|�	d��|�|���d��|�|�dd��d��|�|�dd��d��|�	d
tj��|�|���d
tjz��|�|�dd��dtjz��|�|�dd��d
tjz��dS)Nrcrhrirr�)rr��_�_�#�#r�r��#r�)
r
rur��assertIn�getbkgd�bkgdsetrv�	A_REVERSEr��bkgdr�s  r�test_backgroundzTestCurses.test_background�s����m�A�r�1�a�(�(���
�
�1�a��'�'�'��
�
�c�k�k�m�m�W�-�-�-�	���C�������������0�0�0����D�������������0�0�0����B�������������+�+�+����A�������������+�+�+����C��)�*�*�*����������&�2B�(B�C�C�C�������!�Q����1�1�1�������!�Q����1�1�1����A����	����
�
�
����������0�0�0�������!�Q����1�1�1�������!�Q����1�1�1�����f�&�'�'�'����������&�2B�(B�C�C�C�������!�Q����6�3C�)C�D�D�D�������!�Q����6�3C�)C�D�D�D�D�Drc	�*�tjdddd��}t|��tjdddd��}td��D]}|�|dd	���|�|��|�|�dd��d
��|�|�dd��d��|�|�d
d��d��|�|�dd��d��|�|��|�|�dd��d��|�|�dd��d��|�|�d
d��d��|�|�dd��d��|�|dddd
dd��|�|�dd��d��|�|�dd��d��|�|�dd��d��|�|dddd
dd��|�|�dd��d��|�|�dd��d��|�|�dd��d��dS)Nrc�rjrprk�rsr�_________________ssectetur_________rmspiscing_elit,____ris_do_eiusmod______s_________________ssectetur       __spiscing elit,  __s do eiusmod    __rts__r_sit_amet_____s__ectetur________s__r sit amet_____s__ectetur   _____)	r
rur��ranger��overlayrvr��	overwrite)r�srcwin�dstwin�is    r�test_overlayzTestCurses.test_overlays�����q�"�a��+�+���F������q�"�a��+�+���q���	(�	(�A��M�M�!�Q��'�'�'�'����v����������a��+�+�-A�B�B�B�������a��+�+�-A�B�B�B�������a��+�+�-A�B�B�B�������a��+�+�-A�B�B�B����� � � �������a��+�+�-A�B�B�B�������a��+�+�-A�B�B�B�������a��+�+�-A�B�B�B�������a��+�+�-A�B�B�B����v�q�!�Q��1�b�1�1�1�������a��+�+�-A�B�B�B�������a��+�+�-A�B�B�B�������a��+�+�-A�B�B�B������A�q�!�Q��3�3�3�������a��+�+�-A�B�B�B�������a��+�+�-A�B�B�B�������a��+�+�-A�B�B�B�B�Brc��tjdddd��}|���|�dd��|���|���tj��dS)Nrcrhrirm)r
ru�noutrefresh�redrawln�	redrawwinr��doupdater�s  r�test_refreshzTestCurses.test_refresh,si���m�A�r�1�a�(�(�����������Q������
�
�������
�
�
�������r�resizec�,�tjdddd��}|�dd��|�|���d��|�dd��|�|���d��dS)Nrcrhrirp�)rpr)rcrh)r
rurrvryr�s  r�test_resizezTestCurses.test_resize4s����m�A�r�1�a�(�(���
�
�1�b�������������1�1�1��
�
�1�b�������������1�1�1�1�1r�enclosec�,�tjdddd��}|�|�dd��d��|�|�dd��d��|�|�dd��d��|�|�dd	��d��|�|�d
d	��d��|�|�dd��d��dS)NrcrhriTrmFrprs�rkr)r
rur�rr�s  r�test_enclosezTestCurses.test_enclose<s����m�A�r�1�a�(�(���
�
�c�k�k�!�Q�'�'��.�.�.��
�
�c�k�k�!�Q�'�'��/�/�/��
�
�c�k�k�!�Q�'�'��/�/�/��
�
�c�k�k�!�R�(�(�$�/�/�/��
�
�c�k�k�!�R�(�(�%�0�0�0��
�
�c�k�k�!�R�(�(�%�0�0�0�0�0rc�,�tjdddd��}|�ddd��tj��5}|�|��~|�d��tj|��}|�|�	��d��|�|�
��d��|�|�dd��d	��ddd��dS#1swxYwYdS)
Nrcrrrmrir�rrl)rcrrs Lorem ipsum)r
rur�rLrM�putwin�seek�getwinrvrwryr�)rr~�fs   r�test_putwinzTestCurses.test_putwinFs+���m�A�r�1�a�(�(���
�
�1�a��'�'�'�
�
#�
%�
%�	?���J�J�q�M�M�M��
�F�F�1�I�I�I��-��"�"�C����S�\�\�^�^�V�4�4�4����S�\�\�^�^�W�5�5�5����S�Y�Y�q�!�_�_�o�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	?�	?s�B:D	�	D
�D
c
��
�tjdddd��}|�dddddd	d
d��|�|�dd��d
��|�|�dd��d��|�|�dd��d��|�dddddddd��|�ddddddd d!��|�t|jdddddgd d!�
�
|�t|jddddddd d!d"��|�t|jddddddd d!d"��|�ddddddd ��|�dddddd��|�ddddd��|�dddd��|�ddd��|�dd��|�d��|���|�d#d$��|�|�ddd%��d&��|�|�dd��d'��|�|�ddd%��d&��|�d(d)��|�dd��|�t|jddd��|�t|jd��|���|�dd��|�	dd��|�|�ddd*��d+��|�	dd��|�	d,d��|�	ddtj
��|�	dddd��|�	ddddtj
��|�dd��|�d-d.��|�d/d.��|�d0d.��|�d-d.tj��|�ddd-d.��|�ddd1dtj��|�|�
dd��d2tjz��|�|�
dd��d2tjz��|�|�
d.d��d0��dS)3Nrcrdri�|�!�-r��+�\r��/rs
+--------\rms
|        !rps
#________/�|�!�-�_�+�\r��/r��Br��D�E�F�G�H�I�:�~rqs~~~~~~~~s
:        :�:�~rks ----- �-r�rj�ar��;�;)r
ru�borderrvr�r��	TypeError�boxr��hliner��vline�
A_STANDOUTr�r�s  r�test_borders_and_linesz!TestCurses.test_borders_and_linesRs����m�A�r�1�a�(�(���
�
�3��S�#���c�3�	(�	(�	(�������1�a���.�9�9�9�������1�a���-�8�8�8�������1�a���-�8�8�8��
�
�4��t�T����d�	,�	,�	,��
�
�2�r�2�r��r�2�r�	#�	#�	#����)�S�Z��b�"�b�"�b�"�b�	:�	:�	:����)�S�Z��b�"�b�"�b�"�b�"�	>�	>�	>����)�S�Z��b�"�b�"�b�"�b�"�	>�	>�	>��
�
�2�r�2�r�2�r�2�.�.�.��
�
�2�r�2�r�2�r�*�*�*��
�
�2�r�2�r�2�&�&�&��
�
�2�r�2�r�"�"�"��
�
�2�r�2�����
�
�2�r�����
�
�2�����
�
��������S����������1�a��+�+�[�9�9�9�������1�a���M�:�:�:�������1�a��+�+�[�9�9�9�����d��������B�������)�S�W�b�"�b�9�9�9����)�S�W�b�1�1�1����	�	�	�����A�����	�	�#�q����������1�a��+�+�Z�8�8�8��	�	�$������	�	�"�a�����	�	�#�q�&�-�(�(�(��	�	�!�Q��Q�����	�	�!�Q��Q��
�.�.�.�����A�����	�	�#�q�����	�	�$������	�	�"�a�����	�	�#�q�&�+�,�,�,��	�	�!�Q��Q�����	�	�!�Q��Q�� 1�2�2�2�������!�Q����6�3D�)D�E�E�E�������!�Q����6�3D�)D�E�E�E�������!�Q����1�1�1�1�1rc�b�|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�ttjd��|�ttjd	��|�ttjd
��|�ttjd��|�t
tjd��dS)
Nr�r�r��
s^J�
rdrsAB��AB�)rvr
�unctrlr�rCr�r]s r�test_unctrlzTestCurses.test_unctrl�sJ�������t�,�,�d�3�3�3������s�+�+�T�2�2�2������r�*�*�D�1�1�1������u�-�-�u�5�5�5������t�,�,�e�4�4�4������r�*�*�E�2�2�2����)�V�]�C�8�8�8����)�V�]�E�:�:�:����)�V�]�B�7�7�7����)�V�]�D�9�9�9����-����>�>�>�>�>rc�t�|js|�d��|�tj��d��tj��|�tj��d��tj��|�tj��d��dS)N�requires terminalFT)rBr'r�r
�isendwinrTrr]s r�test_endwinzTestCurses.test_endwin�s����{�	/��M�M�-�.�.�.��
�
�f�o�'�'��/�/�/��
�����
�
�f�o�'�'��.�.�.�������
�
�f�o�'�'��/�/�/�/�/rc�J�|�tjd��t��|�tjd��d��|�tjd��d��|�tjd��t��|�tjd��d��|�tjd��d��|�tjd��ttd��f��|�	tjd����|�	tjd����tjd��}|�t|�|t��tj
|d��tj
|d��}|�|t��tj|��tjd��dS)	N�hc�colsrg�crr��cudrisabc
)�assertIsInstancer
�	tigetflag�intrv�tigetnum�tigetstr�bytes�type�assertIsNone�tparm�putp)rrY�cud_2s   r�
test_terminfozTestCurses.test_terminfo�s������f�.�t�4�4�c�:�:�:�����)�&�1�1�2�6�6�6�����)�$�/�/��4�4�4����f�o�f�5�5�s�;�;�;�������.�.��3�3�3�������.�.��3�3�3����f�o�d�3�3�e�T�$�Z�Z�5H�I�I�I����&�/�$�/�/�0�0�0����&�/�&�1�1�2�2�2��o�e�$�$���?��!�!�#�u�-�-�-��L��a� � � ��L��a�(�(�E��!�!�%��/�/�/��K�������H�����rc��tjd��tj��tj��|�tj��d��tjd��tjdd��dS)NrmF�d�2)r
�delay_output�flushinprr�rS�napms�newpadr]s r�test_misc_module_funcsz!TestCurses.test_misc_module_funcs�ss����A���������������
�
�f�o�'�'��/�/�/���S�����
�b�"�����rc�Z�|�tj��t��|�tj��t��|�tj��t��|�tj��t��|�tj	��t��|�tj
��t��tj��}|�|t��|�t|��d��tj��}|�|t��|�t|��d��dS�Nrm)rZr
�termnamer_�longname�baudrater\�has_ic�bool�has_il�	termattrs�killcharrvr��	erasechar)rr�s  r�test_env_querieszTestCurses.test_env_queries�s8�����f�o�/�/��7�7�7����f�o�/�/��7�7�7����f�o�/�/��5�5�5����f�m�o�o�t�4�4�4����f�m�o�o�t�4�4�4����f�.�0�0�#�6�6�6��O�������a��'�'�'�����Q����#�#�#���������a��'�'�'�����Q����#�#�#�#�#rc���|j}|�d��|�d��|�d��|�d��|�d��|�d��t	|d��r*|�d��|�d��|�d��|�d��|�d��|�d��|�dd��tj
��tjd��tjd��tj��dS)NTF�immedokrcrd)r�clearok�idcok�idlokrr{�leaveokr��	setscrregr
�nonl�nlr�s  r�test_output_optionszTestCurses.test_output_options�s@��������t�������u�������T�������U�������U�������T�����6�9�%�%�	"��N�N�4� � � ��N�N�5�!�!�!����t�������u����������������������B������
�
�
��	�$�����	�%�����	�����rc��|j}|jr�tj��tj��tjd��tjd��tjd��tjd��tj��tjd��tjd��tj��tj��tj	��tj	d��tj	d��tj
d��tj
d��|�d��|�d��tjd��tjd��|�
d��|�
d��tj��tjd��tjd��tj��|�d��|�d��|�d��|�d��|�d��dS)NFT�rmrgrrc)rrBr
�nocbreak�cbreak�	intrflush�raw�norawr�r��	halfdelay�keypad�meta�nodelay�	noqiflush�qiflush�	notimeout�timeoutr�s  r�test_input_optionszTestCurses.test_input_options�s������;�	��O�����M�O�O�O��M�%� � � ��M�$������T�"�"�"���U�#�#�#��J�L�L�L��J�u�����J�t�����L�N�N�N��
������
�
�
���E������D�����������������
�
�d�����
�
�e������D������E�������t�������u�����������t������u��������������������������r�������q�������q�����r�	typeaheadc��tjtj�����tjd��dS)Nrg)r
r�r6�	__stdin__r9r]s r�test_typeaheadzTestCurses.test_typeahead s8������-�-�/�/�0�0�0��������rc��|js|�d��tj��tj��dS)NrR)rBr'r
�
def_prog_mode�reset_prog_moder]s r�test_prog_modezTestCurses.test_prog_mode%sC���{�	/��M�M�-�.�.�.�������� � � � � rc��tjd���tjd���tj��dS	tj��dS#tj$r|�d��YdSwxYw)N�bel�flashz
beep() failed)r
r^�beep�errorr'r]s r�	test_beepzTestCurses.test_beep+s}���O�E�"�"�.���w�'�'�3��K�M�M�M�M�M�
/���
�
�
�
�
���<�
/�
/�
/��
�
�o�.�.�.�.�.�.�
/�����A�$A<�;A<c��tjd���tjd���tj��dS	tj��dS#tj$r|�d��YdSwxYw)Nr�r�zflash() failed)r
r^r�r�r'r]s r�
test_flashzTestCurses.test_flash5s~���O�E�"�"�.���w�'�'�3��L�N�N�N�N�N�
0����������<�
0�
0�
0��
�
�.�/�/�/�/�/�/�
0���r�c��dD]X\}}tj|���tj|���.	tj|���D#tj$rY�UwxYwdS)N))r�civis)ri�cvvis)rm�cnorm)r
r^�curs_setr�)r�vis�caps   r�
test_curs_setzTestCurses.test_curs_set?s|��B�	�	�H�C����s�#�#�/����$�$�$�$���O�C�(�(�(�(���|�����D�����
	�	s�A�A�A�get_escdelayc��tj��}|�|t��tjd��|�tj��d��tj|��dS)N�)r
r�rZr\�set_escdelayrv)r�escdelays  r�
test_escdelayzTestCurses.test_escdelayIsm���&�(�(�����h��,�,�,���B��������,�.�.��3�3�3���H�%�%�%�%�%r�get_tabsizec��tj��}|�|t��tjd��|�tj��d��tj|��dS)Nrp)r
r�rZr\�set_tabsizerv)r�tabsizes  r�test_tabsizezTestCurses.test_tabsizeQsm���$�&�&�����g�s�+�+�+���1��������+�-�-�q�1�1�1���7�#�#�#�#�#r�getsyxc��tj��\}}|�|t��|�|t��tjdd��|�tj��d��dS)Nrprc)rprc)r
r�rZr\�setsyxrv)r�y�xs   r�test_getsyxzTestCurses.test_getsyxYsq���}�����1����a��%�%�%����a��%�%�%��
�a������������&�1�1�1�1�1rc�(�dtjdddddfS)Nrg��������rN�r
�COLORSr]s r�
bad_colorszTestCurses.bad_colorsas���F�M�:�u�j�%��O�Orc�"�tjdddfS)Nr�r�rNr�r]s r�bad_colors2zTestCurses.bad_colors2ds���
�u�e�U�3�3rc��dS)N)rgr�r�r�r�rNr!r]s r�	bad_pairszTestCurses.bad_pairsgs��@�@rc��|�tj��t��|�tj��t��dSr\)rZr
r&rt�can_change_colorr]s r�test_has_colorszTestCurses.test_has_colorsjsF�����f�/�1�1�4�8�8�8����f�5�7�7��>�>�>�>�>rc�.�tj��s|�d��tj��trRtdtj��tj���tdtj	��tj���dSdS)Nr%z	COLORS = )r1zCOLOR_PAIRS = )
r
r&r'r(rr4r�r6r7�COLOR_PAIRSr]s r�test_start_colorzTestCurses.test_start_colorns���� �"�"�	5��M�M�3�4�4�4�������	J��-�f�m�-�-�C�J�?�?�?�?��7�6�#5�7�7�c�j�I�I�I�I�I�I�	J�	Jrc�R�|�tjtj��d��tjd��tjdz
}tj|��|���D](}|�ttj|���)dS)N�rrrrrm)rvr
�
color_content�COLOR_BLACKr�r�r�r�)r�maxcolor�colors   r�test_color_contentzTestCurses.test_color_contentvs�������-�f�.@�A�A�9�M�M�M���Q�����=�1�$����X�&�&�&��_�_�&�&�	G�	G�E����j�&�*>��F�F�F�F�	G�	Grc	���tj��s|�d��tjd��}	tjdg|�R�n*#tj$r|�d��YnwxYw|jtjdg|�R�tjdddd��|�tjd��d��tjdddd��|�tjd��d��tjdz
}tj|��}tj|g|�R�|jtj|g|�R�tj|ddd��|�tj|��d	��|�	��D]+}|�
ttj|ddd���,d
D]}}|�
ttjd|dd��|�
ttjdd|d��|�
ttjddd|���~dS)Nzcannot change colorrz)cannot change color (init_color() failed)r���)r�r�r�rm��)rr�r�)rgi�)r
r�r'r��
init_colorr�rFrvr�r�r�r�)r�oldr�r��comps     r�test_init_colorzTestCurses.test_init_color�sp���&�(�(�	1��M�M�/�0�0�0��"�1�%�%��	G���a�&�#�&�&�&�&�&���|�	G�	G�	G��M�M�E�F�F�F�F�F�	G��������)�1�3�s�3�3�3�3���!�Q��1�%�%�%�����-�a�0�0�)�<�<�<���!�T�4��.�.�.�����-�a�0�0�2D�E�E�E��=�1�$���"�8�,�,����(�)�S�)�)�)�)�����)�8�:�c�:�:�:�:���(�A�s�D�1�1�1�����-�h�7�7��H�H�H��_�_�&�&�	M�	M�E����j�&�*;�U�A�q�!�L�L�L�L��	L�	L�D����j�&�*;�Q��a��K�K�K����j�&�*;�Q��4��K�K�K����j�&�*;�Q��1�d�K�K�K�K�	L�	Ls�A�$A8�7A8c��tj}ttd��r�tj��r|dtjzdzz
}tj��rdtjcxkrdkrnnt
|t��}	tj|dz
dd��n#t$rtj}YnwxYw|S)N�ncurses_versionrirm)rsrm)rsrir)
r
r�r�has_extended_color_supportr�r��min�	SHORT_MAX�	init_pairr�)r�
pair_limits  r�get_pair_limitzTestCurses.get_pair_limit�s����'�
��6�,�-�-�	0��0�2�2�
2��a��
�o��1�1�
��5�7�7�
8���!7�@�@�@�@�&�@�@�@�@�@� ��Y�7�7�
�
0�� ��a���A�6�6�6�6���
0�
0�
0�#�/�
�
�
�
0�����s�
B'�'C�?Cc��ttd��s>|�tjd��tjtjf��tjd��|���dz
}|dkrtj|��|���D](}|�ttj|���)dS)N�use_default_colorsrrm)
rr
rv�pair_content�COLOR_WHITEr�r�r�r�r�)r�maxpair�pairs   r�test_pair_contentzTestCurses.test_pair_content�s����v�3�4�4�	G����V�0��3�3�$�0�&�2D�E�
G�
G�
G���A�����%�%�'�'�!�+���Q�;�;����(�(�(��N�N�$�$�	E�	E�D����j�&�*=�t�D�D�D�D�	E�	Erc� �tjd��}tjdg|�R�|jtjdg|�R�tjddd��|�tjd��d��tjdz
}tjd|d��|�tjd��|df��tjdd|��|�tjd��d|f��|���dz
}|dkr>tj|dd��|�tj|��d��|���D]*}|�ttj|dd���+|�
��D]R}|�ttjd|d��|�ttjdd|���SdS)Nrmrre)r
r�r�rFrvr�r�r�r�r�r�)rr�r�r�r�r�s      r�test_init_pairzTestCurses.test_init_pair�s����!�!�$�$�����!�S�!�!�!�!�����(�!�2�c�2�2�2�2����A�q�!�!�!�����,�Q�/�/��8�8�8��=�1�$�����H�a�(�(�(�����,�Q�/�/�(�A��?�?�?����A�x�(�(�(�����,�Q�/�/�!�X��?�?�?��%�%�'�'�!�+���Q�;�;���W�a��+�+�+����V�0��9�9�6�B�B�B��N�N�$�$�	H�	H�D����j�&�*:�D�!�Q�G�G�G�G��%�%�'�'�	I�	I�E����j�&�*:�A�u�a�H�H�H����j�&�*:�A�q�%�H�H�H�H�	I�	Irc��dD]t}tj|��}|�tj|��||��|�tj|tjz��|���u|�tjd��d��|�tjd��d��dS)N)rrmr�r)r
�
color_pairrv�pair_numberr�)rr��attrs   r�test_color_attrszTestCurses.test_color_attrs�s����	M�	M�D��$�T�*�*�D����V�/��5�5�t�T�B�B�B����V�/��v�}�0D�E�E�t�L�L�L�L�����*�1�-�-�q�1�1�1�����+�A�.�.��2�2�2�2�2rr�c�Z�tjd��}	tj��n*#tj$r|�d��YnwxYw|�tjd��d��|�|tjtjfddg��dS)Nrz1cannot change color (use_default_colors() failed)rfre)	r
r�r�r�r'rvrr�r�)rr�s  r�test_use_default_colorsz"TestCurses.test_use_default_colors�s����!�!�$�$��	O��%�'�'�'�'���|�	O�	O�	O��M�M�M�N�N�N�N�N�	O��������,�Q�/�/��:�:�:��
�
�c�V�/��1C�D�h�PV�W�X�X�X�X�Xs�*�$A�Ac���|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�ttjd	��|�tjd
��t��dS)Nr�r�ros^M�s^?rs^@rg�)rvr
�keynamer�r�rZr_r]s r�test_keynamezTestCurses.test_keyname�s���������+�+�T�2�2�2�������+�+�U�3�3�3�������,�,�e�4�4�4�������*�*�E�2�2�2����*�f�n�b�9�9�9����f�n�S�1�1�5�9�9�9�9�9r�has_keyc�.�tjd��dS)Nro)r
r�r]s r�test_has_keyzTestCurses.test_has_key�s����r�����r�getmousec��tjtj��\}}|dkr|�d��tjd��tjddddtj��tj��}dS)Nrzmouse stuff not availablerd)r
�	mousemask�BUTTON1_PRESSEDr'�
mouseinterval�
ungetmouser�)r�	availmask�oldmask�ms    r�
test_getmousezTestCurses.test_getmouse�st��%�/��0F�G�G���G���>�>��M�M�5�6�6�6���R� � � ���!�Q��1�f�&<�=�=�=��O�����r�panelc��tjdd��}tj�|��}|�tjjd���5|���ddd��dS#1swxYwYdS)Nrdz!userptr should fail since not set)�msg)r
rur�	new_panelr�r��userptr)r�w�ps   r�test_userptr_without_setz#TestCurses.test_userptr_without_set�s����M�"�b�!�!���L�"�"�1�%�%��
�
�
�v�|�1�#F��H�H�	�	�
�I�I�K�K�K�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A=�=B�Bc�|�tjdd��}tj�|��}t	��}tj|��}td��D]}|�|���|�d��|�	tj|��|d��dS)Nrdrgzset_userptr leaked references)
r
rurr�objectr6�getrefcountr
�set_userptrrv)rr
r�obj�nrefsrs      r�test_userptr_memory_leakz#TestCurses.test_userptr_memory_leaks����M�"�b�!�!���L�"�"�1�%�%���h�h�����$�$���s���	�	�A�
�M�M�#�����	�
�
�d����������-�-�u�8�	:�	:�	:�	:�	:rc����tjdd��}tj�|���G�fd�d��}��|������d��dS)Nrdc���eZdZ�fd�ZdS)�+TestCurses.test_userptr_segfault.<locals>.Ac�2����d��dSr\)r)rrs �r�__del__z3TestCurses.test_userptr_segfault.<locals>.A.__del__s����!�!�$�'�'�'�'�'rN)�__name__�
__module__r�r)rs�rr�rs.�������
(�
(�
(�
(�
(�
(�
(rr�)r
rurrr)rr
r�rs   @r�test_userptr_segfaultz TestCurses.test_userptr_segfaults�����M�"�b�!�!����&�&�q�)�)��	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	���!�!�#�#����
���$�����rc��tjdd��}tj�|��}t	|t|����dS)Nrd)r
rurrrr`)rr
rs   r�test_disallow_instantiationz&TestCurses.test_disallow_instantiationsF��
�M�"�b�!�!����&�&�q�)�)��$�T�4��;�;�7�7�7�7�7r�is_term_resizedc���tjtj}}|�tj||��d��|�tj|dz
|dz
��d��dS)NFrmT)r
�LINES�COLSr�r!�r�linesrWs   r�test_is_term_resizedzTestCurses.test_is_term_resized's_���l�F�K�t���
�
�f�,�U�D�9�9�5�A�A�A��
�
�f�,�U�1�W�d�1�f�=�=�t�D�D�D�D�Dr�resize_termc���tj��tjtj}}|dz
}|dz}tj||��|�tj|��|�tj|��tj||��|�tj|��|�tj|��dSro)r
�update_lines_colsr#r$r(rv�rr&rW�	new_lines�new_colss     r�test_resize_termzTestCurses.test_resize_term-s���� �"�"�"��l�F�K�t���A�I�	��!�8����9�h�/�/�/������y�1�1�1������h�/�/�/���5�$�'�'�'������u�-�-�-������d�+�+�+�+�+r�
resizetermc���tj��tjtj}}|dz
}|dz}tj||��|�tj|��|�tj|��tj||��|�tj|��|�tj|��dSro)r
r*r#r$r/rvr+s     r�test_resizetermzTestCurses.test_resizeterm;s���� �"�"�"��l�F�K�t���A�I�	��!�8����)�X�.�.�.������y�1�1�1������h�/�/�/���%��&�&�&������u�-�-�-������d�+�+�+�+�+rc��tjd��|�|j���d��tjd��|�|j���d��tjd��|�|j���d��dS)Nr�r��Br��C)r
r�rvr�getkeyr]s r�test_ungetchzTestCurses.test_ungetchIs�����t���������+�+�-�-�s�3�3�3���s���������+�+�-�-�s�3�3�3���r���������+�+�-�-�s�3�3�3�3�3rc�`�tjd��|j���dS)Ni)r
r�rr5r]s r�test_issue6243zTestCurses.test_issue6243Qs,����t������������r�	unget_wchr�)�c)rcrqz.unget_wch is broken in ncurses 5.7 and earlierc
��|j}|j}dD]�}	|�|��n#t$rY�%wxYw	t	j|��n:#t$r-}|�d|�d|j�d|����Yd}~nd}~wwxYw|���}|�	||��t|��}t	j|��|���}|�	||����dS)N)r��ér�u􏿿z
unget_wch(z) failed with encoding z: )rr�r�r�r
r9�	Exception�fail�get_wchrv�ord)rrr��ch�err�read�codes       r�test_unget_wchzTestCurses.test_unget_wchUsQ������?��7�	'�	'�B�
��	�	�(�#�#�#�#��%�
�
�
���
����
8�� ��$�$�$�$���
8�
8�
8��	�	�	��R�R�����#�#�7�8�8�8�8�8�8�8�8�����
8�����>�>�#�#�D����T�2�&�&�&��r�7�7�D���T�"�"�"��>�>�#�#�D����T�2�&�&�&�&�!	'�	's#�*�
7�7�A�
B�#B�Bc�>�|j}ddl}|j}|�|��|�t
��5d|_ddd��n#1swxYwY||_|�t
��5|`ddd��dS#1swxYwYdS)Nrrd)r�codecsr��lookupr�rC)rrrGr�s    r�
test_encodingzTestCurses.test_encodingms������
�
�
��?���
�
�h����
�
�
�y�
)�
)�	!�	!� �F�O�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�"���
�
�
�y�
)�
)�	 �	 ���	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �	 �	 s$�A�A�A�B�B�Bz6Signature information for builtins requires docstringsc�
�|j}	tj|j��}|�|��n#t
$rYnwxYw|jj�d��d}|�d|��dS)NrKrz[y, x,])	r�inspect�	signaturer��assertFalser��__doc__�splitr)rrrL�human_readable_signatures    r�test_issue21088zTestCurses.test_issue21088xs������	��)�&�,�7�7�I����Y�'�'�'�'���	�	�	��D�	����$*�<�#7�#=�#=�d�#C�#C�A�#F� ��
�
�i�!9�:�:�:�:�:s�.8�
A�Ac��tjdddd��}tj�|d���}|���\}}|�|dz
|dz
��|�d��dS)NrcrhriT)�insert_moder�)r
ru�textpad�Textboxryr�_insert_printable_char)rr~rDr&rWs     r�test_issue13051zTestCurses.test_issue13051�sx���m�A�r�1�a�(�(���n�$�$�S�d�$�;�;���l�l�n�n���t��
�
�5��7�D��F�#�#�#��"�"�3�'�'�'�'�'rN)Qrrr��classmethodr=rYrr^rar�r�r�r�r�r�r�r�r�r�r�r�r�r"r�rrrrrr$rHrPrTrermryr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r)r�r�r�r�r�r�r�r�r�rrrrrr r'r.r1r6r8r�skipIf�getattrr
rErIrrQrWr!rrr.r.7s��������'�'��[�'�.�.�.�`��(�#�#���$�#��
��)�$�$���%�$��23�23�23�h	1�	1�	1�.>�.>�.>�`$5�$5�$5�L 5� 5� 5�DF�F�F�>�>�>� 
0�
0�
0�;�;�;�,<�<�<�((>�(>�(>�T������!� ��)�)�H�H�*�)�H�<E�E�E�BC�C�C�:���!� ��*�*�2�2�+�*�2�!� ��+�+�1�1�,�+�1�
?�
?�
?�62�62�62�p?�?�?�0�0�0����0	�	�	�$�$�$� ���<,�,�,�\��+�&�&���'�&��!�!�!�/�/�/�0�0�0������.�)�)�&�&�*�)�&���-�(�(�$�$�)�(�$���(�#�#�2�2�$�#�2�P�P�P�4�4�4�A�A�A�?�?�?�J�J�J��G�G��_�G��L�L��_�L�:���"�
E�
E��_�
E��I�I��_�I�.�3�3��_�3���.�/�/��Y�Y��_�0�/�Y�:�:�:���)�$�$���%�$����*�%�%���&�%����'�"�"���#�"����'�"�"�
:�
:�#�"�
:���'�"�"� � �#�"� ����'�"�"�8�8�#�"��\�8���+�,�,�E�E�-�,�E�
��-�(�(�,�,�)�(�,���,�'�'�,�,�(�'�,�4�4�4������+�&�&��X�_�W�W�V�%6��>�>��G�E�G�G�'�'�G�G�'�&�'�*	 �	 �	 ��X�_�)�M�O�O�;�;�O�O�;�8!� ��*�*�(�(�+�*�(�(�(rr.c�d�eZdZed��d���Zed��d���Zd�ZdS)�	MiscTestsr*c�2�tj��tjtj}}dxt_t_tj��|�tj|��|�tj|��dS)Nr)r
r*r#r$rvr%s   r�test_update_lines_colsz MiscTests.test_update_lines_cols�sq��� �"�"�"��l�F�K�t��%&�&���v�{�� �"�"�"������u�-�-�-������d�+�+�+�+�+rr�c���tj}trtdtj��d���|�|dd�t
��|�t|��d��|�|dt��|�|dt��|�|dt��|�|j	t��|�|j
t��|�|jt��|�|d|j	��|�|d|j
��|�|d|j��|�|j	d��|�|j
d��|�|jd��dS)Nzncurses_version = T)r2rjrrmri)
r
r�rr4rZ�tuplervr�r\�major�minor�patch�assertGreaterEqual)r�vs  r�test_ncurses_versionzMiscTests.test_ncurses_version�s����"���	M��?�v�'=�?�?�t�L�L�L�L����a����d�E�*�*�*�����Q����#�#�#����a��d�C�(�(�(����a��d�C�(�(�(����a��d�C�(�(�(����a�g�s�+�+�+����a�g�s�+�+�+����a�g�s�+�+�+�����1��q�w�'�'�'�����1��q�w�'�'�'�����1��q�w�'�'�'�������+�+�+�������+�+�+�������+�+�+�+�+rc�b�tj��}|�|t��dSr\)r
r�rZrt)r�rs  r�test_has_extended_color_supportz)MiscTests.test_has_extended_color_support�s,���-�/�/�����a��&�&�&�&�&rN)rrr�rr^rfrir!rrr\r\�sq��������-�.�.�,�,�/�.�,���+�,�,�,�,�-�,�,�&'�'�'�'�'rr\c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�	TestAsciic��tjjD]0}|�t	tj|��|���1dSr\)r
�ascii�controlnames�
assertTruer)rrs  r�test_controlnameszTestAscii.test_controlnames�sC���L�-�	?�	?�D��O�O�G�F�L�$�7�7��>�>�>�>�	?�	?rc�<�������fd�}td��D�]o�t����t�g��}|tjj|�����|tjj|�����|tjj|�����|tjj|�����|tjj	|�	����|tjj
|�
����|tjj�dk��|tjj�dk��|tjj
�dk��|tjj�dkp�dk��|tjj�dv��|tjjd�cxkodknc��|tjjd�cxkodknc��|tjj�t&jv��|tjj�t&jv����qdd	dt.jt.jd
zfD�]����tj��������tj��������tj��������tj��������tj�	�������tj�
�������tj��������tj�
�������tj��������tj��������tj��������tj��������tj��������tj�����������tj�d	����dS)Nc�������|���5��|���|����|���|��ddd��dS#1swxYwYdS)N)rAr�)r�rv)r��expectedr�rrs  ���r�checkz$TestAscii.test_ctypes.<locals>.check�s����������.�.�
4�
4�� � ���a���(�3�3�3�� � ���a���(�3�3�3�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4����
4�
4�
4�
4�
4�
4s�?A%�%A)�,A)r��r�r�z 	�~r�rgrm)r
�chrr_r
rm�isalnum�isalpha�isdigit�islower�isspace�isupper�isascii�ismeta�isctrl�iscntrl�isblank�isgraph�isprint�ispunct�string�punctuation�isxdigit�	hexdigitsr6�
maxunicoderM)rrt�br�rs`  @@r�test_ctypeszTestAscii.test_ctypes�s������	4�	4�	4�	4�	4�	4�	4�
�s���	@�	@�A��A���A��q�c�
�
�A��E�&�,�&��	�	���4�4�4��E�&�,�&��	�	���4�4�4��E�&�,�&��	�	���4�4�4��E�&�,�&��	�	���4�4�4��E�&�,�&��	�	���4�4�4��E�&�,�&��	�	���4�4�4��E�&�,�&��C��0�0�0��E�&�,�%�q�C�x�0�0�0��E�&�,�%�q�2�v�.�.�.��E�&�,�&��B��(:�!�s�(�;�;�;��E�&�,�&��U�
�3�3�3��E�&�,�&��Q�
�
�
�
�#�
�
�
�
�6�6�6��E�&�,�&��a�����3�����7�7�7��E�&�,�&��V�-?�(?�@�@�@��E�&�,�'��f�.>�)>�?�?�?�?��b�#�s�~�s�~�a�/?�@�	7�	7�A����V�\�1�1�!�4�4�5�5�5����V�\�1�1�!�4�4�5�5�5����V�\�1�1�!�4�4�5�5�5����V�\�1�1�!�4�4�5�5�5����V�\�1�1�!�4�4�5�5�5����V�\�1�1�!�4�4�5�5�5����V�\�1�1�!�4�4�5�5�5����V�\�0�0��3�3�4�4�4����V�\�1�1�!�4�4�5�5�5����V�\�1�1�!�4�4�5�5�5����V�\�1�1�!�4�4�5�5�5����V�\�1�1�!�4�4�5�5�5����V�\�1�1�!�4�4�5�5�5����V�\�2�2�1�5�5�6�6�6�6������,�,�R�0�0�1�1�1�1�1rc��tjj}|�|d��d��|�|d��d��|�|td����td����dS)N�Ár�)r
rmrvr@)rrms  r�
test_asciizTestAscii.test_ascii�sz����"�������v����,�,�,������s���S�)�)�)������s�6�{�{�+�+�S��X�X�6�6�6�6�6rc�T�tjj}|�|d��d��|�|d��d��|�|d��d��|�|t	d����t	d����dS)N�JrK�@�)r
rm�ctrlrvr@)rr�s  r�	test_ctrlzTestAscii.test_ctrl�s����|� �������c���D�)�)�)������d���T�*�*�*������c���D�)�)�)������c�#�h�h����T���3�3�3�3�3rc��tjj}|�|d��d��|�|d��d��|�|t	d����d��dS)NrK�Šr�r��)r
rm�altrvr@)rr�s  r�test_altzTestAscii.test_altsr���l��������T���F�+�+�+������S���6�*�*�*������S��X�X����-�-�-�-�-rc��tjj}|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�|d	��d
��|�|t	d����d��|�|t	d����d��|�|d��d��|�|d
��d��|�|t	d����d��|�|t	d
����d��dS)Nr�r�r@� �z^?rKz^Jr�z^@r�z!^Jr�z!A)r
rmrOrvr@)rrOs  rrPzTestAscii.test_unctrl
s�����$����������c�*�*�*���������c�*�*�*���������c�*�*�*���������c�*�*�*����������.�.�.���������t�,�,�,���������t�,�,�,�������C���)�)�3�/�/�/�������D�	�	�*�*�D�1�1�1����������/�/�/����������.�.�.�������F���,�,�e�4�4�4�������F���,�,�d�3�3�3�3�3rN)	rrr�rpr�r�r�r�rPr!rrrkrk�so������?�?�?�+2�+2�+2�Z7�7�7�4�4�4�.�.�.�4�4�4�4�4rrkc���gd�}|���\}}t|d|���D].\}}|�|d|d|||dz
kz
����/dS)N)	r�zdolor sit amet,�consecteturzadipiscing elit,zsed do eiusmodztempor incididuntzut labore etzdolore magnazaliqua.rrm)ry�	enumerater�)r~�text�maxy�maxxr��lines      rr�r�s���
�
�
�D������J�D�$��T�%�4�%�[�)�)�8�8���4��
�
�1�a��5�t�q�D�1�H�}�5�5�6�7�7�7�7�8�8r�__main__)#rrKrDr�r6rLr�test.supportrrrrrr�test.support.import_helperr	r
�curses.panel�ImportErrorrr"r)�environ�getr5r�rYr��TestCaser.r\rkr�r�mainr!rr�<module>r�s�����������	�	�	�	�
�
�
�
�
�
�
�
���������N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�4�4�4�4�4�4�
	������
��x�	 �	 ��
�
�n����
�
�����	��������	�	�	��D�	����<�<�<�������
�z�~�~�f�����	����T��.�T�Y�.�=��D�F�F�������)�4�6�6�b(�b(�b(�b(�b(��"�b(�b(�6�6�F�F�b(�J#!'�!'�!'�!'�!'��!�!'�!'�!'�HU4�U4�U4�U4�U4��!�U4�U4�U4�p8�8�8� �z����H�M�O�O�O�O�O��s� A%�%A-�,A-

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists