;
Ìâ"Ic               @   sù   d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z d d l m Z d d l	 m
 Z
 d d l Z d d l m Z m Z Gd „  d e j ƒ Z d	 „  Z d
 „  Z d „  Z i  Z d e d <d e d <d e d <e d k o e ƒ  n d S(   u"   Test suite for the profile module.i    N(   u   unified_diff(   u   StringIO(   u   run_unittest(   u   testfuncu   timerc             B   sG   |  Ee  Z e j Z d  d d g Z d „  Z e d „  ƒ Z d „  Z	 d S(   u   print_statsu   print_callersu   print_calleesc             C   s   t  S(   N(   u   _ProfileOutput(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_profile.pyu   get_expected_output   s    c                sþ   g  } |  j  t d ƒ } t ƒ  } | j d t ƒ  t ƒ  ƒ | j t ƒ  | ƒ x© |  j D]ž } t ƒ  } t j	 | d | ƒ} | j
 ƒ  j d ƒ t | | ƒ ƒ  | j ƒ  j ƒ  } t j j d d ƒ d ‰  ‡  f d †  | Dƒ } | j d j | ƒ ƒ qX W| S(	   Ngü©ñÒMbP?u
   testfunc()u   streamu   stdnameu   .i   c                s2   g  } |  ]$ } ˆ  | k o | | j  ƒ  q
 q
 S(    (   u   rstrip(   u   .0u   _[1]u   line(   u   mod_name(    u.   /mit/python/lib/python3.0/test/test_profile.pyu
   <listcomp>(   s    u   
(   u   profilerclassu   timeru   runctxu   globalsu   localsu   appendu   methodnamesu   StringIOu   pstatsu   Statsu
   strip_dirsu
   sort_statsu   getattru   getvalueu
   splitlinesu   testfuncu
   __module__u   rsplitu   join(   u   clsu   resultsu   profu   start_timeru
   methodnameu   su   statsu   output(    (   u   mod_nameu.   /mit/python/lib/python3.0/test/test_profile.pyu   do_profiling   s     	
 	c             C   sÁ   |  j  ƒ  } |  j ƒ  } |  j | d d ƒ xŽ t |  j ƒ D]} \ } } | | d | | k oX t d | |  j j f ƒ t d j t	 | | d j
 d ƒ | | j
 d ƒ ƒ ƒ ƒ q< q< Wd  S(   Ni    iè  i   u/   Stats.%s output for %s doesn't fit expectation!u   
(   u   do_profilingu   get_expected_outputu   assertEqualu	   enumerateu   methodnamesu   printu   profilerclassu   __name__u   joinu   unified_diffu   split(   u   selfu   resultsu   expectedu   iu   method(    (    u.   /mit/python/lib/python3.0/test/test_profile.pyu   test_cprofile,   s     N(
   u   __name__u
   __module__u   profileu   Profileu   profilerclassu   methodnamesu   get_expected_outputu   classmethodu   do_profilingu   test_cprofile(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_profile.pyu   ProfileTest   s
   
		u   ProfileTestc             C   s4  |  j  d ƒ }  t d |  ƒ | j ƒ  } g  } t |  d ƒ j } j ƒ  } z@ | ~ } x0 | D]( } | j | ƒ | j d ƒ o Pq^ q^ WWd  | ~ QXt |  d ƒ j } j ƒ  }	 zs |	 ~	 } | j | ƒ | j	 d ƒ x< t
 | j ƒ D]+ \ }
 } | j	 d | | |
 d f ƒ qè W| j	 d	 ƒ Wd  | ~ QXd  S(
   Nu   cou   Regenerating %s...u   ru   #--cutu   wu   _ProfileOutput = {}
u    _ProfileOutput[%r] = """\
%s"""
i   u'   
if __name__ == "__main__":
    main()
(   u   rstripu   printu   do_profilingu   openu   __exit__u	   __enter__u   appendu
   startswithu
   writelinesu   writeu	   enumerateu   methodnames(   u   filenameu   clsu   resultsu   newfileu   _[2]u   _[1]u   fu   lineu   _[4]u   _[3]u   iu   method(    (    u.   /mit/python/lib/python3.0/test/test_profile.pyu   regenerate_expected_output9   s$    ( ( 	c               C   s   t  t ƒ d  S(   N(   u   run_unittestu   ProfileTest(    (    (    u.   /mit/python/lib/python3.0/test/test_profile.pyu	   test_mainN   s    c               C   s,   d t  j k o t ƒ  n t t t ƒ d  S(   Nu   -r(   u   sysu   argvu	   test_mainu   regenerate_expected_outputu   __file__u   ProfileTest(    (    (    u.   /mit/python/lib/python3.0/test/test_profile.pyu   mainQ   s    uƒ         28   27.972    0.999   27.972    0.999 profilee.py:110(__getattr__)
        1  269.996  269.996  999.769  999.769 profilee.py:25(testfunc)
     23/3  149.937    6.519  169.917   56.639 profilee.py:35(factorial)
       20   19.980    0.999   19.980    0.999 profilee.py:48(mul)
        2   39.986   19.993  599.830  299.915 profilee.py:55(helper)
        4  115.984   28.996  119.964   29.991 profilee.py:73(helper1)
        2   -0.006   -0.003  139.946   69.973 profilee.py:84(helper2_indirect)
        8  311.976   38.997  399.912   49.989 profilee.py:88(helper2)
        8   63.976    7.997   79.960    9.995 profilee.py:98(subhelper)u   print_statsuä  :0(append)                        <- profilee.py:73(helper1)(4)  119.964
:0(exc_info)                      <- profilee.py:73(helper1)(4)  119.964
:0(hasattr)                       <- profilee.py:73(helper1)(4)  119.964
                                     profilee.py:88(helper2)(8)  399.912
profilee.py:110(__getattr__)      <- :0(hasattr)(12)   11.964
                                     profilee.py:98(subhelper)(16)   79.960
profilee.py:25(testfunc)          <- <string>:1(<module>)(1)  999.767
profilee.py:35(factorial)         <- profilee.py:25(testfunc)(1)  999.769
                                     profilee.py:35(factorial)(20)  169.917
                                     profilee.py:84(helper2_indirect)(2)  139.946
profilee.py:48(mul)               <- profilee.py:35(factorial)(20)  169.917
profilee.py:55(helper)            <- profilee.py:25(testfunc)(2)  999.769
profilee.py:73(helper1)           <- profilee.py:55(helper)(4)  599.830
profilee.py:84(helper2_indirect)  <- profilee.py:55(helper)(2)  599.830
profilee.py:88(helper2)           <- profilee.py:55(helper)(6)  599.830
                                     profilee.py:84(helper2_indirect)(2)  139.946
profilee.py:98(subhelper)         <- profilee.py:88(helper2)(8)  399.912u   print_callersu’  :0(hasattr)                       -> profilee.py:110(__getattr__)(12)   27.972
<string>:1(<module>)              -> profilee.py:25(testfunc)(1)  999.769
profilee.py:110(__getattr__)      ->
profilee.py:25(testfunc)          -> profilee.py:35(factorial)(1)  169.917
                                     profilee.py:55(helper)(2)  599.830
profilee.py:35(factorial)         -> profilee.py:35(factorial)(20)  169.917
                                     profilee.py:48(mul)(20)   19.980
profilee.py:48(mul)               ->
profilee.py:55(helper)            -> profilee.py:73(helper1)(4)  119.964
                                     profilee.py:84(helper2_indirect)(2)  139.946
                                     profilee.py:88(helper2)(6)  399.912
profilee.py:73(helper1)           -> :0(append)(4)   -0.004
profilee.py:84(helper2_indirect)  -> profilee.py:35(factorial)(2)  169.917
                                     profilee.py:88(helper2)(2)  399.912
profilee.py:88(helper2)           -> :0(hasattr)(8)   11.964
                                     profilee.py:98(subhelper)(8)   79.960
profilee.py:98(subhelper)         -> profilee.py:110(__getattr__)(16)   27.972u   print_calleesu   __main__(   u   __doc__u   osu   sysu   pstatsu   unittestu   difflibu   unified_diffu   iou   StringIOu   test.supportu   run_unittestu   profileu   test.profileeu   testfuncu   timeru   TestCaseu   ProfileTestu   regenerate_expected_outputu	   test_mainu   mainu   _ProfileOutputu   __name__(    (    (    u.   /mit/python/lib/python3.0/test/test_profile.pyu   <module>   s&   *				



