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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/finley/test/python/run_escriptOnFinley.py revision 1044 by gross, Mon Mar 19 07:29:31 2007 UTC branches/domexper/dudley/test/python/run_escriptOnDudley.py revision 3087 by jfenwick, Fri Aug 6 05:25:59 2010 UTC
# Line 1  Line 1 
 # $Id:$  
1    
2  __copyright__="""  Copyright (c) 2006 by ACcESS MNRF  ########################################################
3                      http://www.access.edu.au  #
4                  Primary Business: Queensland, Australia"""  # 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  __license__="""Licensed under the Open Software License version 3.0
19               http://www.opensource.org/licenses/osl-3.0.php"""  http://www.opensource.org/licenses/osl-3.0.php"""
20    __url__="https://launchpad.net/escript-finley"
21    
22  import unittest  import unittest
23  import tempfile  import tempfile
24    
25  from esys.escript import *  from esys.escript import *
26  from esys.finley import Rectangle  from esys.dudley import Rectangle
27  import sys  import sys
28  import os  import os
29  from test_objects import Test_Dump as Test_Dump  from test_objects import Test_Dump, Test_SetDataPointValue, Test_saveCSV, Test_TableInterpolation
30  from test_objects import Test_Domain as Test_Domain  from test_objects import Test_Domain, Test_GlobalMinMax, Test_Lazy
31    
32    from test_shared import Test_Shared
33    
34  try:  try:
35       FINLEY_WORKDIR=os.environ['FINLEY_WORKDIR']       DUDLEY_WORKDIR=os.environ['DUDLEY_WORKDIR']
36  except KeyError:  except KeyError:
37       FINLEY_WORKDIR='.'       DUDLEY_WORKDIR='.'
   
38    
39  NE=4 # number elements, must be even  NE=4 # number elements, must be even
40  class Test_DomainOnFinley(Test_Domain):  
41    class Test_SharedOnDudley(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_DomainOnDudley(Test_Domain):
50     def setUp(self):     def setUp(self):
51           self.boundary_tag_list = [1, 2, 10, 20]
52         self.domain =Rectangle(NE,NE+1,2)         self.domain =Rectangle(NE,NE+1,2)
53     def tearDown(self):     def tearDown(self):
54         del self.domain         del self.domain
55  class Test_DumpOnFinley(Test_Dump):         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_DataOpsOnDudley(Test_Dump, Test_SetDataPointValue, Test_GlobalMinMax, Test_Lazy):
107     def setUp(self):     def setUp(self):
108         self.domain =Rectangle(NE,NE+1,2)         self.domain =Rectangle(NE,NE+1,2)
109         self.domain_with_different_number_of_samples =Rectangle(2*NE,NE+1,2)         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)         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(1,(NE+1)*NE,2)         self.domain_with_different_sample_ordering =Rectangle(NE,NE+1,2, optimize=True)
112         self.filebase=FINLEY_WORKDIR         self.filename_base=DUDLEY_WORKDIR
113           self.mainfs=Function(self.domain)
114           self.otherfs=Solution(self.domain)
115    
116     def tearDown(self):     def tearDown(self):
117         del self.domain         del self.domain
118         del self.domain_with_different_number_of_samples         del self.domain_with_different_number_of_samples
119         del self.domain_with_different_number_of_data_points_per_sample         del self.domain_with_different_number_of_data_points_per_sample
120         del self.domain_with_different_sample_ordering         del self.domain_with_different_sample_ordering
121           del self.mainfs
122           del self.otherfs
123          
124    
125    
126    class Test_TableInterpolationOnDudley(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_CSVOnDudley(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__':  if __name__ == '__main__':
191     suite = unittest.TestSuite()     suite = unittest.TestSuite()
192     suite.addTest(unittest.makeSuite(Test_DumpOnFinley))     suite.addTest(unittest.makeSuite(Test_SharedOnDudley))
193     suite.addTest(unittest.makeSuite(Test_DomainOnFinley))     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     s=unittest.TextTestRunner(verbosity=2).run(suite)     s=unittest.TextTestRunner(verbosity=2).run(suite)
198     if s.wasSuccessful():     if not s.wasSuccessful(): sys.exit(1)
199       sys.exit(0)  
    else:  
      sys.exit(1)  
     

Legend:
Removed from v.1044  
changed lines
  Added in v.3087

  ViewVC Help
Powered by ViewVC 1.1.26