
    &h\$                         S SK r S SKrSrSrS r " S S\ R                  5      r " S S\ R                  5      r " S	 S
\ R                  5      r	\
S:X  a  \ R                  " 5         gg)    N)kUNKNOWN	BACKSPACETABCLEARRETURNPAUSEESCAPESPACECOMMAMINUSPERIODSLASH0123456789	SEMICOLONEQUALSLEFTBRACKET	BACKSLASHRIGHTBRACKETDELETEKP0KP1KP2KP3KP4KP5KP6KP7KP8KP9	KP_PERIOD	KP_DIVIDEKP_MULTIPLYKP_MINUSKP_PLUSKP_ENTER	KP_EQUALSUPDOWNRIGHTLEFTINSERTHOMEENDPAGEUPPAGEDOWNF1F2F3F4F5F6F7F8F9F10F11F12F13F14F15NUMLOCKCAPSLOCK	SCROLLOCKRSHIFTLSHIFTRCTRLLCTRLRALTLALTRMETALMETALSUPERRSUPERMODEHELPPRINTSYSREQBREAKMENUPOWEREUROKP_0KP_1KP_2KP_3KP_4KP_5KP_6KP_7KP_8KP_9NUMLOCKCLEAR
SCROLLLOCKRGUILGUIPRINTSCREENCURRENCYUNITCURRENCYSUBUNIT))r   r]   )r    r^   )r!   r_   )r"   r`   )r#   ra   )r$   rb   )r%   rc   )r&   rd   )r'   re   )r(   rf   )rH   rg   )rJ   rh   )rS   rR   rj   )rT   rQ   ri   )rW   rk   )rY   r   )r\   rl   c                 :   0 nU  HF  n[        [        R                  U5      nUR                  U[	        5       5      R                  U5        MH     [	        5       nUR                  5        H.  n[        U5      S:  d  M  UR                  [        U5      5        M0     U$ )zHelper function to find overlapping constant values/names.

Returns a set of fronzensets:
    set(frozenset(names of overlapping constants), ...)
   )	getattrpygame	constants
setdefaultsetaddvalueslen	frozenset)constant_namesoverlap_dictnamevalueoverlapsoverlap_namess         S/var/www/auris/envauris/lib/python3.13/site-packages/pygame/tests/constants_test.pycreate_overlap_setr      s     L(($/su-11$7 
 uH%,,.}!LL=12 / O    c                   R    \ rS rSrSrSr\" S \\-    5       5      rS r	S r
S rSrg	)
KConstantsTests   zTest K_* (key) constants.)-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QUOTE	BACKQUOTEEXCLAIMQUOTEDBLHASHDOLLAR	AMPERSAND	LEFTPAREN
RIGHTPARENASTERISKPLUSCOLONLESSGREATERQUESTIONATCARET
UNDERSCOREPERCENTc              #   ,   #    U  H
  nS U-   v   M     g7fK_N .0r   s     r   	<genexpr>KConstantsTests.<genexpr>   s     R&QD1H&Q   c                     U R                    H0  nU R                  [        [        R                  U5      SU 35        M2     g)zEnsures K constants exist.missing constant N)K_NAMES
assertTruehasattrrq   rr   selfr{   s     r   test_k__existence!KConstantsTests.test_k__existence   s5    LLDOOGF$4$4d;?PQUPV=WX !r   c                     U R                    H<  n[        [        R                  U5      nU R	                  [        U5      [        5        M>     g)z)Ensures K constants are the correct type.N)r   rp   rq   rr   assertIstypeintr   r{   r|   s      r   test_k__typeKConstantsTests.test_k__type   s4    LLDF,,d3EMM$u+s+ !r   c                     [          Vs1 s H  n[        S U 5       5      iM     nn[        U R                  5      nU R	                  X25        gs  snf )z0Ensures no unexpected K constant values overlap.c              3   ,   #    U  H
  nS U-   v   M     g7fr   r   r   s     r   r   8KConstantsTests.test_k__value_overlap.<locals>.<genexpr>   s     -1dQhr   N)K_AND_KSCAN_COMMON_OVERLAPSrx   r   r   assertSetEqualr   itemEXPECTED_OVERLAPSr}   s       r   test_k__value_overlap%KConstantsTests.test_k__value_overlap   sP     ;V
:U$I---:U 	 
 &dll3H8
   Ar   N)__name__
__module____qualname____firstlineno____doc__K_SPECIFIC_NAMEStupleK_AND_KSCAN_COMMON_NAMESr   r   r   r   __static_attributes__r   r   r   r   r      s7    #.b R&>AQ&QRRGY
,9r   r   c                   R    \ rS rSrSrSr\" S \\-    5       5      rS r	S r
S rSrg	)
KscanConstantsTests   z"Test KSCAN_* (scancode) constants.)0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
APOSTROPHEGRAVEINTERNATIONAL1INTERNATIONAL2INTERNATIONAL3INTERNATIONAL4INTERNATIONAL5INTERNATIONAL6INTERNATIONAL7INTERNATIONAL8INTERNATIONAL9LANG1LANG2LANG3LANG4LANG5LANG6LANG7LANG8LANG9NONUSBACKSLASH	NONUSHASHc              #   ,   #    U  H
  nS U-   v   M     g7fKSCAN_Nr   r   s     r   r   KscanConstantsTests.<genexpr>'  s      M1Mr   c                     U R                    H0  nU R                  [        [        R                  U5      SU 35        M2     g)zEnsures KSCAN constants exist.r   N)KSCAN_NAMESr   r   rq   rr   r   s     r   test_kscan__existence)KscanConstantsTests.test_kscan__existence+  s7    $$DOOGF$4$4d;?PQUPV=WX %r   c                     U R                    H<  n[        [        R                  U5      nU R	                  [        U5      [        5        M>     g)z-Ensures KSCAN constants are the correct type.N)r  rp   rq   rr   r   r   r   r   s      r   test_kscan__type$KscanConstantsTests.test_kscan__type0  s6    $$DF,,d3EMM$u+s+ %r   c                     [          Vs1 s H  n[        S U 5       5      iM     nn[        U R                  5      nU R	                  X25        gs  snf )z4Ensures no unexpected KSCAN constant values overlap.c              3   ,   #    U  H
  nS U-   v   M     g7fr  r   r   s     r   r   @KscanConstantsTests.test_kscan__value_overlap.<locals>.<genexpr>:  s     1DqhlDr   N)r   rx   r   r  r   r   s       r   test_kscan__value_overlap-KscanConstantsTests.test_kscan__value_overlap7  sT     4
