/[escript]/trunk/escript/test/python/UnaryOps.py
ViewVC logotype

Diff of /trunk/escript/test/python/UnaryOps.py

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

trunk/esys2/escript/test/python/UnaryOps.py revision 108 by jgs, Thu Jan 27 06:21:59 2005 UTC trunk/escript/test/python/UnaryOps.py revision 314 by jgs, Tue Dec 6 00:55:22 2005 UTC
# Line 3  import unittest Line 3  import unittest
3  import os  import os
4    
5  from esys.escript import *  from esys.escript import *
6  from esys import finley  from esys import bruce
7    
8  import numarray  import numarray
9    
# Line 81  def checkResult(text,res,val0,val1,val2, Line 81  def checkResult(text,res,val0,val1,val2,
81       error=Lsup(ref-res)/norm       error=Lsup(ref-res)/norm
82       print "@@ %s, shape %s: error = %e"%(text,ref.getShape(),error)       print "@@ %s, shape %s: error = %e"%(text,ref.getShape(),error)
83       if error>tol:       if error>tol:
        #raise SystemError,"@@ %s at %s: error is too large"%(text,wh)  
84         print "**** %s: error is too large"%(text)         print "**** %s: error is too large"%(text)
85           raise SystemError,"@@ %s at %s: error is too large"%(text,wh)
86           sys.exit(1)
87    
88  def getRank(arg):  def getRank(arg):
89      if isinstance(arg,Data):      if isinstance(arg,Data):
# Line 116  def isScalar(arg): Line 117  def isScalar(arg):
117  # test unary operators:  # test unary operators:
118  #  #
119    
120  msh=finley.Rectangle(20,6,1)  msh=bruce.Rectangle(20,6)
121  for wh in [ContinuousFunction(msh),Function(msh)]:  for wh in [ContinuousFunction(msh),Function(msh)]:
122    
123    print wh    print wh
# Line 138  for wh in [ContinuousFunction(msh),Funct Line 139  for wh in [ContinuousFunction(msh),Funct
139        # + identity:        # + identity:
140        ref=checkResult("+"+ex1, \        ref=checkResult("+"+ex1, \
141                        +arg1, \                        +arg1, \
142                        +arrays1[0], \                        arrays1[0], \
143                        +arrays1[1], \                        arrays1[1], \
144                        +arrays1[2], \                        arrays1[2], \
145                        wh)                        wh)
146    
147        # - negation:        # - negation:
# Line 153  for wh in [ContinuousFunction(msh),Funct Line 154  for wh in [ContinuousFunction(msh),Funct
154    
155        # where positive:        # where positive:
156        ref=checkResult("where positive("+ex1+")", \        ref=checkResult("where positive("+ex1+")", \
157                        (arg1-3).wherePositive(), \                        (arg1-3)._wherePositive(), \
158                        numarray.greater(arrays1[0],3.), \                        numarray.greater(arrays1[0],3.), \
159                        numarray.greater(arrays1[1],3.), \                        numarray.greater(arrays1[1],3.), \
160                        numarray.greater(arrays1[2],3.), \                        numarray.greater(arrays1[2],3.), \
# Line 161  for wh in [ContinuousFunction(msh),Funct Line 162  for wh in [ContinuousFunction(msh),Funct
162    
163        # where negative:        # where negative:
164        ref=checkResult("where negative("+ex1+")", \        ref=checkResult("where negative("+ex1+")", \
165                        (arg1-3).whereNegative(), \                        (arg1-3)._whereNegative(), \
166                        numarray.greater(3.,arrays1[0]), \                        numarray.greater(3.,arrays1[0]), \
167                        numarray.greater(3.,arrays1[1]), \                        numarray.greater(3.,arrays1[1]), \
168                        numarray.greater(3.,arrays1[2]), \                        numarray.greater(3.,arrays1[2]), \
# Line 169  for wh in [ContinuousFunction(msh),Funct Line 170  for wh in [ContinuousFunction(msh),Funct
170    
171        # where non-negative:        # where non-negative:
172        ref=checkResult("where nonnegative("+ex1+")", \        ref=checkResult("where nonnegative("+ex1+")", \
173                        (arg1-3).whereNonNegative(), \                        (arg1-3)._whereNonNegative(), \
174                        numarray.greater_equal(arrays1[0],3.), \                        numarray.greater_equal(arrays1[0],3.), \
175                        numarray.greater_equal(arrays1[1],3.), \                        numarray.greater_equal(arrays1[1],3.), \
176                        numarray.greater_equal(arrays1[2],3.), \                        numarray.greater_equal(arrays1[2],3.), \
# Line 177  for wh in [ContinuousFunction(msh),Funct Line 178  for wh in [ContinuousFunction(msh),Funct
178    
179        # where non-positive:        # where non-positive:
180        ref=checkResult("where nonpositive("+ex1+")", \        ref=checkResult("where nonpositive("+ex1+")", \
181                        (arg1-3).whereNonPositive(), \                        (arg1-3)._whereNonPositive(), \
182                        numarray.greater_equal(3.,arrays1[0]), \                        numarray.greater_equal(3.,arrays1[0]), \
183                        numarray.greater_equal(3.,arrays1[1]), \                        numarray.greater_equal(3.,arrays1[1]), \
184                        numarray.greater_equal(3.,arrays1[2]), \                        numarray.greater_equal(3.,arrays1[2]), \
# Line 185  for wh in [ContinuousFunction(msh),Funct Line 186  for wh in [ContinuousFunction(msh),Funct
186    
187        # where zero:        # where zero:
188        ref=checkResult("where zero("+ex1+")", \        ref=checkResult("where zero("+ex1+")", \
189                        (arg1-3).whereZero(), \                        (arg1-3)._whereZero(), \
190                        numarray.less_equal(numarray.abs(arrays1[0]-3.),EPSILON), \                        numarray.less_equal(numarray.abs(arrays1[0]-3.),0.0), \
191                        numarray.less_equal(numarray.abs(arrays1[1]-3.),EPSILON), \                        numarray.less_equal(numarray.abs(arrays1[1]-3.),0.0), \
192                        numarray.less_equal(numarray.abs(arrays1[2]-3.),EPSILON), \                        numarray.less_equal(numarray.abs(arrays1[2]-3.),0.0), \
193                        wh)                        wh)
194    
195        # where non-zero:        # where non-zero:
196        ref=checkResult("where nonzero("+ex1+")", \        ref=checkResult("where nonzero("+ex1+")", \
197                        (arg1-3).whereNonZero(), \                        (arg1-3)._whereNonZero(), \
198                        numarray.greater(numarray.abs(arrays1[0]-3.),EPSILON), \                        numarray.greater(numarray.abs(arrays1[0]-3.),0.0), \
199                        numarray.greater(numarray.abs(arrays1[1]-3.),EPSILON), \                        numarray.greater(numarray.abs(arrays1[1]-3.),0.0), \
200                        numarray.greater(numarray.abs(arrays1[2]-3.),EPSILON), \                        numarray.greater(numarray.abs(arrays1[2]-3.),0.0), \
201                        wh)                        wh)
202    
203        # exponential function:        # exponential function:
204        ref=checkResult("exp("+ex1+")", \        ref=checkResult("exp("+ex1+")", \
205                        arg1.exp(), \                        arg1._exp(), \
206                        numarray.exp(arrays1[0]), \                        numarray.exp(arrays1[0]), \
207                        numarray.exp(arrays1[1]), \                        numarray.exp(arrays1[1]), \
208                        numarray.exp(arrays1[2]), \                        numarray.exp(arrays1[2]), \
# Line 209  for wh in [ContinuousFunction(msh),Funct Line 210  for wh in [ContinuousFunction(msh),Funct
210    
211        # sqrt        # sqrt
212        #ref=checkResult("sqrt("+ex1+")", \        #ref=checkResult("sqrt("+ex1+")", \
213        #                arg1.abs().sqrt(), \        #                arg1._abs()._sqrt(), \
214        #                numarray.sqrt(numarray.abs(arrays1[0])), \        #                numarray.sqrt(numarray.abs(arrays1[0])), \
215        #                numarray.sqrt(numarray.abs(arrays1[1])), \        #                numarray.sqrt(numarray.abs(arrays1[1])), \
216        #                numarray.sqrt(numarray.abs(arrays1[2])), \        #                numarray.sqrt(numarray.abs(arrays1[2])), \
# Line 217  for wh in [ContinuousFunction(msh),Funct Line 218  for wh in [ContinuousFunction(msh),Funct
218    
219        # sin:        # sin:
220        ref=checkResult("sin("+ex1+")", \        ref=checkResult("sin("+ex1+")", \
221                        arg1.sin(), \                        arg1._sin(), \
222                        numarray.sin(arrays1[0]), \                        numarray.sin(arrays1[0]), \
223                        numarray.sin(arrays1[1]), \                        numarray.sin(arrays1[1]), \
224                        numarray.sin(arrays1[2]), \                        numarray.sin(arrays1[2]), \
# Line 225  for wh in [ContinuousFunction(msh),Funct Line 226  for wh in [ContinuousFunction(msh),Funct
226    
227        # cos:        # cos:
228        ref=checkResult("cos("+ex1+")", \        ref=checkResult("cos("+ex1+")", \
229                        arg1.cos(), \                        arg1._cos(), \
230                        numarray.cos(arrays1[0]), \                        numarray.cos(arrays1[0]), \
231                        numarray.cos(arrays1[1]), \                        numarray.cos(arrays1[1]), \
232                        numarray.cos(arrays1[2]), \                        numarray.cos(arrays1[2]), \
233                        wh)                        wh)
234    
235          # tan:
236          ref=checkResult("tan("+ex1+")", \
237                          arg1._tan(), \
238                          numarray.tan(arrays1[0]), \
239                          numarray.tan(arrays1[1]), \
240                          numarray.tan(arrays1[2]), \
241                          wh)
242    
243          # asin:
244          #ref=checkResult("asin("+ex1+")", \
245          #                arg1.asin(), \
246          #                numarray.asin(arrays1[0]), \
247          #                numarray.asin(arrays1[1]), \
248          #                numarray.asin(arrays1[2]), \
249          #                wh)
250    
251          # acos:
252          #ref=checkResult("acos("+ex1+")", \
253          #                arg1.acos(), \
254          #                numarray.acos(arrays1[0]), \
255          #                numarray.acos(arrays1[1]), \
256          #                numarray.acos(arrays1[2]), \
257          #                wh)
258    
259          # atan:
260          #ref=checkResult("atan("+ex1+")", \
261          #                arg1.atan(), \
262          #                numarray.atan(arrays1[0]), \
263          #                numarray.atan(arrays1[1]), \
264          #                numarray.atan(arrays1[2]), \
265          #                wh)
266    
267          # sinh:
268          ref=checkResult("sinh("+ex1+")", \
269                          arg1._sinh(), \
270                          numarray.sinh(arrays1[0]), \
271                          numarray.sinh(arrays1[1]), \
272                          numarray.sinh(arrays1[2]), \
273                          wh)
274    
275          # cosh:
276          ref=checkResult("cosh("+ex1+")", \
277                          arg1._cosh(), \
278                          numarray.cosh(arrays1[0]), \
279                          numarray.cosh(arrays1[1]), \
280                          numarray.cosh(arrays1[2]), \
281                          wh)
282    
283          # tanh:
284          ref=checkResult("tanh("+ex1+")", \
285                          arg1._tanh(), \
286                          numarray.tanh(arrays1[0]), \
287                          numarray.tanh(arrays1[1]), \
288                          numarray.tanh(arrays1[2]), \
289                          wh)
290    
291          # asinh:
292          #ref=checkResult("asinh("+ex1+")", \
293          #                arg1.asinh(), \
294          #                numarray.asinh(arrays1[0]), \
295          #                numarray.asinh(arrays1[1]), \
296          #                numarray.asinh(arrays1[2]), \
297          #                wh)
298    
299          # acosh:
300          #ref=checkResult("acosh("+ex1+")", \
301          #                arg1.acosh(), \
302          #                numarray.acosh(arrays1[0]), \
303          #                numarray.acosh(arrays1[1]), \
304          #                numarray.acosh(arrays1[2]), \
305          #                wh)
306    
307          # atanh:
308          #ref=checkResult("atanh("+ex1+")", \
309          #                arg1.atanh(), \
310          #                numarray.atanh(arrays1[0]), \
311          #                numarray.atanh(arrays1[1]), \
312          #                numarray.atanh(arrays1[2]), \
313          #                wh)
314    
315        # get the maximum value at each data point        # get the maximum value at each data point
316        #ref=checkResult("maxval("+ex1+")", \        #ref=checkResult("maxval("+ex1+")", \
317        #                arg1.maxval(), \        #                arg1.maxval(), \
# Line 274  for wh in [ContinuousFunction(msh),Funct Line 355  for wh in [ContinuousFunction(msh),Funct
355    
356        # get the signs of the values:        # get the signs of the values:
357        ref=checkResult("sign("+ex1+")", \        ref=checkResult("sign("+ex1+")", \
358                        arg1.sign(), \                        arg1._sign(), \
359                        numarray.greater(arrays1[0],numarray.zeros(arrays1[0].shape)) \                        numarray.greater(arrays1[0],numarray.zeros(arrays1[0].shape)) \
360                          -numarray.less(arrays1[0],numarray.zeros(arrays1[0].shape)),\                          -numarray.less(arrays1[0],numarray.zeros(arrays1[0].shape)),\
361                        numarray.greater(arrays1[1],numarray.zeros(arrays1[1].shape)) \                        numarray.greater(arrays1[1],numarray.zeros(arrays1[1].shape)) \
# Line 283  for wh in [ContinuousFunction(msh),Funct Line 364  for wh in [ContinuousFunction(msh),Funct
364                          -numarray.less(arrays1[2],numarray.zeros(arrays1[2].shape)),\                          -numarray.less(arrays1[2],numarray.zeros(arrays1[2].shape)),\
365                        wh)                        wh)
366    
367    sys.exit(0)
368  # end  # end

Legend:
Removed from v.108  
changed lines
  Added in v.314

  ViewVC Help
Powered by ViewVC 1.1.26