
    id                     
   d dl Z d dlZd dlmZmZmZmZmZmZm	Z	m
ZmZmZ d dlZd dl d dlZd ej"                         k(  Z e j&                  ed       G d de j(                               Zedk(  r e j.                          yy)	    N)
uint8uint16uint32uint64zerosfloat32float64allrintarange)*PyPyzpypy skip known failurec                   @   e Zd ZdddddZdddddZdddddZdddddZg dZdZg dZ	e
d        Ze
d        Zd	 Zd*dZd+dZd*dZd,dZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d  Z#d! Z$d" Z%d# Z&d$ Z'd% Z(d& Z)d' Z*d( Z+d) Z,y
)-SurfarrayModuleTestTF             )r   r   r      )
      <   r   )   K   d   r   )r         r   )r   r   r   r   )r      ))r   r      ))      r"   ))	   r      )r$   r$   r&   ))r         ))r#      r)   ))r%   r(   r#   ))r$   r*   r#   c                 ,    t        j                          y N)pygameinitclss    e/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/pygame/tests/surfarray_test.py
setUpClasszSurfarrayModuleTest.setUpClass4   s     	    c                 ,    t        j                          y r,   )r-   quitr/   s    r1   tearDownClassz!SurfarrayModuleTest.tearDownClass9   s    r3   c                 V    t        j                         st        j                          y y r,   )r-   get_initr.   r/   s    r1   setUpzSurfarrayModuleTest.setUp=   s      KKM !r3   Nc                     || j                   }d}|r	|t        z  }t        j                  | j                  ||      }|dk(  r"|j                  |D cg c]  }|d d 	 c}       |S c c}w )Nr   r   r)   )test_paletteSRCALPHAr-   Surface	surf_sizeset_palette)selfbitsizesrcalphapaletteflagssurfcs          r1   _make_surfacez!SurfarrayModuleTest._make_surfaceC   sj    ?''GXE~~dnneW=a<W5ae56 6s   A&c                     || j                   }|j                  |d   d       |j                  |d   d       |j                  |d   d       |j                  |d   d       y )	Nr"   )r   r   r$   r*   r&   )r$   r   r$   r*   r)   )r   r*   r$   r*   r#   )r$   r*   r$   r*   )r;   fill)r@   rE   rC   s      r1   _fill_surfacez!SurfarrayModuleTest._fill_surfaceN   sZ    ?''G		'!*l+		'!*l+		'!*l+		'!*l+r3   c                 P    | j                  |||      }| j                  ||       |S r,   )rG   rJ   )r@   rA   rB   rC   rE   s        r1   _make_src_surfacez%SurfarrayModuleTest._make_src_surfaceV   s+    !!'8W=4)r3   c                    || j                   }|j                         dk(  r-|D cg c]"  }|j                  |j                  |            $ }}| j                  D ]a  \  }}| j                  |j                  |      ||   d|j                  |      ||   |j                         |j                         ||fz         c y c c}w )Nr   z(%s != %s: flags: %i, bpp: %i, posn: %s%s)r;   get_bitsize	unmap_rgbmap_rgbtest_pointsassertEqualget_at	get_flags)r@   rE   rC   msgrF   posnis          r1   _assert_surfacez#SurfarrayModuleTest._assert_surface[   s    ?''G#@GH1t~~dll1o6HGH'' 	GD!D!
:KK%AJNN$$$&	 Is   'C c                 T    t        | j                  d   | j                  d   df|      S )Nr   r"   r)   r   r>   r@   dtypes     r1   _make_array3dz!SurfarrayModuleTest._make_array3do   s(    dnnQ'):A>FFr3   c                    | j                   }|j                  |d         dz  |d dd df<   |j                  |d         dz  |dd d df<   |j                  |d         dz  |d ddd f<   |j                  |d         dz  |dd dd f<   y )Nr"   l    r$   r*   r&   r)   r#   )r;   rP   )r@   arrrE   rC   s       r1   _fill_array2dz!SurfarrayModuleTest._fill_array2dr   s    ##ll71:.;BQBFll71:.;ABFll71:.;BQBFll71:.;ABFr3   c                     | j                   }|d   d d |d dd df<   |d   d d |dd d df<   |d   d d |d ddd f<   |d   d d |dd dd f<   y )Nr"   r)   r$   r*   r&   r#   )r;   )r@   r_   rC   s      r1   _fill_array3dz!SurfarrayModuleTest._fill_array3dy   s    ##aj!nBQBFaj!nABFaj!nBQBFaj!nABFr3   c                 J    | j                  |      }| j                  |       |S r,   )r]   rb   )r@   r\   r_   s      r1   _make_src_array3dz%SurfarrayModuleTest._make_src_array3d   s%      '3
r3   c                 .    t        | j                  |      S r,   rZ   r[   s     r1   _make_array2dz!SurfarrayModuleTest._make_array2d   s    T^^U++r3   c                 <   | j                  d      | j                  d      | j                  dd      | j                  d      | j                  d      | j                  dd      g}| j                  }d}|D ]"  }t        j                  j	                  |      }| j
                  D ]`  \  }}| j                  ||   |j                  |      d||   |j                  |      |j                         |j                         |fz         b |j                         d	   s|j                  |       t        j                  j	                  |      }d
}| j                  ||   |j                  |      d||   |j                  |      |j                         fz         % y )Nr   r   TrB   r   r   )r   r   r      &%s != %s: flags: %i, bpp: %i, posn: %sr)   r!   z%s != %s: bpp: %i)rL   r;   r-   	surfarrayarray2drQ   rR   get_at_mappedrT   rN   	get_masksrI   )r@   sourcesrC   alpha_colorrE   r_   rV   rW   s           r1   test_array2dz SurfarrayModuleTest.test_array2d   s   ""1%""2&""2"5""2&""2&""2"5
 ##$ 	D""**40C++ a  I&&t,<D	**40(((* ~~"		+&&&..t4  I&&t,'4y$"4"4T":D<L<L<NOP)	r3   c                    | j                  d      | j                  dd      | j                  d      | j                  d      | j                  dd      g}| j                  }|D ]  }t        j                  j	                  |      }d }| j
                  D ]o  \  }}| j                   |||   |j                  |            dt        ||         |j                  |      |j                         |j                         |fz         q  y )Nr   Trh   r   r   c                 L    | d   |d   k(  xr | d   |d   k(  xr | d   |d   k(  S )Nr   r"   r&    )acscs     r1   
same_colorz4SurfarrayModuleTest.test_array3d.<locals>.same_color   s6    !u1~K"Q%2a5.KRUbe^Kr3   rj   )rL   r;   r-   rk   array3drQ   
assertTruerS   tuplerT   rN   )r@   ro   rC   rE   r_   rw   rV   rW   s           r1   test_array3dz SurfarrayModuleTest.test_array3d   s   ""2&""2"5""2&""2&""2"5
 ## 	D""**40CL  ++ as4y$++d*;<<c$i(D)(((*
	r3   c                    g d}| j                  d|      | j                  d|      | j                  d|d      | j                  d|      | j                  d|      | j                  d|d      g}|D ]  }|}|j                         dk(  r-|D cg c]"  }|j                  |j                  |            $ }}t        j
                  j                  |      }|j                         d	   rW| j                  D ]G  \  \  }}}	| j                  |||f   ||	   d	   d
|||f   ||	   d	   |||j                         fz         I | j                  t        |dk(                |D ]  }|j                         }
|j                  d        t        j
                  j                  |      }| j                  t        |dk(        d|j                         |j                         fz         |j                  |
        |D ]  }|j                         }
|j                  d       t        j
                  j                  |      }|j                         d	   r@| j                  t        |dk(        d|j                         |j                         fz         n?| j                  t        |dk(        d|j                         |j                         fz         |j                  |
        y c c}w )Nr   r   r   r   )r   2   r   r   )r   x         )@   ri   r   r   )r   ri   r   A   r   rC   r   TrC   rB   r   r   r)   %%i != %i, posn: (%i, %i), bitsize: %ir   z]All alpha values should be 255 when surf.set_alpha(None) has been set. bitsize: %i, flags: %ir   zbitsize: %i, flags: %i)rL   rN   rO   rP   r-   rk   array_alpharn   rQ   rR   ry   alltrue	get_alpha	set_alpharT   assertFalse)r@   rC   targetsrE   prF   r_   xyrW   blanket_alphas              r1   test_array_alphaz$SurfarrayModuleTest.test_array_alpha   s   
 ""1g"6""2w"7""2w"F""2w"7""2w"7""2w"F
  	5DA!R'>?@T^^DLLO4@@""..t4C~~"!%!1!1 	IFQA$$AqD	!Q*"1a4y!A$q'1a9I9I9KLM		 s
 34#	5(  
	*D NN,MNN4 ""..t4COOs
#*-1-=-=-?AQ,RS NN=)
	*  	*D NN,MNN1""..t4C~~"  C3J',0@0@0BDNNDT/UU
 C3J',0@0@0BDNNDT/UU NN=)	*= As   'K&c                    g d}| j                  d|      | j                  d|      | j                  d|d      | j                  d|      | j                  d|      | j                  d|d      g}|D ]C  }|}|j                         dk(  r-|D cg c]"  }|j                  |j                  |            $ }}|j	                  d        t
        j                  j                  |      }| j                  t        |d	k(               t        d
t        |            D ]  }|j	                  ||          d	gt        |      z  }d||<   t
        j                  j                  |      }| j                  D ]A  \  \  }	}
}| j                  ||	|
f   ||   d||	|
f   ||   |	|
|j                         fz         C  F y c c}w )Nr}   r   r   r   Tr   r   r   r   r"   r   r   )rL   rN   rO   rP   set_colorkeyr-   rk   array_colorkeyry   r   rangelenrQ   rR   )r@   rC   r   rE   r   rF   r_   rW   alphasr   r   js               r1   test_array_colorkeyz'SurfarrayModuleTest.test_array_colorkey  s   
 ""1g"6""2w"7""2w"F""2w"7""2w"7""2w"F
  	DA!R'>?@T^^DLLO4@@d#""11$7COOGC3J/01c'l+ !!!A$'Qq	&&55d;!%!1!1 	IFQA$$AqD	q	*"1a4y&)Q4;K;K;MNO			 As   'F?c                 (    | j                  dd       y Nredr   _test_array_rgbr@   s    r1   test_array_redz"SurfarrayModuleTest.test_array_red7  s    UA&r3   c                 (    | j                  dd       y Ngreenr"   r   r   s    r1   test_array_greenz$SurfarrayModuleTest.test_array_green:  s    Wa(r3   c                 (    | j                  dd       y Nbluer&   r   r   s    r1   test_array_bluez#SurfarrayModuleTest.test_array_blue=  s    VQ'r3   c                 f   d|z   }t        t        j                  |      }g d}|D cg c]  }||   	 }}| j                  d|      | j                  d|      | j                  d|d      g}|D ]  }	| j	                  |	j                                | j                  D ]  \  \  }
}}|	j                  ||           ||	      }| j                  ||
|f   ||          |	j                  d       | j                  ||
|f   ||          | j	                  |	j                                ~  y c c}w )	Narray_r   )r$         r   )      %   r   )         r   )         r   r   r   r   Tr   )r   r   r      )	getattrr-   rk   rL   r   
get_lockedrQ   rI   rR   )r@   	operation	mask_posnmethod_name	array_rgbrC   rF   planer   rE   r   r   rW   r_   s                 r1   r   z#SurfarrayModuleTest._test_array_rgb@  s@   *F,,k:	
 (//!9// ""2w"7""2w"7""2w"F
  		DT__./!-- 	A		'!*%o  QTE!H5		./  QTE!H5  !23		 0s   D.c                    t        j                  ddd      }t         j                  j                  |      }t         j                  j	                  ||       | j                  d      | j                  d      | j                  dd      | j                  d      | j                  d      | j                  dd      g}g }dt        fdt        fdt        fg}	 |j                  d	t        f       |D cg c]  \  }}| j                  |      d f }}}d
D ])  }d }	|dk(  rNt        j                  ddd      }| j                  D 
cg c]"  }
|j                  |j                  |
            $ }	}
| j                   |   rC| j#                  |      }t         j                  j!                  |      }|j                  ||	f       | j                  |   s| j#                  |      }t         j                  j                  |      }|j                  ||	f       |D ]'  \  }}|j                  |j%                  |      |	f       ) , d }|D ]  }|j'                         }|D ]f  \  }}	|j)                  d       |dk(  r| j+                  t,        |||       5t         j                  j	                  ||       | j/                  ||	       h | j0                  |   r|j)                  d       | j#                  ||j3                         t4        z        }t         j                  j1                  |      }t         j                  j	                  ||       | j/                  |       | j6                  |   s'| j#                  ||j3                         t4        z        }t         j                  j7                  |      }|D ]  \  }}|j)                  d       ||k\  rAt         j                  j	                  ||j%                  |             | j/                  |       ]| j+                  t,        ||| j9                  |               | j                  dd      }t;        |j=                         t              }|j                  d      |d<   |j                  |d         }t         j                  j	                  ||       | j?                  |jA                  d      |       | j                  dd      }t;        |j=                         t              }d}|j                  |      |d<   t         j                  j	                  ||       | j?                  |jA                  d      |       | j                  t              }dg dg dfdg dg dfdg dg dfg}|D ]  \  }}}| j                  ||d   dk7        }d }	|dk(  r7| j                  D 
cg c]"  }
|j                  |j                  |
            $ }	}
| j+                  tB        |jD                  |       | j+                  tB        |jF                  |        t        j                  ddd      }d}| j+                  t,        |||       | jH                  }t        j                  |dd      }t;        |d   |d   dz   dgt              }| j+                  t,        |||       t;        |d   dz   |d   dgt              }| j+                  t,        |||       t        j                  ddd      }t;        dt              }| j+                  t,        |||       d|_%        | j+                  t,        |||       	 tL         t        j                  dt         j4                  d      }|j=                         \  }}||z  }tN        tP        fD ]  }|j)                  d       tS        d||       }||f|_%        t         j                  j	                  ||       tU        |      D ]L  }tU        |      D ]<  }| j?                  |jW                  ||f      tY        tM        |||f                      > N  y # t        $ r Y dw xY wc c}}w c c}
w c c}
w # t        $ r Y y w xY w)!N)r   r   r   r   r   r   Trh   r   r   r   )r"   r"   c                 D    t         j                  j                  | |       y r,   )r-   rk   
blit_array)rE   r_   s     r1   do_blitz4SurfarrayModuleTest.test_blit_array.<locals>.do_blit  s    ''c2r3   r~   )r   ri   r   r   .r!   r'   )r   o   r   ?   )r    r   r   r#   )i      i   r   )r   r   r   r   )   r      r   )r   r   r   r   )r   r   l      ~ r   r)   abcdr"   )r"   r#   )r#   )r"   r"   r"   r#   )r   r   r   r   r\   )-r-   r=   rk   rx   r   rG   r   r   r   appendr   	NameErrorrd   r;   rO   rP   pixels3drL   astyperN   rI   assertRaises
ValueErrorrX   pixels2drT   r<   rl   rf   r   get_sizerR   rS   	TypeError
set_shifts	set_masksr>   shaper   r   r	   r   r   rm   int)r@   sar   arrays3ddtypes__r\   rA   rC   rF   rE   r_   szr   colorarr3dshift_testsshiftsmaskstr>   whlengthfarrr   r   s                               r1   test_blit_arrayz#SurfarrayModuleTest.test_blit_array^  s   NN8Q+$$Q'##Aq) q!r"rD1r"r"rD1
 e*r6lRL9	MM2v,' LRRib%T++E2D9RR& 	BGG"}NN61b1>B>O>OP1;;qyy|4PP}}W%--g6&&//5g/||G$--g6&&..t4g/!' BIBOOSZZ%6$@AB	B"	3  	D&&(G ( 8W		,'a<%%j'4E$$//c:((w78 }}W%		,'**7DNN4Dx4OP&&//2  ++D#6$$T*||G$**7DNN4Dx4OP&&..q1!' IBIIl+W}((33D#**U:KL,,T2))&t7I7I%7P)	> !!"t!4DMMOV,<< 12Cs4y)##D#.V,e4!!"t!4DMMOV,!<<&C##D#.V,e4 &&u-  :; ;<!EF
 '2 	@"GVU%%ga%IDG"}DHDUDUVq4>>$,,q/:VVi&Ai?	@ ~~fa,*gtQ7NN	~~iB/Yq\9Q<!#3Q7@*gtS9Yq\A%y|Q7@*gtS9~~fa,D&!*gtS9 	*gtS9	 >>(FOOR@D==?DAqUF!7+ 			,-au5T
  ++D$7q A"1X (( ..1v6Dad<L8M	c  		R
 QT W4  		s6   a 3a'a'a!a& 	aa&	a21a2c                 l    t         j                  j                         }| j                  |dd|        y Nnumpyzunknown array type )r-   rk   get_arraytyperR   )r@   
array_types     r1   test_get_arraytypez&SurfarrayModuleTest.test_get_arraytype  s0    %%335
W0CJ<.PQr3   c                     t         j                  j                         }| j                  d|       |D ]  }| j	                  |dd|         y r   )r-   rk   get_arraytypesassertInrR   )r@   
arraytypesatypes      r1   test_get_arraytypesz'SurfarrayModuleTest.test_get_arraytypes  sO    %%446
gz* 	LEUG/B5'-JK	Lr3   c                 @   dt         fdt        fdt        ffD ]D  \  }}t        j                  j                  | j                  |            }| j                  |       F 	 t         d}d}||z  }t        t        fD ]  }t        d||      }||f|_        t        j                  j                  |      }t        |      D ]L  }t        |      D ]<  }	| j                  |j                  ||	f      t!        t        |||	f                      > N  y # t"        $ r Y y w xY w)Nr   r   r   r%   r(   r   r   )r   r   r   r-   rk   make_surfacerd   rX   r   r   r	   r   r   r   rR   rm   r   r   )
r@   rA   r\   rE   r   r   r   r   r   r   s
             r1   test_make_surfacez%SurfarrayModuleTest.test_make_surface  s)    !"5zB<"fF 	'NGU ##001G1G1NOD  &	'	 AAUF!7+ au5T
''44T:q A"1X (( ..1v6Dad<L8M	  		s    D 	DDc                    | j                  t              }| j                  d      | j                  d      | j                  dd      | j                  d      | j                  d      | j                  dd      g}| j                  }|D ]  }t        j
                  j                  ||      }| j                  D ]e  \  }}| j                  ||   |j                  ||         d||   |j                  ||         |j                         |j                         fz         g  | j                  t        t        j
                  j                  | j                  d      | j                  t                     y )Nr   r   Trh   r   r   z %i != %i, bitsize: %i, flags: %i)rd   r   rG   r;   r-   rk   	map_arrayrQ   rR   rP   rN   rT   r   r   rf   )r@   r   r   rC   rE   arr2drV   rW   s           r1   test_map_arrayz"SurfarrayModuleTest.test_map_array  sa   &&u-q!r"rD1r"r"rD1
 ## 	D$$..tU;E++ a  $KLL,6dWQZ0((*(	
	  	&&r"u%		
r3   c                    | j                  d      | j                  dd      | j                  dd      g}|D ]  }| j                  |j                                t        j                  j                  |      }| j                  |j                                | j                  ||       |j                          | j                  |j                                ~| j                  |j                                | j                  |j                         d       | j                  |        | j                  t        t        j                  j
                  | j                  d             y )Nr   r   Trh   r   rt   r   )rG   r   r   r-   rk   r   ry   r`   unlockrR   	get_locksrX   r   r   )r@   ro   rE   r_   s       r1   test_pixels2dz!SurfarrayModuleTest.test_pixels2dA  s!   q!rD1rD1
  
	'DT__./""++D1COODOO-.sD)KKMOODOO-.T__./T^^-r2  &
	' 	*f&6&6&?&?ASASTVAWXr3   c                    | j                  d      | j                  d      g}|D ]  }| j                  |j                                t        j                  j                  |      }| j                  |j                                | j                  |       |j                          | j                  |j                                ~| j                  |j                                | j                  |j                         d       | j                  |        d}| j                  dd      }t        j                  j                  |      }|d d |d<   | j                  |j                  d      |       d	 }| j                  t        || j                  d
             | j                  t        || j                  d             y )Nr   r   rt   )r"   r&   r)   r   Trh   r)   r!   c                 B    t         j                  j                  |        y r,   )r-   rk   r   rE   s    r1   do_pixels3dz6SurfarrayModuleTest.test_pixels3d.<locals>.do_pixels3dn  s    %%d+r3   r   r   )rG   r   r   r-   rk   r   ry   rb   r   rR   r   rX   rS   r   r   )r@   ro   rE   r_   r   r  s         r1   test_pixels3dz!SurfarrayModuleTest.test_pixels3dW  sq   %%b)4+=+=b+AB 
	'DT__./""++D1COODOO-.s#KKMOODOO-.T__./T^^-r2  &
	' !!"t!4''-"1ID	V,e4	, 	*k43E3Ea3HI*k43E3Eb3IJr3   c           	      P   g d}g d}| j                  dd|      }| j                  |j                                t        j                  j                  |      }| j                  |j                                |j                          | j                  |j                                | j                  D ]%  \  \  }}}| j                  |||f   ||   d          ' | j                  D ]C  \  \  }}}||   }||||f<   ddd|f}	| j                  |j                  ||f      |	d||fz         E ~| j                  |j                                | j                  |j                         d	       d
 }
