File: TimingTests.py.old

package info (click to toggle)
python-escript 5.6-10
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 144,304 kB
  • sloc: python: 592,074; cpp: 136,909; ansic: 18,675; javascript: 9,411; xml: 3,384; sh: 738; makefile: 207
file content (131 lines) | stat: -rw-r--r-- 2,939 bytes parent folder | download | duplicates (4)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131

########################################################
#
# Copyright (c) 2003-2010 by The University of Queensland
# Earth Systems Science Computational Center (ESSCC)
# http://www.uq.edu.au/esscc
#
# Primary Business: Queensland, Australia
# Licensed under the Apache License, version 2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
########################################################

__copyright__="""Copyright (c) 2003-2010 by The University of Queensland
Earth Systems Science Computational Center (ESSCC)
http://www.uq.edu.au/esscc
Primary Business: Queensland, Australia"""
__license__="""Licensed under the Apache License, version 2.0
http://www.apache.org/licenses/LICENSE-2.0"""
__url__="https://launchpad.net/escript-finley"

"""
Miscellaneous escript/Data timing tests.
"""

import sys
import os
import time

from esys.escript import *
from esys import bruce

#
# ================== data values to test with =========================

arglist = [ \
3.0, \
[3.0,4.0], \
[[1.0,2.0],[3.0,4.0]], \
[[[15.0,8.0],[12.0,8.0]],[[-9.0,9.0],[13.0,8.0]]], \
[[[[14.0,7.0],[11.0,8.5]],[[-970,9.2],[18.0,8.0]]],[[[-4.4,7.0],[93.0,8.0]],[[-1.0,9.4],[12.0,9.0]]]] \
]

testlist = [
"_trace           ",
"_maxval          ",
"_minval          ",
"_wherePositive   ",
"_whereNegative   ",
"_whereNonNegative",
"_whereNonPositive",
"_whereZero       ",
"_whereNonZero    ",
"_sin             ",
"_cos             ",
"_tan             ",
"_asin            ",
"_acos            ",
"_atan            ",
"_sinh            ",
"_cosh            ",
"_tanh            ",
"_asinh           ",
"_acosh           ",
"_atanh           ",
"_exp             ",
"_sqrt            ",
"_log10           ",
"_log             ",
"_sign            ",
"_Lsup            ",
"_sup             ",
"_inf             "
]

#
# ================== method definitions =========================

def prepareArg(val,ex,wh):
    if ex=="Expanded":
        exx=True
    else:
        exx=False
    out=Data(val,what=wh,expand=exx)
    if ex=="Tagged":
        out.tag()
    return out

def getStartTime():
    return time.clock()

def calcElapsedTime(starttime):
    stoptime = time.clock()
    elapsed = stoptime - starttime
    print("\t\t", elapsed)

def runTest(arg,test):
    print("\t\t", test, end=' ')
    test_name = test.rstrip()
    result = arg.__getattribute__(test_name)()
    del result

#
# ===================== main ==============================

msh=bruce.Rectangle(1000,1000)

for wh in [Function(msh),ContinuousFunction(msh)]:

  print("\n", wh, ":")

  for ex in ["Constant", "Tagged", "Expanded"]:

    for a in arglist:

      arg=prepareArg(a,ex,wh)

      print("\n\t", ex, "Rank", arg.getRank(), "==>")
      print("\n\t\tFunction\t\tElapsed time")
      print("\t\t--------\t\t------------")

      for test in testlist:

        starttime = getStartTime()

        runTest(arg,test)

        calcElapsedTime(starttime)

sys.exit(0)
# end