
    h                         S SK r S SKrS SKJr  S SKJr  S SKJrJrJ	r	J
r
  SS jrS rS rS rS	 rS
 rS rS rS rS rS rS r/ SQ4S jr/ SQ4S jr/ SQ4S jrS rS rS rg)    N)OrderedDict)BytesIO)packbunpackbUnpackerPackerc                 8    [        [        U 5      US9nX :X  d   eg )Nuse_listr   r   )datar   res      W/home/james-whalen/.local/lib/python3.13/site-packages/srsly/tests/msgpack/test_pack.pycheckr      s    	tx	0B::    c                      / SPSPSPSPSPSPSPSPS	PS
PSPSPSPSPSPSPSPSPSPSPSPSPSPSPS PSPSPSPSPSPS S0PSPn U  H  n[        U5        M     g )Nr                  i  i   l    l        iiiii il     l          ?r      as   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTF )r   )r   Ni   r   	test_datatds     r   testPackr       s_   !	!	! 	! 		!
 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!  	!!" 	#!$ 	%!& 	'!( 	)!* 	+!, 	-!. 	/!0 	1!2 	3!4 	5!6 	7!8 	9!: 	;!< 	=!> 
q	?!@ 
A!ID b	 r   c                      SSS/S/n U  Hb  n[        [        U5      SSS9nX!:X  d   e[        5       nUR                  U5      n[	        [        U5      SSS9R                  5       nX!:X  a  Mb   e   g )	N abcddefgh   Русский текстr   F)r   rawr&   r   )r   r   r   packr   r   unpack)r   r   r   packerr   s        r   testPackUnicoder+   4   sp    VgY(CDIU2Y6xx{{2gdm;BBDxx r   c                  ,   [        [        SSS9SSS9n U S:X  d   e[        [        SSS9SSS9n U S:X  d   e[        [        S/SS9SSS9n U S/:X  d   e [        SSS9  g ! [         a)  n[        R                  " [        U5      5         S nAg S nAff = f)	Nr"   zutf-32)encodingr   )r   r-   r#   r$   r%   )r   r   LookupErrorpytestxfailstr)r   es     r   testPackUTF32r3   ?   s    	rH-H	MB8O8	v1A	QB<<	y84q8	TB'??)H= SVs   
A   
B*BBc                  4    / SQn U  H  n[        U5        M     g )N)r      abcd)   defghr   r   s     r   testPackBytesr7   Q   s    +Ib	 r   c                  n    [        S5      [        S5      [        S5      4/n U  H  n[        U5        M     g )Nr   r5   r6   )	bytearrayr   r   s     r   testPackByteArraysr:   W   s0    37!3i6I5KLIb	 r   c                  >    [        [        S5      SSSS9n U S:X  d   eg )N   abcdefzutf-8ignorer   )r-   unicode_errorsr   abcdefr   r   s    r   testIgnoreUnicodeErrorsrA   ]   s)    	mwxRS
B >>r   c                      [         R                  " [        5         [        [	        S5      SSS9  S S S 5        g ! , (       d  f       g = f)Nr<   Fr   r'   )r/   raisesUnicodeDecodeErrorr   r   r   r   r   testStrictUnicodeUnpackrE   d   s,    	)	*m$%!< 
+	*	*s	   9
Ac                      [         R                  " [        5         [        SSSS9  S S S 5        g ! , (       d  f       g = f)Nu   abcídefasciistrictr-   r>   )r/   rC   UnicodeEncodeErrorr   r   r   r   testStrictUnicodePackrK   i   s'    	)	*lWXF 
+	*	*s   0
>c                  <    [        [        SSSS9SSS9n U S:X  d   eg )	Nu   abcФФФdefrG   r=   rI   Fr   r'   r?   r   r@   s    r   testIgnoreErrorsPackrM   n   s,    	nwxH
B
 >>r   c                  <    [        [        S5      S SS9n U S:X  d   eg )Ns   abcr   )r-   r   r   r@   s    r   testDecodeBinaryrO   w   s     	v	:B<<r   c                      [        SSS9S[        R                  " [        S5      S5      -   :X  d   e[        SSS9S[        R                  " [        S5      S5      -   :X  d   eg )	Nr   T)use_single_float   z>fF   z>d)r   structr(   r1   r   r   r   testPackFloatrU   |   sV    t,&++c$iQT:U0UUUUu-6;;s4yRU;V1VVVVr   )r      2   i  c                 z   [        5       n[        5       nU  HU  nUR                  UR                  U5      5        [	        U5       H#  nUR                  UR                  U5      5        M%     MW     UR                  S5        [        USS9nU  H+  nUR                  5       [        [	        U5      5      :X  a  M+   e   g )Nr   r   r
   )
r   r   writepack_array_headerranger(   seekr   r)   listsizesbior*   sizeiunpackers         r   testArraySizerd      s    
)CXF		&**401tAIIfkk!n%  
 HHQKa(H Dt$5555 r   c                    [        SS9nU  H7  nUR                  U5        [        U5       H  nUR                  U5        M     M9     [	        UR                  5       5      n[        USS9nU  H+  nUR                  5       [        [        U5      5      :X  a  M+   e   UR                  5         UR                  5       S:X  d   eg )NF)	autoresetr   r
   r   )
r   rZ   r[   r(   r   bytesr   r)   r]   reset)r_   r*   ra   rb   r`   rc   s         r   test_manualresetri      s    e$F  &tAKKN  
 &,,.
!Ca(H Dt$5555  LLN<<>S   r   c                    [        5       n[        5       nU  Hx  nUR                  UR                  U5      5        [	        U5       HF  nUR                  UR                  U5      5        UR                  UR                  US-  5      5        MH     Mz     UR                  S5        [        U5      nU  H2  nUR                  5       [        S [	        U5       5       5      :X  a  M2   e   g )N   r   c              3   .   #    U  H  oUS -  4v   M     g7f)rk   Nr   ).0rb   s     r   	<genexpr>testMapSize.<locals>.<genexpr>   s     (I[QU[s   )
r   r   rY   pack_map_headerr[   r(   r\   r   r)   dictr^   s         r   testMapSizerr      s    
)CXF		&((./tAIIfkk!n%IIfkk!a%()   HHQK}H D(IU4[(I$IIII r   c                      / SQn [        U 5      n[        [        U5      SS9[        U 5      :X  d   eS n[        [        U5      USS9U :X  d   eg )N))s   oner   )s   twork   )s   three   )s   four   r   r
   c                     [        U 5      $ )N)r]   )seqs    r   	pair_hooktest_odict.<locals>.pair_hook   s    Cyr   )object_pairs_hookr   )r   r   r   rq   )rw   odrx   s      r   
test_odictr|      sP    
AC	S	B59q)T#Y666 59	AF#MMMr   c                  l    / SQn [        5       nUR                  U 5      n[        U[        S9nX:X  d   eg )N))r   r   )rk      b)s   foos   bar)rz   )r   pack_map_pairsr   r]   )pairlistr*   packedunpackeds       r   test_pairlistr      s6    7HXF""8,Fv6Hr   c                      [        SSS9n U R                  SS/5        [        5       nUR                  U R	                  5       5        UR                  5       n[        SS/SS9nX#:X  d   eg )Nr   T)rf   use_bin_typer   rk   )r   )r   r(   r   rY   	getbuffergetvaluer   )r*   strmwrittenexpecteds       r   test_get_bufferr      sa    ad3F
KKA9DJJv!"mmoGaV$/Hr   )F)rT   r/   collectionsr   ior   srsly.msgpackr   r   r   r   r   r    r+   r3   r7   r:   rA   rE   rK   rM   rO   rU   rd   ri   rr   r|   r   r   r   r   r   <module>r      s      #  : :
$N
$=
G

W
 ) 6 , !  ' JN r   