+
    Bi&e                         R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIHt ^ RIHt ^ RIHtHt  ! R R4      t ! R R4      t ! R	 R
]4      t ! R R]4      t ! R R4      t ! R R4      t ! R R4      t ! R R]P0                  ]]4      t ! R R]P0                  ]]4      t ! R R]P0                  ]]4      t ! R R]P0                  ]]4      t ! R R]P0                  ]]4      t ! R R]P0                  ]]4      t ! R R ]P0                  4      t]P@                  ! 4       ]PB                  ! R!4       ! R" R#]P0                  4      4       4       t"]#R$8X  d   ]PH                  ! 4        R# R# )%z}Unit tests for the memoryview

Some tests are in test_bytes. Many tests that require _testbuffer.ndarray
are in test_buffer.
N)product)support)import_helperthreading_helperc                       ] tR t^tRtR# )MyObject N__name__
__module____qualname____firstlineno____static_attributes__r       +/usr/lib/python3.14/test/test_memoryview.pyr   r      s    r   r   c                      a  ] tR t^t o Rt]R 4       t]R 4       tR tR t	R t
R tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"Rt#V t$R # )!AbstractMemoryTests   abcdefc                    V P                   # N)source_bytesselfs   &r   _sourceAbstractMemoryTests._source   s       r   c                F    \        R V P                  V P                  .4      # r   )filterro_typerw_typer   s   &r   _typesAbstractMemoryTests._types"   s    dT\\4<<899r   c                  a V! V P                   4      p\        P                  ! V4      pV P                  V4      oV P	                  S^ ,          \        R4      4       V P                  S^ ,          \        4       V P	                  S^,          \        R4      4       V P	                  SR,          \        R4      4       V P	                  SR,          \        R4      4       V P                  \        V3R l4       V P                  \        V3R l4       V P                  \        V3R l4       V P                  \        V3R l4       V P                  \        V3R l4       V P                  \        V3R l4       V P                  \        V3R	 l4       R
oV P	                  \        P                  ! V4      V4       R
# )       a   fc                     < S ^,          #    r   ms   r   <lambda>=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>0   s	    adr   c                     < S R,          # )   r   r(   s   r   r*   r+   1   s	    aer   c                  2   < S \         P                  ,          # r   sysmaxsizer(   s   r   r*   r+   2   s    anr   c                  4   < S \         P                  ) ,          # r   r0   r(   s   r   r*   r+   3   s    aor   c                     < S R ,          # r   r   r(   s   r   r*   r+   5   s	    QtWr   c                     < S R ,          # )        r   r(   s   r   r*   r+   6   	    QsVr   c                     < S R ,          # )ar   r(   s   r   r*   r+   7   r7   r   Ni)r   r1   getrefcount_viewassertEqualordassertIsInstanceintassertRaises
IndexError	TypeError)r   tpboldrefcountr)   s   &&  @r   check_getitem_with_type+AbstractMemoryTests.check_getitem_with_type&   s0   t||ooa(JJqM1s4y)adC(1s4y)2D	*2D	**l3*m4*&<=*&=>)_5)^4)^4+[9r   c                N    V P                    F  pV P                  V4       K  	  R # r   )r   rG   )r   rD   s   & r   test_getitem AbstractMemoryTests.test_getitem;   s    ++B((, r   c           
        V P                    EFK  pV! V P                  4      pV P                  V4      pVP                  4       p^\	        V P                  4      ,          pV P                   F  pWd9   d2   V P                  VP                  V4      VP                  V4      4       M!V P                  \        VP                  V4       \        \        V) V4      \        V) V4      4       Fg  w  rxRp	 VP                  WgV4      p	V	R8X  d%   V P                  \        VP                  WgV4       KE  V P                  VP                  WgV4      V	4       Ki  	  K  	  EKN  	  R#   \         d     Lii ; i)   Nr:   )r   r   r<   tolistlenr=   indexrA   
ValueErrorr   range)
r   rD   rE   r)   lkchistartstoprP   s
   &         r   
test_indexAbstractMemoryTests.test_index?   s    ++B4<< A

1A
AC%%A||8$$QWWS\1773<@%%j!''3?#*5!Q<r1#FKEE !D 9 {))*aggs4P((T)BEJ $G $   & s   1EE-	,E-	c           	        V P                    Fi  pV! V P                  4      pV P                  V4      pT P                  \	        V4      \        \        V4      4       Uu. uF  qCV,          NK  	  up4       Kk  	  R # u upi r   )r   r   r<   r=   listrR   rO   r   rD   rE   r)   is   &    r   	test_iterAbstractMemoryTests.test_iterX   s`    ++B4<< A

