o
    Ďi                     @   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
Z
G d	d
 d
ejZedkr=e  dS dS )z!Fuzz tests for the parser module.    )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'  )max_examples   )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   s8  zt |}W n ty   d|v rY d S   ty&   t|dkr%Y d S  w z
t|}t|}W n
 ty;   Y d S w t||}dt	dd |D  |
d |
d d|
d	d
   d|
d  d|
d  }d|v r}|t||d 7 }t|ts||
d7 }d|vr| ||||||f d S d S )N d      c                 s   s    | ]}|  V  qd S )N)isspace).0c r   Q/home/jeff/fluffinator/venv/lib/python3.10/site-packages/fire/parser_fuzz_test.py	<genexpr>L   s    z;ParserFuzzTest.testDefaultParseValueFuzz.<locals>.<genexpr>"'   ,r
   :\r   0{)r   DefaultParseValue	TypeErrorMemoryErrorlenstrUnicodeDecodeErrorLevenshteindistancesumcountindex
isinstanceassertLessEqual)selfvalueresultuvalueuresultr'   max_distancer   r   r   testDefaultParseValueFuzz   sR   

z(ParserFuzzTest.testDefaultParseValueFuzzN)	__name__
__module____qualname__r   r   sttextr   r3   r   r   r   r   r      s2    :r   __main__)__doc__firer   r   
hypothesisr   r   r   r   r7   r&   BaseTestCaser   r4   mainr   r   r   r   <module>   s   C