3 1D113 	 

 &d&6&67H8
r   r   N)r   r   r   r   r   KSCAN_SPECIFIC_NAMESr   r   r  r  r  r   r   r   r   r   r   r      s=    ,1h  69MM KY
,	9r   r   c                   :    \ rS rSrSrSrS rS rS rS r	S r
S	rg
)KmodConstantsTestsiC  z%Test KMOD_* (key modifier) constants.)	KMOD_NONEKMOD_LSHIFTKMOD_RSHIFT
KMOD_SHIFT
KMOD_LCTRL
KMOD_RCTRL	KMOD_CTRL	KMOD_LALT	KMOD_RALTKMOD_ALT
KMOD_LMETA
KMOD_RMETA	KMOD_METAKMOD_NUM	KMOD_CAPS	KMOD_MODE	KMOD_LGUI	KMOD_RGUIKMOD_GUIc                     U R                    H0  nU R                  [        [        R                  U5      SU 35        M2     g)zEnsures KMOD constants exist.r   N)KMOD_CONSTANTSr   r   rq   rr   r   s     r   test_kmod__existence'KmodConstantsTests.test_kmod__existence]  s7    ''DOOGF$4$4d;?PQUPV=WX (r   c                     U R                    H<  n[        [        R                  U5      nU R	                  [        U5      [        5        M>     g)z,Ensures KMOD constants are the correct type.N)r9  rp   rq   rr   r   r   r   r   s      r   test_kmod__type"KmodConstantsTests.test_kmod__typeb  s6    ''DF,,d3EMM$u+s+ (r   c                     [        SS/5      [        SS/5      [        SS/5      1n[        U R                  5      nU R                  X!5        g)z3Ensures no unexpected KMOD constant values overlap.r5  r/  r6  r0  r7  r1  N)rx   r   r9  r   )r   r   r}   s      r   test_kmod__value_overlap+KmodConstantsTests.test_kmod__value_overlapi  sS     {L12{L12z;/0
 &d&9&9:H8r   c                     SnSnU H4  n[        [        R                  U5      nU R                  X$-  5        X$-  nM6     g)z8Ensures certain KMOD constants have no overlapping bits.)r%  r&  r'  r)  r*  r,  r-  r/  r0  r2  r3  r4  r   N)rp   rq   rr   assertFalse)r   NO_BITWISE_OVERLAPkmodsr{   r|   s        r   test_kmod__no_bitwise_overlap0KmodConstantsTests.test_kmod__no_bitwise_overlapv  sD    
 &DF,,d3EU]+NE 'r   c                     SSSSSS.nUR                  5        HX  u  p#SnU H   nU[        [        R                  U5      -  nM"     [        [        R                  U5      nU R	                  Xd5        MZ     g)	z5Ensures certain KMOD constants have overlapping bits.)r&  r'  )r)  r*  )r,  r-  )r/  r0  )r5  r6  )r(  r+  r.  r1  r7  r   N)itemsrp   rq   rr   assertEqual)r   KMOD_COMPRISED_DICT	base_name	seq_namesexpected_valuer{   r|   s          r   test_kmod__bitwise_overlap-KmodConstantsTests.test_kmod__bitwise_overlap  s|     95252
 %8$=$=$? IN!'&*:*:D"AA " F,,i8EU3 %@r   r   N)r   r   r   r   r   r9  r:  r=  r@  rF  rO  r   r   r   r   r$  r$  C  s&    /N,Y
,944r   r$  __main__)unittestpygame.constantsrq   r   r   r   TestCaser   r   r$  r   mainr   r   r   <module>rV     sy     l ^ *.K9h'' K9\Q9(++ Q9h`4** `4L zMMO r   