1AT!WU3q6]&C]tt]&CD  'Ds   A<c                j   V P                    EF  pV! V P                  4      pV P                  V4      pVP                  4       p\	        V4       F3  pV P                  VP                  V4      VP                  V4      4       K5  	  V! R4      pV P                  V4      pVP                  4       pV P                  RVR7      ;_uu_ 4        V P                  VP                  \        R4      4      VP                  \        R4      4      4       V P                  VP                  \        R4      4      VP                  \        R4      4      4       V P                  VP                  \        R4      4      VP                  \        R4      4      4       RRR4       EK  	  R#   + '       g   i     EK  ; ir#   count)bufferr9   rE   cNs   aaaaaccc)	r   r   r<   rN   r[   r=   rb   subTestr>   )r   rD   rE   r)   rS   chs   &     r   
test_countAbstractMemoryTests.test_count^   s.   ++B4<< A

1A
A1g  aggbk:  *+A

1A
Aga00  S!2AGGCH4EF  S!2AGGCH4EF  S!2AGGCH4EF 10  100s   
CF  F2c                  a V P                   '       g   V P                  R 4       V P                  V P                  4      p\        P                  ! V4      pV P                  V4      oV3R lpV P                  \        VR4       V P                  \        V^A4       V P                  \        V\        R4      4       RoV P                  \        P                  ! V4      V4       R# )no read-only type to testc                    < V S^ &   R# )r"   Nr   )valuer)   s   &r   setitem:AbstractMemoryTests.test_setitem_readonly.<locals>.setitemt   s    AaDr   r#   N)
r   skipTestr   r1   r;   r<   rA   rC   
memoryviewr=   )r   rE   rF   rm   r)   s   &   @r   test_setitem_readonly)AbstractMemoryTests.test_setitem_readonlyn   s    |||MM56LL&ooa(JJqM	)Wd3)Wb1)Wj.>?+[9r   c           
       aa V P                   '       g   V P                  R 4       V P                   oV P                  V P                  4      p\        P                  ! V4      pV P                  V4      o\        R4      S^ &   V P                  SVR4       S! R4      SR&   V P                  SVR4       S! R4      SR&   V P                  SVR4       S! R	4      SR
&   V P                  SVR4       S! R4      SR&   V P                  SVR4       SR,          SR&   V P                  SVR4       S! R4      SR&   SR,          SR&   V P                  SVR4       VV3R lpV P                  \        V^R4       V P                  \        VRR4       V P                  \        V\        P                  R4       V P                  \        V\        P                  ) R4       V P                  \        VRR4       V P                  \        VRR4       V P                  \        V\        ^ ^^4      ^ 3R4       V P                  \        V^ \        ^ ^^4      3R4       V P                  \        VRR4       V P                  \        VRR4       \        ^ ^^4      \        ^ ^^4      3pV P                  \        W4R4       SP                  R8X  d   \        M\        pV P                  WS^ R	4       V P                  WS^ R4       V P                  \        V\        ^^4      R4       V P                  \        V\        ^ ^4      R4       RoV P!                  \        P                  ! V4      V4       R# )no writable type to test   1s   1bcdef   0:r"      Ns   0bcdefs   12:rw      Ns   012defr   :rw   rw   Nr   NNN:rM      N:r"   rx   Ns   cdedefs   ababcfc                    < S! V4      SV &   R # r   r   )keyrl   r)   rD   s   &&r   rm   :AbstractMemoryTests.test_setitem_writable.<locals>.setitem   s    YAcFr   r#   r6   r9   rd   s   abNr.   )r"   )r   ro   r   r1   r;   r<   r>   _check_contentsrA   rB   r2   rC   sliceNotImplementedErrorformatrQ   r=   )r   rE   rF   rm   slicesexcr)   rD   s   &     @@r   test_setitem_writable)AbstractMemoryTests.test_setitem_writable|   s   |||MM45\\LL&ooa(JJqM4y!RI.D#RI.E#RI.C#RI.)}!RI. 3#RI.)}!3#RI.	 	*gq$7*gr48*gs{{DA*g|TB)Wc48)WdD9)WuQq|Q.?F)Wq%!A,.?F)WdD9)Wc48!A,a!--wEHHOj#3/#51*guQqz4@*guQqz4@+[9r   c                d   V P                    Fx  pV! V P                  4      pV P                  V4      pV P                  \        4      ;_uu_ 4        V^ RRR4       V P                  \        4      ;_uu_ 4        VR RRR4       Kz  	  R#   + '       g   i     L?; i  + '       g   i     K  ; i)rw   N:rw      N)r   r   r<   rA   rC   r   rD   rE   r)   s   &   r   test_delitem AbstractMemoryTests.test_delitem   s{    ++B4<< A

1A""9--aD .""9--cF .-  .----s   B9BBB/c                  a  S P                    Fv  pS P                  V! S P                  4      4      pVP                  4       pR P	                  V 3R lR 4       4      pS P                  W44       S P                  V\        4       Kx  	  R# )r   c              3   Z   <"   T F   pSP                  \        V.4      4      x  K"  	  R # 5ir   )getitem_typebytes).0rd   r   s   & r   	<genexpr>3AbstractMemoryTests.test_tobytes.<locals>.<genexpr>   s)       B7@!!!%*--ys   (+r   N)r   r<   r   tobytesjoinr=   r?   r   )r   rD   r)   rE   expecteds   f    r   test_tobytes AbstractMemoryTests.test_tobytes   so    ++B

