o
    ‹¨Êh²*  ã                   @   sr   d Z dZzddlZW n ey   ddlZY nw ddlmZ ddlmZ G dd„ dej	ƒZ
edkr7e ¡  dS dS )	z.Test for google.protobuf.internal.wire_format.z#robinson@google.com (Will Robinson)é    N)Úmessage)Úwire_formatc                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚWireFormatTestc                 C   sR   d}d}|   |d> |B t ||¡¡ tj}|  tj||d¡ |  tj||d¡ d S )Ni¼
  é   é   é   éÿÿÿÿ)ÚassertEqualr   ÚPackTagÚassertRaisesr   ÚEncodeError)ÚselfÚfield_numberÚtag_typer
   © r   ú[/var/www/html/env/lib/python3.10/site-packages/google/protobuf/internal/wire_format_test.pyÚtestPackTag0   s   
ÿzWireFormatTest.testPackTagc                 C   sŒ   dD ] }t dƒD ]}t t ||¡¡\}}|  ||¡ |  ||¡ qq|  ttjd ¡ |  ttjd¡ |  ttjd¡ |  ttjtƒ ¡ d S )N)é   é   é   éÿ  é   r   Úabcç        )Úranger   Ú	UnpackTagr
   r	   r   Ú	TypeErrorÚobject)r   Úexpected_field_numberÚexpected_wire_typer   Ú	wire_typer   r   r   ÚtestUnpackTag;   s   
ÿüzWireFormatTest.testUnpackTagc                 C   sÔ   t j}|  d|dƒ¡ |  d|dƒ¡ |  d|dƒ¡ |  d|dƒ¡ |  d|dƒ¡ |  d|d	ƒ¡ |  d
|dƒ¡ |  d|dƒ¡ |  d|dƒ¡ |  t|d ¡ |  t|d¡ |  t|d¡ |  t|tƒ ¡ d S )Nr   r   r   r   r   éþÿÿÿé   ì   þÿ éÿÿÿì   ÿÿ é   €ì   þÿÿÿ ì   ÿÿÿÿ ì   ÿÿÿÿ ìûÿÿÿ         Úabcdr   )r   ÚZigZagEncoder	   r   r   r   ©r   ÚZr   r   r   ÚtestZigZagEncodeI   ó   zWireFormatTest.testZigZagEncodec                 C   sÔ   t j}|  d|dƒ¡ |  d|dƒ¡ |  d|dƒ¡ |  d|dƒ¡ |  d|dƒ¡ |  d|d	ƒ¡ |  d
|dƒ¡ |  d|dƒ¡ |  d|dƒ¡ |  t|d ¡ |  t|d¡ |  t|d¡ |  t|tƒ ¡ d S )Nr   r   r   r   r"   r   r#   r%   r$   r'   r&   r)   r(   r+   r*   r,   r   )r   ÚZigZagDecoder	   r   r   r   r.   r   r   r   ÚtestZigZagDecodeZ   r1   zWireFormatTest.testZigZagDecodec                 C   s@   dD ]\}}|| }|||ƒ}|   ||d|||||f ¡ qd S )N))r   r   )r   r   )r   r   )r   r   zFbyte_size_fn: %s, field_number: %d, value: %r
Expected: %d, Actual: %d)r	   )r   Úbyte_size_fnÚvalueÚexpected_value_sizer   Ú	tag_bytesÚexpected_sizeÚactual_sizer   r   r   ÚNumericByteSizeTestHelperk   s   

ÿÿÿýz(WireFormatTest.NumericByteSizeTestHelperc              	   C   s  g t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jt jdg‘t jddg‘t jddg‘t jddg‘t jt jdg‘t jddg‘t jddg‘t jddg‘t jd	dg‘t jd
dg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jd	dg‘t jd
dg‘t jddg‘t jddg‘t j	ddg‘t j	t jdg‘t j
ddg‘t j
t jdg‘t jddg‘t jt jdg‘t jt jdg‘t jddg‘t jt jdg‘t jt jdg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jddg‘t jt jdg‘}|D ]}| j|Ž  �qEt jt jfD ]}|  d|ddƒ¡ |  d|ddƒ¡ |  d|ddƒ¡ �qT|  dt  dd d¡¡¡ G dd„ dtƒ}d}||d�}|  d| t  d|¡¡ |  d| t  d|¡¡ |  d|j t  d|¡¡ |  d|j t  d|¡¡ d|_|  d|j t  d|¡¡ d|_|  |jd t  d|¡¡ d|_|  |jd t  d|¡¡ |  |jd t  d|¡¡ |  t j!t jddd> ¡ d S ) Nr   r   é   é€   r   r   é
   é   iÁÿÿÿé?   iÀÿÿÿé@   r#   é   r   g    eÍÍAg    eÍÍÁFTr   r   r   é„   Ú€aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas   Ð¢ÐµÑ�Ñ‚zutf-8c                   @   s   e Zd Zdd„ Zdd„ ZdS )z9WireFormatTest.testByteSizeFunctions.<locals>.MockMessagec                 S   s
   || _ d S ©N©Ú	byte_size)r   rF   r   r   r   Ú__init__Í   s   
zBWireFormatTest.testByteSizeFunctions.<locals>.MockMessage.__init__c                 S   s   | j S rD   rE   )r   r   r   r   ÚByteSizeÏ   s   zBWireFormatTest.testByteSizeFunctions.<locals>.MockMessage.ByteSizeN)Ú__name__Ú
__module__Ú__qualname__rG   rH   r   r   r   r   ÚMockMessageÌ   s    rL   rE   r   é   )"r   ÚInt32ByteSizeÚInt64ByteSizeÚUInt32ByteSizeÚ
UINT32_MAXÚUInt64ByteSizeÚ
UINT64_MAXÚSInt32ByteSizeÚSInt64ByteSizeÚFixed32ByteSizeÚFixed64ByteSizeÚSFixed32ByteSizeÚ	INT32_MINÚ	INT32_MAXÚSFixed64ByteSizeÚ	INT64_MINÚ	INT64_MAXÚFloatByteSizeÚDoubleByteSizeÚBoolByteSizeÚEnumByteSizer:   ÚStringByteSizeÚBytesByteSizer	   Údecoder   ÚGroupByteSizerF   ÚMessageByteSizeÚMessageSetItemByteSizer   r   r   )r   ÚNUMERIC_ARGSÚargsr4   rL   Úmessage_byte_sizeÚmock_messager   r   r   ÚtestByteSizeFunctionsu   s&  
þ
ý
ü
û
ù
ø
	÷

ö
ô
ó
òñ
ï
î
íì
ê
é
è
ç
æ
å
ä
â
á
 à
!ß
"Þ
#Ý
$Ü
&Ú'Ù
)×*Ö
,Ô-Ó.Ò
0Ð1Ï2Î
4Ì
5Ë
6Ê
8È
9Ç
:Æ
<Ä
=Ã
?Á
@À
A¿B¾D

ÿ


ÿ

ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿÿz$WireFormatTest.testByteSizeFunctionsN)	rI   rJ   rK   r   r!   r0   r3   r:   rl   r   r   r   r   r   .   s    
r   Ú__main__)Ú__doc__Ú
__author__Ú	unittest2ÚunittestÚImportErrorÚgoogle.protobufr   Úgoogle.protobuf.internalr   ÚTestCaser   rI   Úmainr   r   r   r   Ú<module>   s    ÿ Sÿ