Package lepl :: Package support :: Package _test :: Module timer
[hide private]
[frames] | no frames]

Source Code for Module lepl.support._test.timer

 1   
 2  # The contents of this file are subject to the Mozilla Public License 
 3  # (MPL) Version 1.1 (the "License"); you may not use this file except 
 4  # in compliance with the License. You may obtain a copy of the License 
 5  # at http://www.mozilla.org/MPL/ 
 6  # 
 7  # Software distributed under the License is distributed on an "AS IS" 
 8  # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 
 9  # the License for the specific language governing rights and 
10  # limitations under the License. 
11  # 
12  # The Original Code is LEPL (http://www.acooke.org/lepl) 
13  # The Initial Developer of the Original Code is Andrew Cooke. 
14  # Portions created by the Initial Developer are Copyright (C) 2009-2010 
15  # Andrew Cooke (andrew@acooke.org). All Rights Reserved. 
16  # 
17  # Alternatively, the contents of this file may be used under the terms 
18  # of the LGPL license (the GNU Lesser General Public License, 
19  # http://www.gnu.org/licenses/lgpl.html), in which case the provisions 
20  # of the LGPL License are applicable instead of those above. 
21  # 
22  # If you wish to allow use of your version of this file only under the 
23  # terms of the LGPL License and not to allow others to use your version 
24  # of this file under the MPL, indicate your decision by deleting the 
25  # provisions above and replace them with the notice and other provisions 
26  # required by the LGPL License.  If you do not delete the provisions 
27  # above, a recipient may use your version of this file under either the 
28  # MPL or the LGPL License. 
29   
30  ''' 
31  Tests for the lepl.support.timer module. 
32  ''' 
33   
34  from unittest import TestCase 
35   
36  from lepl import * 
37  from lepl.support.lib import StringIO 
38   
39   
40 -class TimerTest(TestCase):
41
42 - def test_luca(self):
43 ''' 44 See mailing list. 45 ''' 46 integer = Token(Integer()) >> int 47 uletter = Token(Upper()) 48 real = Token(Real()) >> float 49 data_line = Line(integer & uletter & real[6]) 50 table = data_line[1:] 51 52 source = '''1 G 0.0 0.0 0.0 0.0 0.0 0.0 53 2 G 0.0 0.0 0.0 0.0 0.0 0.0 54 3 G 0.0 0.0 0.0 0.0 0.0 0.0 55 4 G 0.0 0.0 0.0 0.0 0.0 0.0 56 5 G 0.0 0.0 0.0 0.0 0.0 0.0 57 6 G 0.0 0.0 0.0 0.0 0.0 0.0 58 7 G 0.0 0.0 0.0 0.0 0.0 0.0 59 8 G 0.0 0.0 0.0 0.0 0.0 0.0 60 9 G 0.0 0.0 -9.856000E-05 -1.444699E-17 1.944000E-03 0.0 61 10 G 0.0 0.0 -9.856000E-05 -1.427843E-17 1.944000E-03 0.0 62 11 G 0.0 0.0 -1.085216E-02 -2.749537E-16 1.874400E-02 0.0 63 12 G 0.0 0.0 -1.085216E-02 -2.748317E-16 1.874400E-02 0.0 64 13 G 0.0 0.0 -3.600576E-02 -6.652665E-16 3.074400E-02 0.0 65 14 G 0.0 0.0 -3.600576E-02 -6.717988E-16 3.074400E-02 0.0 66 15 G 0.0 0.0 -7.075936E-02 -8.592844E-16 3.794400E-02 0.0 67 16 G 0.0 0.0 -7.075936E-02 -8.537008E-16 3.794400E-02 0.0 68 17 G 0.0 0.0 -1.103130E-01 -9.445027E-16 4.034400E-02 0.0 69 18 G 0.0 0.0 -1.103130E-01 -9.538811E-16 4.034400E-02 0.0 70 100 G 0.0 0.0 0.0 0.0 0.0 0.0 71 200 G 0.0 0.0 0.0 0.0 0.0 0.0 72 ''' 73 74 out = StringIO() 75 print_timing(source, 76 {'Real()': table.clone().config.lines().matcher, 77 'Real() no memoize': table.clone().config.lines().no_memoize().matcher}, 78 count_compile=1, out=out) 79 table = out.getvalue() 80 print(table) 81 assert 'Timing Results' in table, table
82