o
    tVg#                     @   sV  d dl Z d dlZd dlZd dlZd dlZdhZi ddddddd	d
dddddddddddddddddddddd d!d"d#d$i d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAd4dBdCdDdEi dFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgi dhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddmddoddqddsddui ddwddydd{dd}ddddddddddddddddddddddddddi dddddddddddddddddddddddddd&ddddddddi ddddddēddƓddȓddʓdd̓ddΓddГddғddԓdd֓ddГddٓddГddܓddܓi ddߓddddddddddddddddddddddddddddddddi d ddddddddd	d
dddddddddddddddddddddZG d d! d!ejZe	d"kr)e
  dS dS (#      N	K_UNKNOWNK_00K_11K_22K_33K_44K_55K_66K_77K_88K_99	K_AC_BACKzAC BackK_AMPERSAND&
K_ASTERISK*K_AT@K_BACKQUOTE`K_BACKSLASH\K_BACKSPACE	backspaceK_BREAKbreak
K_CAPSLOCKz	caps lockK_CARET^K_CLEARclearK_COLON:K_COMMA,K_CURRENCYSUBUNITCurrencySubUnitK_CURRENCYUNITeuroK_DELETEdeleteK_DOLLAR$K_DOWNdownK_ENDendK_EQUALS=K_ESCAPEescapeK_EURO	K_EXCLAIM!K_F1f1K_F10f10K_F11f11K_F12f12K_F13f13K_F14f14K_F15f15K_F2f2K_F3f3K_F4f4K_F5f5K_F6f6K_F7f7K_F8f8K_F9f9	K_GREATER>K_HASH#K_HELPhelpK_HOMEhomeK_INSERTinsertK_KP0z[0]K_KP1z[1]K_KP2z[2]K_KP3z[3]K_KP4z[4]K_KP5z[5]K_KP6z[6]K_KP7z[7]K_KP8z[8]K_KP9z[9]K_KP_0K_KP_1K_KP_2K_KP_3K_KP_4K_KP_5K_KP_6K_KP_7K_KP_8K_KP_9K_KP_DIVIDEz[/]
K_KP_ENTERenterK_KP_EQUALSequals
K_KP_MINUSz[-]K_KP_MULTIPLYz[*]K_KP_PERIODz[.]	K_KP_PLUSz[+]K_LALTzleft altK_LCTRLz	left ctrlK_LEFTleftK_LEFTBRACKET[K_LEFTPAREN(K_LESS<K_LGUIz	left metaK_LMETAK_LSHIFTz
left shiftK_LSUPERK_MENUmenuK_MINUS-K_MODEzalt gr	K_NUMLOCKnumlockK_NUMLOCKCLEAR
K_PAGEDOWNz	page downK_PAGEUPzpage upK_PAUSE	K_PERCENT%K_PERIOD.K_PLUS+K_POWERpowerK_PRINTzprint screenK_PRINTSCREEN
K_QUESTION?K_QUOTE'
K_QUOTEDBL"K_RALTz	right altK_RCTRLz
right ctrlK_RETURNreturnK_RGUIz
right metaK_RIGHTrightK_RIGHTBRACKET]K_RIGHTPAREN)K_RMETAK_RSHIFTzright shiftK_RSUPERK_SCROLLLOCKzscroll lockK_SCROLLOCKK_SEMICOLON;K_SLASH/K_SPACEspaceK_SYSREQzsys reqK_TABtabK_UNDERSCORE_K_UPupK_aaK_bbK_ccK_ddK_eeK_ffK_ggK_hhK_iiK_jjK_kkK_llK_mmK_nnK_ooK_ppK_qqK_rrK_ssK_ttK_uuK_vvK_wwK_xxK_yyK_zzc                   @   sf   e Zd Zedd Zedd Zdd Zdd Ze	d	d
d Z
dd Zdd Zdd Zdd ZdS )KeyModuleTestc                 C      t   d S N)pygameinitcls r  I/home/ubuntu/.local/lib/python3.10/site-packages/pygame/tests/key_test.py
setUpClass      zKeyModuleTest.setUpClassc                 C   r  r  )r  quitr  r  r  r	  tearDownClass   r  zKeyModuleTest.tearDownClassc                 C   s,   t  st   t j st j  d S d S r  )r  get_initr  displayselfr  r  r	  setUp   s
   
zKeyModuleTest.setUpc                 C   s   ddl }dS )zdoes it import?r   N)
pygame.key)r  r  r  r  r	  test_import   r  zKeyModuleTest.test_importz(flaky test, and broken on 2.0.18 windowsc                 C   sr  t j }| | | |t tjddkrt j	
 }|dkr$dg}t j	j|d t jd t jd t j  t j }| |t | | t j  tjdkrt j	  tdD ]}td	 t j  q]| t j  t j	j|d t jd tdD ]}td	 t j  q| t j  t j	  | t j}t j  W d    d S 1 sw   Y  d S )
NSDL_VIDEODRIVERdummy)  r  )sizeflagsTnt2   g{Gz?)r  keyget_focusedassertFalseassertIsInstanceintosenvirongetr  
list_modesset_mode
FULLSCREENeventset_grabpump
assertTruer*   nameiconifyrangetimesleepr  assertRaiseserror)r  focuseddisplay_sizesr   r   cmr  r  r	  test_get_focused   s:   











"zKeyModuleTest.test_get_focusedc                 C   s    t j }| |t j d d S )Nr   )r  r  get_pressedassertEqualr   )r  statesr  r  r	  test_get_pressed   s   
zKeyModuleTest.test_get_pressedc              	   C   s  t tD ]h}|dr|tv rqzt| }W n ty$   | d Y nw tt|}| tj	
|| | tj	j
|d| | tj	|| | tj	j|d| tj	j
|dd}| |t | tj	|| q| ttj	j
d | ttj	jtj | ttj	jd d S )NK_zIf you are seeing this error in a test run, you probably added a new pygame key constant, but forgot to update key_test unitests)r  )r,  F)
use_compatfizzbuzz)dirr  
startswithSKIPPED_KEYSKEY_NAME_COMPATKeyErrorfailgetattrr8  r  r,  key_coder   strr1  	TypeErrorr   
ValueError)r  
const_nameexpected_str_name	const_valalt_namer  r  r	  test_name_and_key_code   s*   
z$KeyModuleTest.test_name_and_key_codec                 C   sv   t jt j | t j t j t jt j | t j t j t jt jt jB  | t j t jt jB  d S r  )r  r  set_mods	KMOD_CTRLr8  get_modsKMOD_ALTr  r  r  r	  test_set_and_get_mods  s   z#KeyModuleTest.test_set_and_get_modsc                 C   sR   |  tj d tjdd |  tj d tj  |  tj d d S )N)r   r   
      )rS  rT  )r8  r  r  
get_repeat
set_repeatr  r  r  r	  test_set_and_get_repeat'  s
   
z%KeyModuleTest.test_set_and_get_repeatN)__name__
__module____qualname__classmethodr
  r  r  r  unittestskipr6  r:  rM  rR  rW  r  r  r  r	  r     s    


))	r  __main__)r"  r/  r\  r  r  r@  rA  TestCaser  rX  mainr  r  r  r	  <module>   s   	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                 	  
                                 
