Ñò
‘à"Ic           @   sï   d  Z  d d k Z d d k Z d d k Z d d k Z d d k l Z d d k l Z d d k Z d d k	 l
 Z
 l Z d e i f d „  ƒ  YZ d „  Z d	 „  Z d
 „  Z d e i d <d e i d <d e i d <e d j o e ƒ  n d S(   s"   Test suite for the profile module.iÿÿÿÿN(   t   StringIO(   t   run_unittest(   t   testfunct   timert   ProfileTestc           B   s>   e  Z e i Z d  d d g Z h  Z e d „  ƒ Z d „  Z	 RS(   t   print_statst   print_callerst   print_calleesc         C   sº   g  } |  i  t d ƒ } t ƒ  } | i d t ƒ  t ƒ  ƒ | i t ƒ  | ƒ xe |  i D]Z } t ƒ  } t i	 | d | ƒ} | i
 ƒ  i d ƒ t | | ƒ ƒ  | i | i ƒ  ƒ qX W| S(   Ngü©ñÒMbP?s
   testfunc()t   streamt   stdname(   t   profilerclassR   t   runctxt   globalst   localst   appendt   methodnamesR    t   pstatst   Statst
   strip_dirst
   sort_statst   getattrt   getvalue(   t   clst   resultst   proft   start_timert
   methodnamet   st   stats(    (    s.   /mit/python/lib/python2.6/test/test_profile.pyt   do_profiling   s    	
 	c         C   sv   |  i  ƒ  } |  i | d d ƒ xO t |  i ƒ D]> \ } } |  i | | d |  i | d | |  i i f ƒ q0 Wd  S(   Ni    iè  i   s/   Stats.%s output for %s doesn't fit expectation!(   R   t   assertEqualt	   enumerateR   t   expected_outputR
   t   __name__(   t   selfR   t   it   method(    (    s.   /mit/python/lib/python2.6/test/test_profile.pyt   test_cprofile#   s     (
   R!   t
   __module__t   profilet   ProfileR
   R   R    t   classmethodR   R%   (    (    (    s.   /mit/python/lib/python2.6/test/test_profile.pyR      s
   	c   
      C   s  |  i  d ƒ }  d |  GH| i ƒ  } g  } t |  d ƒ i i ƒ  } zA | ~ } x1 | D]) } | i | ƒ | d  d j o PqW qW WWd  QXt |  d ƒ i i ƒ  } zl | ~ } | i | ƒ xB t | i ƒ D]1 \ } }	 | i	 d | i
 |	 | | d f ƒ qÍ W| i	 d	 ƒ Wd  QXd  S(
   Nt   cos   Regenerating %s...t   ri   s   #--cutt   ws$   %s.expected_output[%r] = """\
%s"""
i   s'   
if __name__ == "__main__":
    main()
(   t   rstripR   t   opent   __exit__t	   __enter__R   t
   writelinesR   R   t   writeR!   (
   t   filenameR   R   t   newfilet   _[1]t   ft   linet   _[2]R#   R$   (    (    s.   /mit/python/lib/python2.6/test/test_profile.pyt   regenerate_expected_output,   s"    	& & 	 c           C   s   t  t ƒ d  S(   N(   R   R   (    (    (    s.   /mit/python/lib/python2.6/test/test_profile.pyt	   test_main@   s    c           C   s,   d t  i j o t ƒ  n t t t ƒ d  S(   Ns   -r(   t   syst   argvR:   R9   t   __file__R   (    (    (    s.   /mit/python/lib/python2.6/test/test_profile.pyt   mainC   s    s"           127 function calls (107 primitive calls) in 999.749 CPU seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        4   -0.004   -0.001   -0.004   -0.001 :0(append)
        4   -0.004   -0.001   -0.004   -0.001 :0(exc_info)
       12   -0.024   -0.002   11.964    0.997 :0(hasattr)
        8   -0.008   -0.001   -0.008   -0.001 :0(range)
        1    0.000    0.000    0.000    0.000 :0(setprofile)
        1   -0.002   -0.002  999.751  999.751 <string>:1(<module>)
        0    0.000             0.000          profile:0(profiler)
        1   -0.002   -0.002  999.749  999.749 profile:0(testfunc())
       28   27.972    0.999   27.972    0.999 profilee.py:110(__getattr__)
        1  269.996  269.996  999.753  999.753 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.814  299.907 profilee.py:55(helper)
        4  115.984   28.996  119.964   29.991 profilee.py:73(helper1)
        2   -0.006   -0.003  139.942   69.971 profilee.py:84(helper2_indirect)
        8  311.976   38.997  399.896   49.987 profilee.py:88(helper2)
        8   63.968    7.996   79.944    9.993 profilee.py:98(subhelper)


R   s{     Ordered by: standard name

Function                          was called by...
: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.896
:0(range)                         <- profilee.py:98(subhelper)(8)   79.944
:0(setprofile)                    <- profile:0(testfunc())(1)  999.749
<string>:1(<module>)              <- profile:0(testfunc())(1)  999.749
profile:0(profiler)               <-
profile:0(testfunc())             <- profile:0(profiler)(1)    0.000
profilee.py:110(__getattr__)      <- :0(hasattr)(12)   11.964
                                     profilee.py:98(subhelper)(16)   79.944
profilee.py:25(testfunc)          <- <string>:1(<module>)(1)  999.751
profilee.py:35(factorial)         <- profilee.py:25(testfunc)(1)  999.753
                                     profilee.py:35(factorial)(20)  169.917
                                     profilee.py:84(helper2_indirect)(2)  139.942
profilee.py:48(mul)               <- profilee.py:35(factorial)(20)  169.917
profilee.py:55(helper)            <- profilee.py:25(testfunc)(2)  999.753
profilee.py:73(helper1)           <- profilee.py:55(helper)(4)  599.814
profilee.py:84(helper2_indirect)  <- profilee.py:55(helper)(2)  599.814
profilee.py:88(helper2)           <- profilee.py:55(helper)(6)  599.814
                                     profilee.py:84(helper2_indirect)(2)  139.942
profilee.py:98(subhelper)         <- profilee.py:88(helper2)(8)  399.896


R   sö     Ordered by: standard name

Function                          called...
:0(append)                        ->
:0(exc_info)                      ->
:0(hasattr)                       -> profilee.py:110(__getattr__)(12)   27.972
:0(range)                         ->
:0(setprofile)                    ->
<string>:1(<module>)              -> profilee.py:25(testfunc)(1)  999.753
profile:0(profiler)               -> profile:0(testfunc())(1)  999.749
profile:0(testfunc())             -> :0(setprofile)(1)    0.000
                                     <string>:1(<module>)(1)  999.751
profilee.py:110(__getattr__)      ->
profilee.py:25(testfunc)          -> profilee.py:35(factorial)(1)  169.917
                                     profilee.py:55(helper)(2)  599.814
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.942
                                     profilee.py:88(helper2)(6)  399.896
profilee.py:73(helper1)           -> :0(append)(4)   -0.004
                                     :0(exc_info)(4)   -0.004
                                     :0(hasattr)(4)   11.964
profilee.py:84(helper2_indirect)  -> profilee.py:35(factorial)(2)  169.917
                                     profilee.py:88(helper2)(2)  399.896
profilee.py:88(helper2)           -> :0(hasattr)(8)   11.964
                                     profilee.py:98(subhelper)(8)   79.944
profilee.py:98(subhelper)         -> :0(range)(8)   -0.008
                                     profilee.py:110(__getattr__)(16)   27.972


R   t   __main__(   t   __doc__t   osR;   R   t   unittestR    t   test.test_supportR   R'   t   test.profileeR   R   t   TestCaseR   R9   R:   R>   R    R!   (    (    (    s.   /mit/python/lib/python2.6/test/test_profile.pyt   <module>   s"   			""