2dll+,A		Axx  B7@ B BHQ)!!!U+ r   c                    V P                    FO  pV P                  V! V P                  4      4      pVP                  4       pV P	                  V\        R 4      4       KQ  	  R# )r   N)r   r<   r   rN   r=   r[   )r   rD   r)   rS   s   &   r   test_tolistAbstractMemoryTests.test_tolist   sF    ++B

2dll+,A
AQY0 r   c                :  aa V P                    EF  pV P                  V! V P                  4      4      oV P                    F  pV P                  SV! R 4      8H  4       V P	                  SV! R 4      8g  4       V P	                  SV! R4      8H  4       V P                  SV! R4      8g  4       V P	                  SV! R4      8H  4       V P                  SV! R4      8g  4       K  	  V P                  SS8H  4       V P                  SSR,          8H  4       V P                  SR,          SR,          8H  4       V P	                  SR,          S8H  4       V P	                  SR8H  4       V P                  SR8g  4       V P	                  RS8H  4       V P                  RS8g  4       SR 3 Fo  oV P                  \        VV3R l4       V P                  \        VV3R l4       V P                  \        VV3R	 l4       V P                  \        VV3R
 l4       Kq  	  EK
  	  R# )r   s   abcdes   abcde1ry   :r"   r'   N:r"   rz   Nabcdefc                     < SS 8  # r   r   rd   r)   s   r   r*   2AbstractMemoryTests.test_compare.<locals>.<lambda>   	    QUr   c                     < S S8*  # r   r   r   s   r   r*   r      	    Q!Vr   c                     < SS 8  # r   r   r   s   r   r*   r      r   r   c                     < S S8  # r   r   r   s   r   r*   r      r   r   N)r   r<   r   
assertTrueassertFalserA   rC   )r   rD   tp_comprd   r)   s   &  @@r   test_compare AbstractMemoryTests.test_compare   s    ++B

2dll+,A;;WY%7 78  gi&8!89  gh&7!78WX%6 67  gi&8!89WY%7 78 ' OOAF#OOA1I&OOAcFadN+QsVq[) Q(]+OOAM*X]+OOHM* ^!!)];!!)^<!!)^<!!)];	 $+ r   c                   V P                  V! V P                  4      4      pV P                  VP                  V P                  4       V P                  VP                  V P                  4       V P                  VP
                  ^4       V P                  VP                  R4       V P                  \        V4      ^4       V P                  VP                  V P                  34       V P                  VP                  R4       V# )rw   r&   r   )
r<   r   r=   r   itemsizendimshaperO   strides
suboffsets)r   rD   r)   s   && r   check_attributes_with_type.AbstractMemoryTests.check_attributes_with_type   s    JJr$,,'(4;;/T]]3#$'Q#T]]$45r*r   c                    V P                   '       g   V P                  R 4       V P                  V P                   4      pV P                  VP                  R4       R# )rj   TN)r   ro   r   r=   readonlyr   r)   s   & r   test_attributes_readonly,AbstractMemoryTests.test_attributes_readonly   s@    |||MM56++DLL9T*r   c                    V P                   '       g   V P                  R 4       V P                  V P                   4      pV P                  VP                  R4       R# )rt   FN)r   ro   r   r=   r   r   s   & r   test_attributes_writable,AbstractMemoryTests.test_attributes_writable   s@    |||MM45++DLL9U+r   c                   V P                    F  pV! V P                  4      p\        P                  ! V4      pV P	                  V4      p\        P                  ! V4      p\        VR 4      pV P                  WVP                  R 4      4       V P                  \        P                  ! V4      V4       RpV P                  \        P                  ! V4      V4       K  	  R# )zutf-8N)	r   r   r1   r;   r<   strr~   encoder=   )r   rD   rE   rF   r)   oldviewrefcountss   &      r   test_getbuffer"AbstractMemoryTests.test_getbuffer   s    ++B4<< A//!,K

1A!ooa0OAwA  (9:S__Q/AAS__Q/= r   c                p   V P                    EF$  p\        V\        4      '       g   K   ! R  R4      p ! R RV4      pV! V! R4      4      pV P                  V4      p\	        4       pWTn        Wdn        \        P                  ! V4      pR;p;rV\        P                  ! 4        V P                  V! 4       RJ V! 4       4       V! V! R4      4      p\	        4       pWUn        Wen        \        P                  ! V4      pR;rV\        P                  ! 4        V P                  V! 4       RJ V! 4       4       EK'  	  R# )c                   &   a  ] tR tRt o R tRtV tR# )+AbstractMemoryTests.test_gc.<locals>.MyViewi  c                &    \        V4      V n        R # r   )rp   r)   )r   bases   &&r   __init__4AbstractMemoryTests.test_gc.<locals>.MyView.__init__  s    '-DFr   r(   N)r
   r   r   r   r   r   __classdictcell____classdict__s   @r   MyViewr     s     . .r   r   c                       ] tR tRtRtR# )-AbstractMemoryTests.test_gc.<locals>.MySourcei  r   Nr	   r   r   r   MySourcer     s    r   r      abcN)r   
