
    daf                         d Z ddlZddlmZ ddlZddlZddlmZ  G d de      Z	 G d dej                        Zed	k(  r ej                          yy)
z[Unit tests for the PickleBuffer object.

Pickling tests themselves are in pickletester.py.
    N)PickleBuffer)import_helperc                       e Zd Zy)BN)__name__
__module____qualname__     1/root/Python-3.12.4/Lib/test/test_picklebuffer.pyr   r      s    r   r   c                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)PickleBufferTestc                 @   t        |      5 }t        |      5 }| j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j
                  |j
                         | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                         |j                                d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wN)
memoryviewassertEqualnbytesreadonlyitemsizeshapestridesc_contiguousf_contiguousformattobytes)selfpbequivmexpecteds        r   check_memoryviewz!PickleBufferTest.check_memoryview   s6   ^ 
	BqE" 	Bh  8??;  X->->?  X->->?  (..9  H,<,<=  1F1FG  1F1FG  8??;  h.>.>.@A	B
	B 
	B	B 	B
	B 
	Bs#   FEF7FF	FFc                 v   | j                  t              5  t                d d d        | j                  t              5  t        d       d d d        t        d      }|j	                          | j                  t
              5  t        |       d d d        y # 1 sw Y   wxY w# 1 sw Y   ZxY w# 1 sw Y   y xY w)Nfoo   foo)assertRaises	TypeErrorr   r   release
ValueError)r   r   s     r   test_constructor_failurez)PickleBufferTest.test_constructor_failure!   s    y) 	N	y) 	 	  v			z* 	O	 		 		  	 
	 	s"   BB#B/B #B,/B8c                    t        d      }| j                  dt        |             t        |      5 }| j	                  |j
                         d d d        t        t        d            }| j                  dt        |             t        |      5 }| j                  |j
                         d|d<   d d d        | j                  dt        |             y # 1 sw Y   xY w# 1 sw Y   1xY w)Nr$   0   r   s   0oo)r   r   bytesr   
assertTruer   	bytearrayassertFalse)r   r   r   s      r   test_basicszPickleBufferTest.test_basics,   s    &!r+^ 	(qOOAJJ'	( )F+,r+^ 	qQZZ(AaD	 	r+	( 	(
	 	s   C!C!C!C*c                    t        d      }|j                          | j                  t              5 }t	        |       d d d        | j                  dt        j                               |j                          y # 1 sw Y   ?xY w)Nr$   z3operation forbidden on released PickleBuffer object)r   r'   r%   r(   r   assertInstr	exceptionr   r   raisess      r   test_releasezPickleBufferTest.test_release9   si    &!


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

	 	s   A;;Bc                     t        d      }t        |      }||_        t        j                  |      }~~t        j                          | j                   |              y Nr$   )r   r   cycleweakrefrefgccollectassertIsNone)r   br   wpbs       r   
test_cyclezPickleBufferTest.test_cycleC   sF    fI!_kk"or


#% r   c                    t        j                  d      j                  } |t        t	        d            dd      }| j                  |j                         | j                  |j                         t        |      }| j                  ||       |d d d   }| j                  |j                         | j                  |j                         t        |      }| j                  ||        |t        t	        d            ddd	      }| j                  |j                         | j                  |j                         t        |      }| j                  ||       y )
N_testbuffer         <ir   r      )rH   rG   )rG   rE   r   r   r   )r   import_modulendarraylistranger-   r   r/   r   r   r!   )r   rN   arrr   s       r   test_ndarray_2dz PickleBufferTest.test_ndarray_2dL   s   --m<DDd59oVDA(()))*#b#&#A#h))*))*#b#&d59oVWTR(()))*#b#&r   c                     t        |      }|j                         5 }| j                  |t               | j	                  ||       d d d        y # 1 sw Y   y xY wr   )r   rawassertIsInstancer   r!   )r   objr   r   r   s        r   	check_rawzPickleBufferTest.check_rawc   sL    #VVX 	,!!!Z0!!!U+	, 	, 	,s   )AAc                     dt        d      fD ]/  }| j                  |      5  | j                  ||       d d d        1 y # 1 sw Y   <xY w)Nr$   )rV   )r.   subTestrW   )r   rV   s     r   test_rawzPickleBufferTest.test_rawi   sQ    If-. 	)C#& )sC() )	)) )s   AA
	c                    t        j                  d      j                  } |t        t	        d            dd      }d}| j                  ||        |t        t	        d            dd      }d	}| j                  ||        |t        t	        d            dd
d      }d	}| j                  ||        |ddd      }d}| j                  ||       y )NrD   rH   )rH   z<hrJ   s          )rK   rH   s          )rK   rG   rL   i  r
   rI   s     )r   rM   rN   rO   rP   rW   )r   rN   rQ   r   s       r   test_raw_ndarrayz!PickleBufferTest.test_raw_ndarrayn   s    --m<DDd58nD>+sE"d58nF4@CsE"d58nFF!# DsE"cD1#sE"r   c                     t        |      }| j                  t        d      5  |j                          d d d        y # 1 sw Y   y xY w)Nznon-contiguous)r   assertRaisesRegexBufferErrorrT   )r   rV   r   s      r   check_raw_non_contiguousz)PickleBufferTest.check_raw_non_contiguous   s;    ###K1AB 	FFH	 	 	s	   <Ac                    t        j                  d      j                  } |t        t	        d            dd      d d d   }| j                  |        |t        t	        d            dd      d d d   }| j                  |       y )	NrD   r\   )r\   rI   rJ   rK   rE   rF   )r   rM   rN   rO   rP   ra   )r   rN   rQ   s      r   test_raw_non_contiguousz(PickleBufferTest.test_raw_non_contiguous   sr    --m<DDd58nD>ssC%%c*d59oVDA#A#F%%c*r   c                     t        d      }|j                          | j                  t              5 }|j	                          d d d        y # 1 sw Y   y xY wr9   )r   r'   r%   r(   rT   r5   s      r   test_raw_releasedz"PickleBufferTest.test_raw_released   sC    &!


z* 	fFFH	 	 	s   AAN)r   r   r	   r!   r)   r0   r7   rB   rR   rW   rZ   r]   ra   rc   re   r
   r   r   r   r      s?    B	,!'.,)
#*
+r   r   __main__)__doc__r=   pickler   r;   unittesttest.supportr   r,   r   TestCaser   r   mainr
   r   r   <module>rm      sV   
 
    &	 	Cx(( CL zHMMO r   