
    0hhX                     b   S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKJr   " S S5      r " S S5      r " S S	\5      r " S
 S\5      r " S S5      r " S S5      r " S S5      r " S S\R(                  \\5      r " S S\R(                  \\5      r " S S\R(                  \\5      r " S S\R(                  \\5      r " S S\R(                  \\5      r " S S\R(                  \\5      r " S S\R(                  5      r\S :X  a  \R:                  " 5         gg)!z}Unit tests for the memoryview

Some tests are in test_bytes. Many tests that require _testbuffer.ndarray
are in test_buffer.
    N)import_helperc                       \ rS rSrSrg)MyObject    N__name__
__module____qualname____firstlineno____static_attributes__r       =/opt/python-3.13.8/usr/lib/python3.13/test/test_memoryview.pyr   r      s    r   r   c                       \ rS rSrSr\S 5       r\S 5       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) AbstractMemoryTests      abcdefc                     U R                   $ N)source_bytesselfs    r   _sourceAbstractMemoryTests._source   s       r   c                 F    [        S U R                  U R                  /5      $ r   )filterro_typerw_typer   s    r   _typesAbstractMemoryTests._types    s    dT\\4<<899r   c                 V  ^ U" U R                   5      n[        R                  " U5      nU R                  U5      mU R	                  TS   [        S5      5        U R                  TS   [        5        U R	                  TS   [        S5      5        U R	                  TS   [        S5      5        U R	                  TS   [        S5      5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S	 j5        U R                  [        U4S
 j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        S mU R	                  [        R                  " U5      U5        g )Nr      a      fic                     > T S   $ )N   r   ms   r   <lambda>=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>.   s	    adr   c                     > T S   $ )Nr   r(   s   r   r*   r+   /   s	    aer   c                  *   > T [         R                     $ r   sysmaxsizer(   s   r   r*   r+   0   s    anr   c                  ,   > T [         R                  *    $ r   r/   r(   s   r   r*   r+   1   s    aor   c                     > T S    $ r   r   r(   s   r   r*   r+   3   s	    QtWr   c                     > T S   $ )N        r   r(   s   r   r*   r+   4   	    QsVr   c                     > T S   $ )Nar   r(   s   r   r*   r+   5   r6   r   )r   r0   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                 L    U R                    H  nU R                  U5        M     g r   )r   rE   )r   rB   s     r   test_getitem AbstractMemoryTests.test_getitem9   s    ++B((, r   c           	          U R                    Hf  nU" U R                  5      nU R                  U5      nU R                  [	        U5      [        [        U5      5       Vs/ s H  oCU   PM	     sn5        Mh     g s  snf r   )r   r   r:   r;   listrangelenr   rB   rC   r)   is        r   	test_iterAbstractMemoryTests.test_iter=   s^    ++B4<< A

1AT!WU3q6]&C]t]&CD  'Ds   A8c                   ^ U R                   (       d  U R                  S5        U R                  U R                  5      n[        R                  " U5      nU R                  U5      mU4S jnU R                  [        US5        U R                  [        US5        U R                  [        U[        S5      5        S mU R                  [        R                  " U5      U5        g )Nno read-only type to testc                    > U TS'   g )Nr   r   )valuer)   s    r   setitem:AbstractMemoryTests.test_setitem_readonly.<locals>.setitemI   s    AaDr   r"   A   )
r   skipTestr   r0   r9   r:   r?   rA   
memoryviewr;   )r   rC   rD   rV   r)   s       @r   test_setitem_readonly)AbstractMemoryTests.test_setitem_readonlyC   s    ||MM56LL&ooa(JJqM	)Wd3)Wb1)Wj.>?+[9r   c           
        ^^ U R                   (       d  U R                  S5        U R                   mU R                  U R                  5      n[        R                  " U5      nU R                  U5      m[        S5      TS'   U R                  TUS5        T" S5      TSS& U R                  TUS5        T" S5      TSS	& U R                  TUS
5        T" S5      TSS& U R                  TUS
5        T" S5      TS S & U R                  TUS5        TSS TSS	& U R                  TUS5        T" S5      TS S & TSS	 TSS& U R                  TUS5        UU4S jnU R                  [        USS5        U R                  [        USS5        U R                  [        U[        R                  S5        U R                  [        U[        R                  * S5        U R                  [        USS5        U R                  [        USS5        U R                  [        U[        SSS5      S4S5        U R                  [        US[        SSS5      4S5        U R                  [        USS5        U R                  [        USS5        [        SSS5      [        SSS5      4nU R                  [        X4S5        TR                  S:X  a  [        O[        nU R                  XSSS5        U R                  XSSS5        U R                  [        U[        SS5      S5        U R                  [        U[        SS5      S5        S mU R!                  [        R                  " U5      U5        g )Nno writable type to test   1r   s   1bcdef   0   s   0bcdefs   12   s   012defr   r      r#   s   cdedefs   ababcfc                    > T" U5      TU '   g r   r   )keyrU   r)   rB   s     r   rV   :AbstractMemoryTests.test_setitem_writable.<locals>.setitemj   s    YAcFr   r'   r"   r-   r5   )r   r8   cs   ab)r   rY   r   r0   r9   r:   r<   _check_contentsr?   r@   r1   rA   sliceNotImplementedErrorformat
ValueErrorr;   )r   rC   rD   rV   slicesexcr)   rB   s         @@r   test_setitem_writable)AbstractMemoryTests.test_setitem_writableQ   s   ||MM45\\LL&ooa(JJqM4y!RI.D!ARI.E!ARI.C!ARI.)}!RI. 1Q!ARI.)}!1Q!A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                 >   U R                    Hj  nU" U R                  5      nU R                  U5      nU R                  [        5         US	 S S S 5        U R                  [        5         USS2	 S S S 5        Ml     g ! , (       d  f       N6= f! , (       d  f       M  = f)Nra      )r   r   r:   r?   rA   r   rB   rC   r)   s       r   test_delitem AbstractMemoryTests.test_delitem   sv    ++B4<< A

1A""9-aD .""9-acF .-  .---s   A<)B<
B
	
B	c                   ^  T R                    Hv  nT R                  U" T R                  5      5      nUR                  5       nSR	                  U 4S jS 5       5      nT R                  X45        T R                  U[        5        Mx     g )Nr   c              3   Z   >#    U  H   nTR                  [        U/5      5      v   M"     g 7fr   )getitem_typebytes).0rg   r   s     r   	<genexpr>3AbstractMemoryTests.test_tobytes.<locals>.<genexpr>   s)       B7@!!!%*--ys   (+r   )r   r:   r   tobytesjoinr;   r=   ry   )r   rB   r)   rC   expecteds   `    r   test_tobytes AbstractMemoryTests.test_tobytes   so    ++B

2dll+,A		Axx  B7@ B BHQ)!!!U+ r   c                     U R                    HO  nU R                  U" U R                  5      5      nUR                  5       nU R	                  U[        S5      5        MQ     g )Nr   )r   r:   r   tolistr;   rK   )r   rB   r)   ls       r   test_tolistAbstractMemoryTests.test_tolist   sF    ++B

2dll+,A
AQY0 r   c                   ^^ U R                    GH  nU R                  U" U R                  5      5      mU R                    H  nU R                  TU" S5      :H  5        U R	                  TU" S5      :g  5        U R	                  TU" S5      :H  5        U R                  TU" S5      :g  5        U R	                  TU" S5      :H  5        U R                  TU" S5      :g  5        M     U R                  TT:H  5        U R                  TTS S  :H  5        U R                  TSS TS S  :H  5        U R	                  TSS T:H  5        U R	                  TS:H  5        U R                  TS:g  5        U R	                  ST:H  5        U R                  ST:g  5        TS4 Ho  mU R                  [        UU4S j5        U R                  [        UU4S	 j5        U R                  [        UU4S
 j5        U R                  [        UU4S j5        Mq     GM     g )Nr   s   abcdes   abcde1r   r'   r#   abcdefc                     > TT :  $ r   r   rg   r)   s   r   r*   2AbstractMemoryTests.test_compare.<locals>.<lambda>   	    QUr   c                     > T T:*  $ r   r   r   s   r   r*   r      	    Q!Vr   c                     > TT :  $ r   r   r   s   r   r*   r      r   r   c                     > T T:  $ r   r   r   s   r   r*   r      r   r   )r   r:   r   
assertTrueassertFalser?   rA   )r   rB   tp_comprg   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&OOAaFadN+QqVq[) Q(]+OOAM*X]+OOHM* ^!!)];!!)^<!!)^<!!)];	 $+ r   c                    U R                  U" U R                  5      5      nU R                  UR                  U R                  5        U R                  UR                  U R                  5        U R                  UR
                  S5        U R                  UR                  S5        U R                  [        U5      S5        U R                  UR                  U R                  45        U R                  UR                  S5        U$ )Nra   )r'   r'   r   )
r:   r   r;   rk   itemsizendimshaperM   strides
suboffsets)r   rB   r)   s      r   check_attributes_with_type.AbstractMemoryTests.check_attributes_with_type   s    JJr$,,'(4;;/T]]3#$'Q#T]]$45r*r   c                     U R                   (       d  U R                  S5        U R                  U R                   5      nU R                  UR                  S5        g )NrS   T)r   rY   r   r;   readonlyr   r)   s     r   test_attributes_readonly,AbstractMemoryTests.test_attributes_readonly   s>    ||MM56++DLL9T*r   c                     U R                   (       d  U R                  S5        U R                  U R                   5      nU R                  UR                  S5        g )Nr^   F)r   rY   r   r;   r   r   s     r   test_attributes_writable,AbstractMemoryTests.test_attributes_writable   s>    ||MM45++DLL9U+r   c                    U R                    H  nU" U R                  5      n[        R                  " U5      nU R	                  U5      n[        R                  " U5      n[        US5      nU R                  XUR                  S5      5        U R                  [        R                  " U5      U5        S nU R                  [        R                  " U5      U5        M     g )Nzutf-8)	r   r   r0   r9   r:   strrh   encoder;   )r   rB   rC   rD   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                 l   U R                    GH#  n[        U[        5      (       d  M   " S S5      n " S SU5      nU" U" S5      5      nU R                  U5      n[	        5       nXTl        Xdl        [        R                  " U5      nS =n=pV[        R                  " 5         U R                  U" 5       S L U" 5       5        U" U" S5      5      n[	        5       nXUl        Xel        [        R                  " U5      nS =pV[        R                  " 5         U R                  U" 5       S L U" 5       5        GM&     g )Nc                       \ rS rSrS rSrg)+AbstractMemoryTests.test_gc.<locals>.MyView   c                 $    [        U5      U l        g r   )rZ   r)   )r   bases     r   __init__4AbstractMemoryTests.test_gc.<locals>.MyView.__init__   s    '-DFr   r(   N)r	   r
   r   r   r   r   r   r   r   MyViewr      s    .r   r   c                       \ rS rSrSrg)-AbstractMemoryTests.test_gc.<locals>.MySource   r   Nr   r   r   r   MySourcer      s    r   r      abc)r   
isinstancetyper:   r   r)   oweakrefrefgccollectr   x)r   rB   r   r   rC   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                    U R                  [        S5      nU   [        U5        S S S 5        U   UR                  5         S S S 5        U   UR	                  5         S S S 5        U   US     S S S 5        U   SUS'   S S S 5        U   [        U5        S S S 5        U   UR                    S S S 5        U   UR                    S S S 5        U   UR                    S S S 5        U   UR                    S S S 5        U   UR                    S S S 5        U   UR                    S S S 5        U   U    S S S 5        S S S 5        U R                  S[        U5      5        U R                  S[        U5      5        U R                  X5        U R!                  U[#        U" U R$                  5      5      5        U R!                  X" U R$                  5      5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f)Nreleasedr      xzreleased memory)assertRaisesRegexrl   ry   r}   r   rM   rk   r   r   r   r   r   assertInr   reprr;   assertNotEqualrZ   r   )r   r)   rB   checks       r   _check_released#AbstractMemoryTests._check_released  sv   &&z:>E!HUAIIKUAHHJUAaDU4AaDUCFUAHHUAJJUAFFUAJJUAGGUAIIU   	'Q0'a1Az"T\\*:;<Ar$,,/0) UUUUUUUUUUUU Us   GG 
G2%H5HH(H:2I	I I07JJ%J8(J&*J8
G 
G/2
H
H
H%(
H7:
I	
I
I-0
I?
J
J#&
J5	0J88
Kc                 h   U R                    H  nU" U R                  5      nU R                  U5      nU nU R                  XC5        S S S 5        U R	                  X15        U R                  U5      nU   UR                  5         S S S 5        M     g ! , (       d  f       NP= f! , (       d  f       M  = fr   )r   r   r:   assertIsr   release)r   rB   rC   r)   cms        r   test_contextmanager'AbstractMemoryTests.test_contextmanager  s    ++B4<< A

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

1A		   
 s   B3B"
B	"
B1	c                     U R                    Hh  nU" U R                  5      nU R                  U5      nUR                  5         U R	                  X15        UR                  5         U R	                  X15        Mj     g r   )r   r   r:   r   r   rs   s       r   test_release AbstractMemoryTests.test_release(  sY    ++B4<< A

1AIIK  'IIK  ' r   c                     U R                   nUc  U R                  S5        U" U R                  5      nU R                  U5      n[        R
                  " S5      nU R                  [        UR                  U5        g )NrS   s   ZZZZ)	r   rY   r   r:   ioBytesIOr?   rA   readintorN   s        r   test_writable_readonly*AbstractMemoryTests.test_writable_readonly2  s^     \\:MM56t||JJqMJJw)QZZ3r   c                 F    U R                  [        U R                  0 5        g r   )r?   rA   r:   r   s    r   test_getbuf_fail$AbstractMemoryTests.test_getbuf_fail=  s    )TZZ4r   c                    U R                   nUc  U R                  S5        U" U R                  5      nU R                  U5      nU R	                  [        U5      [        S5      5        UR                  5         U R	                  [        U5      [        S5      5        U R                  U5      nUR                  5         U R                  [        [
        U5        g )NrS   r   )	r   rY   r   r:   r;   hashr   r?   rl   rs   s       r   	test_hashAbstractMemoryTests.test_hash@  s     \\:MM56t||JJqMa$y/2			a$y/2 JJqM			*dA.r   c                     U R                   nUc  U R                  S5        U" U R                  5      nU R                  U5      nU R	                  [
        [        U5        g )Nr^   )r   rY   r   r:   r?   rl   r   rs   s       r   test_hash_writable&AbstractMemoryTests.test_hash_writableR  sJ    \\:MM45t||JJqM*dA.r   c                 x  ^ U R                    H  nU" U R                  5      nU R                  U5      n/ mU4U4S jjn[        R                  " X45      nU R                  U" 5       U5        A[        R                  R                  5         U R                  U" 5       S 5        U R                  TS   U5        M     g )Nc                 (   > TR                  U5        g r   )append)r   rC   Ls     r   callback2AbstractMemoryTests.test_weakref.<locals>.callbacka  s    r   r   )	r   r   r:   r   r   r   testsupport
gc_collect)r   rB   rC   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           
      b   U R                    H  nU" U R                  5      nU R                  U5      n[        [	        UR                  5       5      5      nU R                  [        [	        U5      5      U5        U R                  [        [	        U5      5      [        US S S2   5      5        M     g )Nr%   )r   r   r:   rK   reversedr   r;   )r   rB   rC   r)   aslists        r   test_reversed!AbstractMemoryTests.test_reversedj  s~    ++B4<< A

1A(188:./FT(1+.7T(1+.QttW> r   c                    U R                    H  nU" U R                  5      nU R                  U5      nUR                  5       nU R	                  UR
                  5        U R	                  [        U5      R
                  5        U R                  UR                  5       UR                  5       5        UR                  5         UR                  5         M     g r   )
r   r   r:   
toreadonlyr   r   rZ   r;   r   r   )r   rB   rC   r)   mms        r   test_toreadonly#AbstractMemoryTests.test_toreadonlyr  s    ++B4<< A

1ABOOBKK(OOJrN334RYY[!((*5JJLHHJ r   c                 \   [         R                   " S/ SQ5      n[        U5      nUR                  S5      nUR                  S5      nUSS n[        U5      nAU R                  US   S5        U R                  US   S5        U R                  UR                  S5        U R                  UR                  S5        UR                  S5      nU R                  US   S5        U R                  US   S5        U R                  UR                  S5        U R                  UR                  S5        g )NH)   r   r   r   Br   rc   r   I)arrayrZ   castr;   rk   )r   r8   r   r)   rC   rg   d_s           r   test_issue22668#AbstractMemoryTests.test_issue22668}  s    KK12qMFF3KFF3KaFqM1s#1s#3'3'FF3K1s#1s#3'3'r   r   N)"r	   r
   r   r   r   propertyr   r   rE   rH   rP   r[   ro   rt   r   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    L! ! : ::*-E:2:h,1<<	+,>"0H10
(	45/$/#?	(r   r   c                   (    \ rS rSr\r\r\rSr	Sr
Srg)BaseBytesMemoryTestsi  ra   r  r   N)r	   r
   r   r   ry   r   	bytearrayr   rx   r   rk   r   r   r   r   r  r    s    GGLHFr   r  c                       \ rS rSrSrS rS r\R                  " S5      R                  rSr	\
R                  " S5      S 5       r\
R                  " S5      S	 5       rS
rg)BaseArrayMemoryTestsi  Nc                 B    [         R                   " S[        U5      5      $ NrO   )r  rK   r   rC   s     r   r*   BaseArrayMemoryTests.<lambda>  s    ekk#tAw7r   c                 ^    [         R                   " S[        U5      5      R                  5       $ r  )r  rK   r}   r  s     r   r*   r    s    5;;sDG#<#D#D#Fr   rO   z/XXX test should be adapted for non-byte buffersc                     g r   r   r   s    r   r   #BaseArrayMemoryTests.test_getbuffer      r   z:XXX NotImplementedError: tolist() only supports byte viewsc                     g r   r   r   s    r   r    BaseArrayMemoryTests.test_tolist  r  r   r   )r	   r
   r   r   r   r   rx   r  r   rk   unittestskipr   r   r   r   r   r   r  r    sf    G7GFL{{3((HF]]DE F ]]OP Qr   r  c                        \ rS rSrS rS rSrg)BaseMemoryviewTestsi  c                     [        U5      $ r   rZ   )r   objs     r   r:   BaseMemoryviewTests._view  s    #r   c                 2    U R                  X!" U5      5        g r   r;   r   rB   r  contentss       r   rh   #BaseMemoryviewTests._check_contents  s    bl+r   r   N)r	   r
   r   r   r:   rh   r   r   r   r   r  r    s    ,r   r  c                   *    \ rS rSrSrS rS rS rSrg)BaseMemorySliceTestsi     XabcdefYc                 "    [        U5      nUSS $ Nra      r  r   r  r)   s      r   r:   BaseMemorySliceTests._view  s    sO1vr   c                 :    U R                  USS U" U5      5        g r*  r"  r#  s       r   rh   $BaseMemorySliceTests._check_contents      Qq2h<0r   c                     U R                    H_  n[        U" U R                  5      5      n[        R                  " U5      nUSS   U R                  [        R                  " U5      U5        Ma     g )Nra   rc   )r   rZ   r   r0   r9   r;   )r   rB   r)   rD   s       r   	test_refsBaseMemorySliceTests.test_refs  sS    ++B2dll+,A//!,KaFS__Q/=	 r   r   N)	r	   r
   r   r   r   r:   rh   r2  r   r   r   r   r'  r'    s    L1>r   r'  c                   $    \ rS rSrSrS rS rSrg)BaseMemorySliceSliceTestsi  r(  c                 (    [        U5      nUS S SS  $ )Nr+  ra   r  r,  s      r   r:   BaseMemorySliceSliceTests._view  s    sO!uQRyr   c                 :    U R                  USS U" U5      5        g r*  r"  r#  s       r   rh   )BaseMemorySliceSliceTests._check_contents  r0  r   r   N)r	   r
   r   r   r   r:   rh   r   r   r   r   r5  r5    s    L1r   r5  c                       \ rS rSrS rSrg)BytesMemoryviewTesti  c                    U R                    H  nU" U R                  5      nU R                  [        U5      5        U R                  [        US95        U R	                  [
        [        5        U R	                  [
        [        X"5        U R	                  [
        [        US9  U R	                  [
        [        USS9  M     g )N)object)argumentT)r   r   r   rZ   r?   rA   )r   rB   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   r@  r   r   r   r   r;  r;    s    Hr   r;  c                       \ rS rSrS rSrg)ArrayMemoryviewTesti  c                     [         R                   " S[        S5      5      n[        U5      n[         R                   " S[        SSS5      5      nX2S S & U R                  X5        g )NrO   
   	   r%   )r  rL   rZ   r;   )r   r8   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   rH  r   r   r   r   rC  rC    s    #r   rC  c                       \ rS rSrSrg)BytesMemorySliceTesti  r   Nr   r   r   r   rK  rK        r   rK  c                       \ rS rSrSrg)ArrayMemorySliceTesti  r   Nr   r   r   r   rN  rN    rL  r   rN  c                       \ rS rSrSrg)BytesMemorySliceSliceTesti  r   Nr   r   r   r   rP  rP    rL  r   rP  c                       \ rS rSrSrg)ArrayMemorySliceSliceTesti  r   Nr   r   r   r   rR  rR    rL  r   rR  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)	OtherTesti  c                    [         R                  " S5      n[        UR                  S5      5      nUR                  5       n[	        U5      R                  S5      nUS S US S& USS  USS & U R                  UR                  S5        S H  nU R                  U5         UR                  5       n[	        U5      R                  U5      n[	        U5      R                  U5      S S US S& [	        U5      R                  U5      SS  USS & U R                  UR                  S5        S S S 5        M     g ! , (       d  f       M  = f)Nctypesg333333?r  rc   Bbc)	r   import_modulery   c_doublerZ   r  r;   rU   subTest)r   rV  p6r  r)   rk   s         r   test_ctypes_castOtherTest.test_ctypes_cast  s   ,,X66??3'(OOqMs#2A"112!"#&Ff%OO%qM&&v."2++F3BQ7"1"2++F3AB7!"  #. &% %%s   BD11
E 	c                 ~   [         R                  " SSSS5      n[         R                  " SSSS5      n[        U5      R                  S5      n[        U5      R                  S5      nU R	                  UR
                  S-  UR
                  5        U R                  UR                  5       UR                  5       5        g )	Neeer5   g      g      ?fffefrc   )structpackrZ   r  r;   nbytesassertListEqualr   )r   	half_data
float_data	half_view
float_views        r   test_half_floatOtherTest.test_half_float  s    KKsD#6	[[T37
y)..s3	
+005
))A-z/@/@AY--/1B1B1DEr   c                 z    SS-  n[        U5      nUS S S2   nU R                  UR                  5       SS-  5        g )Nr`   i@ r%   30)rZ   r;   hex)r   r   m1m2s       r   test_memoryview_hexOtherTest.test_memoryview_hex  s;    6M]"X4&=1r   c                     [        S5      nU R                  [        5         [        R                  " U5        S S S 5        g ! , (       d  f       g = fNr   )rZ   r?   rA   copyr   s     r   	test_copyOtherTest.test_copy$  s1    vy)IIaL *))s   A
Ac                     [        S5      n[        [        R                  S-   5       H7  nU R	                  [
        5         [        R                  " X5        S S S 5        M9     g ! , (       d  f       MK  = f)Nr   ra   )rZ   rL   pickleHIGHEST_PROTOCOLr?   rA   dumps)r   r)   protos      r   test_pickleOtherTest.test_pickle)  sO    v622Q67E""9-Q& .- 8--s    A$$
A3	c                   ^^^^ SmUUU4S jm " U4S jS5      n " U4S jS5      n " U4S jS5      nS m[        [        S	T-  5      5      mU R                  [        5         TU" 5            S S S 5        S m[        [        S	T-  5      5      mU R	                  [        TS U" 5        5      S
/S-  5        S m[        [        S	T-  5      5      mU R	                  [        TU" 5       S 5      S
/S-  5        S m[        [        S	T-  5      5      R                  SS5      mU R                  [        S5         TU" 5       S4     S S S 5        S m[        [        S	T-  5      5      R                  SS5      mU R                  [        S5         TSU" 5       4     S S S 5        S m[        [        S	T-  5      5      mU R                  [        S5         STU" 5       '   S S S 5        U R	                  TS S S5        S m[        [        S	T-  5      5      mU R                  [        S5         STS U" 5       & S S S 5        U R	                  TS S S5        S m[        [        S	T-  5      5      mU R                  [        S5         STU" 5       S& S S S 5        U R	                  TS S S5        S m[        [        S	T-  5      5      R                  SS5      mU R                  [        S5         STU" 5       S4'   S S S 5        U R	                  TSS S5        S m[        [        S	T-  5      5      R                  SS5      mU R                  [        S5         STSU" 5       4'   S S S 5        U R	                  TS S S5        S m[        [        S	T-  5      5      mU R                  [        S5         U" 5       TS'   S S S 5        U R	                  TS S S5        S H  nU R                  US9   S m[        [        S	T-  5      5      R                  U5      mU R                  [        S5         U" 5       TS'   S S S 5        U R	                  TS S S5        S S S 5        M     S H  nU R                  US9   S m[        [        S	T-  5      5      R                  U5      mU R                  [        S5         U" 5       TS'   S S S 5        U R	                  TS S S5        S S S 5        M     S m[        [        S	T-  5      5      R                  S5      mU R                  [        S5         U" 5       TS'   S S S 5        U R	                  TS S S5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNa= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNn= f! , (       d  f       GN)= f! , (       d  f       GN= f! , (       d  f       GM7  = f! , (       d  f       GN^= f! , (       d  f       GM  = f! , (       d  f       GN= f)N   c                  <   > TR                  5         [        T5      m g r   )r   r  )bar)   sizes   r   r   3OtherTest.test_use_released_memory.<locals>.release4  s    IIK4Br   c                   "   > \ rS rSrU 4S jrSrg)3OtherTest.test_use_released_memory.<locals>.MyIndexi8  c                    > T" 5         g)Nrr   r   r   r   s    r   	__index__=OtherTest.test_use_released_memory.<locals>.MyIndex.__index__9  s    	r   r   N)r	   r
   r   r   r  r   r   s   r   MyIndexr  8  s     r   r  c                   "   > \ rS rSrU 4S jrSrg)3OtherTest.test_use_released_memory.<locals>.MyFloati<  c                    > T" 5         g)Ng      @r   r  s    r   	__float__=OtherTest.test_use_released_memory.<locals>.MyFloat.__float__=      	r   r   N)r	   r
   r   r   r  r   r  s   r   MyFloatr  <       r   r  c                   "   > \ rS rSrU 4S jrSrg)2OtherTest.test_use_released_memory.<locals>.MyBooli@  c                    > T" 5         g)NTr   r  s    r   __bool__;OtherTest.test_use_released_memory.<locals>.MyBool.__bool__A  r  r   r   N)r	   r
   r   r   r  r   r  s   r   MyBoolr  @  r  r   r        rr      r  )@   rc   zoperation forbiddenr   )rc   r  *   s           s   spam   bhilqnBHILQN)fmtfd?)	rZ   r  r?   rl   r;   rK   r  r   rZ  )	r   r  r  r  r  r  r)   r   r  s	        @@@@r   test_use_released_memory"OtherTest.test_use_released_memory/  sV    	!	 		 		 	
 y./z*giL + y./a
m,seai8y./a	!n-uqy9y./44S'B##J0EFgilO G y./44S'B##J0EFalO G y./##J0EFAgiL GBQ)y./##J0EF#AjwyM GBQ)y./##J0EF$AgiN GBQ)y./44S'B##J0EF AgilO GAb7+y./44S'B##J0EF AalO GBQ)y./##J0EF9AaD GBQ)!C#&y67<<SA++J8MN"9AaD O  BQ1 '& " C#&y67<<SA++J8MN"9AaD O  BQ1 '&  y./44S9##J0EF8AaD GBQ)Y +* GF
 GF
 GF GF GF GF
 GF GF ON '& ON '& GFs   $U6U
U&U8%V
<V#V.W %W!?W6 W$+W6(?X'X	2XX.
U
U#&
U58
V

V
V+.
V= 
W
W!$
W3.W66
X		
XX
X+	.
X=c                     [        S5      R                  S5      n[        5       nXl        X"l        [
        R                  " U5      nAA[        R                  " 5         U R                  U" 5       5        g )Nr   r   )
rZ   
__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                     [         R                  " [        S5      5      n[        5       nXl        X"l        [        R                  " U5      nAA[        R                  " 5         U R                  U" 5       5        g ru  )rz  PickleBufferrZ   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   r\  rk  rr  rw  r~  r  r  r  r   r   r   r   rT  rT    s-    /&F2
'd*L  r   rT  __main__)__doc__r  test.supportr   r0   r   r   r  r   rv  rz  rc  r   r   r   r  r  r  r'  r5  TestCaser;  rC  rK  rN  rP  rR  rT  r	   mainr   r   r   <module>r     s;     
 	   	    &	 	w( w(|. . (, ,> >"1 1H(++-H	#(++-	#	8,,.		8,,.		 1 13		 1 13	
f !! f R zMMO r   