isinstancetyper<   r   r)   oweakrefrefgccollectr   x)r   rD   r   r   rE   r)   r   wrs   &       r   test_gcAbstractMemoryTests.test_gc  s    ++Bb$''. .2 
 F$A

1A
ACCQBAJJLOOBDDL"$/ r&z"A
ACCQBLAJJLOOBDDL"$/C r   c           	        V P                  \        R 4      pV;_uu_ 4        \        V4       RRR4       V;_uu_ 4        VP                  4        RRR4       V;_uu_ 4        VP	                  4        RRR4       V;_uu_ 4        V^ ,           RRR4       V;_uu_ 4        RV^ &   RRR4       V;_uu_ 4        \        V4       RRR4       V;_uu_ 4        VP                   RRR4       V;_uu_ 4        VP                   RRR4       V;_uu_ 4        VP                   RRR4       V;_uu_ 4        VP                   RRR4       V;_uu_ 4        VP                   RRR4       V;_uu_ 4        VP                   RRR4       T;_uu_ 4        V;_uu_ 4         RRR4       RRR4       V P                  R\        V4      4       V P                  R\        V4      4       V P                  W4       V P!                  V\#        V! V P$                  4      4      4       V P!                  W! V P$                  4      4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i)releasedN   xzreleased memory)assertRaisesRegexrQ   r   r   rN   rO   r   r   r   r   r   r   assertInr   reprr=   assertNotEqualrp   r   )r   r)   rD   checks   &&& r   _check_released#AbstractMemoryTests._check_released/  s   &&z:>UE!HUUAIIKUUAHHJUUAaDUU4AaDUUCFUUAHHUUAJJUUAFFUUAJJUUAGGUUAIIUU   	'Q0'a1Az"T\\*:;<Ar$,,/0) UUUUUUUUUUUUUUUUUUUUUUUU UUs   II"I+
I?!J9J'J;6KK#4K7L2LML3	MI	I(	+I<	?J	J$	'J8	;K	K 	#K4	7L	L	L0	3M>	MM	c                   V P                    F  pV! V P                  4      pV P                  V4      pV;_uu_ 4       pV P                  WC4       R R R 4       V P	                  W14       V P                  V4      pV;_uu_ 4        VP                  4        R R R 4       K  	  R #   + '       g   i     L[; i  + '       g   i     K  ; ir   )r   r   r<   assertIsr   release)r   rD   rE   r)   cms   &    r   test_contextmanager'AbstractMemoryTests.test_contextmanagerG  s    ++B4<< A

1Abb$   '

1A		   
 s   B"B5"B25Cc                    V P                    Fh  pV! V P                  4      pV P                  V4      pVP                  4        V P	                  W14       VP                  4        V P	                  W14       Kj  	  R # r   )r   r   r<   r   r   r   s   &   r   test_release AbstractMemoryTests.test_releaseS  sY    ++B4<< A

1AIIK  'IIK  ' r   c                    V P                   pVf   V P                  R4       V! V P                  4      pV P                  V4      p\        P
                  ! R4      pV P                  \        VP                  V4       R # )Nrj   s   ZZZZ)	r   ro   r   r<   ioBytesIOrA   rC   readintor\   s   &    r   test_writable_readonly*AbstractMemoryTests.test_writable_readonly]  s^     \\:MM56t||JJqMJJw)QZZ3r   c                H    V P                  \        V P                  / 4       R # r   )rA   rC   r<   r   s   &r   test_getbuf_fail$AbstractMemoryTests.test_getbuf_failh  s    )TZZ4r   c                   V P                   pVf   V P                  R4       V! V P                  4      pV P                  V4      pV P	                  \        V4      \        R4      4       VP                  4        V P	                  \        V4      \        R4      4       V P                  V4      pVP                  4        V P                  \        \
        V4       R # )Nrj   r   )	r   ro   r   r<   r=   hashr   rA   rQ   r   s   &   r   	test_hashAbstractMemoryTests.test_hashk  s     \\:MM56t||JJqMa$y/2			a$y/2 JJqM			*dA.r   c                    V P                   pVf   V P                  R4       V! V P                  4      pV P                  V4      pV P	                  \
        \        V4       R # )Nrt   )r   ro   r   r<   rA   rQ   r   r   s   &   r   test_hash_writable&AbstractMemoryTests.test_hash_writable}  sJ    \\:MM45t||JJqM*dA.r   c                  a V P                    F  pV! V P                  4      pV P                  V4      p. oV3V3R  llp\        P                  ! W44      pV P                  V! 4       V4       ?\        P                  P                  4        V P                  V! 4       R4       V P                  S^ ,          V4       K  	  R# )c                 *   < SP                  V4       R # r   )append)r   rE   Ls   &&r   callback2AbstractMemoryTests.test_weakref.<locals>.callback  s    r   N)	r   r   r<   r   r   r   testr   
