
    i                         d dl Z d dlZd dlmZ d dlmZ d dlmZmZm	Z	m
Z
 ddZd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zg dfdZg dfdZg dfdZd Zd Zd Zy)    N)OrderedDict)BytesIO)packbunpackbUnpackerPackerc                 >    t        t        |       |      }|| k(  sJ y )Nuse_listr   r   )datar   res      n/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/srsly/tests/msgpack/test_pack.pycheckr      s    	tx	0B::    c                      g ddddddddd	d
ddddddddddddddd dddddd did} | D ]  }t        |        y )Nr                  i  i   l    l        iiiii il     l          ?r      as   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTF )r   )r   Ni   r   	test_datatds     r   testPackr       sd   !	!	! 	! 		!
 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!  	!!" 	#!$ 	%!& 	'!( 	)!* 	+!, 	-!. 	/!0 	1!2 	3!4 	5!6 	7!8 	9!: 	;!< 	=!> 
q	?!@ 
A!ID  b	r   c                      dddgdg} | D ]g  }t        t        |      dd      }||k(  sJ t               }|j                  |      }t	        t        |      dd      j                         }||k(  rgJ  y )	N abcddefgh   Русский текстr   F)r   rawr&   r   )r   r   r   packr   r   unpack)r   r   r   packerr   s        r   testPackUnicoder+   4   sy    VgY(CDI U2Y6Rxx{{2gdm;BBDRxxr   c                  L   t        t        dd      dd      } | dk(  sJ t        t        dd      dd      } | dk(  sJ t        t        dgd      dd      } | dgk(  sJ 	 t        dd       y # t        $ r(}t        j                  t        |             Y d }~y d }~ww xY w)	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   $A2 2	B#;BB#c                  0    g d} | D ]  }t        |        y )N)r      abcd)   defghr   r   s     r   testPackBytesr7   Q   s    +I b	r   c                  j    t        d      t        d      t        d      fg} | D ]  }t        |        y )Nr   r5   r6   )	bytearrayr   r   s     r   testPackByteArraysr:   W   s5    37!3i6I5KLI b	r   c                  B    t        t        d      ddd      } | dk(  sJ y )N   abcdefzutf-8ignorer   )r-   unicode_errorsr   abcdefr   r   s    r   testIgnoreUnicodeErrorsrA   ]   s)    	mwxRS
B >>r   c                      t        j                  t              5  t        t	        d      dd       d d d        y # 1 sw Y   y xY w)Nr<   Fr   r'   )r/   raisesUnicodeDecodeErrorr   r   r   r   r   testStrictUnicodeUnpackrE   d   s5    	)	* =m$%!<= = =s	   ;Ac                  |    t        j                  t              5  t        ddd       d d d        y # 1 sw Y   y xY w)Nu   abcídefasciistrictr-   r>   )r/   rC   UnicodeEncodeErrorr   r   r   r   testStrictUnicodePackrK   i   s4    	)	* GlWXFG G Gs   2;c                  F    t        t        ddd      dd      } | dk(  sJ y )	Nu   abcФФФdefrG   r=   rI   Fr   r'   r?   r   r@   s    r   testIgnoreErrorsPackrM   n   s,    	nwxH
B
 >>r   c                  @    t        t        d      d d      } | dk(  sJ y )Ns   abcr   )r-   r   r   r@   s    r   testDecodeBinaryrO   w   s     	v	:B<<r   c                      t        dd      dt        j                  t        d      d      z   k(  sJ t        dd      dt        j                  t        d      d      z   k(  sJ y )	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                 r   t               }t               }| D ]R  }|j                  |j                  |             t	        |      D ]"  }|j                  |j                  |             $ T |j                  d       t        |d      }| D ])  }|j                         t        t	        |            k(  r)J  y )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 6 Dt$55556r   c                    t        d      }| D ]4  }|j                  |       t        |      D ]  }|j                  |        6 t	        |j                               }t        |d      }| D ])  }|j                         t        t        |            k(  r)J  |j                          |j                         dk(  sJ y )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 6 Dt$55556 LLN<<>S   r   c                    t               }t               }| D ]u  }|j                  |j                  |             t	        |      D ]E  }|j                  |j                  |             |j                  |j                  |dz               G w |j                  d       t        |      }| D ]0  }|j                         t        d t	        |      D              k(  r0J  y )N   r   c              3   *   K   | ]  }||d z  f  yw)rk   Nr   ).0rb   s     r   	<genexpr>ztestMapSize.<locals>.<genexpr>   s     (I!QU(Is   )
r   r   rY   pack_map_headerr[   r(   r\   r   r)   dictr^   s         r   testMapSizerq      s    
)CXF *		&((./t 	*AIIfkk!n%IIfkk!a%()	** HHQK}H J D(IU4[(I$IIIIJr   c                      g d} t        |       }t        t        |      d      t        |       k(  sJ d }t        t        |      |d      | k(  sJ y )N))s   oner   )s   twork   )s   three   )s   four   r   r
   c                     t        |       S )N)r]   )seqs    r   	pair_hookztest_odict.<locals>.pair_hook   s    Cyr   )object_pairs_hookr   )r   r   r   rp   )rv   odrw   s      r   
test_odictrz      sP    
AC	S	B59q)T#Y666 59	AF#MMMr   c                  r    g d} t               }|j                  |       }t        |t              }| |k(  sJ y )N))r   r   )rk      b)s   foos   bar)rx   )r   pack_map_pairsr   r]   )pairlistr*   packedunpackeds       r   test_pairlistr      s8    7HXF""8,Fv6Hxr   c                      t        dd      } | j                  ddg       t               }|j                  | j	                                |j                         }t        ddgd      }||k(  sJ y )Nr   T)rf   use_bin_typer   rk   )r   )r   r(   r   rY   	getbuffergetvaluer   )r*   strmwrittenexpecteds       r   test_get_bufferr      sc    ad3F
KKA9DJJv!"mmoGaV$/H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   rq   rz   r   r   r   r   r   <module>r      s      #  : :
$N
$=
G

W
 ) 6 , !  ' JN r   