
    0hh                         S r SSKrSSKJr  SSKrSSKrSSKJr   " S S\5      r	 " S S\R                  5      r\S	:X  a  \R                  " 5         gg)
z[Unit tests for the PickleBuffer object.

Pickling tests themselves are in pickletester.py.
    N)PickleBuffer)import_helperc                       \ rS rSrSrg)B    N)__name__
__module____qualname____firstlineno____static_attributes__r       ?/opt/python-3.13.8/usr/lib/python3.13/test/test_picklebuffer.pyr   r      s    r   r   c                   \    \ 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)PickleBufferTest   c                 T   [        U5       n[        U5       nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  5       UR                  5       5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fN)
memoryviewassertEqualnbytesreadonlyitemsizeshapestridesc_contiguousf_contiguousformattobytes)selfpbequivmexpecteds        r   check_memoryview!PickleBufferTest.check_memoryview   s   ^qE"h  8??;  X->->?  X->->?  (..9  H,<,<=  1F1FG  1F1FG  8??;  h.>.>.@A # ^"" ^s#   FEF7F
F	F
F'c                    U R                  [        5         [        5         S S S 5        U R                  [        5         [        S5        S S S 5        [        S5      nUR	                  5         U R                  [
        5         [        U5        S S S 5        g ! , (       d  f       N|= f! , (       d  f       Nd= f! , (       d  f       g = f)Nfoo   foo)assertRaises	TypeErrorr   r   release
ValueError)r    r#   s     r   test_constructor_failure)PickleBufferTest.test_constructor_failure!   s    y)N *y) * v			z*O +* *)))
 +*s"   BB(B9
B%(
B69
Cc                    [        S5      nU R                  S[        U5      5        [        U5       nU R	                  UR
                  5        S S S 5        [        [        S5      5      nU R                  S[        U5      5        [        U5       nU R                  UR
                  5        SUS'   S S S 5        U R                  S[        U5      5        g ! , (       d  f       N= f! , (       d  f       N;= f)Nr)   0   r   s   0oo)r   r   bytesr   
assertTruer   	bytearrayassertFalse)r    r!   r#   s      r   test_basicsPickleBufferTest.test_basics,   s    &!r+^qOOAJJ'  )F+,r+^qQZZ(AaD  	r+ ^
 ^s   C!C&
C#&
C4c                    [        S5      nUR                  5         U R                  [        5       n[	        U5        S S S 5        U R                  S[        WR                  5      5        UR                  5         g ! , (       d  f       ND= f)Nr)   z3operation forbidden on released PickleBuffer object)r   r,   r*   r-   r   assertInstr	exceptionr    r!   raisess      r   test_releasePickleBufferTest.test_release9   sb    &!


z*frN +K&**+	- 	

 +*s   A;;
B	c                     [        S5      n[        U5      nX!l        [        R                  " U5      nAA[
        R                  " 5         U R                  U" 5       5        g Nr)   )r   r   cycleweakrefrefgccollectassertIsNone)r    br!   wpbs       r   
test_cyclePickleBufferTest.test_cycleC   sD    fI!_kk"or


#% r   c                    [         R                  " S5      R                  nU" [        [	        S5      5      SSS9nU R                  UR                  5        U R                  UR                  5        [        U5      nU R                  X25        US S S2   nU R                  UR                  5        U R                  UR                  5        [        U5      nU R                  X25        U" [        [	        S5      5      SSSS	9nU R                  UR                  5        U R                  UR                  5        [        U5      nU R                  X25        g )
N_testbuffer         <ir   r      )rQ   rP   )rP   rN   r   r   r   )r   import_modulendarraylistranger3   r   r5   r   r   r%   )r    rW   arrr!   s       r   test_ndarray_2d PickleBufferTest.test_ndarray_2dL   s   --m<DDd59oVDA(()))*#b&#A#h))*))*#b&d59oVWTR(()))*#b&r   c                     [        U5      nUR                  5        nU R                  U[        5        U R	                  XB5        S S S 5        g ! , (       d  f       g = fr   )r   rawassertIsInstancer   r%   )r    objr"   r!   r#   s        r   	check_rawPickleBufferTest.check_rawc   s?    #VVX!!!Z0!!!+ XXs   (A
Ac                     S[        S5      4 H,  nU R                  US9   U R                  X5        S S S 5        M.     g ! , (       d  f       M@  = f)Nr)   )r`   )r4   subTestra   )r    r`   s     r   test_rawPickleBufferTest.test_rawi   s?    If-.C#&s( '& /&&s	   ?
A	c                    [         R                  " S5      R                  nU" [        [	        S5      5      SSS9nSnU R                  X#5        U" [        [	        S5      5      SSS9nS	nU R                  X#5        U" [        [	        S5      5      SS
SS9nS	nU R                  X#5        U" SSSS9nSnU R                  X#5        g )NrM   rQ   )rQ   z<hrS   s          )rT   rQ   s          )rT   rP   rU   i  r   rR   s     )r   rV   rW   rX   rY   ra   )r    rW   rZ   r"   s       r   test_raw_ndarray!PickleBufferTest.test_raw_ndarrayn   s    --m<DDd58nD>+s"d58nF4@Cs"d58nFF!# Ds"cD1#s"r   c                     [        U5      nU R                  [        S5         UR                  5         S S S 5        g ! , (       d  f       g = f)Nznon-contiguous)r   assertRaisesRegexBufferErrorr^   )r    r`   r!   s      r   check_raw_non_contiguous)PickleBufferTest.check_raw_non_contiguous   s3    ###K1ABFFH CBBs	   <
A
c                    [         R                  " S5      R                  nU" [        [	        S5      5      SSS9S S S2   nU R                  U5        U" [        [	        S5      5      SSS9S S S2   nU R                  U5        g )	NrM   rh   )rh   rR   rS   rT   rN   rO   )r   rV   rW   rX   rY   rn   )r    rW   rZ   s      r   test_raw_non_contiguous(PickleBufferTest.test_raw_non_contiguous   sr    --m<DDd58nD>ssC%%c*d59oVDA#A#F%%c*r   c                     [        S5      nUR                  5         U R                  [        5       nUR	                  5         S S S 5        g ! , (       d  f       g = frA   )r   r,   r*   r-   r^   r<   s      r   test_raw_released"PickleBufferTest.test_raw_released   s:    &!


z*fFFH +**s   A
Ar   N)r	   r
   r   r   r%   r.   r6   r>   rJ   r[   ra   re   ri   rn   rq   rt   r   r   r   r   r   r      s?    B	,!'.,)
#*
+r   r   __main__)__doc__rE   pickler   rC   unittesttest.supportr   r2   r   TestCaser   r	   mainr   r   r   <module>r}      sT   
 
    &	 	Cx(( CL zMMO r   