gc_collect)r   rD   rE   r)   r  r   r   s   &     @r   test_weakref AbstractMemoryTests.test_weakref  s    ++B4<< A

1AA  Q)BMM"$"LL##%MM"$%MM!A$" r   c           
     l   V P                    F  pV! V P                  4      pV P                  V4      p\        \	        VP                  4       4      4      pV P                  \        \	        V4      4      V4       V P                  \        \	        V4      4      \        VR R R1,          4      4       K  	  R # )Nr:   )r   r   r<   r[   reversedrN   r=   )r   rD   rE   r)   aslists   &    r   test_reversed!AbstractMemoryTests.test_reversed  s~    ++B4<< A

1A(188:./FT(1+.7T(1+.QttW> r   c                   V P                    F  pV! V P                  4      pV P                  V4      pVP                  4       pV P	                  VP
                  4       V P	                  \        V4      P
                  4       V P                  VP                  4       VP                  4       4       VP                  4        VP                  4        K  	  R # r   )
r   r   r<   
toreadonlyr   r   rp   r=   rN   r   )r   rD   rE   r)   mms   &    r   test_toreadonly#AbstractMemoryTests.test_toreadonly  s    ++B4<< A

1ABOOBKK(OOJrN334RYY[!((*5JJLHHJ r   c                   \         P                   ! R . RO4      p\        V4      pVP                  R4      pVP                  R 4      pVR,          p\        V4      p?V P                  V^ ,          R4       V P                  V^ ,          R4       V P                  VP                  R 4       V P                  VP                  R 4       VP                  R4      pV P                  V^ ,          R4       V P                  V^ ,          R4       V P                  VP                  R 4       V P                  VP                  R 4       R# )H   B:r"   rM   NIN)r  r  r  r  )arrayrp   castr=   r   )r   r9   r   r)   rE   rd   d_s   &       r   test_issue22668#AbstractMemoryTests.test_issue22668  s    KK12qMFF3KFF3KcFqM1s#1s#3'3'FF3K1s#1s#3'3'r   r   N)%r
   r   r   r   r   propertyr   r   rG   rJ   rX   r^   rg   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  r  r   r   r   s   @r   r   r      s     L! ! : ::*-K2EG :2:h,1<<	+,>"0H10
(	45/$/#?	( (r   r   c                   *    ] tR tRt]t]t]t^t	Rt
RtR# )BaseBytesMemoryTestsi  r  r   N)r
   r   r   r   r   r   	bytearrayr   r   r   r   r   r   r   r   r  r    s    GGLHFr   r  c                      a  ] tR tRt o RtR tR t]P                  ! R4      P                  tRt	]
P                  ! R4      R 4       t]
P                  ! R4      R	 4       tR
tV tR# )BaseArrayMemoryTestsi  Nc                B    \         P                   ! R \        V4      4      # r]   )r  r[   r   rE   s   &&r   r*   BaseArrayMemoryTests.<lambda>  s    ekk#tAw7r   c                ^    \         P                   ! R \        V4      4      P                  4       # r#  )r  r[   r   r$  s   &&r   r*   r%    s    5;;sDG#<#D#D#Fr   r]   z/XXX test should be adapted for non-byte buffersc                    R # r   r   r   s   &r   r   #BaseArrayMemoryTests.test_getbuffer      r   z:XXX NotImplementedError: tolist() only supports byte viewsc                    R # r   r   r   s   &r   r    BaseArrayMemoryTests.test_tolist  r)  r   r   )r
   r   r   r   r   r   r   r  r   r   unittestskipr   r   r   r   r   s   @r   r!  r!    si     G7GFL{{3((HF]]DE F ]]OP Qr   r!  c                   >   a a ] tR tRt oR tR tV 3R ltRtVtV ;t	# )BaseMemoryviewTestsi  c                    \        V4      # r   rp   )r   objs   &&r   r<   BaseMemoryviewTests._view  s    #r   c                4    V P                  W!! V4      4       R # r   r=   r   rD   r2  contentss   &&&&r   r~   #BaseMemoryviewTests._check_contents  s    bl+r   c           
     0  < \         SV `  4        V P                   F  pV! R4      pV P                  V4      pV P	                  \        V4      \        V4      4       V P                  RVR7      ;_uu_ 4        V P	                  VP                  \        R4      4      ^4       V P	                  VP                  \        R4      4      ^ 4       V P	                  VP                  \        R4      4      ^4       RRR4       K  	  R#   + '       g   i     K  ; ira   )	superrg   r   r<   r=   rO   re   rb   r>   )r   rD   rE   r)   	__class__s   &   r   rg   BaseMemoryviewTests.test_count  s    ++B*+A

1ASVSV,ga00  S!2A6  S!2A6  S!2A6 10	  100s   7A?DDr   )
r
   r   r   r   r<   r~   rg   r   r   __classcell__)r;  r   s   @@r   r/  r/    s     ,	7 	7r   r/  c                   6   a  ] tR tRt o RtR tR tR tRtV t	R# )BaseMemorySliceTestsi     XabcdefYc                *    \        V4      pVR ,          # )rw   r-   Nr1  r   r2  r)   s   && r   r<   BaseMemorySliceTests._view  s    sOvr   c                D    V P                  VR ,          V! V4      4       R# rB  Nr5  r6  s   &&&&r   r~   $BaseMemorySliceTests._check_contents      S2h<0r   c                    V P                    Fc  p\        V! V P                  4      4      p\        P                  ! V4      pVR ,           V P                  \        P                  ! V4      V4       Ke  	  R# ):rw   rM   NN)r   rp   r   r1   r;   r=   )r   rD   r)   rF   s   &   r   	test_refsBaseMemorySliceTests.test_refs  sQ    ++B2dll+,A//!,KcFS__Q/=	 r   r   N)
r
   r   r   r   r   r<   r~   rJ  r   r   r   s   @r   r?  r?    s     L1> >r   r?  c                   0   a  ] tR tRt o RtR tR tRtV tR# )BaseMemorySliceSliceTestsi  r@  c                8    \        V4      pVR ,          R,          # ):Nr-   N:rw   NNr1  rC  s   && r   r<   BaseMemorySliceSliceTests._view  s    sOuRyr   c                D    V P                  VR ,          V! V4      4       R# rF  r5  r6  s   &&&&r   r~   )BaseMemorySliceSliceTests._check_contents  rH  r   r   N)	r
   r   r   r   r   r<   r~   r   r   r   s   @r   rM  rM    s     L1 1r   rM  c                   &   a  ] tR tRt o R tRtV tR# )BytesMemoryviewTesti  c                   V P                    F  pV! V P                  4      pV P                  \        V4      4       V P                  \        VR 7      4       V P	                  \
        \        4       V P	                  \
        \        W"4       V P	                  \
        \        VR7       V P	                  \
        \        VRR7       K  	  R# ))object)argumentTN)r   r   r   rp   rA   rC   )r   rD   obs   &  r   test_constructor$BytesMemoryviewTest.test_constructor  s    ++BDLL!BOOJrN+OOJb12i4iR<ibAiR$G r   r   N)r
   r   r   r   rX  r   r   r   s   @r   rS  rS    s     H Hr   rS  c                   &   a  ] tR tRt o R tRtV tR# )ArrayMemoryviewTesti  c                    \         P                   ! R \        ^
4      4      p\        V4      p\         P                   ! R \        ^	RR4      4      pW2R&   V P                  W4       R# )r]   ry   Nr:   )r  rR   rp   r=   )r   r9   r)   new_as   &   r   test_array_assign%ArrayMemoryviewTest.test_array_assign  sM    KKU2Y'qMCq"b!12!"r   r   N)r
   r   r   r   r^  r   r   r   s   @r   r[  r[    s     # #r   r[  c                       ] tR tRtRtR# )BytesMemorySliceTesti'  r   Nr	   r   r   r   ra  ra  '      r   ra  c                       ] tR tRtRtR# )ArrayMemorySliceTesti+  r   Nr	   r   r   r   rd  rd  +  rb  r   rd  c                       ] tR tRtRtR# )BytesMemorySliceSliceTesti/  r   Nr	   r   r   r   rf  rf  /  rb  r   rf  c                       ] tR tRtRtR# )ArrayMemorySliceSliceTesti3  r   Nr	   r   r   r   rh  rh  3  rb  r   rh  c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )	OtherTesti8  c                   \         P                  ! R 4      p\        VP                  R4      4      pVP                  4       p\	        V4      P                  R4      pVR,          VR&   VR,          VR&   V P                  VP                  R4       R F  pV P                  V4      ;_uu_ 4        VP                  4       p\	        V4      P                  V4      p\	        V4      P                  V4      R,          VR&   \	        V4      P                  V4      R,          VR&   V P                  VP                  R4       RRR4       K  	  R#   + '       g   i     K  ; i)ctypesg333333?r  :NrM   N:rM   NNBbcN)	r   import_moduler   c_doublerp   r  r=   rl   re   )r   rl  p6r  r)   r   s   &     r   test_ctypes_castOtherTest.test_ctypes_cast9  s   ,,X66??3'(OOqMs#2"2"#&Ff%%OO%qM&&v."2++F3B7""2++F3B7"  #. &% %%%s   -BE

Ec                   \         P                  ! R RRR4      p\         P                  ! RRRR4      p\        V4      P                  R4      p\        V4      P                  R4      pV P	                  VP
                  ^,          VP
                  4       V P                  VP                  4       VP                  4       4       R# )eeer6   g      ?fffefNg      )structpackrp   r  r=   nbytesassertListEqualrN   )r   	half_data
float_data	half_view
float_views   &    r   test_half_floatOtherTest.test_half_floatL  s    KKsD#6	[[T37
y)..s3	
+005
))A-z/@/@AY--/1B1B1DEr   c                    R R,          p\        V4      pVRRR1,          pV P                  VP                  4       RR,          4       R# )rv   i@ N30r:   )rp   r=   hex)r   r   m1m2s   &   r   test_memoryview_hexOtherTest.test_memoryview_hexT  s;    6M]"X4&=1r   c                    \        R 4      pV P                  \        4      ;_uu_ 4        \        P                  ! V4       RRR4       R#   + '       g   i     R# ; ir   N)rp   rA   rC   copyr   s   & r   	test_copyOtherTest.test_copy[  s7    vy))IIaL *)))s   A

A	c                
   \        R 4      p\        \        P                  ^,           4       F?  pV P	                  \
        4      ;_uu_ 4        \        P                  ! W4       RRR4       KA  	  R#   + '       g   i     KV  ; ir  )rp   rR   pickleHIGHEST_PROTOCOLrA   rC   dumps)r   r)   protos   &  r   test_pickleOtherTest.test_pickle`  sU    v622Q67E""9--Q& .- 8---s   A11Bc           
       aaaa ^oVVV3R lo ! V3R lR4      p ! V3R lR4      p ! V3R lR4      pRo\        \        R	S,          4      4      oV P                  \        4      ;_uu_ 4        SV! 4       ,           RRR4       Ro\        \        R	S,          4      4      oV P	                  \        SRV! 4        4      ^.^,          4       Ro\        \        R	S,          4      4      oV P	                  \        SV! 4       ^ 4      ^.^,          4       Ro\        \        R	S,          4      4      P                  R
R4      oV P                  \        R4      ;_uu_ 4        SV! 4       ^ 3,           RRR4       Ro\        \        R	S,          4      4      P                  R
R4      oV P                  \        R4      ;_uu_ 4        S^ V! 4       3,           RRR4       Ro\        \        R	S,          4      4      oV P                  \        R4      ;_uu_ 4        ^*SV! 4       &   RRR4       V P	                  SR,          R4       Ro\        \        R	S,          4      4      oV P                  \        R4      ;_uu_ 4        RSRV! 4       % RRR4       V P	                  SR,          R4       Ro\        \        R	S,          4      4      oV P                  \        R4      ;_uu_ 4        RSV! 4       ^% RRR4       V P	                  SR,          R4       Ro\        \        R	S,          4      4      P                  R
R4      oV P                  \        R4      ;_uu_ 4        ^*SV! 4       ^ 3&   RRR4       V P	                  SR,          R4       Ro\        \        R	S,          4      4      P                  R
R4      oV P                  \        R4      ;_uu_ 4        ^*S^ V! 4       3&   RRR4       V P	                  SR,          R4       Ro\        \        R	S,          4      4      oV P                  \        R4      ;_uu_ 4        V! 4       S^ &   RRR4       V P	                  SR,          R4       R F  pV P                  VR7      ;_uu_ 4        Ro\        \        R	S,          4      4      P                  V4      oV P                  \        R4      ;_uu_ 4        V! 4       S^ &   RRR4       V P	                  SR,          R4       RRR4       K  	  R F  pV P                  VR7      ;_uu_ 4        Ro\        \        R	S,          4      4      P                  V4      oV P                  \        R4      ;_uu_ 4        V! 4       S^ &   RRR4       V P	                  SR,          R4       RRR4       K  	  Ro\        \        R	S,          4      4      P                  R4      oV P                  \        R4      ;_uu_ 4        V! 4       S^ &   RRR4       V P	                  SR,          R4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELI; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL>; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EK  ; i  + '       g   i     EL; i  + '       g   i     EK  ; i  + '       g   i     EL2; i)   c                  >   < SP                  4        \        S4      o R # r   )r   r  )bar)   sizes   r   r   3OtherTest.test_use_released_memory.<locals>.releasek  s    IIK4Br   c                   .   <a  ] tR tRt o V3R ltRtV tR# )3OtherTest.test_use_released_memory.<locals>.MyIndexio  c                   < S! 4        ^# )r   r   r   r   s   &r   	__index__=OtherTest.test_use_released_memory.<locals>.MyIndex.__index__p  s    	r   r   N)r
   r   r   r   r  r   r   r   r   s   @r   MyIndexr  o  s      r   r  c                   .   <a  ] tR tRt o V3R ltRtV tR# )3OtherTest.test_use_released_memory.<locals>.MyFloatis  c                   < S! 4        R # )g      @r   r  s   &r   	__float__=OtherTest.test_use_released_memory.<locals>.MyFloat.__float__t      	r   r   N)r
   r   r   r   r  r   r   r  s   @r   MyFloatr  s        r   r  c                   .   <a  ] tR tRt o V3R ltRtV tR# )2OtherTest.test_use_released_memory.<locals>.MyBooliw  c                   < S! 4        R # )Tr   r  s   &r   __bool__;OtherTest.test_use_released_memory.<locals>.MyBool.__bool__x  r  r   r   N)r
   r   r   r   r  r   r   r  s   @r   MyBoolr  w  r  r   r  N   r  zoperation forbidden:N   Ns   spam:r     NbhilqnBHILQN)fmtfd?)@   rM   )rM   r  s           )	rp   r  rA   rQ   r=   r[   r  r   re   )	r   r  r  r  r  r  r)   r   r  s	   &    @@@@r   test_use_released_memory"OtherTest.test_use_released_memoryf  s    	!	 		 		 	
 y./z**giL + y./a
