
    &hd                        S SK r S SKrS SKJrJrJrJrJrJrJ	r	J
rJrJr  S SKrS SK7  S SKrS\R"                  " 5       :H  r\ R&                  " \S5       " S S\ R(                  5      5       r\S:X  a  \ R.                  " 5         gg)	    N)
uint8uint16uint32uint64zerosfloat32float64allrintarange)*PyPyzpypy skip known failurec                   P   \ rS rSrSSSSS.rSSSSS.rSSSSS.rSSSSS.r/ SQrSr	/ SQr
\S 5       r\S	 5       rS
 rS,S jrS-S jrS,S jrS.S jrS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S  r#S! r$S" r%S# r&S$ r'S% r(S& r)S' r*S( r+S) r,S* r-S+r.g)/SurfarrayModuleTest   TF             )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                 .    [         R                  " 5         g N)pygameinitclss    S/var/www/auris/envauris/lib/python3.13/site-packages/pygame/tests/surfarray_test.py
setUpClassSurfarrayModuleTest.setUpClass4   s     	    c                 .    [         R                  " 5         g r-   )r.   quitr0   s    r2   tearDownClass!SurfarrayModuleTest.tearDownClass9   s    r5   c                 d    [         R                  " 5       (       d  [         R                  " 5         g g r-   )r.   get_initr/   r0   s    r2   setUpSurfarrayModuleTest.setUp=   s       KKM !r5   Nc                     Uc  U R                   nSnU(       a	  U[        -  n[        R                  " U R                  XA5      nUS:X  a$  UR                  U Vs/ s H  ofS S PM	     sn5        U$ s  snf )Nr   r   r*   )test_paletteSRCALPHAr.   Surface	surf_sizeset_palette)selfbitsizesrcalphapaletteflagssurfcs          r2   _make_surface!SurfarrayModuleTest._make_surfaceC   sj    ?''GXE~~dnne=a<W5WeW56 6s   A/c                     Uc  U R                   nUR                  US   S5        UR                  US   S5        UR                  US   S5        UR                  US   S5        g )	Nr#   )r   r   r%   r+   r'   )r%   r   r%   r+   r*   )r   r+   r%   r+   r$   )r%   r+   r%   r+   )r?   fill)rD   rI   rG   s      r2   _fill_surface!SurfarrayModuleTest._fill_surfaceN   sZ    ?''G		'!*l+		'!*l+		'!*l+		'!*l+r5   c                 L    U R                  XU5      nU R                  XC5        U$ r-   )rK   rO   )rD   rE   rF   rG   rI   s        r2   _make_src_surface%SurfarrayModuleTest._make_src_surfaceV   s'    !!'W=4)r5   c                    Uc  U R                   nUR                  5       S:X  a/  U Vs/ s H"  oAR                  UR                  U5      5      PM$     nnU R                   H_  u  pVU R                  UR                  U5      X&   SUR                  U5      X&   UR                  5       UR                  5       UU4-  5        Ma     g s  snf )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)rD   rI   rG   msgrJ   posnis          r2   _assert_surface#SurfarrayModuleTest._assert_surface[   s    ?''G#@GH1~~dll1o6GH''GDD!
:KK%JNN$$$& ( Is   )Cc                 T    [        U R                  S   U R                  S   S4U5      $ )Nr   r#   r*   r   rB   rD   dtypes     r2   _make_array3d!SurfarrayModuleTest._make_array3do   s(    dnnQ'):A>FFr5   c                    U R                   nUR                  US   5      S-  US S2S S24'   UR                  US   5      S-  USS 2S S24'   UR                  US   5      S-  US S2SS 24'   UR                  US   5      S-  USS 2SS 24'   g )Nr#   l    r%   r+   r'   r*   r$   )r?   rW   )rD   arrrI   rG   s       r2   _fill_array2d!SurfarrayModuleTest._fill_array2dr   s    ##ll71:.;BQBFll71:.;ABFll71:.;BQBFll71:.;ABFr5   c                     U R                   nUS   S S US S2S S24'   US   S S USS 2S S24'   US   S S US S2SS 24'   US   S S USS 2SS 24'   g )Nr#   r*   r%   r+   r'   r$   )r?   )rD   rh   rG   s      r2   _fill_array3d!SurfarrayModuleTest._fill_array3dy   s    ##aj!nBQBFaj!nABFaj!nBQBFaj!nABFr5   c                 J    U R                  U5      nU R                  U5        U$ r-   )re   rl   )rD   rd   rh   s      r2   _make_src_array3d%SurfarrayModuleTest._make_src_array3d   s%      '3
r5   c                 .    [        U R                  U5      $ r-   rb   rc   s     r2   _make_array2d!SurfarrayModuleTest._make_array2d   s    T^^U++r5   c                 :   U R                  S5      U R                  S5      U R                  SSS9U R                  S5      U R                  S5      U R                  SSS9/nU R                  nSnU GH&  n[        R                  R	                  U5      nU R
                   H^  u  pgU R                  XV   UR                  U5      SXV   UR                  U5      UR                  5       UR                  5       U4-  5        M`     UR                  5       S	   (       d  M  UR                  U5        [        R                  R	                  U5      nS
nU R                  XV   UR                  U5      SXV   UR                  U5      UR                  5       4-  5        GM)     g )Nr   r   TrF   r   r   )r   r   r      &%s != %s: flags: %i, bpp: %i, posn: %sr*   r"   z%s != %s: bpp: %i)rR   r?   r.   	surfarrayarray2drX   rY   get_at_mappedr[   rU   	get_masksrN   )rD   sourcesrG   alpha_colorrI   rh   r]   r^   s           r2   test_array2d SurfarrayModuleTest.test_array2d   s   ""1%""2&""2"5""2&""2&""2"5
 ##$D""**40C++  I&&t,<	**40(((* , ~~""		+&&&..t4  I&&t,'y$"4"4T":D<L<L<NOP) r5   c                    U R                  S5      U R                  SSS9U R                  S5      U R                  S5      U R                  SSS9/nU R                  nU H  n[        R                  R	                  U5      nS nU R
                   Hm  u  pgU R                  U" XF   UR                  U5      5      S[        XF   5      UR                  U5      UR                  5       UR                  5       U4-  5        Mo     M     g )Nr   Tru   r   r   c                 `    U S   US   :H  =(       a    U S   US   :H  =(       a    U S   US   :H  $ )Nr   r#   r'    )acscs     r2   
same_color4SurfarrayModuleTest.test_array3d.<locals>.same_color   s6    !u1~K"Q%2a5.KRUbe^Kr5   rw   )rR   r?   r.   rx   array3drX   
assertTruerZ   tupler[   rU   )rD   r|   rG   rI   rh   r   r]   r^   s           r2   test_array3d SurfarrayModuleTest.test_array3d   s    ""2&""2"5""2&""2&""2"5
 ##D""**40CL  ++sy$++d*;<<ci(D)(((*
 , r5   c                    / SQnU R                  SUS9U R                  SUS9U R                  SUSS9U R                  SUS9U R                  SUS9U R                  SUSS9/nU H  nUnUR                  5       S:X  a/  U Vs/ s H"  oSR                  UR                  U5      5      PM$     nn[        R
                  R                  U5      nUR                  5       S	   (       aT  U R                   HB  u  u  pxn	U R                  XgU4   XI   S	   S
XgU4   XI   S	   XxUR                  5       4-  5        MD     M  U R                  [        US:H  5      5        M     U H  nUR                  5       n
UR                  S 5        [        R
                  R                  U5      nU R                  [        US:H  5      SUR                  5       UR                  5       4-  5        UR                  U
5        M     U H  nUR                  5       n
UR                  S5        [        R
                  R                  U5      nUR                  5       S	   (       a@  U R                  [        US:H  5      SUR                  5       UR                  5       4-  5        O?U R                  [        US:H  5      SUR                  5       UR                  5       4-  5        UR                  U
5        M     g s  snf )Nr   r   r   r   )r   2   r   r   )r   x         )@   rv   r   r   )r   rv   r   A   r   rG   r   TrG   rF   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)rR   rU   rV   rW   r.   rx   array_alphar{   rX   rY   r   alltrue	get_alpha	set_alphar[   assertFalse)rD   rG   targetsrI   prJ   rh   xyr^   blanket_alphas              r2   test_array_alpha$SurfarrayModuleTest.test_array_alpha   s   
 ""1g"6""2w"7""2w"F""2w"7""2w"7""2w"F
 DA!R'>?@a^^DLLO4a@""..t4C~~"!%!1!1IFQA$$qD	Q*"a4y!$q'19I9I9KLM	 "2 s
 34# ( 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                 f   / SQnU R                  SUS9U R                  SUS9U R                  SUSS9U R                  SUS9U R                  SUS9U R                  SUSS9/nU GHC  nUnUR                  5       S:X  a/  U Vs/ s H"  oSR                  UR                  U5      5      PM$     nnUR	                  S 5        [
        R                  R                  U5      nU R                  [        US	:H  5      5        [        S
[        U5      5       H  nUR	                  XG   5        S	/[        U5      -  nSX'   [
        R                  R                  U5      nU R                   H<  u  u  pnU R                  XiU
4   X   SXiU
4   X   XUR                  5       4-  5        M>     M     GMF     g s  snf )Nr   r   r   r   Tr   r   r   r   r#   r   r   )rR   rU   rV   rW   set_colorkeyr.   rx   array_colorkeyr   r   rangelenrX   rY   )rD   rG   r   rI   r   rJ   rh   r^   alphasr   r   js               r2   test_array_colorkey'SurfarrayModuleTest.test_array_colorkey  s   
 ""1g"6""2w"7""2w"F""2w"7""2w"7""2w"F
 DA!R'>?@a^^DLLO4a@d#""11$7COOGC3J/01c'l+!!!$'Q	&&55d;!%!1!1IFQA$$qD		*"a4y&)Q4;K;K;MNO	 "2 ,  As   )F.c                 (    U R                  SS5        g Nredr   _test_array_rgbrD   s    r2   test_array_red"SurfarrayModuleTest.test_array_red7  s    UA&r5   c                 (    U R                  SS5        g Ngreenr#   r   r   s    r2   test_array_green$SurfarrayModuleTest.test_array_green:  s    Wa(r5   c                 (    U R                  SS5        g Nbluer'   r   r   s    r2   test_array_blue#SurfarrayModuleTest.test_array_blue=  s    VQ'r5   c                 T   SU-   n[        [        R                  U5      n/ SQnU Vs/ s H  ofU   PM	     nnU R                  SUS9U R                  SUS9U R                  SUSS9/nU H  n	U R	                  U	R                  5       5        U R                   H  u  u  pnU	R                  X\   5        U" U	5      nU R                  XU4   X|   5        U	R                  S5        U R                  XU4   X|   5        U R	                  U	R                  5       5        AM     M     g s  snf )	Narray_r   )r%         r   )      %   r   )         r   )         r   r   r   r   Tr   )r   r   r      )	getattrr.   rx   rR   r   
get_lockedrX   rN   rY   )rD   	operation	mask_posnmethod_name	array_rgbrG   rJ   planer   rI   r   r   r^   rh   s                 r2   r   #SurfarrayModuleTest._test_array_rgb@  s)   *F,,k:	
 (//w!9w/ ""2w"7""2w"7""2w"F
 DT__./!--			'*%o  TEH5		./  TEH5  !23 .  0s   D%c                    [         R                  " SSS5      n[         R                  R                  U5      n[         R                  R	                  X5        U R                  S5      U R                  S5      U R                  SSS9U R                  S5      U R                  S5      U R                  SSS9/n/ nS[        4S[        4S[        4/n UR                  S	[        45        U VVs/ s H  u  pgU R                  U5      S 4PM     nnnS
 GH8  nS n	US:X  aQ  [         R                  " SSS5      nU R                   V
s/ s H"  oR                  UR                  U
5      5      PM$     n	n
U R                   U   (       aB  U R#                  U5      n[         R                  R!                  U5      nUR                  X45        U R                  U   (       d  M  U R#                  U5      n[         R                  R                  U5      nUR                  X45        U H'  u  pUR                  UR%                  U5      U	45        M)     GM;     S nU GH  nUR'                  5       nU He  u  pUR)                  S5        US:X  a  U R+                  [,        XU5        M5  [         R                  R	                  X5        U R/                  X5        Mg     U R0                  U   (       a  UR)                  S5        U R#                  XR3                  5       [4        -  5      n[         R                  R1                  U5      n[         R                  R	                  X5        U R/                  U5        U R6                  U   (       d  GM0  U R#                  XR3                  5       [4        -  5      n[         R                  R7                  U5      nU H  u  pUR)                  S5        X:  aA  [         R                  R	                  XR%                  U5      5        U R/                  U5        M\  U R+                  [,        XU R9                  U5      5        M     GM      U R                  SSS9n[;        UR=                  5       [        5      nUR                  S5      US'   UR                  US   5      n[         R                  R	                  X5        U R?                  URA                  S5      U5        U R                  SSS9n[;        UR=                  5       [        5      nSnUR                  U5      US'   [         R                  R	                  X5        U R?                  URA                  S5      U5        U R                  [        5      nS/ SQ/ SQ4S/ SQ/ SQ4S/ SQ/ SQ4/nU H  u  nnnU R                  UUS   S:g  S9nS n	US:X  a9  U R                   V
s/ s H"  oR                  UR                  U
5      5      PM$     n	n
U R+                  [B        URD                  U5        U R+                  [B        URF                  U5        M     [         R                  " SSS5      nSnU R+                  [,        XU5        U RH                  n[         R                  " USS5      n[;        US   US   S-   S/[        5      nU R+                  [,        XU5        [;        US   S-   US   S/[        5      nU R+                  [,        XU5        [         R                  " SSS5      n[;        S[        5      nU R+                  [,        XU5        SUl%        U R+                  [,        XU5         [L          [         R                  " S[         R4                  S5      nUR=                  5       u  nnUU-  n[N        [P        4 H  nUR)                  S5        [S        SUUS 9nUU4Ul%        [         R                  R	                  UU5        [U        U5       HO  n[U        U5       H=  nU R?                  URW                  UU45      [Y        [M        UUU4   5      5      5        M?     MQ     M     g ! [         a     GN}f = fs  snnf s  sn
f s  sn
f ! [         a     g f = f)!N)r   r   r   r   r   r   Tru   r   r   r   )r#   r#   c                 B    [         R                  R                  X5        g r-   )r.   rx   
blit_array)rI   rh   s     r2   do_blit4SurfarrayModuleTest.test_blit_array.<locals>.do_blit  s    ''2r5   r   )r   rv   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   rd   )-r.   rA   rx   r   r   rK   r   r   r   appendr   	NameErrorro   r?   rV   rW   pixels3drR   astyperU   rN   assertRaises
ValueErrorr_   pixels2dr[   r@   ry   rr   r   get_sizerY   rZ   	TypeError
set_shifts	set_masksrB   shaper   r   r	   r   r   rz   int)rD   sar   arrays3ddtypes__rd   rE   rG   rJ   rI   rh   szr   colorarr3dshift_testsshiftsmaskstrB   whlengthfarrr   r   s                               r2   test_blit_array#SurfarrayModuleTest.test_blit_array^  s;   NN8Q+$$Q'##A) q!r"rD1r"r"rD1
 e*r6lRL9	MM2v,' LRR6ibT++E2D96R&GG"}NN61b1>B>O>OP>O;;qyy|4>OP}}W%--g6&&//5/||G$$--g6&&..t4/!'IBOOSZZ%6$@A "( '"	3 D&&(G (		,'a<%%j'E$$//:((7 !) }}W%		,'**7NN4Dx4OP&&//2  ++D6$$T*||G$$**7NN4Dx4OP&&..q1!'IBIIl+}((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VDUq>>$,,q/:DUVi&Ai? '2 ~~fa,*gQ7NN	~~iB/Yq\9Q<!#3Q7@*gS9Yq\A%y|Q7@*gS9~~fa,D&!*gS9 	*gS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 -a))a/)a4a9 
a&%a&9
bbc                 l    [         R                  R                  5       nU R                  USSU 35        g Nnumpyzunknown array type )r.   rx   get_arraytyperY   )rD   
array_types     r2   test_get_arraytype&SurfarrayModuleTest.test_get_arraytype  s0    %%335
W0CJ<.PQr5   c                     [         R                  R                  5       nU R                  SU5        U H  nU R	                  USSU 35        M     g r  )r.   rx   get_arraytypesassertInrY   )rD   
arraytypesatypes      r2   test_get_arraytypes'SurfarrayModuleTest.test_get_arraytypes  sH    %%446
gz*EUG/B5'-JK  r5   c                 @   S[         4S[        4S[        44 HD  u  p[        R                  R                  U R                  U5      5      nU R                  U5        MF      [          SnSnXE-  n[        [        4 H  n[        SXbS9nXE4Ul        [        R                  R                  U5      n[        U5       HM  n[        U5       H;  n	U R                  UR                  X45      [!        [        XxU	4   5      5      5        M=     MO     M     g ! ["         a     g f = f)Nr   r   r   r&   r)   r   r   )r   r   r   r.   rx   make_surfacero   r_   r   r   r	   r   r   r   rY   rz   r   r   )
rD   rE   rd   rI   r   r   r   r   r   r   s
             r2   test_make_surface%SurfarrayModuleTest.test_make_surface  s
    !"5zB<"fFNG ##001G1G1NOD  & G	 AAUF!7+a5T
''44T:qA"1X(( ..v6Dd<L8M & "	 ,  		s   !D 
DDc                    U R                  [        5      nU R                  S5      U R                  S5      U R                  SSS9U R                  S5      U R                  S5      U R                  SSS9/nU R                  nU H  n[        R
                  R                  XA5      nU R                   Ha  u  pgU R                  XV   UR                  X7   5      SXV   UR                  X7   5      UR                  5       UR                  5       4-  5        Mc     M     U R                  [        [        R
                  R                  U R                  S5      U R                  [        5      5        g )Nr   r   Tru   r   r   z %i != %i, bitsize: %i, flags: %i)ro   r   rK   r?   r.   rx   	map_arrayrX   rY   rW   rU   r[   r   r   rr   )rD   r   r   rG   rI   arr2dr]   r^   s           r2   test_map_array"SurfarrayModuleTest.test_map_array  sK   &&u-q!r"rD1r"r"rD1
 ##D$$..t;E++  KLL,6WZ0((*(	
 ,   	&&r"u%		
r5   c                    U R                  S5      U R                  SSS9U R                  SSS9/nU H  nU R                  UR                  5       5        [        R                  R                  U5      nU R                  UR                  5       5        U R                  X25        UR                  5         U R                  UR                  5       5        AU R                  UR                  5       5        U R                  UR                  5       S5        U R                  U5        M     U R                  [        [        R                  R
                  U R                  S5      5        g )Nr   r   Tru   r   r   r   )rK   r   r   r.   rx   r   r   ri   unlockrY   	get_locksr_   r   r   )rD   r|   rI   rh   s       r2   test_pixels2d!SurfarrayModuleTest.test_pixels2dA  s   q!rD1rD1
 DT__./""++D1COODOO-.s)KKMOODOO-.T__./T^^-r2  &  	*f&6&6&?&?ASASTVAWXr5   c                    U R                  S5      U R                  S5      /nU H  nU R                  UR                  5       5        [        R                  R                  U5      nU R                  UR                  5       5        U R                  U5        UR                  5         U R                  UR                  5       5        AU R                  UR                  5       5        U R                  UR                  5       S5        U R                  U5        M     SnU R                  SSS9n[        R                  R                  U5      nUS S US'   U R                  UR                  S5      U5        S	 nU R                  [        XPR                  S
5      5        U R                  [        XPR                  S5      5        g )Nr   r   r   )r#   r'   r*   r   Tru   r*   r"   c                 B    [         R                  R                  U 5        g r-   )r.   rx   r   rI   s    r2   do_pixels3d6SurfarrayModuleTest.test_pixels3d.<locals>.do_pixels3dn  s    %%d+r5   r   r   )rK   r   r   r.   rx   r   r   rl   r  rY   r  r_   rZ   r   r   )rD   r|   rI   rh   r   r   s         r2   test_pixels3d!SurfarrayModuleTest.test_pixels3dW  sh   %%b)4+=+=b+ABDT__./""++D1COODOO-.s#KKMOODOO-.T__./T^^-r2  &  !!"t!4''-"1ID	V,e4	, 	*k3E3Ea3HI*k3E3Eb3IJr5   c           	      >   / SQn/ SQnU R                  SSUS9nU R                  UR                  5       5        [        R                  R                  U5      nU R                  UR                  5       5        UR                  5         U R                  UR                  5       5        U R                   H#  u  u  pVnU R                  XEU4   X   S   5        M%     U R                   H>  u  u  pVnX'   nXXV4'   SSSU4n	U R                  UR                  XV45      U	SXV4-  5        M@     AU R                  UR                  5       5        U R                  UR                  5       S	5        S
 n
/ SQnU H*  u  pU R                  [        XR                  X5      5        M,     g )N)r   )   r%  r%  r   )r%  r%  r%  U   )r%  r%  r%     )r%  r%  r%  r   )r   -   V   c      r   TrF   rG   r*   r%  zposn: (%i, %i)r   c                 B    [         R                  R                  U 5        g r-   )r.   rx   pixels_alphar  s    r2   do_pixels_alpha>SurfarrayModuleTest.test_pixels_alpha.<locals>.do_pixels_alpha  s    ))$/r5   )r   Fr   Fr   T)r   F)r   F)rR   r   r   r.   rx   r.  r   r  rX   rY   rZ   r  r   r   rK   )rD   rG   r   rI   rh   r   r   r^   alphar   r/  r   rE   rF   s                 r2   test_pixels_alpha%SurfarrayModuleTest.test_pixels_alphat  sw   
 &%%b4%I*+++D1)*)*))IFQASAY
16 * ))IFQAIEI#sE*ET[[!0%9IQF9RS	 * *+)2.	0 R!(GO-?-?-R ")r5   c                 (    U R                  SS5        g r   _test_pixels_rgbr   s    r2   test_pixels_red#SurfarrayModuleTest.test_pixels_red  s    eQ'r5   c                 (    U R                  SS5        g r   r8  r   s    r2   test_pixels_green%SurfarrayModuleTest.test_pixels_green  s    gq)r5   c                 (    U R                  SS5        g r   r8  r   s    r2   test_pixels_blue$SurfarrayModuleTest.test_pixels_blue  s    fa(r5   c           	      .   SU-   n[        [        R                  U5      n/ SQnU Vs/ s H  ofU   PM	     nnU R                  SSUS9nU R                  SSUS9n	U R                  SSUS9n
XU
4 H  nU R	                  UR                  5       5        U" U5      nU R                  UR                  5       5        UR                  5         U R                  UR                  5       5        U R                   H   u  u  pnU R                  XU4   X   5        M"     AU R	                  UR                  5       5        U R                  UR                  5       S5        M     / S	QnU H,  u  nnU R                  [        X@R                  UU5      5        M.     g s  snf )
Npixels_r   r   Fr,  r   Tr   )r1  r2  r3  )r   r.   rx   rR   r   r   r   r  rX   rY   r  r   r   rK   )rD   r   r   r   
pixels_rgbrG   rJ   r   surf24surf32surf32arI   rh   r   r   r^   r   rE   rF   s                      r2   r9  $SurfarrayModuleTest._test_pixels_rgb  sy   )+V--{;

 (//w!9w/''UG'L''UG'L((dG(LW-DT__./T"COODOO-.KKMOODOO-.!--	  TEH5 . T__./T^^-r2 . 8!(GXJ(:(:7H(M ")/ 0s   Fc                     S n[         R                  R                  S5        U R                  [         R                  R	                  5       S5        U R                  [        US5        g )Nc                 B    [         R                  R                  U 5        g r-   )r.   rx   use_arraytype)r  s    r2   do_use_arraytype@SurfarrayModuleTest.test_use_arraytype.<locals>.do_use_arraytype  s    **51r5   r  znot an option)r.   rx   rK  rY   r  r   r   )rD   rL  s     r2   test_use_arraytype&SurfarrayModuleTest.test_use_arraytype  sO    	2 	&&w/))7797C*&6Hr5   c                    [         R                  " SSS5      n[         R                  R                  5        H  n[         R                  R	                  U5        [         R                  R                  U5      nU R                  UR                  5       5        UR                  5         U R                  UR                  5       5        AU R                  UR                  5       5        U R                  UR                  5       S5        M     g )Nr(   r   r   r   )r.   rA   rx   r	  rK  r   r   r   r  r   rY   r  )rD   sfr  ars       r2   test_surf_lock"SurfarrayModuleTest.test_surf_lock  s    ^^FAr*%%446E**51!!**2.BOOBMMO,IIKOOBMMO,R]]_-R\\^R0 7r5   r   )FNr-   )N )/__name__
__module____qualname____firstlineno__r   r   ry   r   r?   rB   rX   classmethodr3   r8   r<   rK   rO   rR   r_   re   ri   rl   ro   rr   r~   r   r   r   r   r   r   r   r   r  r  r  r  r  r"  r5  r:  r=  r@  r9  rN  rS  __static_attributes__r   r5   r2   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1r5   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   rV  mainr   r5   r2   <module>rf     s           H224
4 
34H1(++ H1 5H1V zMMO r5   