
    iZ3                         d dl Z d dlZd dlZd dlZd dlZd ej                         v Z G d de j                        Z G d de      Z G d de      Z	e
d	k(  r e j                          yy)
    NDarwinc                   ,    e Zd Zed        Zed        Zy)
MouseTestsc                 @    t         j                  j                          y N)pygamedisplayinitclss    a/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/pygame/tests/mouse_test.py
setUpClasszMouseTests.setUpClass   s     	    c                 @    t         j                  j                          y r   )r   r	   quitr   s    r   tearDownClasszMouseTests.tearDownClass   s    r   N)__name__
__module____qualname__classmethodr   r    r   r   r   r      s(       r   r   c                       e Zd ZdgZd Zy)MouseModuleInteractiveTestinteractivec                    t         j                  j                  d       t         j                  j	                          t         j
                  j                         syt         j                  j                         }d}|D ]  \  }}t         j
                  j                  ||       t         j                  j	                          t         j
                  j                         }|j                          d}d}|sc|dk  r^||j                         z  }t         j                  j	                         D ]"  }|j                  t         j                  k(  s!d}$ |s|dk  r^| j                  |||f        y)zhEnsures set_pos works correctly.
        Requires tester to move the mouse to be on the window.
        )  r   N))
   r   r   r   )  r   )r   r   )iU     )^   1   g        Fg     @@T)r   r	   set_modeeventgetmouseget_focusedtimeClockset_posget_posticktypeMOUSEMOTIONassertEqual)	selfclockexpected_posxy	found_postime_passedready_to_testr$   s	            r   test_set_posz'MouseModuleInteractiveTest.test_set_pos   s    	
+||'')!!#T  	0DAqLL  A&LL,,.IJJLK!M#v(=uzz|+#\\--/ -EzzV%7%77(,- $v(= YA/	0r   N)r   r   r   __tags__r8   r   r   r   r   r      s    H0r   r   c                      e Zd Z ej                  ej                  j                  dd      dk(  d      d        Z ej                  ej                  j                  dd      dk(  d      d        Z	 ej                  ej                  j                  dd      dk(  d      d        Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zy)MouseModuleTestSDL_VIDEODRIVER dummyz/Cursors not supported on headless test machinesc                 2   | j                  t        j                        5  t        j                  j	                          t        j
                  j                          ddd       t        j                  j                          d}d}d}d}d}t        j                  j                  ||||      }t        j
                  j                  |       	 t        j
                  j                         }| j                  |t        j                  j                         | j                  t        |      |       |D ]  }| j                  |t                t        j
                  j                  ||||       | j                  t        j
                  j                         |       y# 1 sw Y   ExY w# t        j                  $ rV | j                  t        j                        5  t        j
                  j                          ddd       Y y# 1 sw Y   Y yxY ww xY w)z#Ensures get_cursor works correctly.N   rA   r   )r   `   x   ~   p   rB   r   r   )            rH   rG   rB   r      )assertRaisesr   errorr	   r   r&   
get_cursorr
   cursorsCursor
set_cursorassertIsInstancer/   lentuple)	r0   sizehotspotxormaskandmaskexpected_lengthexpected_cursorcursorinfos	            r   test_get_cursorzMouseModuleTest.test_get_cursor:   s    v||, 	&NN!LL##%	& 	27 ..//gwP0	*\\,,.F!!&&..*?*?@S[/: 3%%dE23 LL##D'7GDV\\446H3	& 	&8 || 	*""6<<0 *'')* * *	*s6   =F CF-  F*-2HH>HH	HHz.mouse.set_system_cursor only available in SDL2c                    t        j                  d      5 }	 t        j                  d       | j                  t        j
                        5  t        j                  j                          t        j                  j                  t        j                         ddd       t        j                  j                          | j                  t              5  t        j                  j                  d       ddd       | j                  t              5  t        j                  j                  d       ddd       | j                  t              5  t        j                  j                  dd       ddd       | j                  t        j
                        5  t        j                  j                  d       ddd       | j                  t        j                  j                  t        j                        d       | j                  t        |      d	       | j!                  t#        d
 |D                     ddd       y# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   +xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   yxY w)z*Ensures set_system_cursor works correctly.T)recordalwaysNbr@   r   i     c              3   P   K   | ]  }t        |j                  t                 y wr   )
issubclasscategoryDeprecationWarning).0warns     r   	<genexpr>z9MouseModuleTest.test_set_system_cursor.<locals>.<genexpr>   s     PdJt}}.@APs   $&)warningscatch_warningssimplefilterrK   r   rL   r	   r   r&   set_system_cursorSYSTEM_CURSOR_HANDr
   	TypeErrorr/   SYSTEM_CURSOR_ARROWrR   
