U
    4JeX*  ć                   @   sN   d Z dZddlZddlmZ ddlmZ G dd dejZe	dkrJe 
”  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_numberZtag_typer
   © r   śM/tmp/pip-unpacked-wheel-0oacnh65/google/protobuf/internal/wire_format_test.pyŚtestPackTag+   s    
’zWireFormatTest.testPackTagc                 C   s   dD ]@}t dD ]2}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   Z	UnpackTagr
   r	   r   Ś	TypeErrorŚobject)r   Zexpected_field_numberZexpected_wire_typer   Z	wire_typer   r   r   ŚtestUnpackTag6   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   ZZigZagEncoder	   r   r   r   ©r   ŚZr   r   r   ŚtestZigZagEncodeD   s    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   ZZigZagDecoder	   r   r   r   r(   r   r   r   ŚtestZigZagDecodeU   s    zWireFormatTest.testZigZagDecodec                 C   s@   dD ]6\}}|| }|||}|   ||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ŚvalueZexpected_value_sizer   Z	tag_bytesZexpected_sizeZactual_sizer   r   r   ŚNumericByteSizeTestHelperf   s    
    ’’’z(WireFormatTest.NumericByteSizeTestHelperc              6   C   s°  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g4}|D ]}| j|  q"t jt jfD ]<}|  d|dd” |  d|dd” |  d|dd” q@|  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   é   Z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   r9   r   r   r   Ś__init__Č   s    zBWireFormatTest.testByteSizeFunctions.<locals>.MockMessage.__init__c                 S   s   | j S r7   r8   )r   r   r   r   ŚByteSizeŹ   s    zBWireFormatTest.testByteSizeFunctions.<locals>.MockMessage.ByteSizeN)Ś__name__Ś
__module__Ś__qualname__r:   r;   r   r   r   r   ŚMockMessageĒ   s   r?   r8   r   é   )"r   ZInt32ByteSizeZInt64ByteSizeZUInt32ByteSizeZ
UINT32_MAXZUInt64ByteSizeZ
UINT64_MAXZSInt32ByteSizeZSInt64ByteSizeZFixed32ByteSizeZFixed64ByteSizeZSFixed32ByteSizeZ	INT32_MINZ	INT32_MAXZSFixed64ByteSizeZ	INT64_MINZ	INT64_MAXZFloatByteSizeZDoubleByteSizeZBoolByteSizeZEnumByteSizer.   ZStringByteSizeZBytesByteSizer	   Śdecoder   ZGroupByteSizer9   ZMessageByteSizeZMessageSetItemByteSizer   r   r   )r   ZNUMERIC_ARGSŚargsr,   r?   Zmessage_byte_sizeZmock_messager   r   r   ŚtestByteSizeFunctionsp   sÄ    










































¾D
 ’


’

’
’
’
’
’
’
’  ’z$WireFormatTest.testByteSizeFunctionsN)	r<   r=   r>   r   r   r*   r+   r.   rC   r   r   r   r   r   )   s   
r   Ś__main__)Ś__doc__Ś
__author__ZunittestZgoogle.protobufr   Zgoogle.protobuf.internalr   ZTestCaser   r<   Śmainr   r   r   r   Ś<module>   s    S