U
    #vh                     @   sf   d Z ddlT ddlZddlZdZdd Zdd	 Zd
d ZdddZdd Z	e
dkrbed e	  dS )z*Benchmark the cu2qu algorithm performance.   )*    Ng?c                   C   s   dd t dD 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   =/tmp/pip-unpacked-wheel-1ufboor8/fontTools/cu2qu/benchmark.py	<genexpr>   s     z,generate_curve.<locals>.<listcomp>.<genexpr>   )tuplerange)r   pointr   r   r	   
<listcomp>   s   z"generate_curve.<locals>.<listcomp>   )r   r   r   r   r	   generate_curve
   s    r   c                   C   s
   t  tfS N)r   MAX_ERRr   r   r   r	   setup_curve_to_quadratic   s    r   c                  C   s    d} dd t | D tg|  fS )N   c                 S   s   g | ]
}t  qS r   )r   )r   curver   r   r	   r      s     z-setup_curves_to_quadratic.<locals>.<listcomp>)r   r   )
num_curvesr   r   r	   setup_curves_to_quadratic   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 r   r   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 t dd d S )Ncu2quZcurve_to_quadraticZcurves_to_quadratic)r+   r   r   r   r	   main/   s    
r-   __main__)r   r   r   )__doc__r,   r   r'   r   r   r   r   r+   r-   __name__seedr   r   r   r	   <module>   s   