assertTrueall)r0   ws     r   test_set_system_cursorz&MouseModuleTest.test_set_system_cursorb   s    $$D1 !	Q[!!(+ ""6<<0 J##%..v/H/HIJ NN! ""9- 4..s34""9- 5..t45""9- ?..vv>? ""6<<0 5..t45 ..v/I/IJD
 SVQ'OOPaPP?!	 !	J J4 45 5? ?5 5+!	 !	s   6I?AI ;I? I4I? I1I?!I'/'I? I36BI? I
	I?I	I?I$	I?'I0	,I?3I<	8I??Jc                 \   d}d}d}d}t         j                  j                  ||||      }t         j                  }t         j                  j                  |      }t        j                  d      }t         j                  j                  ||      }	t         j
                  j                          | j                  t         j                        5  t         j                  j                  |       ddd       | j                  t         j                        5  t         j                  j                  |       ddd       | j                  t         j                        5  t         j                  j                  |	       ddd       t         j
                  j                          | j                  t              5  t         j                  j                  d|||       ddd       | j                  t              5  t         j                  j                  |d||       ddd       | j                  t              5  t         j                  j                  |d	||       ddd       | j                  t              5  t         j                  j                  ||d
|       ddd       | j                  t              5  t         j                  j                  |||d
       ddd       | j                  t              5  t         j                  j                  ||d|       ddd       | j                  t              5  t         j                  j                  |||ddgddddddf       ddd       | j                  t              5  t         j                  j                  d|||       ddd       | j                  t              5  t         j                  j                  d|d|       ddd       | j                  t              5  t         j                  j                  d||d       ddd       | j                  t         j                  j                  d|dd      d       t         j                  j                  ||||       | j                  t         j                  j                         |       t         j                  j                  ||t!        |      t!        |             | j                  t         j                  j                         |       | j                  t              5  t         j                  j                  d       ddd       | j                  t              5  t         j                  j                  d       ddd       | j                  t         j                  j                  |      d       t         j                  j                  |       | j                  t         j                  j                         |       t         j                  j                  |       | j                  t         j                  j                         |       | j                  t              5  t         j                  j                  d|       ddd       | j                  t              5  t         j                  j                  |d       ddd       | j                  t         j                  j                  ||      d       t         j                  j                  ||       | j                  t         j                  j                         |	       t         j                  j                  |	       | j                  t         j                  j                         |	       t         j                  j                  dt        j                  d             t         j                  j                         }
| j                  |
j"                  d       | j                  |
j$                  d   d       | j                  |
j$                  d   j'                         d       y# 1 sw Y   gxY w# 1 sw Y   -xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   <xY w# 1 sw Y   	xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   4xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   _xY w)z#Ensures set_cursor works correctly.r@   r   )r   rD   @   ru          r   r   )rH   rI   rH   rE   8         r   )r   r   N)rr   h)0r|   )r3   r4   ziNa 00000000   r   rJ   rA      )   rA   )rw   r   )   ru   rv   )   rB   0   r   r   )rw   r   )rA   r   )r   r   iyellow)r3   r4   not_a_surface)   r   color)r   rN   rO   ro   Surfacer	   r   rK   rL   r&   rP   r
   rn   
ValueErrorr/   rM   listr-   dataget_size)r0   rT   rU   rV   rW   bitmap_cursorconstantsystem_cursorsurfacecolor_cursorrZ   s              r   test_set_cursorzMouseModuleTest.test_set_cursor   s    05--dGWgN ----h7 ..*~~,,Wg> v||, 	3LL##M2	3 v||, 	3LL##M2	3 v||, 	2LL##L1	2 	 y) 	KLL##J'J	Ky) 	HLL##D*gwG	Hy) 	MLL##D/7GL	M y) 	FLL##D'8WE	Fy) 	FLL##D'7HE	F y) 	HLL##D':wG	Hy) 	XLL##D'7QQ1aQRTU<VW	X z* 	GLL##FGWgF	G z* 	NLL##GWmWM	Nz* 	TLL##GWg?RS	T 	LL##GWfhG	
 	gw@002MB 	gtG}d7mL002MB y) 	/LL##I.	/y) 	.LL##H-	. 	00:DA)002MB.002MB y) 	9LL##J8	9y) 	>LL##G_=	> 	00'BDI1002LA-002LA 	x(@A((*g.Q0Q002H=k	3 	3	3 	3	2 	2	K 	K	H 	H	M 	M	F 	F	F 	F	H 	H	X 	X	G 	G	N 	N	T 	T	/ 	/	. 	.	9 	9	> 	>s    a a a+5#a85#b5#b5#b5#b,5#b95,c>#c>#c >#c-" c: d%!d#!d!aa(+a58bbbb),b69ccc c*-c7:ddd!d+c                 l    t         j                  j                         }| j                  |t               y)z-Ensures get_focused returns the correct type.N)r   r&   r'   rQ   int)r0   focuseds     r   test_get_focusedz MouseModuleTest.test_get_focused   s$    ,,**,gs+r   c                    d}t         j                  j                         }| j                  |t               | j                  t        |      |       |D ]  }| j                  |t                d}t         j                  j                  d      }| j                  |t               | j                  t        |      |       |D ]  }| j                  |t                d}t         j                  j                  d      }| j                  |t               | j                  t        |      |       |D ]  }| j                  |t                d}t         j                  j                  d      }| j                  |t               | j                  t        |      |       |D ]  }| j                  |t                | j                  t              5  t         j                  j                  d       ddd       y# 1 sw Y   yxY w)z.Ensures get_pressed returns the correct types.r      )num_buttonsrJ   N)
