o
    tVÆg  ã                   @   sx   d dl Z d dlZd dlZd dlmZ d dlmZ e ¡ d kZG dd„ de j	ƒZ
G dd„ de j	ƒZedkr:e  ¡  dS dS )	é    N)Útouch)Úquestionc                   @   sh   e Zd Zedd„ ƒZedd„ ƒZdd„ Ze e	 d¡dd	„ ƒZ
d
d„ Ze e	 d¡dd„ ƒZdd„ ZdS )Ú	TouchTestc                 C   ó   t j ¡  d S ©N)ÚpygameÚdisplayÚinit©Úcls© r   úK/home/ubuntu/.local/lib/python3.10/site-packages/pygame/tests/touch_test.pyÚ
setUpClass   ó   zTouchTest.setUpClassc                 C   r   r   )r   r   Úquitr
   r   r   r   ÚtearDownClass   r   zTouchTest.tearDownClassc                 C   s   t  ¡  d S r   )r   Úget_num_devices©Úselfr   r   r   Útest_num_devices   s   zTouchTest.test_num_devicesúno touch devices foundc                 C   s   t  d¡ d S ©Nr   )r   Ú
get_devicer   r   r   r   Útest_get_device   r   zTouchTest.test_get_devicec                 C   s&   |   tjtjd¡ |   ttjd¡ d S )Né.ûÿÿÚtest)ÚassertRaisesr   Úerrorr   r   Ú	TypeErrorr   r   r   r   Útest_get_device__invalid   s   z"TouchTest.test_get_device__invalidc                 C   s   t  t  d¡¡ d S r   )r   Úget_num_fingersr   r   r   r   r   Útest_num_fingers   s   zTouchTest.test_num_fingersc                 C   s&   |   ttjd¡ |   tjtjd¡ d S )Nr   r   )r   r   r   r    r   r   r   r   r   r   Útest_num_fingers__invalid#   s   z#TouchTest.test_num_fingers__invalidN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r   r   ÚunittestÚskipIfÚhas_touchdevicer   r   r!   r"   r   r   r   r   r      s    



r   c                   @   s(   e Zd ZdgZe e d¡dd„ ƒZdS )ÚTouchInteractiveTestÚinteractiver   c                 C   s”  t j ¡  t j ¡  dtjd< t j d¡}| d¡ t j dd¡}d}d}| 	|d	t  
d
¡¡}| 	|d	t  
d
¡¡}d	}|rºt j ¡ D ]
}|jt jkrLd}qBg }	t jj ¡ }
|
dkrt jj d¡}t jj |¡}|dkrtd|ƒD ]}t jj ||¡}| 	d|› d	t  
d
¡¡}|	 |¡ qp| d¡ | |d¡ | |d¡ t|	ƒD ]\}}| |dd|d  f¡ q¢t j ¡  |s=tdƒ}|  |¡ t j ¡  dS )z&ask for touch input and check the dictz50,50ÚSDL_VIDEO_WINDOW_POS)i   iX  )éÿ   r-   r-   Né    z.Please place some fingers on your touch devicez7Close the window when finished, and answer the questionTz#000000Fr   z	finger - )é   r/   )r/   é(   r/   éP   r0   z"Does the finger data seem correct?)r   r   r	   ÚfontÚosÚenvironÚset_modeÚfillÚFontÚrenderÚColorÚeventÚgetÚtypeÚQUITÚ_sdl2r   r   r   r    ÚrangeÚ
get_fingerÚappendÚblitÚ	enumerateÚupdater   Ú
assertTruer   )r   Úscreenr2   Úinstructions_str_1Úinstructions_str_2Úinst_1_renderÚinst_2_renderÚrunningr:   Úfinger_data_rendersÚnum_devicesÚfirst_deviceÚnum_fingersÚfinger_indexÚdatar8   ÚindexÚfingerÚresponser   r   r   Útest_get_finger+   sN   



ÿ€ÿ

ç
z$TouchInteractiveTest.test_get_fingerN)r#   r$   r%   Ú__tags__r'   r(   r)   rU   r   r   r   r   r*   (   s    r*   Ú__main__)r'   r3   r   Úpygame._sdl2r   Úpygame.tests.test_utilsr   r   r)   ÚTestCaser   r*   r#   Úmainr   r   r   r   Ú<module>   s    8ÿ