U
    +c|                     @   s   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 dd	lmZ dd
lmZ ddlZddlZG dd dejZedkre  dS )z!Fuzz tests for the parser module.    )absolute_import)division)print_function)parser)	testutils)example)given)settings)
strategiesNc                   @   s   e Zd Zeddeejddededededed	ed
edededededededededededededededdd ZdS )ParserFuzzTesti'  )Zmax_examples   )Zmin_sizeTruez"test\t\t\a\\a"z "test\t\t\a\\a"   z"(1, 2)"z(1, 2)z(1,                   2)z(1,       2) za,b,c,dz	(a,b,c,d)z	[a,b,c,d]z	{a,b,c,d}ztest:(a,b,c,d)z{test:(a,b,c,d)}z{test:a,b,c,d}z{test:a,b:(c,d)}z0,#zA#00000   ze[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[0z1c                 C   sN  zt |}W nJ tk
r2   d|kr,Y d S  Y n( tk
rX   t|dkrRY d S  Y nX zt|}t|}W n tk
r   Y d S X t	||}dt
dd |D  |d |d d|d	d
   d|d  d|d  }d|kr|t||d 7 }t|tjs*||d7 }d|krJ| ||||||f d S )N d      c                 s   s   | ]}|  V  qd S )N)isspace).0c r   9/tmp/pip-unpacked-wheel-1xt1w7un/fire/parser_fuzz_test.py	<genexpr>Q   s     z;ParserFuzzTest.testDefaultParseValueFuzz.<locals>.<genexpr>"'   ,r   :\r   0{)r   ZDefaultParseValue	TypeErrorMemoryErrorlensix	text_typeUnicodeDecodeErrorLevenshteindistancesumcountindex
isinstancestring_typesZassertLessEqual)selfvalueresultZuvalueZuresultr(   Zmax_distancer   r   r   testDefaultParseValueFuzz!   sL    



z(ParserFuzzTest.testDefaultParseValueFuzzN)	__name__
__module____qualname__r	   r   sttextr   r1   r   r   r   r   r      s0   r   __main__)__doc__
__future__r   r   r   Zfirer   r   Z
hypothesisr   r   r	   r
   r5   r'   r$   ZBaseTestCaser   r2   mainr   r   r   r   <module>   s   C