r   r&   get_pressedrQ   rS   r/   rR   boolrK   r   )r0   rX   buttons_pressedvalues       r   test_get_pressedz MouseModuleTest.test_get_pressed  s    ,,224ou5_-?$ 	/E!!%.	/  ,,22q2Aou5_-?$ 	/E!!%.	/  ,,2215ou5_-?$ 	/E!!%.	/  ,,2215ou5_-?$ 	/E!!%.	/ z* 	(LL$$Q'	( 	( 	(s    G;;Hc                     d}t         j                  j                         }| j                  |t               | j                  t        |      |       |D ]  }| j                  |t                y)z*Ensures get_pos returns the correct types.r   N)r   r&   r+   rQ   rS   r/   rR   r   )r0   rX   posr   s       r   test_get_poszMouseModuleTest.test_get_pos#  \    ll""$c5)S?3 	.E!!%-	.r   c                     dg ddddg fD ]?  }| j                  t              5  t        j                  j	                  |       ddd       A y# 1 sw Y   LxY w)z4Ensures set_pos handles invalid positions correctly.r   r   r   r   r   1r   r   N)rK   rn   r   r&   r*   )r0   invalid_poss     r   test_set_pos__invalid_posz)MouseModuleTest.test_set_pos__invalid_pos.  sX     )QXrB 	2K""9- 2$$[12 2	22 2    AA	c                     d}t         j                  j                         }| j                  |t               | j                  t        |      |       |D ]  }| j                  |t                y)z*Ensures get_rel returns the correct types.r   N)r   r&   get_relrQ   rS   r/   rR   r   )r0   rX   relr   s       r   test_get_relzMouseModuleTest.test_get_rel4  r   r   c                     dD ]Q  }t         j                  j                  |       t         j                  j                         }| j	                  ||       S y)z$Ensures get_visible works correctly.FTN)r   r&   set_visibleget_visibler/   )r0   expected_valuevisibles      r   test_get_visiblez MouseModuleTest.test_get_visible?  sE    + 	6NLL$$^4ll..0GWn5	6r   c                     t         j                  j                  d       dD ]4  }t         j                  j                  |      }| j                  ||        6 y)z/Ensures set_visible returns the correct values.Tr   N)r   r&   r   r/   )r0   expected_visibleprev_visibles      r   test_set_visiblez MouseModuleTest.test_set_visibleH  sQ     	  & - 	A!<<334DEL\/?+?@	Ar   c                     dg ddddg fD ]?  }| j                  t              5  t        j                  j	                  |      }ddd       A y# 1 sw Y   LxY w)z8Ensures set_visible handles invalid positions correctly.r   r   g?r   r   N)rK   rn   r   r&   r   )r0   invalid_valuer   s      r   test_set_visible__invalid_valuez/MouseModuleTest.test_set_visible__invalid_valueR  sa    "IsC2F 	GM""9- G%||77FG G	GG Gr   N)r   r   r   unittestskipIfosenvironr%   r\   rs   r   r   r   r   r   r   r   r   r   r   r   r   r;   r;   9   s    X__


("-89"*	"*H X__


("-88$	$L X__


("-89j>	j>X,(B	.2	.6AGr   r;   __main__)r   r   platformri   r   DARWINTestCaser   r   r;   r   mainr   r   r   <module>r      sv     	    
&X&&(	(""  0  0F]Gj ]GD	 zHMMO r   