;
Νβ"Ic               @   s   d  d l  Z  d  d l Z d  d l Z d   Z d   Z d   Z d   Z e  j d Z e d2 k o4 e	 d	 e  e	 d
 e d  e
 d e d  n@e d k oc e e  j  d k oM d  d l Z e	 d e  j d  e
 d e  j d e e e  j d   nΠ e d k oP e e  j  d k o: d  d l Z e	 d e  j d  e
 d e  j d  ns e e e  oF e e e e  d  o- e e e  Z e
 d e e e e   n e	 d e  e
 d e  y e   Wna e k
 oU e
   e
 d  e
 d  e
 d  e
 d  e
 d  e
 d  e
     Yn Xe   e d d  d! d"  e d d# d! d$  e d d% d! d&  e d d' d! d(  e d d) d! d*  e d d+ d! d,  e d d- d! d.  e d e   j d! d/  e d d0 d! d1  d S(3   i    Nc               C   s   t  d   d  S(   Nu   eek, creatorFunc not overridden(   u   RuntimeError(    (    (    u.   /mit/python/lib/python3.0/test/time_hashlib.pyu   creatorFunc   s    c       	   
   C   s   d |  d } d |  } t  } t j   } x& t |  D] } | |  j   } q7 Wt j   } t d | | d | d t |  d |  d  S(   NiΩ i   u   Zu   %2.2fu   secondsu   xu   bytes(   u   creatorFuncu   timeu   rangeu   digestu   printu   len(	   u   scaleu   nameu
   iterationsu   longStru   localCFu   startu   fu   xu   end(    (    u.   /mit/python/lib/python3.0/test/time_hashlib.pyu   test_scaled_msg   s    
 c              C   sT   t  j    }  x t d  D] } t   } q Wt  j    } t d | |  d d  d  S(   Ni N  u   %2.2fu   secondsu   [20000 creations](   u   timeu   rangeu   creatorFuncu   print(   u   startu   fu   du   end(    (    u.   /mit/python/lib/python3.0/test/time_hashlib.pyu   test_create   s     c              C   sZ   t  j    }  x# t d  D] } t   j   } q Wt  j    } t d | |  d d  d  S(   Ni N  u   %2.2fu   secondsu   [20000 "" digests](   u   timeu   rangeu   creatorFuncu   digestu   print(   u   startu   fu   xu   end(    (    u.   /mit/python/lib/python3.0/test/time_hashlib.pyu	   test_zero   s     i   u   _md5u   _shau   import u   creatorFunc = u   .newu   testing speed of oldu   legacy interfaceu   _hashlibi   u   creatorFunc = _hashlib.%si   u   testing speed of _hashlib.%su+   creatorFunc = lambda x=_hashlib.new : x(%r)u!   testing speed of _hashlib.new(%r)u   __call__u   testing speed of hashlib.u*   creatorFunc = lambda x=hashlib.new : x(%r)u    testing speed of hashlib.new(%r)u8   pass argument(s) naming the hash to run a speed test on:u6    '_md5' and '_sha' test the legacy builtin md5 and shau=    '_hashlib' 'openssl_hName' 'fast' tests the builtin _hashlibu6    '_hashlib' 'hName' tests builtin _hashlib.new(shaFOO)u>    'hName' tests the hashlib.hName() implementation if it existsu.            otherwise it uses hashlib.new(hName).u   scaleiΩ u   nameu   [huge data]i|)  u   [large data]i&  u   [medium data]i¨  u   [4*small data]iP  u   [3*small data]iΤ   u   [2*small data]ij   u   [small data]u   [digest_size data]i
   u   [tiny data](   u   _md5u   _sha(   u   sysu   timeu   hashlibu   creatorFuncu   test_scaled_msgu   test_createu	   test_zerou   argvu   hNameu   execu   printu   lenu   _hashlibu   getattru   hasattru
   ValueErroru   digest_size(    (    (    u.   /mit/python/lib/python3.0/test/time_hashlib.pyu   <module>   sZ   				
#,#)





	