U
    »mœd­  ã                   @   sn   d Z ddlT ddlmZ ddlZddlZdZdZdd	„ Zd
d„ Z	ddd„Z
dd„ Zedkrje d¡ eƒ  dS )ú*Benchmark the qu2cu algorithm performance.é   )Ú*é    )Úcurve_to_quadraticNg      à?é   c                 C   sR   dd„ t dd|   ƒD ƒ}g }t | ƒD ]&}| t||d |d d … ƒ¡ q&|S )Nc                 S   s"   g | ]}t d d„ tdƒD ƒƒ‘qS )c                 s   s   | ]}t t d d¡ƒV  qdS )r   i   N)ÚfloatÚrandomÚrandint)Ú.0Zcoord© r   úR/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/fontTools/qu2cu/benchmark.pyÚ	<genexpr>   s     z-generate_curves.<locals>.<listcomp>.<genexpr>é   )ÚtupleÚrange)r
   Úpointr   r   r   Ú
<listcomp>   s   ÿz#generate_curves.<locals>.<listcomp>r   é   é   )r   Úappendr   )ÚnZpointsÚcurvesÚir   r   r   Úgenerate_curves   s    þ$r   c                  C   s   t tƒ} dd„ | D ƒ}|tfS )Nc                 S   s   g | ]}t |tƒ‘qS r   )r   ÚMAX_ERR)r
   Zcurver   r   r   r      s     z-setup_quadratic_to_curves.<locals>.<listcomp>)r   Ú
NUM_CURVESr   )r   Z
quadraticsr   r   r   Úsetup_quadratic_to_curves   s    r   Ú é   c                 C   sx   d| }|r.t d||f dd� |d| 7 }nt d| dd� dd„ }tj|||ƒ||d	�}t d
t|ƒd |  ƒ d S )NZsetup_z%s with %s:r   )ÚendÚ_z%s:c                    s&   t ƒ ˆ  ‰ t ƒ ˆ ‰‡ ‡fdd„}|S )Nc                      s
   ˆ ˆƒ Ž S )Nr   r   ©ÚfunctionÚ
setup_funcr   r   Úwrapped)   s    z/run_benchmark.<locals>.wrapper.<locals>.wrapped)Úglobals)r"   r#   r$   r   r!   r   Úwrapper%   s    

zrun_benchmark.<locals>.wrapper)ÚrepeatÚnumberz	%5.1fusg    €„.A)ÚprintÚtimeitr'   Úmin)Úmoduler"   Zsetup_suffixr'   r(   r#   r&   Úresultsr   r   r   Úrun_benchmark   s    	r.   c                   C   s   t ddƒ dS )r   Úqu2cuZquadratic_to_curvesN)r.   r   r   r   r   Úmain2   s    r0   Ú__main__)r   r   r   )Ú__doc__r/   ZfontTools.cu2qur   r   r*   r   r   r   r   r.   r0   Ú__name__Úseedr   r   r   r   Ú<module>   s   

