
    wi                         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dS )    N)OrderedDict)BytesIO)packbunpackbUnpackerPackerFc                 R    t          t          |           |          }|| k    sJ d S )Nuse_listr   r   )datar   res      m/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/srsly/tests/msgpack/test_pack.pycheckr      s+    	tx	0	0	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          |           d S )Nr                  i  i   l    l        iiiii il     l          ?r      as   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTF )r   )r   Ni   r   	test_datatds     r   testPackr       st   !	!	! 	! 		!
 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!  	!!" 	#!$ 	%!& 	'!( 	)!* 	+!, 	-!. 	/!0 	1!2 	3!4 	5!6 	7!8 	9!: 	;!< 	=!> 
q	?!@ 
A!ID   b				 r   c                  $   dddgdg} | D ]}t          t          |          dd          }||k    sJ t                      }|                    |          }t	          t          |          dd                                          }||k    sJ d S )	N abcddefgh   Русский текстr   F)r   rawr&   r   )r   r   r   packr   r   unpack)r   r   r   packerr   s        r   testPackUnicoder+   4   s    VgY(CDI  U2YY666Rxxxx{{2gdmm;;;BBDDRxxxxx r   c                     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           d S # t          $ r,}t          j        t          |                     Y d }~d S 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	M	M	MB8888	v111A	Q	Q	QB<<<<	y8444q8	T	T	TB'????)H======   SVVs   ?B 
C!CCc                  6    g d} | D ]}t          |           d S )N)r      abcd)   defghr   r   s     r   testPackBytesr7   Q   s3    +++I  b				 r   c                      t          d          t          d          t          d          fg} | D ]}t          |           d S )Nr   r5   r6   )	bytearrayr   r   s     r   testPackByteArraysr:   W   sM    37!3!3i6I6I5KLI  b				 r   c                  V    t          t          d          ddd          } | dk    sJ d S )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            d S # 1 swxY w Y   d S )Nr<   Fr   r'   )r/   raisesUnicodeDecodeErrorr   r   r   r   r   testStrictUnicodeUnpackrE   d   s    	)	*	* = =m$$%!<<<<= = = = = = = = = = = = = = = = = =s    AAAc                      t          j        t                    5  t          ddd           d d d            d S # 1 swxY w Y   d S )Nu   abcídefasciistrictr-   r>   )r/   rC   UnicodeEncodeErrorr   r   r   r   testStrictUnicodePackrK   i   s    	)	*	* G GlWXFFFFG G G G G G G G G G G G G G G G G Gs   :>>c                  Z    t          t          ddd          dd          } | dk    sJ d S )	Nu   abcФФФdefrG   r=   rI   Fr   r'   r?   r   r@   s    r   testIgnoreErrorsPackrM   n   sA    	nwxHHH
 
 
B
 >>>>>>r   c                  T    t          t          d          d d          } | dk    sJ d S )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 d S )	Nr   T)use_single_float   z>fF   z>d)r   structr(   r1   r   r   r   testPackFloatrU   |   st    t,,,&+c$iiQT:U:U0UUUUUu---6;s4yyRU;V;V1VVVVVVVr   )r      2   i  c                    t                      }t                      }| D ]d}|                    |                    |                     t	          |          D ]*}|                    |                    |                     +e|                    d           t          |d          }| D ]6}|                                t          t	          |                    k    sJ 7d S )Nr   r   r
   )
r   r   writepack_array_headerranger(   seekr   r)   listsizesbior*   sizeiunpackers         r   testArraySizerd      s    
))CXXF & &		&**400111t 	& 	&AIIfkk!nn%%%%	& HHQKKKa(((H 6 6  Dt$5$5555556 6r   c                    t          d          }| D ]>}|                    |           t          |          D ]}|                    |           ?t	          |                                          }t          |d          }| D ]6}|                                t          t          |                    k    sJ 7|	                                 |                                dk    sJ d S )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NNNN	 &,,..
!
!Ca(((H 6 6  Dt$5$555555
LLNNN<<>>S      r   c                 0   t                      }t                      }| D ]}|                    |                    |                     t	          |          D ]U}|                    |                    |                     |                    |                    |dz                       V|                    d           t          |          }| D ]@}|                                t          d t	          |          D                       k    sJ Ad S )N   r   c              3   $   K   | ]}||d z  fV  dS )rk   Nr   ).0rb   s     r   	<genexpr>ztestMapSize.<locals>.<genexpr>   s*      (I(I!QU(I(I(I(I(I(Ir   )
r   r   rY   pack_map_headerr[   r(   r\   r   r)   dictr^   s         r   testMapSizerq      s   
))CXXF * *		&((..///t 	* 	*AIIfkk!nn%%%IIfkk!a%(())))	* HHQKKK}}H J J  D(I(IU4[[(I(I(I$I$IIIIIIJ Jr   c                      g d} t          |           }t          t          |          d          t          |           k    sJ d }t          t          |          |d          | k    sJ d S )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    Cyyr   )object_pairs_hookr   )r   r   r   rp   )rv   odrw   s      r   
test_odictrz      s    
A
A
AC	S		B599q)))T#YY6666   599	AFFF#MMMMMMr   c                      g d} t                      }|                    |           }t          |t                    }| |k    sJ d S )N))r   r   )rk      b)s   foos   bar)rx   )r   pack_map_pairsr   r]   )pairlistr*   packedunpackeds       r   test_pairlistr      sR    777HXXF""8,,Fv666Hxr   c                     t          dd          } |                     ddg           t                      }|                    |                                            |                                }t          ddgd          }||k    sJ d S )Nr   T)rf   use_bin_typer   rk   )r   )r   r(   r   rY   	getbuffergetvaluer   )r*   strmwrittenexpecteds       r   test_get_bufferr      s    ad333F
KKA99DJJv!!"""mmooG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 G G
    
W W W
 )(( 6 6 6 6 ,++ ! ! ! !  '&& J J J JN N N         r   