/[escript]/branches/symbolic_from_3470/dudley/test/python/run_escriptOnDudley.py
ViewVC logotype

Contents of /branches/symbolic_from_3470/dudley/test/python/run_escriptOnDudley.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3085 - (show annotations)
Thu Aug 5 00:44:32 2010 UTC (8 years, 10 months ago) by jfenwick
Original Path: branches/domexper/dudley/test/python/run_escriptOnDudley.py
File MIME type: text/x-python
File size: 8032 byte(s)
Unit tests working again

1
2 ########################################################
3 #
4 # Copyright (c) 2003-2010 by University of Queensland
5 # Earth Systems Science Computational Center (ESSCC)
6 # http://www.uq.edu.au/esscc
7 #
8 # Primary Business: Queensland, Australia
9 # Licensed under the Open Software License version 3.0
10 # http://www.opensource.org/licenses/osl-3.0.php
11 #
12 ########################################################
13
14 __copyright__="""Copyright (c) 2003-2010 by University of Queensland
15 Earth Systems Science Computational Center (ESSCC)
16 http://www.uq.edu.au/esscc
17 Primary Business: Queensland, Australia"""
18 __license__="""Licensed under the Open Software License version 3.0
19 http://www.opensource.org/licenses/osl-3.0.php"""
20 __url__="https://launchpad.net/escript-finley"
21
22 import unittest
23 import tempfile
24
25 from esys.escript import *
26 from esys.dudley import Rectangle
27 import sys
28 import os
29 from test_objects import Test_Dump, Test_SetDataPointValue, Test_saveCSV, Test_TableInterpolation
30 from test_objects import Test_Domain, Test_GlobalMinMax, Test_Lazy
31
32 from test_shared import Test_Shared
33
34 try:
35 FINLEY_WORKDIR=os.environ['FINLEY_WORKDIR']
36 except KeyError:
37 FINLEY_WORKDIR='.'
38
39 NE=4 # number elements, must be even
40
41 class Test_SharedOnFinley(Test_Shared):
42 def setUp(self):
43 self.domain=Rectangle(NE,NE)
44 self.tol=0.001
45 def tearDown(self):
46 del self.domain
47 del self.tol
48
49 class Test_DomainOnFinley(Test_Domain):
50 def setUp(self):
51 self.boundary_tag_list = [1, 2, 10, 20]
52 self.domain =Rectangle(NE,NE+1,2)
53 def tearDown(self):
54 del self.domain
55 del self.boundary_tag_list
56
57 def test_tagsContinuousFunction(self):
58 ref_tags=[0]
59 tags=ContinuousFunction(self.domain).getListOfTags()
60 self.failUnless(len(tags)==len(ref_tags), "tags list has wrong length.")
61 for i in ref_tags: self.failUnless(i in tags,"tag %s is missing."%i)
62
63 def test_tagsFunction(self):
64 ref_tags=[0]
65 tags=Function(self.domain).getListOfTags()
66 self.failUnless(len(tags)==len(ref_tags), "tags list has wrong length.")
67 for i in ref_tags: self.failUnless(i in tags,"tag %s is missing."%i)
68 def test_tagsReducedFunction(self):
69 ref_tags=[0]
70 tags=ReducedFunction(self.domain).getListOfTags()
71 self.failUnless(len(tags)==len(ref_tags), "tags list has wrong length.")
72 for i in ref_tags: self.failUnless(i in tags,"tag %s is missing."%i)
73 def test_tagsFunctionOnBoundary(self):
74 ref_tags=[1, 2, 10, 20]
75 tags=FunctionOnBoundary(self.domain).getListOfTags()
76 # For an MPI-distributed domain some tags may be missing
77 if getMPISizeWorld() == 1: self.failUnless(len(tags)==len(ref_tags), "tags list has wrong length.")
78 for i in tags: self.failUnless(i in ref_tags,"tag %s is missing."%i)
79 def test_tagsReducedFunctionOnBoundary(self):
80 ref_tags=[1, 2, 10, 20]
81 tags=ReducedFunctionOnBoundary(self.domain).getListOfTags()
82 # For an MPI-distributed domain some tags may be missing
83 if getMPISizeWorld() == 1: self.failUnless(len(tags)==len(ref_tags), "tags list has wrong length.")
84 for i in tags: self.failUnless(i in ref_tags,"tag %s is missing."%i)
85 def test_tagsFunctionOnContactOne(self):
86 ref_tags=[]
87 tags=FunctionOnContactOne(self.domain).getListOfTags()
88 self.failUnless(len(tags)==len(ref_tags), "tags list has wrong length.")
89 for i in ref_tags: self.failUnless(i in tags,"tag %s is missing."%i)
90 def test_tagsFunctionOnContactZero(self):
91 ref_tags=[]
92 tags=FunctionOnContactZero(self.domain).getListOfTags()
93 self.failUnless(len(tags)==len(ref_tags), "tags list has wrong length.")
94 for i in ref_tags: self.failUnless(i in tags,"tag %s is missing."%i)
95 def test_tagsReducedFunctionOnContactOne(self):
96 ref_tags=[]
97 tags=ReducedFunctionOnContactOne(self.domain).getListOfTags()
98 self.failUnless(len(tags)==len(ref_tags), "tags list has wrong length.")
99 for i in ref_tags: self.failUnless(i in tags,"tag %s is missing."%i)
100 def test_tagsReducedFunctionOnContactZero(self):
101 ref_tags=[]
102 tags=ReducedFunctionOnContactZero(self.domain).getListOfTags()
103 self.failUnless(len(tags)==len(ref_tags), "tags list has wrong length.")
104 for i in ref_tags: self.failUnless(i in tags,"tag %s is missing."%i)
105
106 class Test_DataOpsOnFinley(Test_Dump, Test_SetDataPointValue, Test_GlobalMinMax, Test_Lazy):
107 def setUp(self):
108 self.domain =Rectangle(NE,NE+1,2)
109 self.domain_with_different_number_of_samples =Rectangle(2*NE,NE+1,2)
110 self.domain_with_different_number_of_data_points_per_sample =Rectangle(2*NE,NE+1,2,integrationOrder=2)
111 self.domain_with_different_sample_ordering =Rectangle(NE,NE+1,2, optimize=True)
112 self.filename_base=FINLEY_WORKDIR
113 self.mainfs=Function(self.domain)
114 self.otherfs=Solution(self.domain)
115
116 def tearDown(self):
117 del self.domain
118 del self.domain_with_different_number_of_samples
119 del self.domain_with_different_number_of_data_points_per_sample
120 del self.domain_with_different_sample_ordering
121 del self.mainfs
122 del self.otherfs
123
124
125
126 class Test_TableInterpolationOnFinley(Test_TableInterpolation):
127 def setUp(self):
128 self.domain=Rectangle(4,4)
129 self.functionspaces=[ContinuousFunction(self.domain), Function(self.domain), ReducedFunction(self.domain),
130 FunctionOnBoundary(self.domain), ReducedFunctionOnBoundary(self.domain),
131 FunctionOnContactZero(self.domain), FunctionOnContactOne(self.domain),
132 ReducedFunctionOnContactZero(self.domain), ReducedFunctionOnContactOne(self.domain)]
133 #We aren't testing DiracDeltaFunction
134 self.xn=3 # number of grids on x axis
135 self.yn=3 # number of grids on y axis
136
137 def tearDown(self):
138 del self.domain
139 del self.functionspaces
140
141
142
143
144 class Test_CSVOnFinley(Test_saveCSV):
145 def setUp(self):
146 self.domain =Rectangle(NE,NE+1,2)
147 self.linecount1=20 #see test_save1 for the meaning of these params
148 self.linecount2=69
149
150 def tearDown(self):
151 del self.domain
152
153 #This test checks to see that all FunctionSpaces can be saved
154 def test_singleFS(self):
155 fname="test_singlefs.csv"
156 fss=[ContinuousFunction(self.domain), Function(self.domain), ReducedFunction(self.domain),
157 FunctionOnBoundary(self.domain), ReducedFunctionOnBoundary(self.domain),
158 FunctionOnContactZero(self.domain), FunctionOnContactOne(self.domain),
159 ReducedFunctionOnContactZero(self.domain), ReducedFunctionOnContactOne(self.domain),
160 DiracDeltaFunction(self.domain)]
161 for f in fss:
162 d=Data(7,f)
163 print "Testing "+str(f)+"\n"
164 saveDataCSV(fname, D=d)
165
166 def test_multiFS(self):
167 fname="test_multifs.csv"
168 sol=Data(8,Solution(self.domain))
169 ctsfn=Data(9,ContinuousFunction(self.domain))
170 #test line 0
171 dirac=Data(-1,DiracDeltaFunction(self.domain))
172 saveDataCSV(fname, A=sol, B=ctsfn, C=dirac)
173 #test line 1
174 fun=Data(5,Function(self.domain))
175 rfun=Data(3,ReducedFunction(self.domain))
176 saveDataCSV(fname, A=sol,B=ctsfn,C=fun, D=rfun)
177 #test line 2
178 bound=Data(1,FunctionOnBoundary(self.domain))
179 rbound=Data(3,ReducedFunctionOnBoundary(self.domain))
180 saveDataCSV(fname,A=sol,B=ctsfn,C=bound, D=rbound)
181 #test line 3
182 conzz=Data(7,FunctionOnContactZero(self.domain))
183 rconz=Data(8,ReducedFunctionOnContactZero(self.domain))
184 saveDataCSV(fname,A=sol,B=ctsfn, C=conzz, D=rconz)
185 #check for cross line exceptions
186 self.failUnlessRaises(RuntimeError, saveDataCSV, fname, A=dirac, B=rfun)
187 self.failUnlessRaises(RuntimeError, saveDataCSV, fname, A=bound, B=conzz)
188
189
190 if __name__ == '__main__':
191 suite = unittest.TestSuite()
192 suite.addTest(unittest.makeSuite(Test_SharedOnFinley))
193 suite.addTest(unittest.makeSuite(Test_DataOpsOnFinley))
194 suite.addTest(unittest.makeSuite(Test_DomainOnFinley))
195 suite.addTest(unittest.makeSuite(Test_TableInterpolationOnFinley))
196 suite.addTest(unittest.makeSuite(Test_CSVOnFinley))
197 s=unittest.TextTestRunner(verbosity=2).run(suite)
198 if not s.wasSuccessful(): sys.exit(1)
199

Properties

Name Value
svn:mergeinfo /branches/lapack2681/finley/test/python/run_escriptOnFinley.py:2682-2741 /branches/restext/finley/test/python/run_escriptOnFinley.py:2610-2624 /branches/stage3.0/finley/test/python/run_escriptOnFinley.py:2569-2590 /release/3.0/finley/test/python/run_escriptOnFinley.py:2591-2601

  ViewVC Help
Powered by ViewVC 1.1.26