m,seai8y./a	!n-uqy9y./44S'B##J0EFFgilO G y./44S'B##J0EFFalO G y./##J0EFFAgiL GB)y./##J0EFF#AjwyM GB)y./##J0EFF$AgiN GB)y./44S'B##J0EFF AgilO GD7+y./44S'B##J0EFF AalO GB)y./##J0EFF9AaD GB)!C#&&y67<<SA++J8MNN"9AaD O  B1 '& " C#&&y67<<SA++J8MNN"9AaD O  B1 '&  y./44S9##J0EFF8AaD GB)Y +** GFF
 GFF
 GFF GFF GFF GFF
 GFF GFF ONN '&& ONN '&& GFFs   0X)"X=YY%Y9(ZZ!Z5[	A[1["![1.A\9\!\;\/)X:	=Y	Y"	%Y6	9Z
	Z	!Z2	5[		[	[.(	[11\\	\\,/] 	c                    \        R 4      P                  ^ 4      p\        4       pWn        W"n        \
        P                  ! V4      p??\        P                  ! 4        V P                  V! 4       4       R# r  )
rp   
__buffer__r   r)   r   r   r   r   r   assertIsNone)r   r)   r   r   s   &   r   test_buffer_reference_loop$OtherTest.test_buffer_reference_loop  sS    v))!,J[[^q


"$r   c                    \         P                  ! \        R 4      4      p\        4       pWn        W"n        \        P                  ! V4      p??\        P                  ! 4        V P                  V! 4       4       R# r  )r  PickleBufferrp   r   pbr   r   r   r   r   r  )r   r  r   r   s   &   r    test_picklebuffer_reference_loop*OtherTest.test_picklebuffer_reference_loop  sS      F!34J[[^


"$r   r   N)r
   r   r   r   rq  r  r  r  r  r  r  r  r   r   r   s   @r   rj  rj  8  s5     /&F2
'd*L    r   rj  cpuc                   &   a  ] tR tRt o R tRtV tR# )
RacingTesti  c           	       aa	  ^ RI Hp ^ RIHpHp V! 4       o	X! 4       ;_uu_ 4       pVP                  \        ^d4      4      oVV	3R lp\        ^
4       Uu. uF  qb! VR7      NK  	  pp\        P                  ! V4      ;_uu_ 4        S	P                  4        RRR4       >RRR4       R#   \         d    T P                  R4        Li ; iu upi   + '       g   i     LB; i  + '       g   i     R# ; i)z*Repeatly access the memoryview for racing.)SharedMemoryManagerzTest requires multiprocessing)ThreadEventc                     < SP                  \        P                  4       \        ^
4       F  p SP	                  ^4       K  	  R# )
   N)waitr   SHORT_TIMEOUTrR   rb   )r]   r2  rV   s    r   r  :RacingTest.test_racing_getbuf_and_releasebuf.<locals>.test  s0     

7001rAIIaL #r   )targetN)multiprocessing.managersr  ImportErrorro   	threadingr  r  ShareableListrR   r   start_threadsset)
r   r  r  r  smmr  r  threadsr2  rV   s
   &       @@r   !test_racing_getbuf_and_releasebuf,RacingTest.test_racing_getbuf_and_releasebuf  s    	;D 	, ""c##E#J/C! 5:"I>IqvT*IG>!//88		 9  #"  	;MM9:	; ?88 #""sF   B, /C&C( C&C		C&,C
CC&C#C&&C7	r   N)r
   r   r   r   r  r   r   r   s   @r   r  r    s      r   r  __main__)%__doc__r,  test.supportr  r1   r   r   r  r   r  r  rx  	itertoolsr   r   r   r   r   r   r  r!  r/  r?  rM  TestCaserS  r[  ra  rd  rf  rh  rj  requires_working_threadingrequires_resourcer  r
   mainr   r   r   <module>r     s~     
 	   	      8	 	`( `(N. . (7 7&> >"1 1H(++-H	#(++-	#	8,,.		8,,.		 1 13		 1 13	
f !! f R ,,.5!""  " /4 zMMO r   