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

Annotation of /branches/domexper/dudley/test/python/run_escriptOnDudley.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3087 - (hide annotations)
Fri Aug 6 05:25:59 2010 UTC (8 years, 11 months ago) by jfenwick
File MIME type: text/x-python
File size: 8032 byte(s)
Contiuneswq
1 ksteube 1809
2     ########################################################
3 ksteube 1312 #
4 jfenwick 2881 # Copyright (c) 2003-2010 by University of Queensland
5 ksteube 1809 # Earth Systems Science Computational Center (ESSCC)
6     # http://www.uq.edu.au/esscc
7 ksteube 1312 #
8 ksteube 1809 # 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 ksteube 1312 #
12 ksteube 1809 ########################################################
13 gross 983
14 jfenwick 2881 __copyright__="""Copyright (c) 2003-2010 by University of Queensland
15 ksteube 1809 Earth Systems Science Computational Center (ESSCC)
16     http://www.uq.edu.au/esscc
17     Primary Business: Queensland, Australia"""
18 gross 983 __license__="""Licensed under the Open Software License version 3.0
19 ksteube 1809 http://www.opensource.org/licenses/osl-3.0.php"""
20 jfenwick 2344 __url__="https://launchpad.net/escript-finley"
21 ksteube 1809
22 gross 983 import unittest
23     import tempfile
24    
25     from esys.escript import *
26 jfenwick 3085 from esys.dudley import Rectangle
27 gross 983 import sys
28     import os
29 jfenwick 2646 from test_objects import Test_Dump, Test_SetDataPointValue, Test_saveCSV, Test_TableInterpolation
30 jfenwick 2799 from test_objects import Test_Domain, Test_GlobalMinMax, Test_Lazy
31 gross 983
32 jfenwick 2271 from test_shared import Test_Shared
33    
34 gross 983 try:
35 jfenwick 3087 DUDLEY_WORKDIR=os.environ['DUDLEY_WORKDIR']
36 gross 983 except KeyError:
37 jfenwick 3087 DUDLEY_WORKDIR='.'
38 gross 983
39     NE=4 # number elements, must be even
40 jfenwick 2271
41 jfenwick 3087 class Test_SharedOnDudley(Test_Shared):
42 jfenwick 2271 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 jfenwick 3087 class Test_DomainOnDudley(Test_Domain):
50 gross 1044 def setUp(self):
51 gross 2425 self.boundary_tag_list = [1, 2, 10, 20]
52 gross 1044 self.domain =Rectangle(NE,NE+1,2)
53     def tearDown(self):
54     del self.domain
55 gross 2425 del self.boundary_tag_list
56 gross 1716
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 ksteube 1829 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 gross 1716 def test_tagsReducedFunctionOnBoundary(self):
80 ksteube 1829 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 gross 1716 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 jfenwick 3087 class Test_DataOpsOnDudley(Test_Dump, Test_SetDataPointValue, Test_GlobalMinMax, Test_Lazy):
107 gross 983 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 gross 1856 self.domain_with_different_sample_ordering =Rectangle(NE,NE+1,2, optimize=True)
112 jfenwick 3087 self.filename_base=DUDLEY_WORKDIR
113 jfenwick 2799 self.mainfs=Function(self.domain)
114     self.otherfs=Solution(self.domain)
115 gross 983
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 jfenwick 2799 del self.mainfs
122     del self.otherfs
123 jfenwick 2646
124 gross 983
125 jfenwick 2628
126 jfenwick 3087 class Test_TableInterpolationOnDudley(Test_TableInterpolation):
127 jfenwick 2646 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 jfenwick 2628
137 jfenwick 2646 def tearDown(self):
138     del self.domain
139     del self.functionspaces
140    
141 jfenwick 2628
142    
143 jfenwick 2644
144 jfenwick 3087 class Test_CSVOnDudley(Test_saveCSV):
145 jfenwick 2644 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 jfenwick 2646 ReducedFunctionOnContactZero(self.domain), ReducedFunctionOnContactOne(self.domain),
160     DiracDeltaFunction(self.domain)]
161 jfenwick 2644 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 gross 983 if __name__ == '__main__':
191     suite = unittest.TestSuite()
192 jfenwick 3087 suite.addTest(unittest.makeSuite(Test_SharedOnDudley))
193     suite.addTest(unittest.makeSuite(Test_DataOpsOnDudley))
194     suite.addTest(unittest.makeSuite(Test_DomainOnDudley))
195     suite.addTest(unittest.makeSuite(Test_TableInterpolationOnDudley))
196     suite.addTest(unittest.makeSuite(Test_CSVOnDudley))
197 gross 983 s=unittest.TextTestRunner(verbosity=2).run(suite)
198 gross 1376 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