o
    i4                     @   sl   d dl Z d dlZd dlZddlmZ dZdZdededeje	ef fd	d
Z
dddZedkr4e  dS dS )    N   crc32ci  @
   size
iterationsreturnc                    sT   d|   t  }d}	 ||7 } fddt|D  t  | }|dkr)	 ||fS q)N    r   Tc                    s   g | ]}t  qS  r   ).0_datar
   ;/usr/local/lib/python3.10/dist-packages/crc32c/benchmark.py
<listcomp>   s    zrun.<locals>.<listcomp>)time	monotonicrange)r   r   startevaluationsdurationr
   r   r   run   s   r   c                  C   s   t  } | jddtdt td | jddtdt td |  }t|j|j	\}}|jd d }|d | | }t
d	|d
d|d
d| d d S )Nz-sz--sizez)Amount of bytes to checksum, defaults to )typehelpdefaultz-iz--iterationszFNumber of times the checksum should we run over the data, defaults to i   zcrc32c ran at z.3fz [GB/s] when checksuming z [MB] z times)argparseArgumentParseradd_argumentintDEFAULT_SIZEDEFAULT_ITERATIONS
parse_argsr   r   r   print)parseroptionsr   r   size_mbavg_speed_gbsr
   r
   r   main   s,   r'   __main__)r   N)r   r   typing_crc32cr   r   r    r   Tuplefloatr   r'   __name__r
   r
   r
   r   <module>   s     

