1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
41
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