g d}|D ],  \  }}| j                  t        |
| j                  ||             . y )N)r~   )   r  r  r   )r  r  r  U   )r  r  r     )r  r  r  r   )r   -   V   c      r   TrB   rC   r)   r  zposn: (%i, %i)rt   c                 B    t         j                  j                  |        y r,   )r-   rk   pixels_alphar  s    r1   do_pixels_alphaz>SurfarrayModuleTest.test_pixels_alpha.<locals>.do_pixels_alpha  s    ))$/r3   )r   Fr   Fr   T)r   F)r   F)rL   r   r   r-   rk   r  ry   r   rQ   rR   rS   r   r   r   rG   )r@   rC   r   rE   r_   r   r   rW   alphar   r  r   rA   rB   s                 r1   test_pixels_alphaz%SurfarrayModuleTest.test_pixels_alphat  s   
 &%%b4%I*+++D1)*)*)) 	7IFQASAY
16	7 )) 	TIFQA1IEC1I#sE*ET[[!Q0%9IQPQF9RS		T *+)2.	0 R!( 	GXOT-?-?-R	r3   c                 (    | j                  dd       y r   _test_pixels_rgbr   s    r1   test_pixels_redz#SurfarrayModuleTest.test_pixels_red  s    eQ'r3   c                 (    | j                  dd       y r   r  r   s    r1   test_pixels_greenz%SurfarrayModuleTest.test_pixels_green  s    gq)r3   c                 (    | j                  dd       y r   r  r   s    r1   test_pixels_bluez$SurfarrayModuleTest.test_pixels_blue  s    fa(r3   c           	      :   d|z   }t        t        j                  |      }g d}|D cg c]  }||   	 }}| j                  dd|      }| j                  dd|      }	| j                  dd|      }
||	|
fD ]  }| j	                  |j                                 ||      }| j                  |j                                |j                          | j                  |j                                | j                  D ]"  \  \  }}}| j                  |||f   ||          $ ~| j	                  |j                                | j                  |j                         d        g d	}|D ],  \  }}| j                  t        || j                  ||             . y c c}w )
Npixels_r   r   Fr  r   Trt   )r  r  r  )r   r-   rk   rL   r   r   ry   r   rQ   rR   r   r   r   rG   )r@   r   r   r   
pixels_rgbrC   rF   r   surf24surf32surf32arE   r_   r   r   rW   r   rA   rB   s                      r1   r  z$SurfarrayModuleTest._test_pixels_rgb  s   )+V--{;

 (//!9//''UG'L''UG'L((dG(LVW- 	3DT__./T"COODOO-.KKMOODOO-.!-- 6	A  QTE!H56 T__./T^^-r2	3 8!( 	GXJ(:(:7H(M	/ 0s   Fc                     d }t         j                  j                  d       | j                  t         j                  j	                         d       | j                  t        |d       y )Nc                 B    t         j                  j                  |        y r,   )r-   rk   use_arraytype)r   s    r1   do_use_arraytypez@SurfarrayModuleTest.test_use_arraytype.<locals>.do_use_arraytype  s    **51r3   r   znot an option)r-   rk   r&  rR   r   r   r   )r@   r'  s     r1   test_use_arraytypez&SurfarrayModuleTest.test_use_arraytype  sO    	2 	&&w/))7797C*&6Hr3   c                    t        j                  ddd      }t         j                  j                         D ]  }t         j                  j	                  |       t         j                  j                  |      }| j                  |j                                |j                          | j                  |j                                ~| j                  |j                                | j                  |j                         d        y )Nr'   r   r   rt   )r-   r=   rk   r   r&  r   ry   r   r   r   rR   r   )r@   sfr   ars       r1   test_surf_lockz"SurfarrayModuleTest.test_surf_lock  s    ^^FAr*%%446 	1E**51!!**2.BOOBMMO,IIKOOBMMO,R]]_-R\\^R0	1r3   )FNr,   )N )-__name__
__module____qualname__r   r   rl   rx   r;   r>   rQ   classmethodr2   r6   r9   rG   rJ   rL   rX   r]   r`   rb   rd   rf   rq   r{   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r(  r,  rt   r3   r1   r   r      s'   Tu$7He48HDd5GU$7GL I	K    	,
(G<%
,%N:@*D'R')(<NbRL D!
FY,K:(T(*)%NI1r3   r   __main__)unittestplatformr   r   r   r   r   r   r   r	   r
   r   r   r   r-   pygame.localspygame.surfarraypython_implementationIS_PYPYskipIfTestCaser   r.  mainrt   r3   r1   <module>r<     s           2H224
4 34H1(++ H1 5H1V zHMMO r3   