/[escript]/branches/intelc_win32/escript/test/python/test_util_spatial_functions.py
ViewVC logotype

Diff of /branches/intelc_win32/escript/test/python/test_util_spatial_functions.py

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

trunk/escript/py_src/test_util_spatial_functions.py revision 441 by gross, Fri Jan 20 03:40:39 2006 UTC trunk/escript/test/python/test_util_spatial_functions.py revision 700 by gross, Thu Apr 6 00:13:40 2006 UTC
# Line 7  it is assumed that the domain is the usi Line 7  it is assumed that the domain is the usi
7  not all these test will run for all domains. check the doc string for the assumptions of a particular test  not all these test will run for all domains. check the doc string for the assumptions of a particular test
8    
9  @var __author__: name of author  @var __author__: name of author
10  @var __licence__: licence agreement  @var __copyright__: copyrights
11    @var __license__: licence agreement
12  @var __url__: url entry point on documentation  @var __url__: url entry point on documentation
13  @var __version__: version  @var __version__: version
14  @var __date__: date of the version  @var __date__: date of the version
15  """  """
16  __author__="Lutz Gross, l.gross@uq.edu.au"  __author__="Lutz Gross, l.gross@uq.edu.au"
17  __licence__="contact: esys@access.uq.edu.au"  __copyright__="""  Copyright (c) 2006 by ACcESS MNRF
18                        http://www.access.edu.au
19                    Primary Business: Queensland, Australia"""
20    __license__="""Licensed under the Open Software License version 3.0
21                 http://www.opensource.org/licenses/osl-3.0.php"""
22  __url__="http://www.iservo.edu.au/esys/escript"  __url__="http://www.iservo.edu.au/esys/escript"
23  __version__="$Revision$"  __version__="$Revision$"
24  __date__="$Date$"  __date__="$Date$"
# Line 71796  class Test_Util_SpatialFunctions(unittes Line 71801  class Test_Util_SpatialFunctions(unittes
71801        self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")        self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
71802        self.failUnlessEqual(sub.getFunctionSpace(),w_ref,"wrong function space of result.")        self.failUnlessEqual(sub.getFunctionSpace(),w_ref,"wrong function space of result.")
71803        self.failUnless(Lsup(sub-ref)<=self.RES_TOL*Lsup(ref),"wrong result")        self.failUnless(Lsup(sub-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
71804       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
71805       def test_L2_onFunction_fromData_rank0(self):
71806          """
71807          tests L2-norm of Data on the Function
71808    
71809          assumptions: self.domain supports integration on Function
71810          """
71811          dim=self.domain.getDim()
71812          w=Function(self.domain)
71813          x=w.getX()
71814          if dim==2:
71815            arg=Data(0,(),w)
71816            arg=(0.608797336225)*x[0]
71817            ref=sqrt((0.123544732198))
71818    
71819          else:
71820            arg=Data(0,(),w)
71821            arg=(0.136031275673)*x[0]
71822            ref=sqrt((0.00616816932037))
71823    
71824          res=L2(arg)
71825          self.failUnless(isinstance(res,float),"wrong type of result.")
71826          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
71827       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
71828       def test_L2_onFunction_fromData_rank1(self):
71829          """
71830          tests L2-norm of Data on the Function
71831    
71832          assumptions: self.domain supports integration on Function
71833          """
71834          dim=self.domain.getDim()
71835          w=Function(self.domain)
71836          x=w.getX()
71837          if dim==2:
71838            arg=Data(0,(2,),w)
71839            arg[0]=(-0.212143919436)*x[0]
71840            arg[1]=(-0.256194155686)*x[1]
71841            ref=sqrt((0.0368801626538))
71842    
71843          else:
71844            arg=Data(0,(3,),w)
71845            arg[0]=(0.0452831341416)*x[0]
71846            arg[1]=(-0.278640180656)*x[1]
71847            arg[2]=(-0.607035001062)*x[2]
71848            ref=sqrt((0.149394135009))
71849    
71850          res=L2(arg)
71851          self.failUnless(isinstance(res,float),"wrong type of result.")
71852          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
71853       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
71854       def test_L2_onFunction_fromData_rank2(self):
71855          """
71856          tests L2-norm of Data on the Function
71857    
71858          assumptions: self.domain supports integration on Function
71859          """
71860          dim=self.domain.getDim()
71861          w=Function(self.domain)
71862          x=w.getX()
71863          if dim==2:
71864            arg=Data(0,(4, 2),w)
71865            arg[0,0]=(0.239448813076)*x[0]
71866            arg[0,1]=(-0.529349708753)*x[1]
71867            arg[1,0]=(-0.381557161859)*x[0]
71868            arg[1,1]=(0.731658534249)*x[1]
71869            arg[2,0]=(-0.813679062342)*x[0]
71870            arg[2,1]=(0.528100089704)*x[1]
71871            arg[3,0]=(-0.480867528161)*x[0]
71872            arg[3,1]=(-0.167862206972)*x[1]
71873            ref=sqrt((0.739610516051))
71874    
71875          else:
71876            arg=Data(0,(4, 3),w)
71877            arg[0,0]=(0.951209543612)*x[0]
71878            arg[0,1]=(0.735178735637)*x[1]
71879            arg[0,2]=(0.13074673272)*x[2]
71880            arg[1,0]=(0.412295676715)*x[0]
71881            arg[1,1]=(-0.657695950153)*x[1]
71882            arg[1,2]=(-0.900044734695)*x[2]
71883            arg[2,0]=(0.741773926224)*x[0]
71884            arg[2,1]=(0.0521828807406)*x[1]
71885            arg[2,2]=(0.797728501985)*x[2]
71886            arg[3,0]=(-0.61235554051)*x[0]
71887            arg[3,1]=(0.456652747412)*x[1]
71888            arg[3,2]=(-0.734303857319)*x[2]
71889            ref=sqrt((1.72901661926))
71890    
71891          res=L2(arg)
71892          self.failUnless(isinstance(res,float),"wrong type of result.")
71893          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
71894       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
71895       def test_L2_onFunction_fromData_rank3(self):
71896          """
71897          tests L2-norm of Data on the Function
71898    
71899          assumptions: self.domain supports integration on Function
71900          """
71901          dim=self.domain.getDim()
71902          w=Function(self.domain)
71903          x=w.getX()
71904          if dim==2:
71905            arg=Data(0,(6, 2, 2),w)
71906            arg[0,0,0]=(0.449174971953)*x[0]
71907            arg[0,0,1]=(-0.0109398763289)*x[1]
71908            arg[0,1,0]=(-0.202497187709)*x[0]
71909            arg[0,1,1]=(-0.12970879334)*x[1]
71910            arg[1,0,0]=(-0.138092481719)*x[0]
71911            arg[1,0,1]=(-0.528752200917)*x[1]
71912            arg[1,1,0]=(-0.605919441662)*x[0]
71913            arg[1,1,1]=(0.215615032334)*x[1]
71914            arg[2,0,0]=(-0.998734541972)*x[0]
71915            arg[2,0,1]=(0.725811901251)*x[1]
71916            arg[2,1,0]=(-0.966536503228)*x[0]
71917            arg[2,1,1]=(-0.528692217355)*x[1]
71918            arg[3,0,0]=(0.757633851466)*x[0]
71919            arg[3,0,1]=(-0.524660157377)*x[1]
71920            arg[3,1,0]=(0.983733431677)*x[0]
71921            arg[3,1,1]=(0.061279109546)*x[1]
71922            arg[4,0,0]=(0.85914215305)*x[0]
71923            arg[4,0,1]=(0.941714045112)*x[1]
71924            arg[4,1,0]=(0.172235529555)*x[0]
71925            arg[4,1,1]=(-0.108381454437)*x[1]
71926            arg[5,0,0]=(-0.736373697727)*x[0]
71927            arg[5,0,1]=(-0.599337929679)*x[1]
71928            arg[5,1,0]=(0.661072686392)*x[0]
71929            arg[5,1,1]=(-0.55107327409)*x[1]
71930            ref=sqrt((2.94641432714))
71931    
71932          else:
71933            arg=Data(0,(6, 2, 3),w)
71934            arg[0,0,0]=(0.69227064904)*x[0]
71935            arg[0,0,1]=(-0.968336177418)*x[1]
71936            arg[0,0,2]=(-0.634883146685)*x[2]
71937            arg[0,1,0]=(-0.12640661422)*x[0]
71938            arg[0,1,1]=(-0.637386589888)*x[1]
71939            arg[0,1,2]=(0.26060859356)*x[2]
71940            arg[1,0,0]=(-0.986864633297)*x[0]
71941            arg[1,0,1]=(-0.441589142379)*x[1]
71942            arg[1,0,2]=(-0.587865539582)*x[2]
71943            arg[1,1,0]=(0.596052465031)*x[0]
71944            arg[1,1,1]=(0.312732336652)*x[1]
71945            arg[1,1,2]=(-0.514423945092)*x[2]
71946            arg[2,0,0]=(-0.892391254794)*x[0]
71947            arg[2,0,1]=(0.377920185756)*x[1]
71948            arg[2,0,2]=(-0.120174597181)*x[2]
71949            arg[2,1,0]=(-0.469951576468)*x[0]
71950            arg[2,1,1]=(-0.788362249555)*x[1]
71951            arg[2,1,2]=(0.745625354986)*x[2]
71952            arg[3,0,0]=(0.542802498569)*x[0]
71953            arg[3,0,1]=(-0.814541028706)*x[1]
71954            arg[3,0,2]=(0.298410992196)*x[2]
71955            arg[3,1,0]=(0.981190341206)*x[0]
71956            arg[3,1,1]=(0.666421298608)*x[1]
71957            arg[3,1,2]=(-0.369751722626)*x[2]
71958            arg[4,0,0]=(-0.75379530597)*x[0]
71959            arg[4,0,1]=(0.283357267139)*x[1]
71960            arg[4,0,2]=(0.247787072861)*x[2]
71961            arg[4,1,0]=(0.301766692533)*x[0]
71962            arg[4,1,1]=(0.828183439224)*x[1]
71963            arg[4,1,2]=(-0.580824060547)*x[2]
71964            arg[5,0,0]=(0.637345610764)*x[0]
71965            arg[5,0,1]=(-0.234409115997)*x[1]
71966            arg[5,0,2]=(-0.192639300316)*x[2]
71967            arg[5,1,0]=(-0.62609237162)*x[0]
71968            arg[5,1,1]=(0.463404958552)*x[1]
71969            arg[5,1,2]=(-0.547814448738)*x[2]
71970            ref=sqrt((4.2381131862))
71971    
71972          res=L2(arg)
71973          self.failUnless(isinstance(res,float),"wrong type of result.")
71974          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
71975       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
71976       def test_L2_onFunction_fromData_rank4(self):
71977          """
71978          tests L2-norm of Data on the Function
71979    
71980          assumptions: self.domain supports integration on Function
71981          """
71982          dim=self.domain.getDim()
71983          w=Function(self.domain)
71984          x=w.getX()
71985          if dim==2:
71986            arg=Data(0,(4, 5, 3, 2),w)
71987            arg[0,0,0,0]=(-0.232618585183)*x[0]
71988            arg[0,0,0,1]=(0.39796117869)*x[1]
71989            arg[0,0,1,0]=(-0.997336958262)*x[0]
71990            arg[0,0,1,1]=(-0.351780915076)*x[1]
71991            arg[0,0,2,0]=(-0.876764070136)*x[0]
71992            arg[0,0,2,1]=(0.808730805817)*x[1]
71993            arg[0,1,0,0]=(-0.197154744966)*x[0]
71994            arg[0,1,0,1]=(0.416246096086)*x[1]
71995            arg[0,1,1,0]=(0.708038457121)*x[0]
71996            arg[0,1,1,1]=(-0.00954021503188)*x[1]
71997            arg[0,1,2,0]=(-0.62630809425)*x[0]
71998            arg[0,1,2,1]=(0.430228727912)*x[1]
71999            arg[0,2,0,0]=(0.0306704747648)*x[0]
72000            arg[0,2,0,1]=(-0.913877199453)*x[1]
72001            arg[0,2,1,0]=(-0.697612800829)*x[0]
72002            arg[0,2,1,1]=(-0.17996376822)*x[1]
72003            arg[0,2,2,0]=(-0.304509578871)*x[0]
72004            arg[0,2,2,1]=(-0.610556755811)*x[1]
72005            arg[0,3,0,0]=(-0.452355972234)*x[0]
72006            arg[0,3,0,1]=(-0.368921242518)*x[1]
72007            arg[0,3,1,0]=(-0.478275554932)*x[0]
72008            arg[0,3,1,1]=(0.257178549127)*x[1]
72009            arg[0,3,2,0]=(0.530736487177)*x[0]
72010            arg[0,3,2,1]=(-0.567126272463)*x[1]
72011            arg[0,4,0,0]=(0.801519165938)*x[0]
72012            arg[0,4,0,1]=(-0.509816703951)*x[1]
72013            arg[0,4,1,0]=(-0.255412646934)*x[0]
72014            arg[0,4,1,1]=(0.437540101896)*x[1]
72015            arg[0,4,2,0]=(-0.815574969538)*x[0]
72016            arg[0,4,2,1]=(-0.94691547137)*x[1]
72017            arg[1,0,0,0]=(-0.732550722593)*x[0]
72018            arg[1,0,0,1]=(0.515752381704)*x[1]
72019            arg[1,0,1,0]=(-0.343590210899)*x[0]
72020            arg[1,0,1,1]=(-0.0601907964915)*x[1]
72021            arg[1,0,2,0]=(0.0199916154421)*x[0]
72022            arg[1,0,2,1]=(-0.136927227821)*x[1]
72023            arg[1,1,0,0]=(0.397994441702)*x[0]
72024            arg[1,1,0,1]=(0.953873148948)*x[1]
72025            arg[1,1,1,0]=(0.419416235967)*x[0]
72026            arg[1,1,1,1]=(0.700998577193)*x[1]
72027            arg[1,1,2,0]=(-0.497358799271)*x[0]
72028            arg[1,1,2,1]=(0.0851768858379)*x[1]
72029            arg[1,2,0,0]=(0.0936678875202)*x[0]
72030            arg[1,2,0,1]=(0.869883786896)*x[1]
72031            arg[1,2,1,0]=(0.582700123485)*x[0]
72032            arg[1,2,1,1]=(-0.433381106794)*x[1]
72033            arg[1,2,2,0]=(-0.527031777974)*x[0]
72034            arg[1,2,2,1]=(0.105105137652)*x[1]
72035            arg[1,3,0,0]=(-0.716750829134)*x[0]
72036            arg[1,3,0,1]=(0.774519209008)*x[1]
72037            arg[1,3,1,0]=(-0.568743372716)*x[0]
72038            arg[1,3,1,1]=(0.794732483944)*x[1]
72039            arg[1,3,2,0]=(0.246606002015)*x[0]
72040            arg[1,3,2,1]=(-0.988869494994)*x[1]
72041            arg[1,4,0,0]=(0.482379298083)*x[0]
72042            arg[1,4,0,1]=(-0.386268387903)*x[1]
72043            arg[1,4,1,0]=(0.137184889675)*x[0]
72044            arg[1,4,1,1]=(-0.140520035321)*x[1]
72045            arg[1,4,2,0]=(0.822755050415)*x[0]
72046            arg[1,4,2,1]=(-0.815562139522)*x[1]
72047            arg[2,0,0,0]=(-0.462891511962)*x[0]
72048            arg[2,0,0,1]=(-0.122643411631)*x[1]
72049            arg[2,0,1,0]=(-0.520861119962)*x[0]
72050            arg[2,0,1,1]=(-0.881189618018)*x[1]
72051            arg[2,0,2,0]=(-0.776157842774)*x[0]
72052            arg[2,0,2,1]=(-0.12354053207)*x[1]
72053            arg[2,1,0,0]=(0.395495230826)*x[0]
72054            arg[2,1,0,1]=(-0.388106659423)*x[1]
72055            arg[2,1,1,0]=(0.354250242834)*x[0]
72056            arg[2,1,1,1]=(-0.666514210192)*x[1]
72057            arg[2,1,2,0]=(0.951294655083)*x[0]
72058            arg[2,1,2,1]=(0.074024416386)*x[1]
72059            arg[2,2,0,0]=(0.335448485459)*x[0]
72060            arg[2,2,0,1]=(-0.40988282528)*x[1]
72061            arg[2,2,1,0]=(-0.805725968875)*x[0]
72062            arg[2,2,1,1]=(-0.949883082118)*x[1]
72063            arg[2,2,2,0]=(0.531549210683)*x[0]
72064            arg[2,2,2,1]=(-0.398401016682)*x[1]
72065            arg[2,3,0,0]=(-0.953963433205)*x[0]
72066            arg[2,3,0,1]=(0.643431126406)*x[1]
72067            arg[2,3,1,0]=(-0.167611998738)*x[0]
72068            arg[2,3,1,1]=(0.226130056552)*x[1]
72069            arg[2,3,2,0]=(0.0752687641131)*x[0]
72070            arg[2,3,2,1]=(-0.115742756362)*x[1]
72071            arg[2,4,0,0]=(0.579694491028)*x[0]
72072            arg[2,4,0,1]=(-0.112005738299)*x[1]
72073            arg[2,4,1,0]=(0.657291764224)*x[0]
72074            arg[2,4,1,1]=(0.62671154177)*x[1]
72075            arg[2,4,2,0]=(0.103695027944)*x[0]
72076            arg[2,4,2,1]=(0.462828491544)*x[1]
72077            arg[3,0,0,0]=(0.697692979998)*x[0]
72078            arg[3,0,0,1]=(-0.123481859619)*x[1]
72079            arg[3,0,1,0]=(-0.749745629459)*x[0]
72080            arg[3,0,1,1]=(-0.541969524069)*x[1]
72081            arg[3,0,2,0]=(0.819484470759)*x[0]
72082            arg[3,0,2,1]=(-0.860592326469)*x[1]
72083            arg[3,1,0,0]=(-0.716566084771)*x[0]
72084            arg[3,1,0,1]=(-0.949235434827)*x[1]
72085            arg[3,1,1,0]=(-0.826699498174)*x[0]
72086            arg[3,1,1,1]=(-0.138511521583)*x[1]
72087            arg[3,1,2,0]=(-0.951682890904)*x[0]
72088            arg[3,1,2,1]=(0.413293316925)*x[1]
72089            arg[3,2,0,0]=(0.909516836775)*x[0]
72090            arg[3,2,0,1]=(-0.919989721277)*x[1]
72091            arg[3,2,1,0]=(0.0994860369337)*x[0]
72092            arg[3,2,1,1]=(-0.933647246623)*x[1]
72093            arg[3,2,2,0]=(-0.759215183015)*x[0]
72094            arg[3,2,2,1]=(0.0975793309286)*x[1]
72095            arg[3,3,0,0]=(-0.130256739381)*x[0]
72096            arg[3,3,0,1]=(-0.582280862311)*x[1]
72097            arg[3,3,1,0]=(0.206970526192)*x[0]
72098            arg[3,3,1,1]=(-0.8678322258)*x[1]
72099            arg[3,3,2,0]=(0.133004501279)*x[0]
72100            arg[3,3,2,1]=(0.802921710935)*x[1]
72101            arg[3,4,0,0]=(-0.255737792764)*x[0]
72102            arg[3,4,0,1]=(-0.34168114937)*x[1]
72103            arg[3,4,1,0]=(-0.859309090399)*x[0]
72104            arg[3,4,1,1]=(0.245043986435)*x[1]
72105            arg[3,4,2,0]=(0.893062018695)*x[0]
72106            arg[3,4,2,1]=(0.709422742588)*x[1]
72107            ref=sqrt((13.7289280362))
72108    
72109          else:
72110            arg=Data(0,(4, 5, 3, 3),w)
72111            arg[0,0,0,0]=(0.0312828390439)*x[0]
72112            arg[0,0,0,1]=(-0.524970416212)*x[1]
72113            arg[0,0,0,2]=(0.561865217554)*x[2]
72114            arg[0,0,1,0]=(0.692457187384)*x[0]
72115            arg[0,0,1,1]=(0.946967182157)*x[1]
72116            arg[0,0,1,2]=(-0.863842279464)*x[2]
72117            arg[0,0,2,0]=(0.993922921598)*x[0]
72118            arg[0,0,2,1]=(0.322812768679)*x[1]
72119            arg[0,0,2,2]=(0.901876132204)*x[2]
72120            arg[0,1,0,0]=(0.967569979365)*x[0]
72121            arg[0,1,0,1]=(0.840979131355)*x[1]
72122            arg[0,1,0,2]=(0.0494811460856)*x[2]
72123            arg[0,1,1,0]=(0.315178456102)*x[0]
72124            arg[0,1,1,1]=(0.449848313024)*x[1]
72125            arg[0,1,1,2]=(0.765887852886)*x[2]
72126            arg[0,1,2,0]=(0.975541574352)*x[0]
72127            arg[0,1,2,1]=(-0.797851290751)*x[1]
72128            arg[0,1,2,2]=(0.628918775319)*x[2]
72129            arg[0,2,0,0]=(0.685635794312)*x[0]
72130            arg[0,2,0,1]=(0.10341799962)*x[1]
72131            arg[0,2,0,2]=(-0.964822756043)*x[2]
72132            arg[0,2,1,0]=(-0.56160368212)*x[0]
72133            arg[0,2,1,1]=(0.676344298102)*x[1]
72134            arg[0,2,1,2]=(-0.713924121843)*x[2]
72135            arg[0,2,2,0]=(-0.276655136263)*x[0]
72136            arg[0,2,2,1]=(0.336046973788)*x[1]
72137            arg[0,2,2,2]=(-0.68789392396)*x[2]
72138            arg[0,3,0,0]=(0.0172861311571)*x[0]
72139            arg[0,3,0,1]=(-0.301075956456)*x[1]
72140            arg[0,3,0,2]=(0.779442985415)*x[2]
72141            arg[0,3,1,0]=(-0.517629576558)*x[0]
72142            arg[0,3,1,1]=(0.584779586639)*x[1]
72143            arg[0,3,1,2]=(-0.53266435436)*x[2]
72144            arg[0,3,2,0]=(0.841533567102)*x[0]
72145            arg[0,3,2,1]=(0.0458746415489)*x[1]
72146            arg[0,3,2,2]=(0.921237870758)*x[2]
72147            arg[0,4,0,0]=(0.0548343238805)*x[0]
72148            arg[0,4,0,1]=(0.687022707412)*x[1]
72149            arg[0,4,0,2]=(-0.319803609795)*x[2]
72150            arg[0,4,1,0]=(0.409763007811)*x[0]
72151            arg[0,4,1,1]=(0.165501957435)*x[1]
72152            arg[0,4,1,2]=(0.116001692781)*x[2]
72153            arg[0,4,2,0]=(-0.515571394238)*x[0]
72154            arg[0,4,2,1]=(0.209467945147)*x[1]
72155            arg[0,4,2,2]=(-0.344827191247)*x[2]
72156            arg[1,0,0,0]=(0.57193838014)*x[0]
72157            arg[1,0,0,1]=(-0.0880683799076)*x[1]
72158            arg[1,0,0,2]=(0.956899617441)*x[2]
72159            arg[1,0,1,0]=(-0.783689636357)*x[0]
72160            arg[1,0,1,1]=(-0.25177506885)*x[1]
72161            arg[1,0,1,2]=(-0.97074584634)*x[2]
72162            arg[1,0,2,0]=(0.432543519806)*x[0]
72163            arg[1,0,2,1]=(0.481003021954)*x[1]
72164            arg[1,0,2,2]=(-0.0630751518268)*x[2]
72165            arg[1,1,0,0]=(-0.65152446796)*x[0]
72166            arg[1,1,0,1]=(-0.0323685084425)*x[1]
72167            arg[1,1,0,2]=(-0.508674033909)*x[2]
72168            arg[1,1,1,0]=(-0.533367818916)*x[0]
72169            arg[1,1,1,1]=(0.310738340288)*x[1]
72170            arg[1,1,1,2]=(0.694612234326)*x[2]
72171            arg[1,1,2,0]=(-0.622052473032)*x[0]
72172            arg[1,1,2,1]=(0.0498443793671)*x[1]
72173            arg[1,1,2,2]=(0.61023707512)*x[2]
72174            arg[1,2,0,0]=(0.0730267406859)*x[0]
72175            arg[1,2,0,1]=(0.146909334607)*x[1]
72176            arg[1,2,0,2]=(-0.641860284448)*x[2]
72177            arg[1,2,1,0]=(0.917976589737)*x[0]
72178            arg[1,2,1,1]=(0.50219672122)*x[1]
72179            arg[1,2,1,2]=(0.634559579812)*x[2]
72180            arg[1,2,2,0]=(0.0578772734534)*x[0]
72181            arg[1,2,2,1]=(0.288730973517)*x[1]
72182            arg[1,2,2,2]=(-0.0525978796154)*x[2]
72183            arg[1,3,0,0]=(-0.926152433388)*x[0]
72184            arg[1,3,0,1]=(0.0616647680855)*x[1]
72185            arg[1,3,0,2]=(-0.875889217846)*x[2]
72186            arg[1,3,1,0]=(-0.638931542845)*x[0]
72187            arg[1,3,1,1]=(0.708848122964)*x[1]
72188            arg[1,3,1,2]=(0.119066979792)*x[2]
72189            arg[1,3,2,0]=(0.853716218591)*x[0]
72190            arg[1,3,2,1]=(-0.92754322201)*x[1]
72191            arg[1,3,2,2]=(-0.671530626265)*x[2]
72192            arg[1,4,0,0]=(0.337424536231)*x[0]
72193            arg[1,4,0,1]=(0.335704451719)*x[1]
72194            arg[1,4,0,2]=(-0.484565969466)*x[2]
72195            arg[1,4,1,0]=(-0.855476192012)*x[0]
72196            arg[1,4,1,1]=(0.405674615553)*x[1]
72197            arg[1,4,1,2]=(0.728310771323)*x[2]
72198            arg[1,4,2,0]=(0.363651308265)*x[0]
72199            arg[1,4,2,1]=(0.174460594531)*x[1]
72200            arg[1,4,2,2]=(-0.0418244838617)*x[2]
72201            arg[2,0,0,0]=(-0.531341992511)*x[0]
72202            arg[2,0,0,1]=(0.584996796272)*x[1]
72203            arg[2,0,0,2]=(-0.752430968716)*x[2]
72204            arg[2,0,1,0]=(-0.341989849747)*x[0]
72205            arg[2,0,1,1]=(0.153572646953)*x[1]
72206            arg[2,0,1,2]=(-0.197130051737)*x[2]
72207            arg[2,0,2,0]=(-0.338082424082)*x[0]
72208            arg[2,0,2,1]=(0.000173657394772)*x[1]
72209            arg[2,0,2,2]=(0.365272907692)*x[2]
72210            arg[2,1,0,0]=(0.904304126564)*x[0]
72211            arg[2,1,0,1]=(0.161252368484)*x[1]
72212            arg[2,1,0,2]=(0.246854092422)*x[2]
72213            arg[2,1,1,0]=(-0.299880647529)*x[0]
72214            arg[2,1,1,1]=(-0.566917528608)*x[1]
72215            arg[2,1,1,2]=(0.243183337285)*x[2]
72216            arg[2,1,2,0]=(0.437406011474)*x[0]
72217            arg[2,1,2,1]=(0.727447394053)*x[1]
72218            arg[2,1,2,2]=(0.380752950664)*x[2]
72219            arg[2,2,0,0]=(0.172292846911)*x[0]
72220            arg[2,2,0,1]=(0.334201791643)*x[1]
72221            arg[2,2,0,2]=(0.739989926962)*x[2]
72222            arg[2,2,1,0]=(-0.0669843715042)*x[0]
72223            arg[2,2,1,1]=(-0.540497281635)*x[1]
72224            arg[2,2,1,2]=(-0.744217027088)*x[2]
72225            arg[2,2,2,0]=(-0.287295952259)*x[0]
72226            arg[2,2,2,1]=(-0.512411849183)*x[1]
72227            arg[2,2,2,2]=(0.953107417666)*x[2]
72228            arg[2,3,0,0]=(0.998168116695)*x[0]
72229            arg[2,3,0,1]=(0.960065646359)*x[1]
72230            arg[2,3,0,2]=(0.110048258832)*x[2]
72231            arg[2,3,1,0]=(-0.477271134724)*x[0]
72232            arg[2,3,1,1]=(0.707182612251)*x[1]
72233            arg[2,3,1,2]=(0.285500891755)*x[2]
72234            arg[2,3,2,0]=(-0.863497506661)*x[0]
72235            arg[2,3,2,1]=(-0.293917669879)*x[1]
72236            arg[2,3,2,2]=(-0.403384244295)*x[2]
72237            arg[2,4,0,0]=(0.848455277702)*x[0]
72238            arg[2,4,0,1]=(-0.530101455578)*x[1]
72239            arg[2,4,0,2]=(0.33887313048)*x[2]
72240            arg[2,4,1,0]=(-0.195313538124)*x[0]
72241            arg[2,4,1,1]=(-0.62754572008)*x[1]
72242            arg[2,4,1,2]=(-0.385132960582)*x[2]
72243            arg[2,4,2,0]=(0.240048012886)*x[0]
72244            arg[2,4,2,1]=(0.900766252969)*x[1]
72245            arg[2,4,2,2]=(0.669620533505)*x[2]
72246            arg[3,0,0,0]=(0.375766827301)*x[0]
72247            arg[3,0,0,1]=(0.705484960308)*x[1]
72248            arg[3,0,0,2]=(0.440931516034)*x[2]
72249            arg[3,0,1,0]=(-0.44724403177)*x[0]
72250            arg[3,0,1,1]=(-0.31558249626)*x[1]
72251            arg[3,0,1,2]=(-0.00419436365172)*x[2]
72252            arg[3,0,2,0]=(0.750599752032)*x[0]
72253            arg[3,0,2,1]=(0.367649951795)*x[1]
72254            arg[3,0,2,2]=(0.0488013073654)*x[2]
72255            arg[3,1,0,0]=(-0.992890068274)*x[0]
72256            arg[3,1,0,1]=(0.671447745511)*x[1]
72257            arg[3,1,0,2]=(0.85613331404)*x[2]
72258            arg[3,1,1,0]=(-0.46064764242)*x[0]
72259            arg[3,1,1,1]=(0.48138877715)*x[1]
72260            arg[3,1,1,2]=(0.396741761803)*x[2]
72261            arg[3,1,2,0]=(-0.879391967543)*x[0]
72262            arg[3,1,2,1]=(-0.44039462138)*x[1]
72263            arg[3,1,2,2]=(0.0330511573872)*x[2]
72264            arg[3,2,0,0]=(-0.367413701648)*x[0]
72265            arg[3,2,0,1]=(0.0359818324891)*x[1]
72266            arg[3,2,0,2]=(-0.307532667032)*x[2]
72267            arg[3,2,1,0]=(0.334663597166)*x[0]
72268            arg[3,2,1,1]=(0.541941978066)*x[1]
72269            arg[3,2,1,2]=(-0.609184079318)*x[2]
72270            arg[3,2,2,0]=(0.359349239826)*x[0]
72271            arg[3,2,2,1]=(0.0419272305685)*x[1]
72272            arg[3,2,2,2]=(0.557189794296)*x[2]
72273            arg[3,3,0,0]=(-0.85864165554)*x[0]
72274            arg[3,3,0,1]=(-0.185411404213)*x[1]
72275            arg[3,3,0,2]=(0.254294865253)*x[2]
72276            arg[3,3,1,0]=(0.870362177541)*x[0]
72277            arg[3,3,1,1]=(-0.439688612864)*x[1]
72278            arg[3,3,1,2]=(0.26006729357)*x[2]
72279            arg[3,3,2,0]=(-0.0724034754175)*x[0]
72280            arg[3,3,2,1]=(0.444871564246)*x[1]
72281            arg[3,3,2,2]=(0.485634530531)*x[2]
72282            arg[3,4,0,0]=(-0.744756961758)*x[0]
72283            arg[3,4,0,1]=(0.429761406102)*x[1]
72284            arg[3,4,0,2]=(-0.584963735834)*x[2]
72285            arg[3,4,1,0]=(0.684578379159)*x[0]
72286            arg[3,4,1,1]=(0.949460132601)*x[1]
72287            arg[3,4,1,2]=(-0.592179909559)*x[2]
72288            arg[3,4,2,0]=(0.707154437797)*x[0]
72289            arg[3,4,2,1]=(0.619200407063)*x[1]
72290            arg[3,4,2,2]=(-0.338547165)*x[2]
72291            ref=sqrt((19.2170638478))
72292    
72293          res=L2(arg)
72294          self.failUnless(isinstance(res,float),"wrong type of result.")
72295          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
72296       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
72297       def test_L2_onFunction_fromSymbol_rank0(self):
72298          """
72299          tests L2-norm of Symbol on the Function
72300    
72301          assumptions: self.domain supports integration on Function
72302          """
72303          dim=self.domain.getDim()
72304          w=Function(self.domain)
72305          x=w.getX()
72306          if dim==2:
72307            arg=Symbol(shape=(),dim=dim)
72308            s=Data(0,(),w)
72309            s=(-0.292546362165)*x[0]
72310            ref=sqrt((0.0285277913387))
72311    
72312          else:
72313            arg=Symbol(shape=(),dim=dim)
72314            s=Data(0,(),w)
72315            s=(0.751025585654)*x[0]
72316            ref=sqrt((0.188013143436))
72317    
72318          res=L2(arg)
72319          sub=res.substitute({arg:s})
72320          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
72321          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
72322          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
72323       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
72324       def test_L2_onFunction_fromSymbol_rank1(self):
72325          """
72326          tests L2-norm of Symbol on the Function
72327    
72328          assumptions: self.domain supports integration on Function
72329          """
72330          dim=self.domain.getDim()
72331          w=Function(self.domain)
72332          x=w.getX()
72333          if dim==2:
72334            arg=Symbol(shape=(2,),dim=dim)
72335            s=Data(0,(2,),w)
72336            s[0]=(-0.1759467192)*x[0]
72337            s[1]=(0.37884376337)*x[1]
72338            ref=sqrt((0.0581599483473))
72339    
72340          else:
72341            arg=Symbol(shape=(3,),dim=dim)
72342            s=Data(0,(3,),w)
72343            s[0]=(-0.879259245697)*x[0]
72344            s[1]=(0.528911893259)*x[1]
72345            s[2]=(-0.751304571514)*x[2]
72346            ref=sqrt((0.539101057051))
72347    
72348          res=L2(arg)
72349          sub=res.substitute({arg:s})
72350          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
72351          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
72352          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
72353       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
72354       def test_L2_onFunction_fromSymbol_rank2(self):
72355          """
72356          tests L2-norm of Symbol on the Function
72357    
72358          assumptions: self.domain supports integration on Function
72359          """
72360          dim=self.domain.getDim()
72361          w=Function(self.domain)
72362          x=w.getX()
72363          if dim==2:
72364            arg=Symbol(shape=(4, 2),dim=dim)
72365            s=Data(0,(4, 2),w)
72366            s[0,0]=(0.792724994628)*x[0]
72367            s[0,1]=(-0.662113166656)*x[1]
72368            s[1,0]=(-0.548842538341)*x[0]
72369            s[1,1]=(-0.555018478507)*x[1]
72370            s[2,0]=(0.42962640812)*x[0]
72371            s[2,1]=(-0.582731787726)*x[1]
72372            s[3,0]=(0.603890261621)*x[0]
72373            s[3,1]=(0.802141268835)*x[1]
72374            ref=sqrt((1.06944988539))
72375    
72376          else:
72377            arg=Symbol(shape=(4, 3),dim=dim)
72378            s=Data(0,(4, 3),w)
72379            s[0,0]=(-0.432893320336)*x[0]
72380            s[0,1]=(0.277328929482)*x[1]
72381            s[0,2]=(0.950129871073)*x[2]
72382            s[1,0]=(0.675116050333)*x[0]
72383            s[1,1]=(-0.234274111148)*x[1]
72384            s[1,2]=(-0.477441654222)*x[2]
72385            s[2,0]=(0.603834062829)*x[0]
72386            s[2,1]=(-0.606015016913)*x[1]
72387            s[2,2]=(0.637487308345)*x[2]
72388            s[3,0]=(-0.288536804159)*x[0]
72389            s[3,1]=(-0.442827019286)*x[1]
72390            s[3,2]=(-0.0978007221136)*x[2]
72391            ref=sqrt((1.11094846322))
72392    
72393          res=L2(arg)
72394          sub=res.substitute({arg:s})
72395          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
72396          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
72397          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
72398       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
72399       def test_L2_onFunction_fromSymbol_rank3(self):
72400          """
72401          tests L2-norm of Symbol on the Function
72402    
72403          assumptions: self.domain supports integration on Function
72404          """
72405          dim=self.domain.getDim()
72406          w=Function(self.domain)
72407          x=w.getX()
72408          if dim==2:
72409            arg=Symbol(shape=(6, 2, 2),dim=dim)
72410            s=Data(0,(6, 2, 2),w)
72411            s[0,0,0]=(0.845216886022)*x[0]
72412            s[0,0,1]=(0.0597182977987)*x[1]
72413            s[0,1,0]=(0.146117477376)*x[0]
72414            s[0,1,1]=(0.918064672934)*x[1]
72415            s[1,0,0]=(-0.629068350604)*x[0]
72416            s[1,0,1]=(-0.116285587839)*x[1]
72417            s[1,1,0]=(0.678041887149)*x[0]
72418            s[1,1,1]=(-0.756045170867)*x[1]
72419            s[2,0,0]=(0.66884645591)*x[0]
72420            s[2,0,1]=(0.527297857958)*x[1]
72421            s[2,1,0]=(-0.453462310421)*x[0]
72422            s[2,1,1]=(-0.801421668573)*x[1]
72423            s[3,0,0]=(-0.418575000488)*x[0]
72424            s[3,0,1]=(0.977995539022)*x[1]
72425            s[3,1,0]=(0.863549457649)*x[0]
72426            s[3,1,1]=(0.975604004421)*x[1]
72427            s[4,0,0]=(0.642351898331)*x[0]
72428            s[4,0,1]=(-0.63624912796)*x[1]
72429            s[4,1,0]=(0.561260478169)*x[0]
72430            s[4,1,1]=(-0.942077895874)*x[1]
72431            s[5,0,0]=(0.0142173692077)*x[0]
72432            s[5,0,1]=(0.106312727314)*x[1]
72433            s[5,1,0]=(0.110676503653)*x[0]
72434            s[5,1,1]=(-0.534921324957)*x[1]
72435            ref=sqrt((3.25169916884))
72436    
72437          else:
72438            arg=Symbol(shape=(6, 2, 3),dim=dim)
72439            s=Data(0,(6, 2, 3),w)
72440            s[0,0,0]=(-0.351762958436)*x[0]
72441            s[0,0,1]=(0.797778461739)*x[1]
72442            s[0,0,2]=(-0.216759353067)*x[2]
72443            s[0,1,0]=(0.913252336442)*x[0]
72444            s[0,1,1]=(0.988076789445)*x[1]
72445            s[0,1,2]=(-0.901479800398)*x[2]
72446            s[1,0,0]=(0.179074582506)*x[0]
72447            s[1,0,1]=(-0.0198494753788)*x[1]
72448            s[1,0,2]=(0.453475519845)*x[2]
72449            s[1,1,0]=(0.0703079255814)*x[0]
72450            s[1,1,1]=(0.132531352932)*x[1]
72451            s[1,1,2]=(0.746319860866)*x[2]
72452            s[2,0,0]=(0.414228087724)*x[0]
72453            s[2,0,1]=(0.466702867918)*x[1]
72454            s[2,0,2]=(0.0868129987291)*x[2]
72455            s[2,1,0]=(0.903287212799)*x[0]
72456            s[2,1,1]=(0.912709008679)*x[1]
72457            s[2,1,2]=(-0.0365579422157)*x[2]
72458            s[3,0,0]=(0.0164686487169)*x[0]
72459            s[3,0,1]=(-0.914613841493)*x[1]
72460            s[3,0,2]=(-0.0822005463079)*x[2]
72461            s[3,1,0]=(-0.315907377871)*x[0]
72462            s[3,1,1]=(-0.102105289546)*x[1]
72463            s[3,1,2]=(-0.0353732873141)*x[2]
72464            s[4,0,0]=(0.0323628908944)*x[0]
72465            s[4,0,1]=(-0.954360115684)*x[1]
72466            s[4,0,2]=(0.923756483241)*x[2]
72467            s[4,1,0]=(0.980063248251)*x[0]
72468            s[4,1,1]=(0.0664804433015)*x[1]
72469            s[4,1,2]=(-0.765454557157)*x[2]
72470            s[5,0,0]=(-0.806747348451)*x[0]
72471            s[5,0,1]=(-0.423078051628)*x[1]
72472            s[5,0,2]=(0.765544317002)*x[2]
72473            s[5,1,0]=(0.00826992946354)*x[0]
72474            s[5,1,1]=(-0.117741801904)*x[1]
72475            s[5,1,2]=(-0.975554426921)*x[2]
72476            ref=sqrt((4.31586522476))
72477    
72478          res=L2(arg)
72479          sub=res.substitute({arg:s})
72480          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
72481          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
72482          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
72483       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
72484       def test_L2_onFunction_fromSymbol_rank4(self):
72485          """
72486          tests L2-norm of Symbol on the Function
72487    
72488          assumptions: self.domain supports integration on Function
72489          """
72490          dim=self.domain.getDim()
72491          w=Function(self.domain)
72492          x=w.getX()
72493          if dim==2:
72494            arg=Symbol(shape=(4, 5, 3, 2),dim=dim)
72495            s=Data(0,(4, 5, 3, 2),w)
72496            s[0,0,0,0]=(0.392249504065)*x[0]
72497            s[0,0,0,1]=(-0.0829499082807)*x[1]
72498            s[0,0,1,0]=(0.075391736082)*x[0]
72499            s[0,0,1,1]=(-0.267274680434)*x[1]
72500            s[0,0,2,0]=(0.758405394297)*x[0]
72501            s[0,0,2,1]=(0.966859664545)*x[1]
72502            s[0,1,0,0]=(-0.665158005166)*x[0]
72503            s[0,1,0,1]=(-0.861735224083)*x[1]
72504            s[0,1,1,0]=(0.889852595371)*x[0]
72505            s[0,1,1,1]=(-0.456217187733)*x[1]
72506            s[0,1,2,0]=(-0.444839601276)*x[0]
72507            s[0,1,2,1]=(-0.646347424003)*x[1]
72508            s[0,2,0,0]=(0.016728267633)*x[0]
72509            s[0,2,0,1]=(0.598805251354)*x[1]
72510            s[0,2,1,0]=(-0.0850259337934)*x[0]
72511            s[0,2,1,1]=(-0.958442577173)*x[1]
72512            s[0,2,2,0]=(-0.316155802878)*x[0]
72513            s[0,2,2,1]=(0.882575663199)*x[1]
72514            s[0,3,0,0]=(-0.350482054568)*x[0]
72515            s[0,3,0,1]=(-0.0018770186166)*x[1]
72516            s[0,3,1,0]=(0.434158350351)*x[0]
72517            s[0,3,1,1]=(0.510916541891)*x[1]
72518            s[0,3,2,0]=(0.415800847408)*x[0]
72519            s[0,3,2,1]=(0.0045200661478)*x[1]
72520            s[0,4,0,0]=(0.719981048541)*x[0]
72521            s[0,4,0,1]=(-0.394991607605)*x[1]
72522            s[0,4,1,0]=(0.225637020507)*x[0]
72523            s[0,4,1,1]=(-0.942644070947)*x[1]
72524            s[0,4,2,0]=(0.914486047699)*x[0]
72525            s[0,4,2,1]=(-0.0605237231206)*x[1]
72526            s[1,0,0,0]=(0.49162536785)*x[0]
72527            s[1,0,0,1]=(-0.616492901013)*x[1]
72528            s[1,0,1,0]=(-0.1288077626)*x[0]
72529            s[1,0,1,1]=(-0.345407781206)*x[1]
72530            s[1,0,2,0]=(-0.0725937970644)*x[0]
72531            s[1,0,2,1]=(0.40531578317)*x[1]
72532            s[1,1,0,0]=(0.598712741491)*x[0]
72533            s[1,1,0,1]=(-0.93879902651)*x[1]
72534            s[1,1,1,0]=(-0.0264475169249)*x[0]
72535            s[1,1,1,1]=(0.249909294638)*x[1]
72536            s[1,1,2,0]=(0.0027245979433)*x[0]
72537            s[1,1,2,1]=(-0.373044612275)*x[1]
72538            s[1,2,0,0]=(-0.281778393525)*x[0]
72539            s[1,2,0,1]=(0.627994360637)*x[1]
72540            s[1,2,1,0]=(0.589488628124)*x[0]
72541            s[1,2,1,1]=(-0.758174695207)*x[1]
72542            s[1,2,2,0]=(-0.406965936453)*x[0]
72543            s[1,2,2,1]=(-0.69002957721)*x[1]
72544            s[1,3,0,0]=(-0.199124201524)*x[0]
72545            s[1,3,0,1]=(0.869253645966)*x[1]
72546            s[1,3,1,0]=(-0.452605020068)*x[0]
72547            s[1,3,1,1]=(-0.970641886846)*x[1]
72548            s[1,3,2,0]=(0.175601171946)*x[0]
72549            s[1,3,2,1]=(0.672851105536)*x[1]
72550            s[1,4,0,0]=(0.58320491243)*x[0]
72551            s[1,4,0,1]=(-0.259858520694)*x[1]
72552            s[1,4,1,0]=(-0.808152456276)*x[0]
72553            s[1,4,1,1]=(-0.061862146349)*x[1]
72554            s[1,4,2,0]=(-0.285657379415)*x[0]
72555            s[1,4,2,1]=(0.0400598209814)*x[1]
72556            s[2,0,0,0]=(-0.982895080214)*x[0]
72557            s[2,0,0,1]=(-0.221420258961)*x[1]
72558            s[2,0,1,0]=(0.241664738784)*x[0]
72559            s[2,0,1,1]=(0.360336298851)*x[1]
72560            s[2,0,2,0]=(-0.1930995368)*x[0]
72561            s[2,0,2,1]=(0.165323422951)*x[1]
72562            s[2,1,0,0]=(-0.580617143448)*x[0]
72563            s[2,1,0,1]=(-0.445386310829)*x[1]
72564            s[2,1,1,0]=(-0.679424485212)*x[0]
72565            s[2,1,1,1]=(0.999216345845)*x[1]
72566            s[2,1,2,0]=(-0.00488871164474)*x[0]
72567            s[2,1,2,1]=(0.94248053909)*x[1]
72568            s[2,2,0,0]=(0.241836822065)*x[0]
72569            s[2,2,0,1]=(-0.323265890223)*x[1]
72570            s[2,2,1,0]=(0.282530883606)*x[0]
72571            s[2,2,1,1]=(0.499481122286)*x[1]
72572            s[2,2,2,0]=(0.502100738495)*x[0]
72573            s[2,2,2,1]=(-0.714419126623)*x[1]
72574            s[2,3,0,0]=(0.427736585056)*x[0]
72575            s[2,3,0,1]=(0.846933115255)*x[1]
72576            s[2,3,1,0]=(0.293400967424)*x[0]
72577            s[2,3,1,1]=(0.258925376632)*x[1]
72578            s[2,3,2,0]=(-0.748167607341)*x[0]
72579            s[2,3,2,1]=(0.354090561451)*x[1]
72580            s[2,4,0,0]=(0.432737336014)*x[0]
72581            s[2,4,0,1]=(0.856383164324)*x[1]
72582            s[2,4,1,0]=(-0.0596776788823)*x[0]
72583            s[2,4,1,1]=(-0.299291531668)*x[1]
72584            s[2,4,2,0]=(0.0332610005043)*x[0]
72585            s[2,4,2,1]=(-0.784223449976)*x[1]
72586            s[3,0,0,0]=(0.856346607718)*x[0]
72587            s[3,0,0,1]=(-0.711038642485)*x[1]
72588            s[3,0,1,0]=(-0.722899969631)*x[0]
72589            s[3,0,1,1]=(-0.976358349372)*x[1]
72590            s[3,0,2,0]=(-0.566657009276)*x[0]
72591            s[3,0,2,1]=(-0.88977921418)*x[1]
72592            s[3,1,0,0]=(0.690995364783)*x[0]
72593            s[3,1,0,1]=(0.0178260768232)*x[1]
72594            s[3,1,1,0]=(0.210672134956)*x[0]
72595            s[3,1,1,1]=(-0.271769743548)*x[1]
72596            s[3,1,2,0]=(-0.119905539717)*x[0]
72597            s[3,1,2,1]=(0.408792239219)*x[1]
72598            s[3,2,0,0]=(0.134901834799)*x[0]
72599            s[3,2,0,1]=(0.0969235330927)*x[1]
72600            s[3,2,1,0]=(-0.418267686354)*x[0]
72601            s[3,2,1,1]=(-0.599174142878)*x[1]
72602            s[3,2,2,0]=(-0.409148104875)*x[0]
72603            s[3,2,2,1]=(0.504760142275)*x[1]
72604            s[3,3,0,0]=(-0.174999245323)*x[0]
72605            s[3,3,0,1]=(-0.994094684291)*x[1]
72606            s[3,3,1,0]=(0.470460754362)*x[0]
72607            s[3,3,1,1]=(-0.867881666651)*x[1]
72608            s[3,3,2,0]=(0.691171063635)*x[0]
72609            s[3,3,2,1]=(-0.644952618882)*x[1]
72610            s[3,4,0,0]=(0.883581127272)*x[0]
72611            s[3,4,0,1]=(-0.534009409512)*x[1]
72612            s[3,4,1,0]=(0.324806602648)*x[0]
72613            s[3,4,1,1]=(0.606235157996)*x[1]
72614            s[3,4,2,0]=(-0.0136704045984)*x[0]
72615            s[3,4,2,1]=(0.36671612245)*x[1]
72616            ref=sqrt((12.2721641113))
72617    
72618          else:
72619            arg=Symbol(shape=(4, 5, 3, 3),dim=dim)
72620            s=Data(0,(4, 5, 3, 3),w)
72621            s[0,0,0,0]=(-0.0241692471764)*x[0]
72622            s[0,0,0,1]=(0.816194825296)*x[1]
72623            s[0,0,0,2]=(-0.0193776462565)*x[2]
72624            s[0,0,1,0]=(0.885158780616)*x[0]
72625            s[0,0,1,1]=(0.750445408795)*x[1]
72626            s[0,0,1,2]=(-0.242904502332)*x[2]
72627            s[0,0,2,0]=(-0.101306101076)*x[0]
72628            s[0,0,2,1]=(0.254549514037)*x[1]
72629            s[0,0,2,2]=(-0.301743139759)*x[2]
72630            s[0,1,0,0]=(0.960790978081)*x[0]
72631            s[0,1,0,1]=(-0.873861925572)*x[1]
72632            s[0,1,0,2]=(-0.266926259205)*x[2]
72633            s[0,1,1,0]=(-0.533605756527)*x[0]
72634            s[0,1,1,1]=(-0.196348553154)*x[1]
72635            s[0,1,1,2]=(0.462438110297)*x[2]
72636            s[0,1,2,0]=(0.766114991742)*x[0]
72637            s[0,1,2,1]=(-0.282544763069)*x[1]
72638            s[0,1,2,2]=(-0.918562937205)*x[2]
72639            s[0,2,0,0]=(-0.723736937045)*x[0]
72640            s[0,2,0,1]=(-0.0271772220034)*x[1]
72641            s[0,2,0,2]=(-0.67448574094)*x[2]
72642            s[0,2,1,0]=(-0.0465782041976)*x[0]
72643            s[0,2,1,1]=(-0.701475255709)*x[1]
72644            s[0,2,1,2]=(-0.54745824908)*x[2]
72645            s[0,2,2,0]=(0.823427037717)*x[0]
72646            s[0,2,2,1]=(0.873366807256)*x[1]
72647            s[0,2,2,2]=(0.902453041345)*x[2]
72648            s[0,3,0,0]=(-0.383388300734)*x[0]
72649            s[0,3,0,1]=(-0.457344890379)*x[1]
72650            s[0,3,0,2]=(0.449736739028)*x[2]
72651            s[0,3,1,0]=(-0.994113075606)*x[0]
72652            s[0,3,1,1]=(0.0265853285952)*x[1]
72653            s[0,3,1,2]=(-0.738089523761)*x[2]
72654            s[0,3,2,0]=(0.663756875286)*x[0]
72655            s[0,3,2,1]=(0.597615440207)*x[1]
72656            s[0,3,2,2]=(0.246105261445)*x[2]
72657            s[0,4,0,0]=(0.397226701305)*x[0]
72658            s[0,4,0,1]=(0.0967432951001)*x[1]
72659            s[0,4,0,2]=(0.619665795097)*x[2]
72660            s[0,4,1,0]=(0.155541932506)*x[0]
72661            s[0,4,1,1]=(-0.114961356145)*x[1]
72662            s[0,4,1,2]=(-0.491668824315)*x[2]
72663            s[0,4,2,0]=(-0.726549525506)*x[0]
72664            s[0,4,2,1]=(-0.876194753259)*x[1]
72665            s[0,4,2,2]=(-0.506364111318)*x[2]
72666            s[1,0,0,0]=(-0.380662783497)*x[0]
72667            s[1,0,0,1]=(-0.57927422387)*x[1]
72668            s[1,0,0,2]=(-0.282039117242)*x[2]
72669            s[1,0,1,0]=(-0.873334149601)*x[0]
72670            s[1,0,1,1]=(-0.0145182664909)*x[1]
72671            s[1,0,1,2]=(0.903533313452)*x[2]
72672            s[1,0,2,0]=(0.123617284156)*x[0]
72673            s[1,0,2,1]=(0.716639379262)*x[1]
72674            s[1,0,2,2]=(-0.940470701414)*x[2]
72675            s[1,1,0,0]=(-0.831075410065)*x[0]
72676            s[1,1,0,1]=(0.808724910022)*x[1]
72677            s[1,1,0,2]=(0.218369441977)*x[2]
72678            s[1,1,1,0]=(0.690977533444)*x[0]
72679            s[1,1,1,1]=(-0.379327957709)*x[1]
72680            s[1,1,1,2]=(0.0964273177138)*x[2]
72681            s[1,1,2,0]=(-0.244790745268)*x[0]
72682            s[1,1,2,1]=(-0.208570215865)*x[1]
72683            s[1,1,2,2]=(0.280320965835)*x[2]
72684            s[1,2,0,0]=(-0.571572336783)*x[0]
72685            s[1,2,0,1]=(-0.512302129833)*x[1]
72686            s[1,2,0,2]=(0.458134267946)*x[2]
72687            s[1,2,1,0]=(-0.909450574449)*x[0]
72688            s[1,2,1,1]=(-0.54240194702)*x[1]
72689            s[1,2,1,2]=(0.015279542779)*x[2]
72690            s[1,2,2,0]=(-0.450829963713)*x[0]
72691            s[1,2,2,1]=(0.265958897553)*x[1]
72692            s[1,2,2,2]=(0.0115876819282)*x[2]
72693            s[1,3,0,0]=(-0.493820517172)*x[0]
72694            s[1,3,0,1]=(0.924501975039)*x[1]
72695            s[1,3,0,2]=(0.976144734904)*x[2]
72696            s[1,3,1,0]=(-0.0369162848651)*x[0]
72697            s[1,3,1,1]=(-0.282951956468)*x[1]
72698            s[1,3,1,2]=(0.46799488403)*x[2]
72699            s[1,3,2,0]=(0.859289726723)*x[0]
72700            s[1,3,2,1]=(0.460555626035)*x[1]
72701            s[1,3,2,2]=(0.515796525158)*x[2]
72702            s[1,4,0,0]=(0.707364903535)*x[0]
72703            s[1,4,0,1]=(0.749724556391)*x[1]
72704            s[1,4,0,2]=(-0.278863489815)*x[2]
72705            s[1,4,1,0]=(0.972950918189)*x[0]
72706            s[1,4,1,1]=(0.844177970875)*x[1]
72707            s[1,4,1,2]=(0.0763619420058)*x[2]
72708            s[1,4,2,0]=(-0.0852939975129)*x[0]
72709            s[1,4,2,1]=(0.583399144502)*x[1]
72710            s[1,4,2,2]=(0.848661907972)*x[2]
72711            s[2,0,0,0]=(-0.777408601463)*x[0]
72712            s[2,0,0,1]=(-0.855232334446)*x[1]
72713            s[2,0,0,2]=(-0.742431398498)*x[2]
72714            s[2,0,1,0]=(-0.96680966892)*x[0]
72715            s[2,0,1,1]=(-0.33301062934)*x[1]
72716            s[2,0,1,2]=(-0.675842472611)*x[2]
72717            s[2,0,2,0]=(-0.0163730639481)*x[0]
72718            s[2,0,2,1]=(-0.0854274064817)*x[1]
72719            s[2,0,2,2]=(-0.93094914338)*x[2]
72720            s[2,1,0,0]=(0.881651879025)*x[0]
72721            s[2,1,0,1]=(0.782286554309)*x[1]
72722            s[2,1,0,2]=(0.71813995101)*x[2]
72723            s[2,1,1,0]=(-0.0790321088042)*x[0]
72724            s[2,1,1,1]=(-0.181510921696)*x[1]
72725            s[2,1,1,2]=(0.822016852235)*x[2]
72726            s[2,1,2,0]=(0.634313542034)*x[0]
72727            s[2,1,2,1]=(0.797139044679)*x[1]
72728            s[2,1,2,2]=(0.400542618196)*x[2]
72729            s[2,2,0,0]=(-0.823507870125)*x[0]
72730            s[2,2,0,1]=(0.981256538471)*x[1]
72731            s[2,2,0,2]=(0.158779409645)*x[2]
72732            s[2,2,1,0]=(-0.0788962261172)*x[0]
72733            s[2,2,1,1]=(-0.295903805518)*x[1]
72734            s[2,2,1,2]=(0.338095367799)*x[2]
72735            s[2,2,2,0]=(0.259914616014)*x[0]
72736            s[2,2,2,1]=(-0.935338026316)*x[1]
72737            s[2,2,2,2]=(0.752104609965)*x[2]
72738            s[2,3,0,0]=(0.770409830614)*x[0]
72739            s[2,3,0,1]=(0.827165793631)*x[1]
72740            s[2,3,0,2]=(-0.570252686313)*x[2]
72741            s[2,3,1,0]=(-0.645381957261)*x[0]
72742            s[2,3,1,1]=(-0.547153600936)*x[1]
72743            s[2,3,1,2]=(-0.424301255985)*x[2]
72744            s[2,3,2,0]=(0.938907909024)*x[0]
72745            s[2,3,2,1]=(-0.165860294169)*x[1]
72746            s[2,3,2,2]=(-0.507668918028)*x[2]
72747            s[2,4,0,0]=(0.504198965293)*x[0]
72748            s[2,4,0,1]=(-0.668203518046)*x[1]
72749            s[2,4,0,2]=(0.229406581915)*x[2]
72750            s[2,4,1,0]=(0.454298324734)*x[0]
72751            s[2,4,1,1]=(0.631911737372)*x[1]
72752            s[2,4,1,2]=(-0.849242047895)*x[2]
72753            s[2,4,2,0]=(0.0187819832254)*x[0]
72754            s[2,4,2,1]=(-0.0257470291285)*x[1]
72755            s[2,4,2,2]=(-0.968820620099)*x[2]
72756            s[3,0,0,0]=(0.55579863211)*x[0]
72757            s[3,0,0,1]=(0.830363451819)*x[1]
72758            s[3,0,0,2]=(0.37501906831)*x[2]
72759            s[3,0,1,0]=(-0.609478442879)*x[0]
72760            s[3,0,1,1]=(0.895531311344)*x[1]
72761            s[3,0,1,2]=(0.457055008762)*x[2]
72762            s[3,0,2,0]=(-0.589517607648)*x[0]
72763            s[3,0,2,1]=(-0.840365410994)*x[1]
72764            s[3,0,2,2]=(-0.804004197791)*x[2]
72765            s[3,1,0,0]=(0.231479229381)*x[0]
72766            s[3,1,0,1]=(0.851135131086)*x[1]
72767            s[3,1,0,2]=(-0.558112154058)*x[2]
72768            s[3,1,1,0]=(-0.365328057806)*x[0]
72769            s[3,1,1,1]=(0.665370944345)*x[1]
72770            s[3,1,1,2]=(0.815245254888)*x[2]
72771            s[3,1,2,0]=(-0.622675567594)*x[0]
72772            s[3,1,2,1]=(0.15478575296)*x[1]
72773            s[3,1,2,2]=(-0.919833514628)*x[2]
72774            s[3,2,0,0]=(0.893976278733)*x[0]
72775            s[3,2,0,1]=(-0.881412936262)*x[1]
72776            s[3,2,0,2]=(-0.940014543462)*x[2]
72777            s[3,2,1,0]=(0.310442650776)*x[0]
72778            s[3,2,1,1]=(0.895222325851)*x[1]
72779            s[3,2,1,2]=(0.308995631858)*x[2]
72780            s[3,2,2,0]=(0.0373558936063)*x[0]
72781            s[3,2,2,1]=(-0.0592368839463)*x[1]
72782            s[3,2,2,2]=(0.793681649539)*x[2]
72783            s[3,3,0,0]=(-0.542535013221)*x[0]
72784            s[3,3,0,1]=(0.730645327078)*x[1]
72785            s[3,3,0,2]=(-0.776045858279)*x[2]
72786            s[3,3,1,0]=(-0.657528555613)*x[0]
72787            s[3,3,1,1]=(-0.282142368825)*x[1]
72788            s[3,3,1,2]=(-0.692363751497)*x[2]
72789            s[3,3,2,0]=(-0.168946040457)*x[0]
72790            s[3,3,2,1]=(-0.318493817076)*x[1]
72791            s[3,3,2,2]=(0.535922920691)*x[2]
72792            s[3,4,0,0]=(0.414492782118)*x[0]
72793            s[3,4,0,1]=(0.295207630842)*x[1]
72794            s[3,4,0,2]=(0.453596918765)*x[2]
72795            s[3,4,1,0]=(-0.083655892279)*x[0]
72796            s[3,4,1,1]=(-0.962961908465)*x[1]
72797            s[3,4,1,2]=(0.138455397004)*x[2]
72798            s[3,4,2,0]=(-0.383498097386)*x[0]
72799            s[3,4,2,1]=(0.650869920691)*x[1]
72800            s[3,4,2,2]=(-0.998836301837)*x[2]
72801            ref=sqrt((22.2241672931))
72802    
72803          res=L2(arg)
72804          sub=res.substitute({arg:s})
72805          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
72806          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
72807          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
72808       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
72809       def test_L2_onFunctionOnBoundary_fromData_rank0(self):
72810          """
72811          tests L2-norm of Data on the FunctionOnBoundary
72812    
72813          assumptions: self.domain supports integration on FunctionOnBoundary
72814          """
72815          dim=self.domain.getDim()
72816          w=FunctionOnBoundary(self.domain)
72817          x=w.getX()
72818          if dim==2:
72819            arg=Data(0,(),w)
72820            arg=(-0.245574919477)*x[0]
72821            ref=sqrt((0.0603070410759)*(2.*dim+1.)/3.)
72822    
72823          else:
72824            arg=Data(0,(),w)
72825            arg=(0.757324521515)*x[0]
72826            ref=sqrt((0.573540430888)*(2.*dim+1.)/3.)
72827    
72828          res=L2(arg)
72829          self.failUnless(isinstance(res,float),"wrong type of result.")
72830          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
72831       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
72832       def test_L2_onFunctionOnBoundary_fromData_rank1(self):
72833          """
72834          tests L2-norm of Data on the FunctionOnBoundary
72835    
72836          assumptions: self.domain supports integration on FunctionOnBoundary
72837          """
72838          dim=self.domain.getDim()
72839          w=FunctionOnBoundary(self.domain)
72840          x=w.getX()
72841          if dim==2:
72842            arg=Data(0,(2,),w)
72843            arg[0]=(0.723421565407)*x[0]
72844            arg[1]=(-0.460477393103)*x[1]
72845            ref=sqrt((0.735378190855)*(2.*dim+1.)/3.)
72846    
72847          else:
72848            arg=Data(0,(3,),w)
72849            arg[0]=(-0.88528497163)*x[0]
72850            arg[1]=(-0.65510214636)*x[1]
72851            arg[2]=(0.399538866363)*x[2]
72852            ref=sqrt((1.37251960889)*(2.*dim+1.)/3.)
72853    
72854          res=L2(arg)
72855          self.failUnless(isinstance(res,float),"wrong type of result.")
72856          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
72857       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
72858       def test_L2_onFunctionOnBoundary_fromData_rank2(self):
72859          """
72860          tests L2-norm of Data on the FunctionOnBoundary
72861    
72862          assumptions: self.domain supports integration on FunctionOnBoundary
72863          """
72864          dim=self.domain.getDim()
72865          w=FunctionOnBoundary(self.domain)
72866          x=w.getX()
72867          if dim==2:
72868            arg=Data(0,(4, 2),w)
72869            arg[0,0]=(0.955620993904)*x[0]
72870            arg[0,1]=(-0.0987865813703)*x[1]
72871            arg[1,0]=(0.0288267231531)*x[0]
72872            arg[1,1]=(0.655440599879)*x[1]
72873            arg[2,0]=(0.685627284533)*x[0]
72874            arg[2,1]=(-0.989832824892)*x[1]
72875            arg[3,0]=(0.292184093194)*x[0]
72876            arg[3,1]=(0.149553857773)*x[1]
72877            ref=sqrt((2.91099532781)*(2.*dim+1.)/3.)
72878    
72879          else:
72880            arg=Data(0,(4, 3),w)
72881            arg[0,0]=(-0.325908541533)*x[0]
72882            arg[0,1]=(-0.992480479749)*x[1]
72883            arg[0,2]=(0.660360271799)*x[2]
72884            arg[1,0]=(0.173485908581)*x[0]
72885            arg[1,1]=(-0.328755199781)*x[1]
72886            arg[1,2]=(-0.943354674948)*x[2]
72887            arg[2,0]=(0.680713222646)*x[0]
72888            arg[2,1]=(-0.765971835693)*x[1]
72889            arg[2,2]=(0.0413284847528)*x[2]
72890            arg[3,0]=(0.990074004708)*x[0]
72891            arg[3,1]=(0.941801786766)*x[1]
72892            arg[3,2]=(0.886926192201)*x[2]
72893            ref=sqrt((6.26107155228)*(2.*dim+1.)/3.)
72894    
72895          res=L2(arg)
72896          self.failUnless(isinstance(res,float),"wrong type of result.")
72897          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
72898       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
72899       def test_L2_onFunctionOnBoundary_fromData_rank3(self):
72900          """
72901          tests L2-norm of Data on the FunctionOnBoundary
72902    
72903          assumptions: self.domain supports integration on FunctionOnBoundary
72904          """
72905          dim=self.domain.getDim()
72906          w=FunctionOnBoundary(self.domain)
72907          x=w.getX()
72908          if dim==2:
72909            arg=Data(0,(6, 2, 2),w)
72910            arg[0,0,0]=(-0.0781611551598)*x[0]
72911            arg[0,0,1]=(0.291016249575)*x[1]
72912            arg[0,1,0]=(-0.107555233086)*x[0]
72913            arg[0,1,1]=(-0.559067108546)*x[1]
72914            arg[1,0,0]=(-0.0818406701266)*x[0]
72915            arg[1,0,1]=(-0.594866806483)*x[1]
72916            arg[1,1,0]=(-0.725814803863)*x[0]
72917            arg[1,1,1]=(0.59128101992)*x[1]
72918            arg[2,0,0]=(-0.15381555291)*x[0]
72919            arg[2,0,1]=(-0.679882948503)*x[1]
72920            arg[2,1,0]=(-0.58437193917)*x[0]
72921            arg[2,1,1]=(0.136304615849)*x[1]
72922            arg[3,0,0]=(0.0671365410096)*x[0]
72923            arg[3,0,1]=(-0.645687212187)*x[1]
72924            arg[3,1,0]=(-0.642492412392)*x[0]
72925            arg[3,1,1]=(-0.125760054735)*x[1]
72926            arg[4,0,0]=(0.731110824794)*x[0]
72927            arg[4,0,1]=(0.491668422979)*x[1]
72928            arg[4,1,0]=(-0.775841478292)*x[0]
72929            arg[4,1,1]=(0.728265567974)*x[1]
72930            arg[5,0,0]=(0.84511832373)*x[0]
72931            arg[5,0,1]=(-0.513796801068)*x[1]
72932            arg[5,1,0]=(0.113072243554)*x[0]
72933            arg[5,1,1]=(0.246630838744)*x[1]
72934            ref=sqrt((6.30829536252)*(2.*dim+1.)/3.)
72935    
72936          else:
72937            arg=Data(0,(6, 2, 3),w)
72938            arg[0,0,0]=(0.369748116859)*x[0]
72939            arg[0,0,1]=(-0.758056560031)*x[1]
72940            arg[0,0,2]=(-0.873984709951)*x[2]
72941            arg[0,1,0]=(0.311680165784)*x[0]
72942            arg[0,1,1]=(0.374400673651)*x[1]
72943            arg[0,1,2]=(0.712484217076)*x[2]
72944            arg[1,0,0]=(0.829379714484)*x[0]
72945            arg[1,0,1]=(-0.0551589596149)*x[1]
72946            arg[1,0,2]=(0.965672208426)*x[2]
72947            arg[1,1,0]=(-0.205044281547)*x[0]
72948            arg[1,1,1]=(0.238197452756)*x[1]
72949            arg[1,1,2]=(-0.33456139292)*x[2]
72950            arg[2,0,0]=(0.649928288926)*x[0]
72951            arg[2,0,1]=(-0.661384953389)*x[1]
72952            arg[2,0,2]=(-0.253241222975)*x[2]
72953            arg[2,1,0]=(-0.491716575992)*x[0]
72954            arg[2,1,1]=(-0.970872527468)*x[1]
72955            arg[2,1,2]=(0.222410198921)*x[2]
72956            arg[3,0,0]=(0.205752630262)*x[0]
72957            arg[3,0,1]=(0.864804362697)*x[1]
72958            arg[3,0,2]=(-0.417975564033)*x[2]
72959            arg[3,1,0]=(0.586425694033)*x[0]
72960            arg[3,1,1]=(0.952661122184)*x[1]
72961            arg[3,1,2]=(0.608680080453)*x[2]
72962            arg[4,0,0]=(0.625968903369)*x[0]
72963            arg[4,0,1]=(-0.573909405003)*x[1]
72964            arg[4,0,2]=(-0.762256394595)*x[2]
72965            arg[4,1,0]=(0.0710742394418)*x[0]
72966            arg[4,1,1]=(0.583378040574)*x[1]
72967            arg[4,1,2]=(0.719032893115)*x[2]
72968            arg[5,0,0]=(0.032173368884)*x[0]
72969            arg[5,0,1]=(-0.434042549492)*x[1]
72970            arg[5,0,2]=(0.363504765447)*x[2]
72971            arg[5,1,0]=(0.598817469198)*x[0]
72972            arg[5,1,1]=(-0.163967008775)*x[1]
72973            arg[5,1,2]=(0.546778730604)*x[2]
72974            ref=sqrt((11.9696343123)*(2.*dim+1.)/3.)
72975    
72976          res=L2(arg)
72977          self.failUnless(isinstance(res,float),"wrong type of result.")
72978          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
72979       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
72980       def test_L2_onFunctionOnBoundary_fromData_rank4(self):
72981          """
72982          tests L2-norm of Data on the FunctionOnBoundary
72983    
72984          assumptions: self.domain supports integration on FunctionOnBoundary
72985          """
72986          dim=self.domain.getDim()
72987          w=FunctionOnBoundary(self.domain)
72988          x=w.getX()
72989          if dim==2:
72990            arg=Data(0,(4, 5, 3, 2),w)
72991            arg[0,0,0,0]=(-0.273446520069)*x[0]
72992            arg[0,0,0,1]=(-0.913305910831)*x[1]
72993            arg[0,0,1,0]=(0.0745566747537)*x[0]
72994            arg[0,0,1,1]=(0.98803601919)*x[1]
72995            arg[0,0,2,0]=(-0.244120818875)*x[0]
72996            arg[0,0,2,1]=(0.247509644998)*x[1]
72997            arg[0,1,0,0]=(-0.548756417777)*x[0]
72998            arg[0,1,0,1]=(-0.354587911923)*x[1]
72999            arg[0,1,1,0]=(0.104268198867)*x[0]
73000            arg[0,1,1,1]=(-0.541700877072)*x[1]
73001            arg[0,1,2,0]=(-0.25900060689)*x[0]
73002            arg[0,1,2,1]=(-0.859660175231)*x[1]
73003            arg[0,2,0,0]=(0.195235560321)*x[0]
73004            arg[0,2,0,1]=(0.175518738589)*x[1]
73005            arg[0,2,1,0]=(-0.0638854232272)*x[0]
73006            arg[0,2,1,1]=(-0.586161016541)*x[1]
73007            arg[0,2,2,0]=(0.580258892247)*x[0]
73008            arg[0,2,2,1]=(-0.931927145435)*x[1]
73009            arg[0,3,0,0]=(-0.408209600298)*x[0]
73010            arg[0,3,0,1]=(-0.0344882667014)*x[1]
73011            arg[0,3,1,0]=(-0.131763534163)*x[0]
73012            arg[0,3,1,1]=(-0.787653739965)*x[1]
73013            arg[0,3,2,0]=(0.0910808104711)*x[0]
73014            arg[0,3,2,1]=(-0.280409023611)*x[1]
73015            arg[0,4,0,0]=(0.97745754012)*x[0]
73016            arg[0,4,0,1]=(-0.59829020936)*x[1]
73017            arg[0,4,1,0]=(0.890520260543)*x[0]
73018            arg[0,4,1,1]=(-0.600760090231)*x[1]
73019            arg[0,4,2,0]=(-0.897992297974)*x[0]
73020            arg[0,4,2,1]=(-0.841169898923)*x[1]
73021            arg[1,0,0,0]=(-0.249868816409)*x[0]
73022            arg[1,0,0,1]=(0.620375082228)*x[1]
73023            arg[1,0,1,0]=(-0.660480789306)*x[0]
73024            arg[1,0,1,1]=(-0.73638571806)*x[1]
73025            arg[1,0,2,0]=(0.339987316643)*x[0]
73026            arg[1,0,2,1]=(0.541112529894)*x[1]
73027            arg[1,1,0,0]=(-0.468808186705)*x[0]
73028            arg[1,1,0,1]=(-0.32919679792)*x[1]
73029            arg[1,1,1,0]=(0.917292803419)*x[0]
73030            arg[1,1,1,1]=(-0.834265058005)*x[1]
73031            arg[1,1,2,0]=(-0.247536849264)*x[0]
73032            arg[1,1,2,1]=(-0.197503469238)*x[1]
73033            arg[1,2,0,0]=(0.897591919909)*x[0]
73034            arg[1,2,0,1]=(-0.807446231234)*x[1]
73035            arg[1,2,1,0]=(-0.369878499382)*x[0]
73036            arg[1,2,1,1]=(0.985678692179)*x[1]
73037            arg[1,2,2,0]=(-0.709976427525)*x[0]
73038            arg[1,2,2,1]=(-0.368744647016)*x[1]
73039            arg[1,3,0,0]=(0.299630726462)*x[0]
73040            arg[1,3,0,1]=(-0.445295757899)*x[1]
73041            arg[1,3,1,0]=(-0.922386577254)*x[0]
73042            arg[1,3,1,1]=(0.234794853697)*x[1]
73043            arg[1,3,2,0]=(0.953377720197)*x[0]
73044            arg[1,3,2,1]=(0.409778183998)*x[1]
73045            arg[1,4,0,0]=(0.271967945488)*x[0]
73046            arg[1,4,0,1]=(-0.578629001202)*x[1]
73047            arg[1,4,1,0]=(0.210755226769)*x[0]
73048            arg[1,4,1,1]=(-0.0902751419945)*x[1]
73049            arg[1,4,2,0]=(0.70033387381)*x[0]
73050            arg[1,4,2,1]=(0.305733565661)*x[1]
73051            arg[2,0,0,0]=(-0.662483167298)*x[0]
73052            arg[2,0,0,1]=(0.585252048652)*x[1]
73053            arg[2,0,1,0]=(-0.398813785959)*x[0]
73054            arg[2,0,1,1]=(-0.797438697186)*x[1]
73055            arg[2,0,2,0]=(-0.508308971009)*x[0]
73056            arg[2,0,2,1]=(0.302249407524)*x[1]
73057            arg[2,1,0,0]=(0.208644491879)*x[0]
73058            arg[2,1,0,1]=(-0.604749055374)*x[1]
73059            arg[2,1,1,0]=(0.641654284594)*x[0]
73060            arg[2,1,1,1]=(0.456898593356)*x[1]
73061            arg[2,1,2,0]=(-0.398043867778)*x[0]
73062            arg[2,1,2,1]=(-0.0712344657587)*x[1]
73063            arg[2,2,0,0]=(0.0967860954865)*x[0]
73064            arg[2,2,0,1]=(0.520449905952)*x[1]
73065            arg[2,2,1,0]=(0.770198029595)*x[0]
73066            arg[2,2,1,1]=(-0.594004671621)*x[1]
73067            arg[2,2,2,0]=(-0.744571452885)*x[0]
73068            arg[2,2,2,1]=(0.544447367825)*x[1]
73069            arg[2,3,0,0]=(-0.137087966968)*x[0]
73070            arg[2,3,0,1]=(0.120672667497)*x[1]
73071            arg[2,3,1,0]=(0.204800088057)*x[0]
73072            arg[2,3,1,1]=(0.626526346076)*x[1]
73073            arg[2,3,2,0]=(-0.696480393227)*x[0]
73074            arg[2,3,2,1]=(0.188533741996)*x[1]
73075            arg[2,4,0,0]=(-0.403523821067)*x[0]
73076            arg[2,4,0,1]=(-0.428048989483)*x[1]
73077            arg[2,4,1,0]=(-0.244186366584)*x[0]
73078            arg[2,4,1,1]=(0.00866444909003)*x[1]
73079            arg[2,4,2,0]=(-0.445991308853)*x[0]
73080            arg[2,4,2,1]=(-0.899951068935)*x[1]
73081            arg[3,0,0,0]=(0.609340085418)*x[0]
73082            arg[3,0,0,1]=(0.878750391425)*x[1]
73083            arg[3,0,1,0]=(0.258064654464)*x[0]
73084            arg[3,0,1,1]=(-0.482402612985)*x[1]
73085            arg[3,0,2,0]=(0.943732283389)*x[0]
73086            arg[3,0,2,1]=(0.65514211843)*x[1]
73087            arg[3,1,0,0]=(-0.894551979619)*x[0]
73088            arg[3,1,0,1]=(0.220116541042)*x[1]
73089            arg[3,1,1,0]=(0.386887699577)*x[0]
73090            arg[3,1,1,1]=(-0.422560075108)*x[1]
73091            arg[3,1,2,0]=(0.00387273783493)*x[0]
73092            arg[3,1,2,1]=(0.465673505613)*x[1]
73093            arg[3,2,0,0]=(0.987383428982)*x[0]
73094            arg[3,2,0,1]=(0.376320055964)*x[1]
73095            arg[3,2,1,0]=(-0.463778689128)*x[0]
73096            arg[3,2,1,1]=(0.179816566227)*x[1]
73097            arg[3,2,2,0]=(0.961522856801)*x[0]
73098            arg[3,2,2,1]=(-0.257779627946)*x[1]
73099            arg[3,3,0,0]=(0.748886531458)*x[0]
73100            arg[3,3,0,1]=(-0.257342282566)*x[1]
73101            arg[3,3,1,0]=(0.377494024401)*x[0]
73102            arg[3,3,1,1]=(-0.334588346017)*x[1]
73103            arg[3,3,2,0]=(0.502495149189)*x[0]
73104            arg[3,3,2,1]=(0.534612429702)*x[1]
73105            arg[3,4,0,0]=(-0.308551337355)*x[0]
73106            arg[3,4,0,1]=(-0.471825826745)*x[1]
73107            arg[3,4,1,0]=(-0.262606531584)*x[0]
73108            arg[3,4,1,1]=(0.766089616367)*x[1]
73109            arg[3,4,2,0]=(-0.136526755642)*x[0]
73110            arg[3,4,2,1]=(0.675111459363)*x[1]
73111            ref=sqrt((37.3453550914)*(2.*dim+1.)/3.)
73112    
73113          else:
73114            arg=Data(0,(4, 5, 3, 3),w)
73115            arg[0,0,0,0]=(0.532946231146)*x[0]
73116            arg[0,0,0,1]=(0.269364089513)*x[1]
73117            arg[0,0,0,2]=(-0.207412457081)*x[2]
73118            arg[0,0,1,0]=(-0.843104704858)*x[0]
73119            arg[0,0,1,1]=(0.0416216508473)*x[1]
73120            arg[0,0,1,2]=(-0.836074693662)*x[2]
73121            arg[0,0,2,0]=(0.943609268731)*x[0]
73122            arg[0,0,2,1]=(0.0154543737816)*x[1]
73123            arg[0,0,2,2]=(0.0726268788381)*x[2]
73124            arg[0,1,0,0]=(0.108422740078)*x[0]
73125            arg[0,1,0,1]=(-0.296667916638)*x[1]
73126            arg[0,1,0,2]=(-0.769732600535)*x[2]
73127            arg[0,1,1,0]=(-0.428575493834)*x[0]
73128            arg[0,1,1,1]=(0.421245456722)*x[1]
73129            arg[0,1,1,2]=(-0.588277652277)*x[2]
73130            arg[0,1,2,0]=(0.145294576795)*x[0]
73131            arg[0,1,2,1]=(0.323206623794)*x[1]
73132            arg[0,1,2,2]=(0.788115602892)*x[2]
73133            arg[0,2,0,0]=(-0.227877282292)*x[0]
73134            arg[0,2,0,1]=(-0.630647460719)*x[1]
73135            arg[0,2,0,2]=(0.58754882135)*x[2]
73136            arg[0,2,1,0]=(0.347191113403)*x[0]
73137            arg[0,2,1,1]=(0.464093634725)*x[1]
73138            arg[0,2,1,2]=(-0.0412800774497)*x[2]
73139            arg[0,2,2,0]=(0.223364317185)*x[0]
73140            arg[0,2,2,1]=(0.257201130157)*x[1]
73141            arg[0,2,2,2]=(0.063203467463)*x[2]
73142            arg[0,3,0,0]=(-0.723240451643)*x[0]
73143            arg[0,3,0,1]=(-0.862468295097)*x[1]
73144            arg[0,3,0,2]=(-0.149283247587)*x[2]
73145            arg[0,3,1,0]=(0.15680097839)*x[0]
73146            arg[0,3,1,1]=(0.421563637547)*x[1]
73147            arg[0,3,1,2]=(0.111549188549)*x[2]
73148            arg[0,3,2,0]=(-0.272783329363)*x[0]
73149            arg[0,3,2,1]=(-0.420352789853)*x[1]
73150            arg[0,3,2,2]=(0.570865117722)*x[2]
73151            arg[0,4,0,0]=(-0.321910078414)*x[0]
73152            arg[0,4,0,1]=(0.988695599439)*x[1]
73153            arg[0,4,0,2]=(0.920200893398)*x[2]
73154            arg[0,4,1,0]=(0.0260910072651)*x[0]
73155            arg[0,4,1,1]=(0.460012578184)*x[1]
73156            arg[0,4,1,2]=(0.848099524112)*x[2]
73157            arg[0,4,2,0]=(0.242157803251)*x[0]
73158            arg[0,4,2,1]=(0.394528777004)*x[1]
73159            arg[0,4,2,2]=(0.562996837311)*x[2]
73160            arg[1,0,0,0]=(0.459886225958)*x[0]
73161            arg[1,0,0,1]=(-0.721868942003)*x[1]
73162            arg[1,0,0,2]=(0.432203082994)*x[2]
73163            arg[1,0,1,0]=(0.409831045482)*x[0]
73164            arg[1,0,1,1]=(-0.481677513473)*x[1]
73165            arg[1,0,1,2]=(0.439387853437)*x[2]
73166            arg[1,0,2,0]=(0.261583198434)*x[0]
73167            arg[1,0,2,1]=(0.290993423577)*x[1]
73168            arg[1,0,2,2]=(0.477993114134)*x[2]
73169            arg[1,1,0,0]=(0.586344598248)*x[0]
73170            arg[1,1,0,1]=(-0.105390792831)*x[1]
73171            arg[1,1,0,2]=(0.335990751314)*x[2]
73172            arg[1,1,1,0]=(-0.191500562856)*x[0]
73173            arg[1,1,1,1]=(0.244514598216)*x[1]
73174            arg[1,1,1,2]=(-0.804402720669)*x[2]
73175            arg[1,1,2,0]=(-0.455225710648)*x[0]
73176            arg[1,1,2,1]=(-0.505052700585)*x[1]
73177            arg[1,1,2,2]=(-0.0240295199362)*x[2]
73178            arg[1,2,0,0]=(-0.718487964893)*x[0]
73179            arg[1,2,0,1]=(-0.0899522570462)*x[1]
73180            arg[1,2,0,2]=(-0.293353754696)*x[2]
73181            arg[1,2,1,0]=(-0.180013826342)*x[0]
73182            arg[1,2,1,1]=(0.793689231922)*x[1]
73183            arg[1,2,1,2]=(0.673066555571)*x[2]
73184            arg[1,2,2,0]=(0.705362155032)*x[0]
73185            arg[1,2,2,1]=(0.54476742883)*x[1]
73186            arg[1,2,2,2]=(-0.331195064878)*x[2]
73187            arg[1,3,0,0]=(-0.360927441647)*x[0]
73188            arg[1,3,0,1]=(0.230772030282)*x[1]
73189            arg[1,3,0,2]=(0.912342489431)*x[2]
73190            arg[1,3,1,0]=(-0.817510690014)*x[0]
73191            arg[1,3,1,1]=(0.397583721353)*x[1]
73192            arg[1,3,1,2]=(-0.982551067917)*x[2]
73193            arg[1,3,2,0]=(0.86380240427)*x[0]
73194            arg[1,3,2,1]=(-0.415018976841)*x[1]
73195            arg[1,3,2,2]=(0.271582572267)*x[2]
73196            arg[1,4,0,0]=(0.252845347406)*x[0]
73197            arg[1,4,0,1]=(0.687786802906)*x[1]
73198            arg[1,4,0,2]=(0.465501171342)*x[2]
73199            arg[1,4,1,0]=(-0.613703721675)*x[0]
73200            arg[1,4,1,1]=(-0.110297640533)*x[1]
73201            arg[1,4,1,2]=(-0.836768056501)*x[2]
73202            arg[1,4,2,0]=(-0.0400898232224)*x[0]
73203            arg[1,4,2,1]=(0.0358172759009)*x[1]
73204            arg[1,4,2,2]=(-0.335751455408)*x[2]
73205            arg[2,0,0,0]=(-0.309992915015)*x[0]
73206            arg[2,0,0,1]=(-0.721404217867)*x[1]
73207            arg[2,0,0,2]=(-0.548000635629)*x[2]
73208            arg[2,0,1,0]=(0.651175831531)*x[0]
73209            arg[2,0,1,1]=(0.158960783491)*x[1]
73210            arg[2,0,1,2]=(-0.310676926155)*x[2]
73211            arg[2,0,2,0]=(-0.122289734411)*x[0]
73212            arg[2,0,2,1]=(-0.252405938421)*x[1]
73213            arg[2,0,2,2]=(-0.938280244213)*x[2]
73214            arg[2,1,0,0]=(0.559495801686)*x[0]
73215            arg[2,1,0,1]=(-0.547182622716)*x[1]
73216            arg[2,1,0,2]=(0.397441517898)*x[2]
73217            arg[2,1,1,0]=(-0.406112472071)*x[0]
73218            arg[2,1,1,1]=(0.355063810677)*x[1]
73219            arg[2,1,1,2]=(0.760400203215)*x[2]
73220            arg[2,1,2,0]=(0.992201320481)*x[0]
73221            arg[2,1,2,1]=(0.0580660882576)*x[1]
73222            arg[2,1,2,2]=(-0.643170879939)*x[2]
73223            arg[2,2,0,0]=(-0.280644461832)*x[0]
73224            arg[2,2,0,1]=(-0.0467430285531)*x[1]
73225            arg[2,2,0,2]=(0.314050593255)*x[2]
73226            arg[2,2,1,0]=(-0.230032618609)*x[0]
73227            arg[2,2,1,1]=(0.0996058698273)*x[1]
73228            arg[2,2,1,2]=(-0.0270266073208)*x[2]
73229            arg[2,2,2,0]=(0.767914132956)*x[0]
73230            arg[2,2,2,1]=(0.496930363612)*x[1]
73231            arg[2,2,2,2]=(-0.599525033616)*x[2]
73232            arg[2,3,0,0]=(-0.326433376073)*x[0]
73233            arg[2,3,0,1]=(-0.0366374501025)*x[1]
73234            arg[2,3,0,2]=(0.22555705749)*x[2]
73235            arg[2,3,1,0]=(-0.162548813895)*x[0]
73236            arg[2,3,1,1]=(-0.110074212194)*x[1]
73237            arg[2,3,1,2]=(-0.143600895553)*x[2]
73238            arg[2,3,2,0]=(0.771148880174)*x[0]
73239            arg[2,3,2,1]=(0.112528116552)*x[1]
73240            arg[2,3,2,2]=(-0.955735294341)*x[2]
73241            arg[2,4,0,0]=(-0.968392951034)*x[0]
73242            arg[2,4,0,1]=(-0.36901708507)*x[1]
73243            arg[2,4,0,2]=(0.283692515492)*x[2]
73244            arg[2,4,1,0]=(0.997238032837)*x[0]
73245            arg[2,4,1,1]=(-0.625794124653)*x[1]
73246            arg[2,4,1,2]=(0.533386027556)*x[2]
73247            arg[2,4,2,0]=(0.977311695557)*x[0]
73248            arg[2,4,2,1]=(0.693009976689)*x[1]
73249            arg[2,4,2,2]=(0.711179347652)*x[2]
73250            arg[3,0,0,0]=(-0.155585788931)*x[0]
73251            arg[3,0,0,1]=(0.0228078851234)*x[1]
73252            arg[3,0,0,2]=(0.510104938032)*x[2]
73253            arg[3,0,1,0]=(0.74865995369)*x[0]
73254            arg[3,0,1,1]=(0.672153736284)*x[1]
73255            arg[3,0,1,2]=(0.588012355098)*x[2]
73256            arg[3,0,2,0]=(-0.924508475715)*x[0]
73257            arg[3,0,2,1]=(-0.392784674758)*x[1]
73258            arg[3,0,2,2]=(-0.36371454642)*x[2]
73259            arg[3,1,0,0]=(-0.709783490337)*x[0]
73260            arg[3,1,0,1]=(0.844136172222)*x[1]
73261            arg[3,1,0,2]=(0.621011730043)*x[2]
73262            arg[3,1,1,0]=(0.428807337181)*x[0]
73263            arg[3,1,1,1]=(0.126300214574)*x[1]
73264            arg[3,1,1,2]=(0.795972806221)*x[2]
73265            arg[3,1,2,0]=(-0.252334324004)*x[0]
73266            arg[3,1,2,1]=(-0.722829467938)*x[1]
73267            arg[3,1,2,2]=(-0.551540062366)*x[2]
73268            arg[3,2,0,0]=(-0.134668475963)*x[0]
73269            arg[3,2,0,1]=(-0.598747540536)*x[1]
73270            arg[3,2,0,2]=(0.426422436624)*x[2]
73271            arg[3,2,1,0]=(-0.363050323762)*x[0]
73272            arg[3,2,1,1]=(0.980891457977)*x[1]
73273            arg[3,2,1,2]=(0.162831912555)*x[2]
73274            arg[3,2,2,0]=(-0.126505493475)*x[0]
73275            arg[3,2,2,1]=(-0.578567864811)*x[1]
73276            arg[3,2,2,2]=(-0.509843129095)*x[2]
73277            arg[3,3,0,0]=(-0.446171262265)*x[0]
73278            arg[3,3,0,1]=(-0.715175197494)*x[1]
73279            arg[3,3,0,2]=(-0.881016888806)*x[2]
73280            arg[3,3,1,0]=(-0.942020866327)*x[0]
73281            arg[3,3,1,1]=(0.156434646828)*x[1]
73282            arg[3,3,1,2]=(0.523624761583)*x[2]
73283            arg[3,3,2,0]=(-0.683550923926)*x[0]
73284            arg[3,3,2,1]=(0.857075218033)*x[1]
73285            arg[3,3,2,2]=(0.297672594023)*x[2]
73286            arg[3,4,0,0]=(0.74317121113)*x[0]
73287            arg[3,4,0,1]=(0.076464540756)*x[1]
73288            arg[3,4,0,2]=(0.781965468281)*x[2]
73289            arg[3,4,1,0]=(0.417750169098)*x[0]
73290            arg[3,4,1,1]=(0.82275428729)*x[1]
73291            arg[3,4,1,2]=(0.919072321093)*x[2]
73292            arg[3,4,2,0]=(-0.0246706472217)*x[0]
73293            arg[3,4,2,1]=(0.179863245513)*x[1]
73294            arg[3,4,2,2]=(0.539115287766)*x[2]
73295            ref=sqrt((52.492676775)*(2.*dim+1.)/3.)
73296    
73297          res=L2(arg)
73298          self.failUnless(isinstance(res,float),"wrong type of result.")
73299          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
73300       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
73301       def test_L2_onFunctionOnBoundary_fromSymbol_rank0(self):
73302          """
73303          tests L2-norm of Symbol on the FunctionOnBoundary
73304    
73305          assumptions: self.domain supports integration on FunctionOnBoundary
73306          """
73307          dim=self.domain.getDim()
73308          w=FunctionOnBoundary(self.domain)
73309          x=w.getX()
73310          if dim==2:
73311            arg=Symbol(shape=(),dim=dim)
73312            s=Data(0,(),w)
73313            s=(0.0248400067683)*x[0]
73314            ref=sqrt((0.000617025936249)*(2.*dim+1.)/3.)
73315    
73316          else:
73317            arg=Symbol(shape=(),dim=dim)
73318            s=Data(0,(),w)
73319            s=(-0.48069197083)*x[0]
73320            ref=sqrt((0.23106477082)*(2.*dim+1.)/3.)
73321    
73322          res=L2(arg)
73323          sub=res.substitute({arg:s})
73324          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
73325          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
73326          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
73327       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
73328       def test_L2_onFunctionOnBoundary_fromSymbol_rank1(self):
73329          """
73330          tests L2-norm of Symbol on the FunctionOnBoundary
73331    
73332          assumptions: self.domain supports integration on FunctionOnBoundary
73333          """
73334          dim=self.domain.getDim()
73335          w=FunctionOnBoundary(self.domain)
73336          x=w.getX()
73337          if dim==2:
73338            arg=Symbol(shape=(2,),dim=dim)
73339            s=Data(0,(2,),w)
73340            s[0]=(0.541099842991)*x[0]
73341            s[1]=(0.123212139947)*x[1]
73342            ref=sqrt((0.307970271515)*(2.*dim+1.)/3.)
73343    
73344          else:
73345            arg=Symbol(shape=(3,),dim=dim)
73346            s=Data(0,(3,),w)
73347            s[0]=(-0.74011573744)*x[0]
73348            s[1]=(0.63543826621)*x[1]
73349            s[2]=(-0.210366750156)*x[2]
73350            ref=sqrt((0.995807264541)*(2.*dim+1.)/3.)
73351    
73352          res=L2(arg)
73353          sub=res.substitute({arg:s})
73354          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
73355          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
73356          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
73357       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
73358       def test_L2_onFunctionOnBoundary_fromSymbol_rank2(self):
73359          """
73360          tests L2-norm of Symbol on the FunctionOnBoundary
73361    
73362          assumptions: self.domain supports integration on FunctionOnBoundary
73363          """
73364          dim=self.domain.getDim()
73365          w=FunctionOnBoundary(self.domain)
73366          x=w.getX()
73367          if dim==2:
73368            arg=Symbol(shape=(4, 2),dim=dim)
73369            s=Data(0,(4, 2),w)
73370            s[0,0]=(-0.324596599761)*x[0]
73371            s[0,1]=(0.456181444086)*x[1]
73372            s[1,0]=(-0.85366968746)*x[0]
73373            s[1,1]=(-0.984222055109)*x[1]
73374            s[2,0]=(0.302615209563)*x[0]
73375            s[2,1]=(-0.259853865003)*x[1]
73376            s[3,0]=(-0.2851901062)*x[0]
73377            s[3,1]=(0.790097073483)*x[1]
73378            ref=sqrt((2.87559622997)*(2.*dim+1.)/3.)
73379    
73380          else:
73381            arg=Symbol(shape=(4, 3),dim=dim)
73382            s=Data(0,(4, 3),w)
73383            s[0,0]=(0.806171559469)*x[0]
73384            s[0,1]=(0.734186538041)*x[1]
73385            s[0,2]=(0.376885565623)*x[2]
73386            s[1,0]=(-0.168339360861)*x[0]
73387            s[1,1]=(-0.184538096909)*x[1]
73388            s[1,2]=(-0.649204637511)*x[2]
73389            s[2,0]=(0.0187762580033)*x[0]
73390            s[2,1]=(-0.851287373276)*x[1]
73391            s[2,2]=(0.84351620048)*x[2]
73392            s[3,0]=(0.759367087847)*x[0]
73393            s[3,1]=(-0.418326808815)*x[1]
73394            s[3,2]=(0.207925273666)*x[2]
73395            ref=sqrt((4.04627522925)*(2.*dim+1.)/3.)
73396    
73397          res=L2(arg)
73398          sub=res.substitute({arg:s})
73399          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
73400          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
73401          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
73402       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
73403       def test_L2_onFunctionOnBoundary_fromSymbol_rank3(self):
73404          """
73405          tests L2-norm of Symbol on the FunctionOnBoundary
73406    
73407          assumptions: self.domain supports integration on FunctionOnBoundary
73408          """
73409          dim=self.domain.getDim()
73410          w=FunctionOnBoundary(self.domain)
73411          x=w.getX()
73412          if dim==2:
73413            arg=Symbol(shape=(6, 2, 2),dim=dim)
73414            s=Data(0,(6, 2, 2),w)
73415            s[0,0,0]=(0.656602395169)*x[0]
73416            s[0,0,1]=(-0.153988287938)*x[1]
73417            s[0,1,0]=(-0.911070962892)*x[0]
73418            s[0,1,1]=(0.734617382897)*x[1]
73419            s[1,0,0]=(0.708777892683)*x[0]
73420            s[1,0,1]=(0.407403464363)*x[1]
73421            s[1,1,0]=(-0.73004005055)*x[0]
73422            s[1,1,1]=(0.108502620047)*x[1]
73423            s[2,0,0]=(0.584913648885)*x[0]
73424            s[2,0,1]=(0.655698697233)*x[1]
73425            s[2,1,0]=(0.504301542359)*x[0]
73426            s[2,1,1]=(-0.637819233396)*x[1]
73427            s[3,0,0]=(0.395391847846)*x[0]
73428            s[3,0,1]=(-0.136070177387)*x[1]
73429            s[3,1,0]=(0.77444662439)*x[0]
73430            s[3,1,1]=(0.245316754174)*x[1]
73431            s[4,0,0]=(0.542716832119)*x[0]
73432            s[4,0,1]=(0.0202895164815)*x[1]
73433            s[4,1,0]=(0.922586929777)*x[0]
73434            s[4,1,1]=(-0.948487993154)*x[1]
73435            s[5,0,0]=(0.629779082528)*x[0]
73436            s[5,0,1]=(-0.90719864412)*x[1]
73437            s[5,1,0]=(-0.29521666306)*x[0]
73438            s[5,1,1]=(-0.431748113769)*x[1]
73439            ref=sqrt((8.84456266856)*(2.*dim+1.)/3.)
73440    
73441          else:
73442            arg=Symbol(shape=(6, 2, 3),dim=dim)
73443            s=Data(0,(6, 2, 3),w)
73444            s[0,0,0]=(0.529698924744)*x[0]
73445            s[0,0,1]=(0.779440018368)*x[1]
73446            s[0,0,2]=(-0.447704804318)*x[2]
73447            s[0,1,0]=(0.375433500828)*x[0]
73448            s[0,1,1]=(-0.567989496415)*x[1]
73449            s[0,1,2]=(-0.47133957857)*x[2]
73450            s[1,0,0]=(0.379156720923)*x[0]
73451            s[1,0,1]=(-0.629670565361)*x[1]
73452            s[1,0,2]=(0.814298387366)*x[2]
73453            s[1,1,0]=(-0.482876103672)*x[0]
73454            s[1,1,1]=(-0.592362629566)*x[1]
73455            s[1,1,2]=(0.368859438611)*x[2]
73456            s[2,0,0]=(0.145060478226)*x[0]
73457            s[2,0,1]=(-0.582989521856)*x[1]
73458            s[2,0,2]=(-0.977335802848)*x[2]
73459            s[2,1,0]=(-0.471820598698)*x[0]
73460            s[2,1,1]=(-0.680071585031)*x[1]
73461            s[2,1,2]=(-0.686102402643)*x[2]
73462            s[3,0,0]=(-0.647535125154)*x[0]
73463            s[3,0,1]=(-0.739392553517)*x[1]
73464            s[3,0,2]=(-0.0852792216585)*x[2]
73465            s[3,1,0]=(-0.0197635627728)*x[0]
73466            s[3,1,1]=(-0.811782244587)*x[1]
73467            s[3,1,2]=(0.842974983966)*x[2]
73468            s[4,0,0]=(-0.765665515246)*x[0]
73469            s[4,0,1]=(-0.379368211948)*x[1]
73470            s[4,0,2]=(-0.864157207524)*x[2]
73471            s[4,1,0]=(-0.393989909405)*x[0]
73472            s[4,1,1]=(0.482309706914)*x[1]
73473            s[4,1,2]=(-0.80068507467)*x[2]
73474            s[5,0,0]=(-0.686334218925)*x[0]
73475            s[5,0,1]=(-0.414623392196)*x[1]
73476            s[5,0,2]=(-0.689227675292)*x[2]
73477            s[5,1,0]=(0.347067831012)*x[0]
73478            s[5,1,1]=(0.675600902408)*x[1]
73479            s[5,1,2]=(-0.763467841004)*x[2]
73480            ref=sqrt((13.2965907789)*(2.*dim+1.)/3.)
73481    
73482          res=L2(arg)
73483          sub=res.substitute({arg:s})
73484          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
73485          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
73486          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
73487       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
73488       def test_L2_onFunctionOnBoundary_fromSymbol_rank4(self):
73489          """
73490          tests L2-norm of Symbol on the FunctionOnBoundary
73491    
73492          assumptions: self.domain supports integration on FunctionOnBoundary
73493          """
73494          dim=self.domain.getDim()
73495          w=FunctionOnBoundary(self.domain)
73496          x=w.getX()
73497          if dim==2:
73498            arg=Symbol(shape=(4, 5, 3, 2),dim=dim)
73499            s=Data(0,(4, 5, 3, 2),w)
73500            s[0,0,0,0]=(0.478851101914)*x[0]
73501            s[0,0,0,1]=(-0.669115623243)*x[1]
73502            s[0,0,1,0]=(0.169431656457)*x[0]
73503            s[0,0,1,1]=(-0.154130248518)*x[1]
73504            s[0,0,2,0]=(0.590784906322)*x[0]
73505            s[0,0,2,1]=(-0.843193872964)*x[1]
73506            s[0,1,0,0]=(0.040548638805)*x[0]
73507            s[0,1,0,1]=(0.0223688163494)*x[1]
73508            s[0,1,1,0]=(0.591094685655)*x[0]
73509            s[0,1,1,1]=(0.692105812582)*x[1]
73510            s[0,1,2,0]=(-0.326832256739)*x[0]
73511            s[0,1,2,1]=(0.824824822029)*x[1]
73512            s[0,2,0,0]=(-0.352757110519)*x[0]
73513            s[0,2,0,1]=(-0.898616847036)*x[1]
73514            s[0,2,1,0]=(0.972018635849)*x[0]
73515            s[0,2,1,1]=(0.64223146835)*x[1]
73516            s[0,2,2,0]=(0.599638014876)*x[0]
73517            s[0,2,2,1]=(0.665927987689)*x[1]
73518            s[0,3,0,0]=(-0.757282087611)*x[0]
73519            s[0,3,0,1]=(-0.541306038159)*x[1]
73520            s[0,3,1,0]=(0.443494146532)*x[0]
73521            s[0,3,1,1]=(-0.125404019651)*x[1]
73522            s[0,3,2,0]=(0.234422087306)*x[0]
73523            s[0,3,2,1]=(0.443982420301)*x[1]
73524            s[0,4,0,0]=(0.46454740036)*x[0]
73525            s[0,4,0,1]=(-0.479031824057)*x[1]
73526            s[0,4,1,0]=(-0.304056971991)*x[0]
73527            s[0,4,1,1]=(-0.763293280009)*x[1]
73528            s[0,4,2,0]=(-0.142796685199)*x[0]
73529            s[0,4,2,1]=(0.301022025426)*x[1]
73530            s[1,0,0,0]=(-0.843399285738)*x[0]
73531            s[1,0,0,1]=(0.639837980509)*x[1]
73532            s[1,0,1,0]=(-0.649024291296)*x[0]
73533            s[1,0,1,1]=(0.645960995308)*x[1]
73534            s[1,0,2,0]=(0.0862852468825)*x[0]
73535            s[1,0,2,1]=(-0.399237566917)*x[1]
73536            s[1,1,0,0]=(0.959425187971)*x[0]
73537            s[1,1,0,1]=(0.65407910284)*x[1]
73538            s[1,1,1,0]=(0.873927579655)*x[0]
73539            s[1,1,1,1]=(0.399448652787)*x[1]
73540            s[1,1,2,0]=(-0.363863298937)*x[0]
73541            s[1,1,2,1]=(0.555310285452)*x[1]
73542            s[1,2,0,0]=(0.962712099815)*x[0]
73543            s[1,2,0,1]=(0.141495259052)*x[1]
73544            s[1,2,1,0]=(-0.819117296209)*x[0]
73545            s[1,2,1,1]=(-0.752934712352)*x[1]
73546            s[1,2,2,0]=(0.065886700262)*x[0]
73547            s[1,2,2,1]=(-0.530225381274)*x[1]
73548            s[1,3,0,0]=(0.830686848377)*x[0]
73549            s[1,3,0,1]=(0.139854694845)*x[1]
73550            s[1,3,1,0]=(0.869755726605)*x[0]
73551            s[1,3,1,1]=(0.145889500911)*x[1]
73552            s[1,3,2,0]=(-0.690283765486)*x[0]
73553            s[1,3,2,1]=(-0.790245562042)*x[1]
73554            s[1,4,0,0]=(0.704042980492)*x[0]
73555            s[1,4,0,1]=(-0.692268480039)*x[1]
73556            s[1,4,1,0]=(-0.708898941564)*x[0]
73557            s[1,4,1,1]=(-0.675824414677)*x[1]
73558            s[1,4,2,0]=(0.320394083261)*x[0]
73559            s[1,4,2,1]=(0.173795411968)*x[1]
73560            s[2,0,0,0]=(0.707844986267)*x[0]
73561            s[2,0,0,1]=(0.991847131293)*x[1]
73562            s[2,0,1,0]=(0.470933752596)*x[0]
73563            s[2,0,1,1]=(0.847427404272)*x[1]
73564            s[2,0,2,0]=(0.383056136263)*x[0]
73565            s[2,0,2,1]=(-0.717411302782)*x[1]
73566            s[2,1,0,0]=(0.118326527818)*x[0]
73567            s[2,1,0,1]=(0.0957434761651)*x[1]
73568            s[2,1,1,0]=(-0.420654904504)*x[0]
73569            s[2,1,1,1]=(0.31903393188)*x[1]
73570            s[2,1,2,0]=(0.0597937431476)*x[0]
73571            s[2,1,2,1]=(0.965201628622)*x[1]
73572            s[2,2,0,0]=(0.884709108482)*x[0]
73573            s[2,2,0,1]=(-0.541160500366)*x[1]
73574            s[2,2,1,0]=(-0.180788996448)*x[0]
73575            s[2,2,1,1]=(-0.44537512426)*x[1]
73576            s[2,2,2,0]=(-0.291513668432)*x[0]
73577            s[2,2,2,1]=(0.349090737561)*x[1]
73578            s[2,3,0,0]=(0.0994765186043)*x[0]
73579            s[2,3,0,1]=(-0.317258869646)*x[1]
73580            s[2,3,1,0]=(0.661005398598)*x[0]
73581            s[2,3,1,1]=(-0.914254206568)*x[1]
73582            s[2,3,2,0]=(-0.374142249366)*x[0]
73583            s[2,3,2,1]=(-0.587651938713)*x[1]
73584            s[2,4,0,0]=(-0.0990354726919)*x[0]
73585            s[2,4,0,1]=(-0.104596309056)*x[1]
73586            s[2,4,1,0]=(0.183201845594)*x[0]
73587            s[2,4,1,1]=(-0.265185815743)*x[1]
73588            s[2,4,2,0]=(0.804060169933)*x[0]
73589            s[2,4,2,1]=(-0.0798336799535)*x[1]
73590            s[3,0,0,0]=(-0.470265711106)*x[0]
73591            s[3,0,0,1]=(0.123030821016)*x[1]
73592            s[3,0,1,0]=(0.971878570072)*x[0]
73593            s[3,0,1,1]=(0.557374437558)*x[1]
73594            s[3,0,2,0]=(0.771881325143)*x[0]
73595            s[3,0,2,1]=(-0.181917882935)*x[1]
73596            s[3,1,0,0]=(-0.30330086877)*x[0]
73597            s[3,1,0,1]=(0.785561830696)*x[1]
73598            s[3,1,1,0]=(0.0783160883668)*x[0]
73599            s[3,1,1,1]=(-0.192122642565)*x[1]
73600            s[3,1,2,0]=(-0.294486881116)*x[0]
73601            s[3,1,2,1]=(0.533158403133)*x[1]
73602            s[3,2,0,0]=(-0.413737404117)*x[0]
73603            s[3,2,0,1]=(0.622363162902)*x[1]
73604            s[3,2,1,0]=(0.241741847782)*x[0]
73605            s[3,2,1,1]=(-0.0541594558102)*x[1]
73606            s[3,2,2,0]=(0.157759963106)*x[0]
73607            s[3,2,2,1]=(-0.833376953416)*x[1]
73608            s[3,3,0,0]=(-0.671630074873)*x[0]
73609            s[3,3,0,1]=(-0.10840086864)*x[1]
73610            s[3,3,1,0]=(-0.995501368513)*x[0]
73611            s[3,3,1,1]=(-0.153147007921)*x[1]
73612            s[3,3,2,0]=(-0.504815129335)*x[0]
73613            s[3,3,2,1]=(-0.489511115245)*x[1]
73614            s[3,4,0,0]=(0.206555206064)*x[0]
73615            s[3,4,0,1]=(-0.294058867178)*x[1]
73616            s[3,4,1,0]=(-0.571176824119)*x[0]
73617            s[3,4,1,1]=(0.353847783519)*x[1]
73618            s[3,4,2,0]=(-0.441012644459)*x[0]
73619            s[3,4,2,1]=(0.198182379551)*x[1]
73620            ref=sqrt((36.8775562848)*(2.*dim+1.)/3.)
73621    
73622          else:
73623            arg=Symbol(shape=(4, 5, 3, 3),dim=dim)
73624            s=Data(0,(4, 5, 3, 3),w)
73625            s[0,0,0,0]=(-0.391342187918)*x[0]
73626            s[0,0,0,1]=(-0.807670030995)*x[1]
73627            s[0,0,0,2]=(-0.730776810158)*x[2]
73628            s[0,0,1,0]=(-0.640249702579)*x[0]
73629            s[0,0,1,1]=(-0.0944608864404)*x[1]
73630            s[0,0,1,2]=(0.852922834544)*x[2]
73631            s[0,0,2,0]=(0.0996848239317)*x[0]
73632            s[0,0,2,1]=(-0.323310001677)*x[1]
73633            s[0,0,2,2]=(-0.311089889753)*x[2]
73634            s[0,1,0,0]=(-0.294816251058)*x[0]
73635            s[0,1,0,1]=(0.939389998027)*x[1]
73636            s[0,1,0,2]=(0.900617063513)*x[2]
73637            s[0,1,1,0]=(-0.961986583089)*x[0]
73638            s[0,1,1,1]=(0.629473020335)*x[1]
73639            s[0,1,1,2]=(-0.215446848397)*x[2]
73640            s[0,1,2,0]=(-0.256062202737)*x[0]
73641            s[0,1,2,1]=(0.497231616486)*x[1]
73642            s[0,1,2,2]=(-0.813869122359)*x[2]
73643            s[0,2,0,0]=(0.352147663827)*x[0]
73644            s[0,2,0,1]=(0.553022457414)*x[1]
73645            s[0,2,0,2]=(-0.340077213113)*x[2]
73646            s[0,2,1,0]=(0.654397833915)*x[0]
73647            s[0,2,1,1]=(-0.34308640744)*x[1]
73648            s[0,2,1,2]=(-0.689126280824)*x[2]
73649            s[0,2,2,0]=(0.428183196531)*x[0]
73650            s[0,2,2,1]=(-0.322384435092)*x[1]
73651            s[0,2,2,2]=(0.636495513573)*x[2]
73652            s[0,3,0,0]=(0.214083660816)*x[0]
73653            s[0,3,0,1]=(0.312445001293)*x[1]
73654            s[0,3,0,2]=(-0.939086993471)*x[2]
73655            s[0,3,1,0]=(-0.0668860159236)*x[0]
73656            s[0,3,1,1]=(0.591012248354)*x[1]
73657            s[0,3,1,2]=(0.696149816619)*x[2]
73658            s[0,3,2,0]=(0.917050906357)*x[0]
73659            s[0,3,2,1]=(-0.695398022945)*x[1]
73660            s[0,3,2,2]=(0.578841930671)*x[2]
73661            s[0,4,0,0]=(-0.321769393495)*x[0]
73662            s[0,4,0,1]=(-0.761161601481)*x[1]
73663            s[0,4,0,2]=(0.000116192661055)*x[2]
73664            s[0,4,1,0]=(0.347135267821)*x[0]
73665            s[0,4,1,1]=(-0.0105215354141)*x[1]
73666            s[0,4,1,2]=(0.582827998159)*x[2]
73667            s[0,4,2,0]=(0.765317199582)*x[0]
73668            s[0,4,2,1]=(0.546093510978)*x[1]
73669            s[0,4,2,2]=(-0.753832119978)*x[2]
73670            s[1,0,0,0]=(-0.163230444043)*x[0]
73671            s[1,0,0,1]=(0.415060470539)*x[1]
73672            s[1,0,0,2]=(0.638843786094)*x[2]
73673            s[1,0,1,0]=(-0.320730240187)*x[0]
73674            s[1,0,1,1]=(-0.369428894975)*x[1]
73675            s[1,0,1,2]=(-0.944414569234)*x[2]
73676            s[1,0,2,0]=(0.580606041923)*x[0]
73677            s[1,0,2,1]=(-0.351082080131)*x[1]
73678            s[1,0,2,2]=(-0.170588782574)*x[2]
73679            s[1,1,0,0]=(0.323136286071)*x[0]
73680            s[1,1,0,1]=(0.397263600918)*x[1]
73681            s[1,1,0,2]=(-0.687508659585)*x[2]
73682            s[1,1,1,0]=(-0.997412227958)*x[0]
73683            s[1,1,1,1]=(0.968968702091)*x[1]
73684            s[1,1,1,2]=(-0.223523055076)*x[2]
73685            s[1,1,2,0]=(-0.495473193251)*x[0]
73686            s[1,1,2,1]=(-0.00758436986969)*x[1]
73687            s[1,1,2,2]=(0.0770020818673)*x[2]
73688            s[1,2,0,0]=(-0.522152049391)*x[0]
73689            s[1,2,0,1]=(0.820143671384)*x[1]
73690            s[1,2,0,2]=(0.672347144349)*x[2]
73691            s[1,2,1,0]=(-0.868655459375)*x[0]
73692            s[1,2,1,1]=(-0.698503510192)*x[1]
73693            s[1,2,1,2]=(0.16866148235)*x[2]
73694            s[1,2,2,0]=(0.291645089215)*x[0]
73695            s[1,2,2,1]=(0.375705968271)*x[1]
73696            s[1,2,2,2]=(0.047575084848)*x[2]
73697            s[1,3,0,0]=(-0.856292393733)*x[0]
73698            s[1,3,0,1]=(0.741997693375)*x[1]
73699            s[1,3,0,2]=(0.922057641142)*x[2]
73700            s[1,3,1,0]=(-0.0246230217779)*x[0]
73701            s[1,3,1,1]=(0.233511225618)*x[1]
73702            s[1,3,1,2]=(-0.128732881848)*x[2]
73703            s[1,3,2,0]=(0.437273172814)*x[0]
73704            s[1,3,2,1]=(-0.24673804436)*x[1]
73705            s[1,3,2,2]=(0.834689693971)*x[2]
73706            s[1,4,0,0]=(0.0567731436429)*x[0]
73707            s[1,4,0,1]=(-0.523439015055)*x[1]
73708            s[1,4,0,2]=(-0.175105109157)*x[2]
73709            s[1,4,1,0]=(-0.783819538589)*x[0]
73710            s[1,4,1,1]=(0.722409822905)*x[1]
73711            s[1,4,1,2]=(-0.99480794117)*x[2]
73712            s[1,4,2,0]=(-0.0948610680733)*x[0]
73713            s[1,4,2,1]=(-0.0934034446625)*x[1]
73714            s[1,4,2,2]=(0.993222484498)*x[2]
73715            s[2,0,0,0]=(-0.739506857296)*x[0]
73716            s[2,0,0,1]=(-0.402129626454)*x[1]
73717            s[2,0,0,2]=(-0.131164073645)*x[2]
73718            s[2,0,1,0]=(-0.185068425131)*x[0]
73719            s[2,0,1,1]=(-0.888669413054)*x[1]
73720            s[2,0,1,2]=(0.149638740783)*x[2]
73721            s[2,0,2,0]=(-0.977520384)*x[0]
73722            s[2,0,2,1]=(0.495784511707)*x[1]
73723            s[2,0,2,2]=(0.140779930302)*x[2]
73724            s[2,1,0,0]=(-0.668882409761)*x[0]
73725            s[2,1,0,1]=(0.87881226199)*x[1]
73726            s[2,1,0,2]=(0.596921491285)*x[2]
73727            s[2,1,1,0]=(0.327990184264)*x[0]
73728            s[2,1,1,1]=(-0.842310366654)*x[1]
73729            s[2,1,1,2]=(-0.104630179971)*x[2]
73730            s[2,1,2,0]=(-0.997782736966)*x[0]
73731            s[2,1,2,1]=(0.362490263673)*x[1]
73732            s[2,1,2,2]=(-0.919527812431)*x[2]
73733            s[2,2,0,0]=(-0.694141113242)*x[0]
73734            s[2,2,0,1]=(-0.189176840568)*x[1]
73735            s[2,2,0,2]=(-0.305307574884)*x[2]
73736            s[2,2,1,0]=(0.97520770841)*x[0]
73737            s[2,2,1,1]=(0.709672831962)*x[1]
73738            s[2,2,1,2]=(-0.056408975067)*x[2]
73739            s[2,2,2,0]=(-0.491153842737)*x[0]
73740            s[2,2,2,1]=(-0.487533744248)*x[1]
73741            s[2,2,2,2]=(-0.16258274458)*x[2]
73742            s[2,3,0,0]=(0.69721543109)*x[0]
73743            s[2,3,0,1]=(-0.927116706183)*x[1]
73744            s[2,3,0,2]=(-0.277453826622)*x[2]
73745            s[2,3,1,0]=(-0.530246149296)*x[0]
73746            s[2,3,1,1]=(0.971840533777)*x[1]
73747            s[2,3,1,2]=(-0.472599623799)*x[2]
73748            s[2,3,2,0]=(0.772149184332)*x[0]
73749            s[2,3,2,1]=(-0.644107019603)*x[1]
73750            s[2,3,2,2]=(-0.537937585926)*x[2]
73751            s[2,4,0,0]=(-0.786226779015)*x[0]
73752            s[2,4,0,1]=(-0.132798607299)*x[1]
73753            s[2,4,0,2]=(-0.954772620074)*x[2]
73754            s[2,4,1,0]=(-0.378657907627)*x[0]
73755            s[2,4,1,1]=(0.896332243914)*x[1]
73756            s[2,4,1,2]=(-0.980811837061)*x[2]
73757            s[2,4,2,0]=(-0.033610987457)*x[0]
73758            s[2,4,2,1]=(0.301124520167)*x[1]
73759            s[2,4,2,2]=(0.505461084966)*x[2]
73760            s[3,0,0,0]=(0.92844681553)*x[0]
73761            s[3,0,0,1]=(-0.833141539681)*x[1]
73762            s[3,0,0,2]=(-0.219378232103)*x[2]
73763            s[3,0,1,0]=(-0.342722442206)*x[0]
73764            s[3,0,1,1]=(0.662705183551)*x[1]
73765            s[3,0,1,2]=(0.544702876622)*x[2]
73766            s[3,0,2,0]=(-0.984992104327)*x[0]
73767            s[3,0,2,1]=(-0.118846731)*x[1]
73768            s[3,0,2,2]=(-0.850203016683)*x[2]
73769            s[3,1,0,0]=(0.797626533525)*x[0]
73770            s[3,1,0,1]=(-0.415519060262)*x[1]
73771            s[3,1,0,2]=(-0.629491781709)*x[2]
73772            s[3,1,1,0]=(0.223213637134)*x[0]
73773            s[3,1,1,1]=(0.824993414773)*x[1]
73774            s[3,1,1,2]=(0.141523286845)*x[2]
73775            s[3,1,2,0]=(-0.66436462404)*x[0]
73776            s[3,1,2,1]=(-0.854989422144)*x[1]
73777            s[3,1,2,2]=(-0.0354537218933)*x[2]
73778            s[3,2,0,0]=(-0.0988394772118)*x[0]
73779            s[3,2,0,1]=(0.125214003041)*x[1]
73780            s[3,2,0,2]=(-0.701121659493)*x[2]
73781            s[3,2,1,0]=(-0.603538097381)*x[0]
73782            s[3,2,1,1]=(-0.659139390328)*x[1]
73783            s[3,2,1,2]=(-0.849986094805)*x[2]
73784            s[3,2,2,0]=(-0.545364489526)*x[0]
73785            s[3,2,2,1]=(-0.90842178441)*x[1]
73786            s[3,2,2,2]=(-0.650251007613)*x[2]
73787            s[3,3,0,0]=(0.943460211337)*x[0]
73788            s[3,3,0,1]=(-0.707864979205)*x[1]
73789            s[3,3,0,2]=(0.9885932761)*x[2]
73790            s[3,3,1,0]=(0.127650934393)*x[0]
73791            s[3,3,1,1]=(-0.495451047906)*x[1]
73792            s[3,3,1,2]=(0.641823757246)*x[2]
73793            s[3,3,2,0]=(-0.33331510031)*x[0]
73794            s[3,3,2,1]=(0.922346384165)*x[1]
73795            s[3,3,2,2]=(-0.987453834808)*x[2]
73796            s[3,4,0,0]=(-0.376485044284)*x[0]
73797            s[3,4,0,1]=(0.693296795267)*x[1]
73798            s[3,4,0,2]=(-0.31498404544)*x[2]
73799            s[3,4,1,0]=(0.512477956635)*x[0]
73800            s[3,4,1,1]=(-0.333819138285)*x[1]
73801            s[3,4,1,2]=(0.560322373773)*x[2]
73802            s[3,4,2,0]=(0.889090668029)*x[0]
73803            s[3,4,2,1]=(0.981814634684)*x[1]
73804            s[3,4,2,2]=(-0.41272129735)*x[2]
73805            ref=sqrt((66.7960236856)*(2.*dim+1.)/3.)
73806    
73807          res=L2(arg)
73808          sub=res.substitute({arg:s})
73809          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
73810          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
73811          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
73812       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
73813       def test_L2_onFunctionOnContactZero_fromData_rank0(self):
73814          """
73815          tests L2-norm of Data on the FunctionOnContactZero
73816    
73817          assumptions: self.domain supports integration on FunctionOnContactZero
73818          """
73819          dim=self.domain.getDim()
73820          w=FunctionOnContactZero(self.domain)
73821          x=w.getX()
73822          if dim==2:
73823            arg=Data(0,(),w)
73824            arg=(-0.908822474879)*x[0]
73825            ref=sqrt((0.0)+(0.206489572711))
73826    
73827          else:
73828            arg=Data(0,(),w)
73829            arg=(-0.893168521371)*x[0]
73830            ref=sqrt((0.0)+(0.199437501892))
73831    
73832          res=L2(arg)
73833          self.failUnless(isinstance(res,float),"wrong type of result.")
73834          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
73835       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
73836       def test_L2_onFunctionOnContactZero_fromData_rank1(self):
73837          """
73838          tests L2-norm of Data on the FunctionOnContactZero
73839    
73840          assumptions: self.domain supports integration on FunctionOnContactZero
73841          """
73842          dim=self.domain.getDim()
73843          w=FunctionOnContactZero(self.domain)
73844          x=w.getX()
73845          if dim==2:
73846            arg=Data(0,(2,),w)
73847            arg[0]=(-0.30839170903)*x[0]
73848            arg[1]=(0.108352504587)*x[1]
73849            ref=sqrt((0.00391342175007)+(0.0237763615497))
73850    
73851          else:
73852            arg=Data(0,(3,),w)
73853            arg[0]=(-0.260572084359)*x[0]
73854            arg[1]=(0.250696802346)*x[1]
73855            arg[2]=(-0.498857619202)*x[2]
73856            ref=sqrt((0.103902603647)+(0.0169744527868))
73857    
73858          res=L2(arg)
73859          self.failUnless(isinstance(res,float),"wrong type of result.")
73860          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
73861       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
73862       def test_L2_onFunctionOnContactZero_fromData_rank2(self):
73863          """
73864          tests L2-norm of Data on the FunctionOnContactZero
73865    
73866          assumptions: self.domain supports integration on FunctionOnContactZero
73867          """
73868          dim=self.domain.getDim()
73869          w=FunctionOnContactZero(self.domain)
73870          x=w.getX()
73871          if dim==2:
73872            arg=Data(0,(4, 2),w)
73873            arg[0,0]=(0.0107777943992)*x[0]
73874            arg[0,1]=(0.0188929341636)*x[1]
73875            arg[1,0]=(-0.00268267834861)*x[0]
73876            arg[1,1]=(-0.656039971477)*x[1]
73877            arg[2,0]=(-0.997645982047)*x[0]
73878            arg[2,1]=(0.993049748017)*x[1]
73879            arg[3,0]=(0.938636169945)*x[0]
73880            arg[3,1]=(-0.609892243528)*x[1]
73881            ref=sqrt((0.596287245963)+(0.46911468066))
73882    
73883          else:
73884            arg=Data(0,(4, 3),w)
73885            arg[0,0]=(0.128987155564)*x[0]
73886            arg[0,1]=(-0.582660210551)*x[1]
73887            arg[0,2]=(-0.605040149822)*x[2]
73888            arg[1,0]=(0.494540007291)*x[0]
73889            arg[1,1]=(0.563900397935)*x[1]
73890            arg[1,2]=(-0.806214220737)*x[2]
73891            arg[2,0]=(0.878027993704)*x[0]
73892            arg[2,1]=(0.597165310427)*x[1]
73893            arg[2,2]=(-0.444798130742)*x[2]
73894            arg[3,0]=(0.982067213342)*x[0]
73895            arg[3,1]=(-0.160013302763)*x[1]
73896            arg[3,2]=(-0.490830124654)*x[2]
73897            ref=sqrt((0.831500595262)+(0.49914916859))
73898    
73899          res=L2(arg)
73900          self.failUnless(isinstance(res,float),"wrong type of result.")
73901          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
73902       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
73903       def test_L2_onFunctionOnContactZero_fromData_rank3(self):
73904          """
73905          tests L2-norm of Data on the FunctionOnContactZero
73906    
73907          assumptions: self.domain supports integration on FunctionOnContactZero
73908          """
73909          dim=self.domain.getDim()
73910          w=FunctionOnContactZero(self.domain)
73911          x=w.getX()
73912          if dim==2:
73913            arg=Data(0,(6, 2, 2),w)
73914            arg[0,0,0]=(0.83264345248)*x[0]
73915            arg[0,0,1]=(-0.29697614845)*x[1]
73916            arg[0,1,0]=(-0.903150797089)*x[0]
73917            arg[0,1,1]=(-0.569048463149)*x[1]
73918            arg[1,0,0]=(0.317087339385)*x[0]
73919            arg[1,0,1]=(0.0120740865344)*x[1]
73920            arg[1,1,0]=(-0.221145803457)*x[0]
73921            arg[1,1,1]=(-0.15362409313)*x[1]
73922            arg[2,0,0]=(0.459428065932)*x[0]
73923            arg[2,0,1]=(-0.495488213623)*x[1]
73924            arg[2,1,0]=(0.919114285084)*x[0]
73925            arg[2,1,1]=(0.54511942052)*x[1]
73926            arg[3,0,0]=(0.442207797529)*x[0]
73927            arg[3,0,1]=(0.958341188449)*x[1]
73928            arg[3,1,0]=(-0.0915205976682)*x[0]
73929            arg[3,1,1]=(-0.410964460336)*x[1]
73930            arg[4,0,0]=(-0.243030095673)*x[0]
73931            arg[4,0,1]=(-0.413661756935)*x[1]
73932            arg[4,1,0]=(-0.0973014277464)*x[0]
73933            arg[4,1,1]=(0.204130676874)*x[1]
73934            arg[5,0,0]=(0.38083750131)*x[0]
73935            arg[5,0,1]=(0.286331574579)*x[1]
73936            arg[5,1,0]=(0.583320730408)*x[0]
73937            arg[5,1,1]=(-0.0899419806181)*x[1]
73938            ref=sqrt((0.789530406063)+(0.868006693351))
73939    
73940          else:
73941            arg=Data(0,(6, 2, 3),w)
73942            arg[0,0,0]=(-0.98411764268)*x[0]
73943            arg[0,0,1]=(-0.180549567137)*x[1]
73944            arg[0,0,2]=(0.357923974709)*x[2]
73945            arg[0,1,0]=(0.67691778218)*x[0]
73946            arg[0,1,1]=(-0.643267669153)*x[1]
73947            arg[0,1,2]=(0.452374328301)*x[2]
73948            arg[1,0,0]=(0.494303694439)*x[0]
73949            arg[1,0,1]=(0.00767629822214)*x[1]
73950            arg[1,0,2]=(0.232436713422)*x[2]
73951            arg[1,1,0]=(-0.698568975983)*x[0]
73952            arg[1,1,1]=(-0.08483720353)*x[1]
73953            arg[1,1,2]=(-0.723935799719)*x[2]
73954            arg[2,0,0]=(0.931313239646)*x[0]
73955            arg[2,0,1]=(-0.0988070442341)*x[1]
73956            arg[2,0,2]=(-0.166201798278)*x[2]
73957            arg[2,1,0]=(-0.733172171406)*x[0]
73958            arg[2,1,1]=(0.24542706584)*x[1]
73959            arg[2,1,2]=(0.49170717592)*x[2]
73960            arg[3,0,0]=(-0.718346096869)*x[0]
73961            arg[3,0,1]=(0.297442410539)*x[1]
73962            arg[3,0,2]=(0.0277708718174)*x[2]
73963            arg[3,1,0]=(0.735100702194)*x[0]
73964            arg[3,1,1]=(-0.808007526296)*x[1]
73965            arg[3,1,2]=(-0.423023238313)*x[2]
73966            arg[4,0,0]=(0.383188529876)*x[0]
73967            arg[4,0,1]=(-0.190101601814)*x[1]
73968            arg[4,0,2]=(-0.404380990215)*x[2]
73969            arg[4,1,0]=(-0.31098204217)*x[0]
73970            arg[4,1,1]=(-0.715247945432)*x[1]
73971            arg[4,1,2]=(0.435774772982)*x[2]
73972            arg[5,0,0]=(-0.0662056096206)*x[0]
73973            arg[5,0,1]=(0.746710247367)*x[1]
73974            arg[5,0,2]=(0.753267249301)*x[2]
73975            arg[5,1,0]=(0.258102962518)*x[0]
73976            arg[5,1,1]=(-0.0270028483187)*x[1]
73977            arg[5,1,2]=(-0.971060107954)*x[2]
73978            ref=sqrt((1.86493016409)+(1.23371587938))
73979    
73980          res=L2(arg)
73981          self.failUnless(isinstance(res,float),"wrong type of result.")
73982          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
73983       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
73984       def test_L2_onFunctionOnContactZero_fromData_rank4(self):
73985          """
73986          tests L2-norm of Data on the FunctionOnContactZero
73987    
73988          assumptions: self.domain supports integration on FunctionOnContactZero
73989          """
73990          dim=self.domain.getDim()
73991          w=FunctionOnContactZero(self.domain)
73992          x=w.getX()
73993          if dim==2:
73994            arg=Data(0,(4, 5, 3, 2),w)
73995            arg[0,0,0,0]=(-0.144741217139)*x[0]
73996            arg[0,0,0,1]=(-0.188187241012)*x[1]
73997            arg[0,0,1,0]=(0.056339373733)*x[0]
73998            arg[0,0,1,1]=(0.222177130759)*x[1]
73999            arg[0,0,2,0]=(-0.437240978497)*x[0]
74000            arg[0,0,2,1]=(-0.479213082014)*x[1]
74001            arg[0,1,0,0]=(0.343204141181)*x[0]
74002            arg[0,1,0,1]=(0.099683148208)*x[1]
74003            arg[0,1,1,0]=(0.167657906331)*x[0]
74004            arg[0,1,1,1]=(0.371064917656)*x[1]
74005            arg[0,1,2,0]=(-0.175796118619)*x[0]
74006            arg[0,1,2,1]=(-0.523477567832)*x[1]
74007            arg[0,2,0,0]=(0.188832282277)*x[0]
74008            arg[0,2,0,1]=(0.948618356423)*x[1]
74009            arg[0,2,1,0]=(-0.3835066594)*x[0]
74010            arg[0,2,1,1]=(0.872875257641)*x[1]
74011            arg[0,2,2,0]=(-0.98414676194)*x[0]
74012            arg[0,2,2,1]=(0.59170993756)*x[1]
74013            arg[0,3,0,0]=(0.875820385471)*x[0]
74014            arg[0,3,0,1]=(-0.209139794169)*x[1]
74015            arg[0,3,1,0]=(0.783312979835)*x[0]
74016            arg[0,3,1,1]=(-0.440048708153)*x[1]
74017            arg[0,3,2,0]=(-0.906741480158)*x[0]
74018            arg[0,3,2,1]=(0.63834196559)*x[1]
74019            arg[0,4,0,0]=(0.0142616166715)*x[0]
74020            arg[0,4,0,1]=(-0.0745581409622)*x[1]
74021            arg[0,4,1,0]=(-0.779966728505)*x[0]
74022            arg[0,4,1,1]=(0.734744791584)*x[1]
74023            arg[0,4,2,0]=(0.0407627699446)*x[0]
74024            arg[0,4,2,1]=(-0.629666423098)*x[1]
74025            arg[1,0,0,0]=(-0.782291768803)*x[0]
74026            arg[1,0,0,1]=(-0.197799867335)*x[1]
74027            arg[1,0,1,0]=(-0.487323212409)*x[0]
74028            arg[1,0,1,1]=(-0.789940409633)*x[1]
74029            arg[1,0,2,0]=(-0.523871448728)*x[0]
74030            arg[1,0,2,1]=(-0.622272488658)*x[1]
74031            arg[1,1,0,0]=(0.370095832941)*x[0]
74032            arg[1,1,0,1]=(-0.0683624906905)*x[1]
74033            arg[1,1,1,0]=(-0.180583695959)*x[0]
74034            arg[1,1,1,1]=(-0.0529097308814)*x[1]
74035            arg[1,1,2,0]=(0.440088045764)*x[0]
74036            arg[1,1,2,1]=(-0.207665675854)*x[1]
74037            arg[1,2,0,0]=(-0.360120735448)*x[0]
74038            arg[1,2,0,1]=(0.877797020694)*x[1]
74039            arg[1,2,1,0]=(0.655192721419)*x[0]
74040            arg[1,2,1,1]=(0.978781227463)*x[1]
74041            arg[1,2,2,0]=(-0.205886258554)*x[0]
74042            arg[1,2,2,1]=(-0.0050396100363)*x[1]
74043            arg[1,3,0,0]=(-0.484332943177)*x[0]
74044            arg[1,3,0,1]=(0.964697361018)*x[1]
74045            arg[1,3,1,0]=(0.0815652906824)*x[0]
74046            arg[1,3,1,1]=(-0.531163025802)*x[1]
74047            arg[1,3,2,0]=(-0.229615479833)*x[0]
74048            arg[1,3,2,1]=(0.139971291609)*x[1]
74049            arg[1,4,0,0]=(0.960839193726)*x[0]
74050            arg[1,4,0,1]=(-0.9744930023)*x[1]
74051            arg[1,4,1,0]=(-0.0919000363634)*x[0]
74052            arg[1,4,1,1]=(0.483909186003)*x[1]
74053            arg[1,4,2,0]=(0.248597552464)*x[0]
74054            arg[1,4,2,1]=(0.965872402486)*x[1]
74055            arg[2,0,0,0]=(-0.935049188033)*x[0]
74056            arg[2,0,0,1]=(-0.823239964421)*x[1]
74057            arg[2,0,1,0]=(0.30901193713)*x[0]
74058            arg[2,0,1,1]=(-0.0538396976182)*x[1]
74059            arg[2,0,2,0]=(-0.449416473099)*x[0]
74060            arg[2,0,2,1]=(-0.857785267819)*x[1]
74061            arg[2,1,0,0]=(-0.167802578334)*x[0]
74062            arg[2,1,0,1]=(-0.7016101186)*x[1]
74063            arg[2,1,1,0]=(0.995848317929)*x[0]
74064            arg[2,1,1,1]=(-0.824595018011)*x[1]
74065            arg[2,1,2,0]=(-0.826030527686)*x[0]
74066            arg[2,1,2,1]=(-0.856151725651)*x[1]
74067            arg[2,2,0,0]=(0.342047605028)*x[0]
74068            arg[2,2,0,1]=(-0.342370307931)*x[1]
74069            arg[2,2,1,0]=(-0.540693890831)*x[0]
74070            arg[2,2,1,1]=(-0.720754897785)*x[1]
74071            arg[2,2,2,0]=(-0.0941215154824)*x[0]
74072            arg[2,2,2,1]=(0.115887914141)*x[1]
74073            arg[2,3,0,0]=(-0.0920059639279)*x[0]
74074            arg[2,3,0,1]=(0.910948619784)*x[1]
74075            arg[2,3,1,0]=(-0.40846609126)*x[0]
74076            arg[2,3,1,1]=(0.542728733954)*x[1]
74077            arg[2,3,2,0]=(0.451361830368)*x[0]
74078            arg[2,3,2,1]=(0.0767538617936)*x[1]
74079            arg[2,4,0,0]=(-0.431757008766)*x[0]
74080            arg[2,4,0,1]=(0.258988103513)*x[1]
74081            arg[2,4,1,0]=(-0.584559859464)*x[0]
74082            arg[2,4,1,1]=(-0.776827606804)*x[1]
74083            arg[2,4,2,0]=(-0.867078960637)*x[0]
74084            arg[2,4,2,1]=(-0.0972960135129)*x[1]
74085            arg[3,0,0,0]=(0.999511727022)*x[0]
74086            arg[3,0,0,1]=(-0.753218704622)*x[1]
74087            arg[3,0,1,0]=(0.506439354885)*x[0]
74088            arg[3,0,1,1]=(-0.0845853282297)*x[1]
74089            arg[3,0,2,0]=(-0.871475028801)*x[0]
74090            arg[3,0,2,1]=(-0.69261642657)*x[1]
74091            arg[3,1,0,0]=(0.549778399933)*x[0]
74092            arg[3,1,0,1]=(0.246187536149)*x[1]
74093            arg[3,1,1,0]=(-0.620454200676)*x[0]
74094            arg[3,1,1,1]=(0.372738564315)*x[1]
74095            arg[3,1,2,0]=(0.0544097075138)*x[0]
74096            arg[3,1,2,1]=(-0.0883198944676)*x[1]
74097            arg[3,2,0,0]=(-0.671057180545)*x[0]
74098            arg[3,2,0,1]=(-0.118991797907)*x[1]
74099            arg[3,2,1,0]=(-0.27196730081)*x[0]
74100            arg[3,2,1,1]=(-0.458807068968)*x[1]
74101            arg[3,2,2,0]=(-0.31485399083)*x[0]
74102            arg[3,2,2,1]=(0.487291960328)*x[1]
74103            arg[3,3,0,0]=(-0.750302723531)*x[0]
74104            arg[3,3,0,1]=(-0.486428789771)*x[1]
74105            arg[3,3,1,0]=(-0.295909324594)*x[0]
74106            arg[3,3,1,1]=(0.325702372596)*x[1]
74107            arg[3,3,2,0]=(-0.512109540631)*x[0]
74108            arg[3,3,2,1]=(0.563284721908)*x[1]
74109            arg[3,4,0,0]=(0.53579406798)*x[0]
74110            arg[3,4,0,1]=(-0.468431927975)*x[1]
74111            arg[3,4,1,0]=(0.570851401329)*x[0]
74112            arg[3,4,1,1]=(0.107791149865)*x[1]
74113            arg[3,4,2,0]=(-0.211543670157)*x[0]
74114            arg[3,4,2,1]=(0.848189550468)*x[1]
74115            ref=sqrt((6.54316712884)+(4.39564064326))
74116    
74117          else:
74118            arg=Data(0,(4, 5, 3, 3),w)
74119            arg[0,0,0,0]=(-0.392256494872)*x[0]
74120            arg[0,0,0,1]=(0.271488478841)*x[1]
74121            arg[0,0,0,2]=(-0.878268531987)*x[2]
74122            arg[0,0,1,0]=(0.106903787643)*x[0]
74123            arg[0,0,1,1]=(-0.117986434516)*x[1]
74124            arg[0,0,1,2]=(0.912673598522)*x[2]
74125            arg[0,0,2,0]=(-0.652598945824)*x[0]
74126            arg[0,0,2,1]=(-0.984195895647)*x[1]
74127            arg[0,0,2,2]=(-0.137845459589)*x[2]
74128            arg[0,1,0,0]=(0.696713200721)*x[0]
74129            arg[0,1,0,1]=(0.480337929223)*x[1]
74130            arg[0,1,0,2]=(-0.628726114325)*x[2]
74131            arg[0,1,1,0]=(-0.356503461347)*x[0]
74132            arg[0,1,1,1]=(-0.64670584045)*x[1]
74133            arg[0,1,1,2]=(-0.737787618908)*x[2]
74134            arg[0,1,2,0]=(-0.14207595302)*x[0]
74135            arg[0,1,2,1]=(-0.573485525334)*x[1]
74136            arg[0,1,2,2]=(-0.955542178481)*x[2]
74137            arg[0,2,0,0]=(0.371952883975)*x[0]
74138            arg[0,2,0,1]=(0.114016178762)*x[1]
74139            arg[0,2,0,2]=(0.552721218169)*x[2]
74140            arg[0,2,1,0]=(0.318426742113)*x[0]
74141            arg[0,2,1,1]=(0.862220239384)*x[1]
74142            arg[0,2,1,2]=(0.887376889978)*x[2]
74143            arg[0,2,2,0]=(0.203656742981)*x[0]
74144            arg[0,2,2,1]=(0.350541335144)*x[1]
74145            arg[0,2,2,2]=(-0.448401957447)*x[2]
74146            arg[0,3,0,0]=(-0.349200084042)*x[0]
74147            arg[0,3,0,1]=(-0.546012602125)*x[1]
74148            arg[0,3,0,2]=(-0.931488270979)*x[2]
74149            arg[0,3,1,0]=(0.207457831058)*x[0]
74150            arg[0,3,1,1]=(0.557715840549)*x[1]
74151            arg[0,3,1,2]=(-0.978130146744)*x[2]
74152            arg[0,3,2,0]=(-0.55088967957)*x[0]
74153            arg[0,3,2,1]=(0.0490328838057)*x[1]
74154            arg[0,3,2,2]=(0.150209929122)*x[2]
74155            arg[0,4,0,0]=(-0.484145614698)*x[0]
74156            arg[0,4,0,1]=(0.393078411279)*x[1]
74157            arg[0,4,0,2]=(0.0678631863917)*x[2]
74158            arg[0,4,1,0]=(-0.350980464628)*x[0]
74159            arg[0,4,1,1]=(-0.784203839564)*x[1]
74160            arg[0,4,1,2]=(0.636960296147)*x[2]
74161            arg[0,4,2,0]=(0.592799503581)*x[0]
74162            arg[0,4,2,1]=(-0.672104833683)*x[1]
74163            arg[0,4,2,2]=(0.0366914082467)*x[2]
74164            arg[1,0,0,0]=(-0.147168019774)*x[0]
74165            arg[1,0,0,1]=(-0.0823637938956)*x[1]
74166            arg[1,0,0,2]=(-0.852729690176)*x[2]
74167            arg[1,0,1,0]=(-0.612338430408)*x[0]
74168            arg[1,0,1,1]=(-0.85820035747)*x[1]
74169            arg[1,0,1,2]=(-0.463664966162)*x[2]
74170            arg[1,0,2,0]=(0.274600720491)*x[0]
74171            arg[1,0,2,1]=(-0.488508234093)*x[1]
74172            arg[1,0,2,2]=(-0.28251466519)*x[2]
74173            arg[1,1,0,0]=(-0.0196532462794)*x[0]
74174            arg[1,1,0,1]=(0.239352528871)*x[1]
74175            arg[1,1,0,2]=(-0.17054773873)*x[2]
74176            arg[1,1,1,0]=(-0.2396627789)*x[0]
74177            arg[1,1,1,1]=(0.868970323003)*x[1]
74178            arg[1,1,1,2]=(0.401487430312)*x[2]
74179            arg[1,1,2,0]=(-0.624411449783)*x[0]
74180            arg[1,1,2,1]=(0.0036634266684)*x[1]
74181            arg[1,1,2,2]=(0.736129120967)*x[2]
74182            arg[1,2,0,0]=(0.183756511707)*x[0]
74183            arg[1,2,0,1]=(-0.288651848639)*x[1]
74184            arg[1,2,0,2]=(-0.0672121537447)*x[2]
74185            arg[1,2,1,0]=(-0.323274725936)*x[0]
74186            arg[1,2,1,1]=(0.298001016025)*x[1]
74187            arg[1,2,1,2]=(-0.976052460675)*x[2]
74188            arg[1,2,2,0]=(0.596504441096)*x[0]
74189            arg[1,2,2,1]=(0.873776068983)*x[1]
74190            arg[1,2,2,2]=(-0.994068273196)*x[2]
74191            arg[1,3,0,0]=(-0.495387299681)*x[0]
74192            arg[1,3,0,1]=(-0.123674756551)*x[1]
74193            arg[1,3,0,2]=(0.581213818577)*x[2]
74194            arg[1,3,1,0]=(0.146405749701)*x[0]
74195            arg[1,3,1,1]=(-0.594994686675)*x[1]
74196            arg[1,3,1,2]=(-0.059093568436)*x[2]
74197            arg[1,3,2,0]=(0.651004255104)*x[0]
74198            arg[1,3,2,1]=(-0.977880706193)*x[1]
74199            arg[1,3,2,2]=(0.370344651319)*x[2]
74200            arg[1,4,0,0]=(-0.503657215247)*x[0]
74201            arg[1,4,0,1]=(-0.170885297253)*x[1]
74202            arg[1,4,0,2]=(0.533424480956)*x[2]
74203            arg[1,4,1,0]=(-0.220533193308)*x[0]
74204            arg[1,4,1,1]=(0.344537611882)*x[1]
74205            arg[1,4,1,2]=(0.861473877282)*x[2]
74206            arg[1,4,2,0]=(-0.0923010438884)*x[0]
74207            arg[1,4,2,1]=(-0.338256780498)*x[1]
74208            arg[1,4,2,2]=(0.528567959345)*x[2]
74209            arg[2,0,0,0]=(-0.0423053381485)*x[0]
74210            arg[2,0,0,1]=(0.856798579151)*x[1]
74211            arg[2,0,0,2]=(0.383258153853)*x[2]
74212            arg[2,0,1,0]=(0.350994872736)*x[0]
74213            arg[2,0,1,1]=(-0.78055158106)*x[1]
74214            arg[2,0,1,2]=(-0.770876699915)*x[2]
74215            arg[2,0,2,0]=(-0.935133287106)*x[0]
74216            arg[2,0,2,1]=(0.618238076989)*x[1]
74217            arg[2,0,2,2]=(-0.846783087949)*x[2]
74218            arg[2,1,0,0]=(-0.657394511405)*x[0]
74219            arg[2,1,0,1]=(0.576218821654)*x[1]
74220            arg[2,1,0,2]=(0.0269446356493)*x[2]
74221            arg[2,1,1,0]=(-0.310710230949)*x[0]
74222            arg[2,1,1,1]=(0.425412515598)*x[1]
74223            arg[2,1,1,2]=(-0.225225290862)*x[2]
74224            arg[2,1,2,0]=(-0.539928589495)*x[0]
74225            arg[2,1,2,1]=(-0.348082121765)*x[1]
74226            arg[2,1,2,2]=(-0.0287274646233)*x[2]
74227            arg[2,2,0,0]=(0.746132865923)*x[0]
74228            arg[2,2,0,1]=(-0.0234203693548)*x[1]
74229            arg[2,2,0,2]=(0.517411821941)*x[2]
74230            arg[2,2,1,0]=(-0.183204217349)*x[0]
74231            arg[2,2,1,1]=(0.714988861836)*x[1]
74232            arg[2,2,1,2]=(0.829083318937)*x[2]
74233            arg[2,2,2,0]=(0.458067555841)*x[0]
74234            arg[2,2,2,1]=(0.639317125869)*x[1]
74235            arg[2,2,2,2]=(0.104611520408)*x[2]
74236            arg[2,3,0,0]=(-0.420513461135)*x[0]
74237            arg[2,3,0,1]=(0.888686162754)*x[1]
74238            arg[2,3,0,2]=(0.939305777879)*x[2]
74239            arg[2,3,1,0]=(0.856795132015)*x[0]
74240            arg[2,3,1,1]=(0.817593141895)*x[1]
74241            arg[2,3,1,2]=(0.962503342535)*x[2]
74242            arg[2,3,2,0]=(-0.334586700245)*x[0]
74243            arg[2,3,2,1]=(0.182696129528)*x[1]
74244            arg[2,3,2,2]=(-0.707271571206)*x[2]
74245            arg[2,4,0,0]=(-0.594795981069)*x[0]
74246            arg[2,4,0,1]=(0.451239168073)*x[1]
74247            arg[2,4,0,2]=(0.191212211556)*x[2]
74248            arg[2,4,1,0]=(-0.503465984944)*x[0]
74249            arg[2,4,1,1]=(0.725377884208)*x[1]
74250            arg[2,4,1,2]=(-0.40719255752)*x[2]
74251            arg[2,4,2,0]=(0.268071476451)*x[0]
74252            arg[2,4,2,1]=(0.85066639942)*x[1]
74253            arg[2,4,2,2]=(-0.906021406945)*x[2]
74254            arg[3,0,0,0]=(-0.922179152122)*x[0]
74255            arg[3,0,0,1]=(-0.0903841240007)*x[1]
74256            arg[3,0,0,2]=(-0.751482803516)*x[2]
74257            arg[3,0,1,0]=(0.960697809119)*x[0]
74258            arg[3,0,1,1]=(0.638878873158)*x[1]
74259            arg[3,0,1,2]=(0.390932234724)*x[2]
74260            arg[3,0,2,0]=(-0.925078301694)*x[0]
74261            arg[3,0,2,1]=(0.793590580665)*x[1]
74262            arg[3,0,2,2]=(0.535478366911)*x[2]
74263            arg[3,1,0,0]=(-0.431951993217)*x[0]
74264            arg[3,1,0,1]=(0.211750261417)*x[1]
74265            arg[3,1,0,2]=(-0.930706580442)*x[2]
74266            arg[3,1,1,0]=(0.330979313323)*x[0]
74267            arg[3,1,1,1]=(-0.838919076081)*x[1]
74268            arg[3,1,1,2]=(0.134250050168)*x[2]
74269            arg[3,1,2,0]=(0.414922811301)*x[0]
74270            arg[3,1,2,1]=(-0.663692878121)*x[1]
74271            arg[3,1,2,2]=(0.88499278543)*x[2]
74272            arg[3,2,0,0]=(0.0884662742233)*x[0]
74273            arg[3,2,0,1]=(-0.412630722821)*x[1]
74274            arg[3,2,0,2]=(-0.730850884928)*x[2]
74275            arg[3,2,1,0]=(0.722207547366)*x[0]
74276            arg[3,2,1,1]=(-0.260067950749)*x[1]
74277            arg[3,2,1,2]=(0.426259201494)*x[2]
74278            arg[3,2,2,0]=(0.0516111795322)*x[0]
74279            arg[3,2,2,1]=(0.922853710048)*x[1]
74280            arg[3,2,2,2]=(-0.991912758116)*x[2]
74281            arg[3,3,0,0]=(0.263933965905)*x[0]
74282            arg[3,3,0,1]=(0.840541758799)*x[1]
74283            arg[3,3,0,2]=(0.417658511125)*x[2]
74284            arg[3,3,1,0]=(-0.901745614723)*x[0]
74285            arg[3,3,1,1]=(-0.623608908699)*x[1]
74286            arg[3,3,1,2]=(0.0522167208784)*x[2]
74287            arg[3,3,2,0]=(-0.549431264931)*x[0]
74288            arg[3,3,2,1]=(0.919971855457)*x[1]
74289            arg[3,3,2,2]=(0.142757773397)*x[2]
74290            arg[3,4,0,0]=(-0.258875259824)*x[0]
74291            arg[3,4,0,1]=(-0.0373872187041)*x[1]
74292            arg[3,4,0,2]=(0.445989164864)*x[2]
74293            arg[3,4,1,0]=(0.0273711397038)*x[0]
74294            arg[3,4,1,1]=(-0.85522629)*x[1]
74295            arg[3,4,1,2]=(-0.835392581226)*x[2]
74296            arg[3,4,2,0]=(0.402929450189)*x[0]
74297            arg[3,4,2,1]=(0.549623033221)*x[1]
74298            arg[3,4,2,2]=(0.237803212109)*x[2]
74299            ref=sqrt((15.1448100099)+(3.61598249819))
74300    
74301          res=L2(arg)
74302          self.failUnless(isinstance(res,float),"wrong type of result.")
74303          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
74304       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
74305       def test_L2_onFunctionOnContactZero_fromSymbol_rank0(self):
74306          """
74307          tests L2-norm of Symbol on the FunctionOnContactZero
74308    
74309          assumptions: self.domain supports integration on FunctionOnContactZero
74310          """
74311          dim=self.domain.getDim()
74312          w=FunctionOnContactZero(self.domain)
74313          x=w.getX()
74314          if dim==2:
74315            arg=Symbol(shape=(),dim=dim)
74316            s=Data(0,(),w)
74317            s=(-0.833494674242)*x[0]
74318            ref=sqrt((0.0)+(0.173678342998))
74319    
74320          else:
74321            arg=Symbol(shape=(),dim=dim)
74322            s=Data(0,(),w)
74323            s=(-0.413475598947)*x[0]
74324            ref=sqrt((0.0)+(0.0427405177311))
74325    
74326          res=L2(arg)
74327          sub=res.substitute({arg:s})
74328          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
74329          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
74330          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
74331       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
74332       def test_L2_onFunctionOnContactZero_fromSymbol_rank1(self):
74333          """
74334          tests L2-norm of Symbol on the FunctionOnContactZero
74335    
74336          assumptions: self.domain supports integration on FunctionOnContactZero
74337          """
74338          dim=self.domain.getDim()
74339          w=FunctionOnContactZero(self.domain)
74340          x=w.getX()
74341          if dim==2:
74342            arg=Symbol(shape=(2,),dim=dim)
74343            s=Data(0,(2,),w)
74344            s[0]=(-0.836300232979)*x[0]
74345            s[1]=(-0.855949069442)*x[1]
74346            ref=sqrt((0.244216269826)+(0.17484951992))
74347    
74348          else:
74349            arg=Symbol(shape=(3,),dim=dim)
74350            s=Data(0,(3,),w)
74351            s[0]=(0.604037678348)*x[0]
74352            s[1]=(0.173183346503)*x[1]
74353            s[2]=(0.0242607956405)*x[2]
74354            ref=sqrt((0.0101936859037)+(0.091215379216))
74355    
74356          res=L2(arg)
74357          sub=res.substitute({arg:s})
74358          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
74359          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
74360          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
74361       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
74362       def test_L2_onFunctionOnContactZero_fromSymbol_rank2(self):
74363          """
74364          tests L2-norm of Symbol on the FunctionOnContactZero
74365    
74366          assumptions: self.domain supports integration on FunctionOnContactZero
74367          """
74368          dim=self.domain.getDim()
74369          w=FunctionOnContactZero(self.domain)
74370          x=w.getX()
74371          if dim==2:
74372            arg=Symbol(shape=(4, 2),dim=dim)
74373            s=Data(0,(4, 2),w)
74374            s[0,0]=(-0.482686145994)*x[0]
74375            s[0,1]=(-0.948811640283)*x[1]
74376            s[1,0]=(-0.992141136202)*x[0]
74377            s[1,1]=(0.966819328886)*x[1]
74378            s[2,0]=(0.948775134068)*x[0]
74379            s[2,1]=(-0.468349890651)*x[1]
74380            s[3,0]=(-0.671716588929)*x[0]
74381            s[3,1]=(-0.340484526166)*x[1]
74382            ref=sqrt((0.723421492026)+(0.642176845137))
74383    
74384          else:
74385            arg=Symbol(shape=(4, 3),dim=dim)
74386            s=Data(0,(4, 3),w)
74387            s[0,0]=(-0.891790655048)*x[0]
74388            s[0,1]=(-0.245798024334)*x[1]
74389            s[0,2]=(0.0537464591204)*x[2]
74390            s[1,0]=(0.230259637248)*x[0]
74391            s[1,1]=(0.0816863818806)*x[1]
74392            s[1,2]=(0.000519957155649)*x[2]
74393            s[2,0]=(0.0828558901056)*x[0]
74394            s[2,1]=(0.831425281201)*x[1]
74395            s[2,2]=(-0.601659198259)*x[2]
74396            s[3,0]=(-0.499606719218)*x[0]
74397            s[3,1]=(0.0962103643534)*x[1]
74398            s[3,2]=(0.997600764289)*x[2]
74399            ref=sqrt((0.709234598055)+(0.276195511347))
74400    
74401          res=L2(arg)
74402          sub=res.substitute({arg:s})
74403          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
74404          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
74405          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
74406       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
74407       def test_L2_onFunctionOnContactZero_fromSymbol_rank3(self):
74408          """
74409          tests L2-norm of Symbol on the FunctionOnContactZero
74410    
74411          assumptions: self.domain supports integration on FunctionOnContactZero
74412          """
74413          dim=self.domain.getDim()
74414          w=FunctionOnContactZero(self.domain)
74415          x=w.getX()
74416          if dim==2:
74417            arg=Symbol(shape=(6, 2, 2),dim=dim)
74418            s=Data(0,(6, 2, 2),w)
74419            s[0,0,0]=(0.991681821415)*x[0]
74420            s[0,0,1]=(-0.224425650593)*x[1]
74421            s[0,1,0]=(-0.876361852829)*x[0]
74422            s[0,1,1]=(0.537837501136)*x[1]
74423            s[1,0,0]=(-0.54481895152)*x[0]
74424            s[1,0,1]=(0.593327791724)*x[1]
74425            s[1,1,0]=(0.418004915001)*x[0]
74426            s[1,1,1]=(-0.192957383127)*x[1]
74427            s[2,0,0]=(0.201546374554)*x[0]
74428            s[2,0,1]=(-0.265198464218)*x[1]
74429            s[2,1,0]=(-0.965663986948)*x[0]
74430            s[2,1,1]=(-0.323140398665)*x[1]
74431            s[3,0,0]=(0.233122332146)*x[0]
74432            s[3,0,1]=(-0.121823927196)*x[1]
74433            s[3,1,0]=(0.292287834978)*x[0]
74434            s[3,1,1]=(0.932977541215)*x[1]
74435            s[4,0,0]=(-0.345560503758)*x[0]
74436            s[4,0,1]=(0.192322796658)*x[1]
74437            s[4,1,0]=(0.0397082772329)*x[0]
74438            s[4,1,1]=(0.659346662851)*x[1]
74439            s[5,0,0]=(-0.195000663748)*x[0]
74440            s[5,0,1]=(-0.214222081491)*x[1]
74441            s[5,1,0]=(0.830046961039)*x[0]
74442            s[5,1,1]=(0.535960833948)*x[1]
74443            ref=sqrt((0.864605256793)+(1.04597420834))
74444    
74445          else:
74446            arg=Symbol(shape=(6, 2, 3),dim=dim)
74447            s=Data(0,(6, 2, 3),w)
74448            s[0,0,0]=(-0.660450094858)*x[0]
74449            s[0,0,1]=(-0.383241027824)*x[1]
74450            s[0,0,2]=(0.615453081929)*x[2]
74451            s[0,1,0]=(0.0679578237259)*x[0]
74452            s[0,1,1]=(0.801162277845)*x[1]
74453            s[0,1,2]=(0.741261458673)*x[2]
74454            s[1,0,0]=(0.0391969780398)*x[0]
74455            s[1,0,1]=(-0.400798945746)*x[1]
74456            s[1,0,2]=(-0.00301944444045)*x[2]
74457            s[1,1,0]=(-0.473988187262)*x[0]
74458            s[1,1,1]=(0.124770000361)*x[1]
74459            s[1,1,2]=(-0.65645884933)*x[2]
74460            s[2,0,0]=(-0.849984307849)*x[0]
74461            s[2,0,1]=(-0.992314728332)*x[1]
74462            s[2,0,2]=(-0.221196101266)*x[2]
74463            s[2,1,0]=(0.303587301796)*x[0]
74464            s[2,1,1]=(-0.276498999588)*x[1]
74465            s[2,1,2]=(0.341982161276)*x[2]
74466            s[3,0,0]=(-0.479181710128)*x[0]
74467            s[3,0,1]=(-0.799175074635)*x[1]
74468            s[3,0,2]=(-0.741790237186)*x[2]
74469            s[3,1,0]=(0.512279309628)*x[0]
74470            s[3,1,1]=(-0.346869946977)*x[1]
74471            s[3,1,2]=(-0.559402479335)*x[2]
74472            s[4,0,0]=(0.449912947237)*x[0]
74473            s[4,0,1]=(-0.0398661706497)*x[1]
74474            s[4,0,2]=(-0.856490275998)*x[2]
74475            s[4,1,0]=(-0.720500133511)*x[0]
74476            s[4,1,1]=(-0.97292914508)*x[1]
74477            s[4,1,2]=(-0.151959359468)*x[2]
74478            s[5,0,0]=(0.397527396462)*x[0]
74479            s[5,0,1]=(-0.151341467662)*x[1]
74480            s[5,0,2]=(-0.202710617619)*x[2]
74481            s[5,1,0]=(0.386974642401)*x[0]
74482            s[5,1,1]=(0.103900256892)*x[1]
74483            s[5,1,2]=(-0.152493955764)*x[2]
74484            ref=sqrt((2.3254122568)+(0.750754270358))
74485    
74486          res=L2(arg)
74487          sub=res.substitute({arg:s})
74488          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
74489          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
74490          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
74491       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
74492       def test_L2_onFunctionOnContactZero_fromSymbol_rank4(self):
74493          """
74494          tests L2-norm of Symbol on the FunctionOnContactZero
74495    
74496          assumptions: self.domain supports integration on FunctionOnContactZero
74497          """
74498          dim=self.domain.getDim()
74499          w=FunctionOnContactZero(self.domain)
74500          x=w.getX()
74501          if dim==2:
74502            arg=Symbol(shape=(4, 5, 3, 2),dim=dim)
74503            s=Data(0,(4, 5, 3, 2),w)
74504            s[0,0,0,0]=(0.914300112399)*x[0]
74505            s[0,0,0,1]=(0.800216576034)*x[1]
74506            s[0,0,1,0]=(-0.396870583938)*x[0]
74507            s[0,0,1,1]=(0.867325478217)*x[1]
74508            s[0,0,2,0]=(-0.200425849404)*x[0]
74509            s[0,0,2,1]=(0.562512527677)*x[1]
74510            s[0,1,0,0]=(-0.26457813536)*x[0]
74511            s[0,1,0,1]=(-0.865366345944)*x[1]
74512            s[0,1,1,0]=(0.906255889925)*x[0]
74513            s[0,1,1,1]=(-0.144426923939)*x[1]
74514            s[0,1,2,0]=(-0.835643108487)*x[0]
74515            s[0,1,2,1]=(-0.644514669599)*x[1]
74516            s[0,2,0,0]=(0.516524292926)*x[0]
74517            s[0,2,0,1]=(0.825766812215)*x[1]
74518            s[0,2,1,0]=(-0.37867452414)*x[0]
74519            s[0,2,1,1]=(0.920377065217)*x[1]
74520            s[0,2,2,0]=(0.0937552904916)*x[0]
74521            s[0,2,2,1]=(0.378732372322)*x[1]
74522            s[0,3,0,0]=(0.496752465789)*x[0]
74523            s[0,3,0,1]=(0.427047604935)*x[1]
74524            s[0,3,1,0]=(0.750830919575)*x[0]
74525            s[0,3,1,1]=(0.576559278913)*x[1]
74526            s[0,3,2,0]=(-0.115508523662)*x[0]
74527            s[0,3,2,1]=(0.737623150949)*x[1]
74528            s[0,4,0,0]=(0.440274015173)*x[0]
74529            s[0,4,0,1]=(-0.450295347264)*x[1]
74530            s[0,4,1,0]=(0.170660831663)*x[0]
74531            s[0,4,1,1]=(-0.00668299893696)*x[1]
74532            s[0,4,2,0]=(0.443915340807)*x[0]
74533            s[0,4,2,1]=(-0.096469220433)*x[1]
74534            s[1,0,0,0]=(0.124319331592)*x[0]
74535            s[1,0,0,1]=(0.0209567989245)*x[1]
74536            s[1,0,1,0]=(-0.120682670913)*x[0]
74537            s[1,0,1,1]=(-0.0668286988997)*x[1]
74538            s[1,0,2,0]=(-0.622418696038)*x[0]
74539            s[1,0,2,1]=(0.690522460229)*x[1]
74540            s[1,1,0,0]=(-0.564034328652)*x[0]
74541            s[1,1,0,1]=(-0.488373582152)*x[1]
74542            s[1,1,1,0]=(0.37807858594)*x[0]
74543            s[1,1,1,1]=(0.607009462361)*x[1]
74544            s[1,1,2,0]=(0.357544289055)*x[0]
74545            s[1,1,2,1]=(0.89416048362)*x[1]
74546            s[1,2,0,0]=(0.180403414369)*x[0]
74547            s[1,2,0,1]=(-0.590910014416)*x[1]
74548            s[1,2,1,0]=(-0.0184755955417)*x[0]
74549            s[1,2,1,1]=(0.84738705179)*x[1]
74550            s[1,2,2,0]=(-0.677245742487)*x[0]
74551            s[1,2,2,1]=(-0.457219426905)*x[1]
74552            s[1,3,0,0]=(-0.454834820082)*x[0]
74553            s[1,3,0,1]=(-0.725915297395)*x[1]
74554            s[1,3,1,0]=(0.184608835513)*x[0]
74555            s[1,3,1,1]=(0.313259821447)*x[1]
74556            s[1,3,2,0]=(-0.252818794924)*x[0]
74557            s[1,3,2,1]=(-0.654170873581)*x[1]
74558            s[1,4,0,0]=(-0.315092745211)*x[0]
74559            s[1,4,0,1]=(-0.922091825394)*x[1]
74560            s[1,4,1,0]=(-0.386863810397)*x[0]
74561            s[1,4,1,1]=(0.430983629642)*x[1]
74562            s[1,4,2,0]=(-0.762809887523)*x[0]
74563            s[1,4,2,1]=(0.58896325465)*x[1]
74564            s[2,0,0,0]=(-0.456340727871)*x[0]
74565            s[2,0,0,1]=(-0.0187981167144)*x[1]
74566            s[2,0,1,0]=(-0.525249731866)*x[0]
74567            s[2,0,1,1]=(0.399070164526)*x[1]
74568            s[2,0,2,0]=(-0.201772101073)*x[0]
74569            s[2,0,2,1]=(-0.0968197655895)*x[1]
74570            s[2,1,0,0]=(0.191048791069)*x[0]
74571            s[2,1,0,1]=(0.434067010545)*x[1]
74572            s[2,1,1,0]=(0.848522099444)*x[0]
74573            s[2,1,1,1]=(0.696991804739)*x[1]
74574            s[2,1,2,0]=(0.220121221699)*x[0]
74575            s[2,1,2,1]=(0.301203065888)*x[1]
74576            s[2,2,0,0]=(0.766472384148)*x[0]
74577            s[2,2,0,1]=(-0.0714402172399)*x[1]
74578            s[2,2,1,0]=(0.492328493075)*x[0]
74579            s[2,2,1,1]=(0.558080277043)*x[1]
74580            s[2,2,2,0]=(0.469934590015)*x[0]
74581            s[2,2,2,1]=(0.758048072142)*x[1]
74582            s[2,3,0,0]=(0.085308155098)*x[0]
74583            s[2,3,0,1]=(0.297189197296)*x[1]
74584            s[2,3,1,0]=(0.978282022769)*x[0]
74585            s[2,3,1,1]=(0.682153031605)*x[1]
74586            s[2,3,2,0]=(-0.561125939181)*x[0]
74587            s[2,3,2,1]=(0.440224855986)*x[1]
74588            s[2,4,0,0]=(0.72050530483)*x[0]
74589            s[2,4,0,1]=(-0.206652409514)*x[1]
74590            s[2,4,1,0]=(0.387667449577)*x[0]
74591            s[2,4,1,1]=(0.493459617619)*x[1]
74592            s[2,4,2,0]=(0.688054409914)*x[0]
74593            s[2,4,2,1]=(0.971336356338)*x[1]
74594            s[3,0,0,0]=(0.861462391015)*x[0]
74595            s[3,0,0,1]=(0.0554843601356)*x[1]
74596            s[3,0,1,0]=(0.83937959439)*x[0]
74597            s[3,0,1,1]=(0.954697475987)*x[1]
74598            s[3,0,2,0]=(-0.997867671237)*x[0]
74599            s[3,0,2,1]=(-0.218317664783)*x[1]
74600            s[3,1,0,0]=(-0.262679977079)*x[0]
74601            s[3,1,0,1]=(0.0145063905029)*x[1]
74602            s[3,1,1,0]=(0.130108953527)*x[0]
74603            s[3,1,1,1]=(0.9110336683)*x[1]
74604            s[3,1,2,0]=(0.278623938991)*x[0]
74605            s[3,1,2,1]=(-0.374239642631)*x[1]
74606            s[3,2,0,0]=(0.720411588365)*x[0]
74607            s[3,2,0,1]=(0.794261999505)*x[1]
74608            s[3,2,1,0]=(0.098798147685)*x[0]
74609            s[3,2,1,1]=(-0.338610161254)*x[1]
74610            s[3,2,2,0]=(0.961927950853)*x[0]
74611            s[3,2,2,1]=(-0.307621697905)*x[1]
74612            s[3,3,0,0]=(-0.73836606888)*x[0]
74613            s[3,3,0,1]=(0.714826978574)*x[1]
74614            s[3,3,1,0]=(-0.394351029155)*x[0]
74615            s[3,3,1,1]=(0.408664173503)*x[1]
74616            s[3,3,2,0]=(0.844614972483)*x[0]
74617            s[3,3,2,1]=(-0.478702935986)*x[1]
74618            s[3,4,0,0]=(0.0447493337692)*x[0]
74619            s[3,4,0,1]=(0.317235470904)*x[1]
74620            s[3,4,1,0]=(-0.960879888735)*x[0]
74621            s[3,4,1,1]=(-0.349654948749)*x[1]
74622            s[3,4,2,0]=(0.15351062359)*x[0]
74623            s[3,4,2,1]=(-0.30302268499)*x[1]
74624            ref=sqrt((6.41155668825)+(4.53628477602))
74625    
74626          else:
74627            arg=Symbol(shape=(4, 5, 3, 3),dim=dim)
74628            s=Data(0,(4, 5, 3, 3),w)
74629            s[0,0,0,0]=(-0.89168364071)*x[0]
74630            s[0,0,0,1]=(0.656887229548)*x[1]
74631            s[0,0,0,2]=(0.0379592114434)*x[2]
74632            s[0,0,1,0]=(-0.499743077643)*x[0]
74633            s[0,0,1,1]=(0.433796934727)*x[1]
74634            s[0,0,1,2]=(-0.419639340675)*x[2]
74635            s[0,0,2,0]=(-0.229849090155)*x[0]
74636            s[0,0,2,1]=(0.48808994712)*x[1]
74637            s[0,0,2,2]=(0.424012703453)*x[2]
74638            s[0,1,0,0]=(0.498682171432)*x[0]
74639            s[0,1,0,1]=(0.623180282688)*x[1]
74640            s[0,1,0,2]=(0.467278343783)*x[2]
74641            s[0,1,1,0]=(-0.461240789999)*x[0]
74642            s[0,1,1,1]=(0.79579036671)*x[1]
74643            s[0,1,1,2]=(0.0336609748509)*x[2]
74644            s[0,1,2,0]=(-0.758182366212)*x[0]
74645            s[0,1,2,1]=(0.335354770639)*x[1]
74646            s[0,1,2,2]=(-0.43256653064)*x[2]
74647            s[0,2,0,0]=(0.267085562446)*x[0]
74648            s[0,2,0,1]=(0.74096852219)*x[1]
74649            s[0,2,0,2]=(0.884306535005)*x[2]
74650            s[0,2,1,0]=(0.839435822303)*x[0]
74651            s[0,2,1,1]=(0.981598566715)*x[1]
74652            s[0,2,1,2]=(0.178444224041)*x[2]
74653            s[0,2,2,0]=(0.28828503848)*x[0]
74654            s[0,2,2,1]=(-0.626210031155)*x[1]
74655            s[0,2,2,2]=(-0.69299554971)*x[2]
74656            s[0,3,0,0]=(-0.0218942570636)*x[0]
74657            s[0,3,0,1]=(0.542278046952)*x[1]
74658            s[0,3,0,2]=(0.953044269075)*x[2]
74659            s[0,3,1,0]=(-0.557505895397)*x[0]
74660            s[0,3,1,1]=(0.523921264225)*x[1]
74661            s[0,3,1,2]=(-0.786147057715)*x[2]
74662            s[0,3,2,0]=(-0.89329999988)*x[0]
74663            s[0,3,2,1]=(0.462215391096)*x[1]
74664            s[0,3,2,2]=(-0.374927543026)*x[2]
74665            s[0,4,0,0]=(-0.247805259481)*x[0]
74666            s[0,4,0,1]=(0.645841666564)*x[1]
74667            s[0,4,0,2]=(0.16650874055)*x[2]
74668            s[0,4,1,0]=(0.266137626404)*x[0]
74669            s[0,4,1,1]=(-0.288059047514)*x[1]
74670            s[0,4,1,2]=(-0.486812056856)*x[2]
74671            s[0,4,2,0]=(0.688344153316)*x[0]
74672            s[0,4,2,1]=(-0.655455791821)*x[1]
74673            s[0,4,2,2]=(-0.348241680636)*x[2]
74674            s[1,0,0,0]=(0.762345221451)*x[0]
74675            s[1,0,0,1]=(0.264502883884)*x[1]
74676            s[1,0,0,2]=(0.48788907144)*x[2]
74677            s[1,0,1,0]=(0.42005226242)*x[0]
74678            s[1,0,1,1]=(-0.825723492918)*x[1]
74679            s[1,0,1,2]=(0.797321195042)*x[2]
74680            s[1,0,2,0]=(-0.19639010863)*x[0]
74681            s[1,0,2,1]=(-0.702950524388)*x[1]
74682            s[1,0,2,2]=(0.235603192829)*x[2]
74683            s[1,1,0,0]=(-0.454504750183)*x[0]
74684            s[1,1,0,1]=(0.31590384254)*x[1]
74685            s[1,1,0,2]=(-0.19227935466)*x[2]
74686            s[1,1,1,0]=(0.0070439759207)*x[0]
74687            s[1,1,1,1]=(-0.293083678876)*x[1]
74688            s[1,1,1,2]=(-0.878745990375)*x[2]
74689            s[1,1,2,0]=(-0.192794025412)*x[0]
74690            s[1,1,2,1]=(0.648895386958)*x[1]
74691            s[1,1,2,2]=(0.775208361981)*x[2]
74692            s[1,2,0,0]=(-0.368309400642)*x[0]
74693            s[1,2,0,1]=(-0.917724017536)*x[1]
74694            s[1,2,0,2]=(0.920777364818)*x[2]
74695            s[1,2,1,0]=(-0.645052443283)*x[0]
74696            s[1,2,1,1]=(0.139033194163)*x[1]
74697            s[1,2,1,2]=(-0.0404331243874)*x[2]
74698            s[1,2,2,0]=(-0.61245787618)*x[0]
74699            s[1,2,2,1]=(0.0482137893562)*x[1]
74700            s[1,2,2,2]=(0.179049768973)*x[2]
74701            s[1,3,0,0]=(-0.896233852085)*x[0]
74702            s[1,3,0,1]=(-0.681461465854)*x[1]
74703            s[1,3,0,2]=(-0.446646723524)*x[2]
74704            s[1,3,1,0]=(-0.555003216598)*x[0]
74705            s[1,3,1,1]=(0.35239325809)*x[1]
74706            s[1,3,1,2]=(0.39507338896)*x[2]
74707            s[1,3,2,0]=(-0.13811362276)*x[0]
74708            s[1,3,2,1]=(-0.374436915851)*x[1]
74709            s[1,3,2,2]=(0.0513289236564)*x[2]
74710            s[1,4,0,0]=(-0.687683310284)*x[0]
74711            s[1,4,0,1]=(0.572359319345)*x[1]
74712            s[1,4,0,2]=(-0.814515142116)*x[2]
74713            s[1,4,1,0]=(-0.565292086642)*x[0]
74714            s[1,4,1,1]=(-0.191646702103)*x[1]
74715            s[1,4,1,2]=(-0.292049727092)*x[2]
74716            s[1,4,2,0]=(0.452055314722)*x[0]
74717            s[1,4,2,1]=(-0.457431088076)*x[1]
74718            s[1,4,2,2]=(-0.178361949498)*x[2]
74719            s[2,0,0,0]=(0.354814016099)*x[0]
74720            s[2,0,0,1]=(-0.384609805819)*x[1]
74721            s[2,0,0,2]=(-0.281337028672)*x[2]
74722            s[2,0,1,0]=(0.142919596773)*x[0]
74723            s[2,0,1,1]=(-0.57612422002)*x[1]
74724            s[2,0,1,2]=(-0.529853258262)*x[2]
74725            s[2,0,2,0]=(0.80636898712)*x[0]
74726            s[2,0,2,1]=(0.106993663032)*x[1]
74727            s[2,0,2,2]=(0.255600789365)*x[2]
74728            s[2,1,0,0]=(0.978145357315)*x[0]
74729            s[2,1,0,1]=(-0.901086815575)*x[1]
74730            s[2,1,0,2]=(0.648553017338)*x[2]
74731            s[2,1,1,0]=(-0.283065724087)*x[0]
74732            s[2,1,1,1]=(-0.0976255838643)*x[1]
74733            s[2,1,1,2]=(-0.518416419376)*x[2]
74734            s[2,1,2,0]=(0.572224523241)*x[0]
74735            s[2,1,2,1]=(0.676830468876)*x[1]
74736            s[2,1,2,2]=(0.347547333574)*x[2]
74737            s[2,2,0,0]=(-0.890366473527)*x[0]
74738            s[2,2,0,1]=(-0.202566992837)*x[1]
74739            s[2,2,0,2]=(-0.00994077956762)*x[2]
74740            s[2,2,1,0]=(-0.312288044658)*x[0]
74741            s[2,2,1,1]=(0.215695301526)*x[1]
74742            s[2,2,1,2]=(0.134196622741)*x[2]
74743            s[2,2,2,0]=(-0.564325028454)*x[0]
74744            s[2,2,2,1]=(-0.707031226029)*x[1]
74745            s[2,2,2,2]=(-0.793190569275)*x[2]
74746            s[2,3,0,0]=(0.28006826199)*x[0]
74747            s[2,3,0,1]=(0.743445147616)*x[1]
74748            s[2,3,0,2]=(0.57457392009)*x[2]
74749            s[2,3,1,0]=(-0.353169838541)*x[0]
74750            s[2,3,1,1]=(-0.353550104906)*x[1]
74751            s[2,3,1,2]=(0.26061713616)*x[2]
74752            s[2,3,2,0]=(0.360387490548)*x[0]
74753            s[2,3,2,1]=(0.532836358847)*x[1]
74754            s[2,3,2,2]=(0.517337142155)*x[2]
74755            s[2,4,0,0]=(0.969178027599)*x[0]
74756            s[2,4,0,1]=(-0.0671877983392)*x[1]
74757            s[2,4,0,2]=(0.692408837657)*x[2]
74758            s[2,4,1,0]=(0.988861077126)*x[0]
74759            s[2,4,1,1]=(0.987792613173)*x[1]
74760            s[2,4,1,2]=(-0.147075972258)*x[2]
74761            s[2,4,2,0]=(-0.440780900369)*x[0]
74762            s[2,4,2,1]=(0.390407807605)*x[1]
74763            s[2,4,2,2]=(-0.893694860437)*x[2]
74764            s[3,0,0,0]=(0.699550432817)*x[0]
74765            s[3,0,0,1]=(-0.787672358838)*x[1]
74766            s[3,0,0,2]=(-0.583257623239)*x[2]
74767            s[3,0,1,0]=(-0.157588638816)*x[0]
74768            s[3,0,1,1]=(-0.986238064621)*x[1]
74769            s[3,0,1,2]=(0.699443634206)*x[2]
74770            s[3,0,2,0]=(-0.222407346878)*x[0]
74771            s[3,0,2,1]=(-0.308189430231)*x[1]
74772            s[3,0,2,2]=(0.299965297762)*x[2]
74773            s[3,1,0,0]=(-0.412975772409)*x[0]
74774            s[3,1,0,1]=(0.717170353427)*x[1]
74775            s[3,1,0,2]=(0.555847828902)*x[2]
74776            s[3,1,1,0]=(0.301148971297)*x[0]
74777            s[3,1,1,1]=(0.556400276399)*x[1]
74778            s[3,1,1,2]=(0.473027697568)*x[2]
74779            s[3,1,2,0]=(-0.701958828234)*x[0]
74780            s[3,1,2,1]=(-0.965435432938)*x[1]
74781            s[3,1,2,2]=(0.226965032076)*x[2]
74782            s[3,2,0,0]=(0.548493161421)*x[0]
74783            s[3,2,0,1]=(-0.422082327803)*x[1]
74784            s[3,2,0,2]=(-0.64432755028)*x[2]
74785            s[3,2,1,0]=(-0.821784569582)*x[0]
74786            s[3,2,1,1]=(0.567506242312)*x[1]
74787            s[3,2,1,2]=(0.58945700083)*x[2]
74788            s[3,2,2,0]=(-0.31431442897)*x[0]
74789            s[3,2,2,1]=(-0.727570436185)*x[1]
74790            s[3,2,2,2]=(-0.234428528039)*x[2]
74791            s[3,3,0,0]=(-0.184478413951)*x[0]
74792            s[3,3,0,1]=(0.54667291001)*x[1]
74793            s[3,3,0,2]=(0.266086928294)*x[2]
74794            s[3,3,1,0]=(0.0279847154277)*x[0]
74795            s[3,3,1,1]=(-0.0851677217034)*x[1]
74796            s[3,3,1,2]=(-0.679725199609)*x[2]
74797            s[3,3,2,0]=(0.570361871278)*x[0]
74798            s[3,3,2,1]=(0.913879855699)*x[1]
74799            s[3,3,2,2]=(-0.036149215115)*x[2]
74800            s[3,4,0,0]=(0.430041266053)*x[0]
74801            s[3,4,0,1]=(-0.468708383807)*x[1]
74802            s[3,4,0,2]=(0.430318326847)*x[2]
74803            s[3,4,1,0]=(0.808876543295)*x[0]
74804            s[3,4,1,1]=(0.175574603952)*x[1]
74805            s[3,4,1,2]=(-0.982042631943)*x[2]
74806            s[3,4,2,0]=(0.730923035545)*x[0]
74807            s[3,4,2,1]=(0.65499693359)*x[1]
74808            s[3,4,2,2]=(0.678161392893)*x[2]
74809            ref=sqrt((12.3860143155)+(4.68566966204))
74810    
74811          res=L2(arg)
74812          sub=res.substitute({arg:s})
74813          self.failUnless(isinstance(res,Symbol),"wrong type of result.")
74814          self.failUnlessEqual(res.getShape(),(),"wrong shape of result.")
74815          self.failUnlessAlmostEqual(sub,ref,int(-log10(self.RES_TOL)),"wrong result")
74816       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
74817       def test_L2_onFunctionOnContactOne_fromData_rank0(self):
74818          """
74819          tests L2-norm of Data on the FunctionOnContactOne
74820    
74821          assumptions: self.domain supports integration on FunctionOnContactOne
74822          """
74823          dim=self.domain.getDim()
74824          w=FunctionOnContactOne(self.domain)
74825          x=w.getX()
74826          if dim==2:
74827            arg=Data(0,(),w)
74828            arg=(0.39039157828)*x[0]
74829            ref=sqrt((0.0)+(0.038101396098))
74830    
74831          else:
74832            arg=Data(0,(),w)
74833            arg=(0.893204658234)*x[0]
74834            ref=sqrt((0.0)+(0.199453640373))
74835    
74836          res=L2(arg)
74837          self.failUnless(isinstance(res,float),"wrong type of result.")
74838          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
74839       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
74840       def test_L2_onFunctionOnContactOne_fromData_rank1(self):
74841          """
74842          tests L2-norm of Data on the FunctionOnContactOne
74843    
74844          assumptions: self.domain supports integration on FunctionOnContactOne
74845          """
74846          dim=self.domain.getDim()
74847          w=FunctionOnContactOne(self.domain)
74848          x=w.getX()
74849          if dim==2:
74850            arg=Data(0,(2,),w)
74851            arg[0]=(0.697576620054)*x[0]
74852            arg[1]=(-0.302037273777)*x[1]
74853            ref=sqrt((0.0304088382502)+(0.121653285212))
74854    
74855          else:
74856            arg=Data(0,(3,),w)
74857            arg[0]=(0.649308272675)*x[0]
74858            arg[1]=(-0.408829699836)*x[1]
74859            arg[2]=(-0.984892977949)*x[2]
74860            ref=sqrt((0.37905196716)+(0.105400308241))
74861    
74862          res=L2(arg)
74863          self.failUnless(isinstance(res,float),"wrong type of result.")
74864          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
74865       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
74866       def test_L2_onFunctionOnContactOne_fromData_rank2(self):
74867          """
74868          tests L2-norm of Data on the FunctionOnContactOne
74869    
74870          assumptions: self.domain supports integration on FunctionOnContactOne
74871          """
74872          dim=self.domain.getDim()
74873          w=FunctionOnContactOne(self.domain)
74874          x=w.getX()
74875          if dim==2:
74876            arg=Data(0,(4, 2),w)
74877            arg[0,0]=(0.504133645896)*x[0]
74878            arg[0,1]=(0.728228500775)*x[1]
74879            arg[1,0]=(0.968237164633)*x[0]
74880            arg[1,1]=(-0.205351628957)*x[1]
74881            arg[2,0]=(-0.154008228702)*x[0]
74882            arg[2,1]=(-0.972088404566)*x[1]
74883            arg[3,0]=(0.585153521593)*x[0]
74884            arg[3,1]=(0.371861820001)*x[1]
74885            ref=sqrt((0.551907706774)+(0.389439279561))
74886    
74887          else:
74888            arg=Data(0,(4, 3),w)
74889            arg[0,0]=(-0.4847970605)*x[0]
74890            arg[0,1]=(-0.664433021479)*x[1]
74891            arg[0,2]=(-0.93730914676)*x[2]
74892            arg[1,0]=(0.712624065023)*x[0]
74893            arg[1,1]=(0.105431976424)*x[1]
74894            arg[1,2]=(-0.452636806104)*x[2]
74895            arg[2,0]=(0.488406064176)*x[0]
74896            arg[2,1]=(0.0594879976584)*x[1]
74897            arg[2,2]=(0.596963883202)*x[2]
74898            arg[3,0]=(0.619366395328)*x[0]
74899            arg[3,1]=(0.719965901041)*x[1]
74900            arg[3,2]=(-0.568971277169)*x[2]
74901            ref=sqrt((0.912666523048)+(0.341254115776))
74902    
74903          res=L2(arg)
74904          self.failUnless(isinstance(res,float),"wrong type of result.")
74905          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
74906       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
74907       def test_L2_onFunctionOnContactOne_fromData_rank3(self):
74908          """
74909          tests L2-norm of Data on the FunctionOnContactOne
74910    
74911          assumptions: self.domain supports integration on FunctionOnContactOne
74912          """
74913          dim=self.domain.getDim()
74914          w=FunctionOnContactOne(self.domain)
74915          x=w.getX()
74916          if dim==2:
74917            arg=Data(0,(6, 2, 2),w)
74918            arg[0,0,0]=(-0.481233278183)*x[0]
74919            arg[0,0,1]=(-0.883447576048)*x[1]
74920            arg[0,1,0]=(0.525938652633)*x[0]
74921            arg[0,1,1]=(-0.694971850651)*x[1]
74922            arg[1,0,0]=(-0.935880633291)*x[0]
74923            arg[1,0,1]=(0.970445286468)*x[1]
74924            arg[1,1,0]=(-0.302571977945)*x[0]
74925            arg[1,1,1]=(-0.237750319821)*x[1]
74926            arg[2,0,0]=(0.922940652883)*x[0]
74927            arg[2,0,1]=(-0.624756614078)*x[1]
74928            arg[2,1,0]=(-0.146839388764)*x[0]
74929            arg[2,1,1]=(-0.995551211092)*x[1]
74930            arg[3,0,0]=(0.719184541649)*x[0]
74931            arg[3,0,1]=(-0.629461063375)*x[1]
74932            arg[3,1,0]=(-0.925581215276)*x[0]
74933            arg[3,1,1]=(-0.564418658495)*x[1]
74934            arg[4,0,0]=(-0.724035884026)*x[0]
74935            arg[4,0,1]=(0.78393984221)*x[1]
74936            arg[4,1,0]=(-0.722375249317)*x[0]
74937            arg[4,1,1]=(0.27571990944)*x[1]
74938            arg[5,0,0]=(-0.197579392553)*x[0]
74939            arg[5,0,1]=(0.341717398275)*x[1]
74940            arg[5,1,0]=(0.926327822859)*x[0]
74941            arg[5,1,1]=(0.44114488285)*x[1]
74942            ref=sqrt((1.78665006238)+(1.41652558894))
74943    
74944          else:
74945            arg=Data(0,(6, 2, 3),w)
74946            arg[0,0,0]=(-0.348448140437)*x[0]
74947            arg[0,0,1]=(-0.530793589782)*x[1]
74948            arg[0,0,2]=(0.386511493376)*x[2]
74949            arg[0,1,0]=(0.00776536299593)*x[0]
74950            arg[0,1,1]=(-0.0696129074064)*x[1]
74951            arg[0,1,2]=(0.114179504216)*x[2]
74952            arg[1,0,0]=(-0.681009917406)*x[0]
74953            arg[1,0,1]=(0.763595403719)*x[1]
74954            arg[1,0,2]=(-0.54459342544)*x[2]
74955            arg[1,1,0]=(0.0839255723157)*x[0]
74956            arg[1,1,1]=(0.269389515003)*x[1]
74957            arg[1,1,2]=(0.612446509453)*x[2]
74958            arg[2,0,0]=(0.600070579238)*x[0]
74959            arg[2,0,1]=(-0.49585867531)*x[1]
74960            arg[2,0,2]=(-0.766857395141)*x[2]
74961            arg[2,1,0]=(-0.84515816441)*x[0]
74962            arg[2,1,1]=(-0.594337789049)*x[1]
74963            arg[2,1,2]=(0.774596009811)*x[2]
74964            arg[3,0,0]=(-0.833982234688)*x[0]
74965            arg[3,0,1]=(0.747667281218)*x[1]
74966            arg[3,0,2]=(-0.77025764051)*x[2]
74967            arg[3,1,0]=(0.0367023286497)*x[0]
74968            arg[3,1,1]=(-0.503080137993)*x[1]
74969            arg[3,1,2]=(-0.129478323797)*x[2]
74970            arg[4,0,0]=(0.304123530695)*x[0]
74971            arg[4,0,1]=(-0.873023368289)*x[1]
74972            arg[4,0,2]=(-0.712740806672)*x[2]
74973            arg[4,1,0]=(-0.0629132979843)*x[0]
74974            arg[4,1,1]=(0.096843438525)*x[1]
74975            arg[4,1,2]=(-0.608716559621)*x[2]
74976            arg[5,0,0]=(-0.642902822517)*x[0]
74977            arg[5,0,1]=(0.478134785533)*x[1]
74978            arg[5,0,2]=(0.757891512092)*x[2]
74979            arg[5,1,0]=(-0.144492755065)*x[0]
74980            arg[5,1,1]=(0.286775195938)*x[1]
74981            arg[5,1,2]=(-0.063580488638)*x[2]
74982            ref=sqrt((2.50835195543)+(0.723549067206))
74983    
74984          res=L2(arg)
74985          self.failUnless(isinstance(res,float),"wrong type of result.")
74986          self.failUnlessAlmostEqual(res,ref,int(-log10(self.RES_TOL)),"wrong result")
74987       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
74988       def test_L2_onFunctionOnContactOne_fromData_rank4(self):
74989          """
74990          tests L2-norm of Data on the FunctionOnContactOne
74991    
74992          assumptions: self.domain supports integration on FunctionOnContactOne
74993          """
74994          dim=self.domain.getDim()
74995          w=FunctionOnContactOne(self.domain)
74996          x=w.getX()
74997          if dim==2:
74998            arg=Data(0,(4, 5, 3, 2),w)
74999            arg[0,0,0,0]=(0.523372259748)*x[0]
75000            arg[0,0,0,1]=(-0.732795389957)*x[1]
75001            arg[0,0,1,0]=(0.0571737128606)*x[0]
75002            arg[0,0,1,1]=(-0.627260438721)*x[1]
75003            arg[0,0,2,0]=(-0.945159375045)*x[0]
75004            arg[0,0,2,1]=(-0.145103328237)*x[1]
75005            arg[0,1,0,0]=(-0.0586985419455)*x[0]
75006            arg[0,1,0,1]=(-0.788101334389)*x[1]
75007            arg[0,1,1,0]=(0.615023802803)*x[0]
75008            arg[0,1,1,1]=(0.965381283357)*x[1]
75009            arg[0,1,2,0]=(0.173979432067)*x[0]
75010            arg[0,1,2,1]=(-0.980483156424)*x[1]
75011            arg[0,2,0,0]=(-0.345940909471)*x[0]
75012            arg[0,2,0,1]=(0.00162430279595)*x[1]
75013            arg[0,2,1,0]=(-0.0847413350082)*x[0]
75014            arg[0,2,1,1]=(-0.911248036753)*x[1]
75015            arg[0,2,2,0]=(-0.817295589942)*x[0]
75016            arg[0,2,2,1]=(-0.0514569401185)*x[1]
75017            arg[0,3,0,0]=(0.329704440159)*x[0]
75018            arg[0,3,0,1]=(0.580379057442)*x[1]
75019            arg[0,3,1,0]=(0.737014729605)*x[0]
75020            arg[0,3,1,1]=(0.535521740242)*x[1]
75021            arg[0,3,2,0]=(-0.943554721405)*x[0]
75022            arg[0,3,2,1]=(0.798294295959)*x[1]
75023            arg[0,4,0,0]=(-0.1814410847)*x[0]
75024            arg[0,4,0,1]=(0.968476629577)*x[1]
75025            arg[0,4,1,0]=(0.26595250332)*x[0]
75026            arg[0,4,1,1]=(-0.493516007909)*x[1]
75027            arg[0,4,2,0]=(0.374323739856)*x[0]
75028            arg[0,4,2,1]=(-0.914413601829)*x[1]
75029            arg[1,0,0,0]=(-0.701090812201)*x[0]
75030            arg[1,0,0,1]=(-0.403596866322)*x[1]
75031            arg[1,0,1,0]=(0.587183778075)*x[0]
75032            arg[1,0,1,1]=(-0.218129059558)*x[1]
75033            arg[1,0,2,0]=(-0.0205642762349)*x[0]
75034            arg[1,0,2,1]=(0.441382235525)*x[1]
75035            arg[1,1,0,0]=(0.909683859519)*x[0]
75036            arg[1,1,0,1]=(0.960088832754)*x[1]
75037            arg[1,1,1,0]=(0.0450355911985)*x[0]
75038            arg[1,1,1,1]=(0.366849576658)*x[1]
75039            arg[1,1,2,0]=(0.315490164497)*x[0]
75040            arg[1,1,2,1]=(0.533746946808)*x[1]
75041            arg[1,2,0,0]=(-0.552919155957)*x[0]
75042            arg[1,2,0,1]=(-0.647373009727)*x[1]
75043            arg[1,2,1,0]=(0.32617079311)*x[0]
75044            arg[1,2,1,1]=(-0.3424263412)*x[1]
75045            arg[1,2,2,0]=(0.848733118893)*x[0]
75046            arg[1,2,2,1]=(-0.65341712364)*x[1]
75047            arg[1,3,0,0]=(-0.698538235208)*x[0]
75048            arg[1,3,0,1]=(-0.176858090319)*x[1]
75049            arg[1,3,1,0]=(-0.956962782849)*x[0]
75050            arg[1,3,1,1]=(0.53041598553)*x[1]
75051            arg[1,3,2,0]=(-0.241715236701)*x[0]
75052            arg[1,3,2,1]=(0.0340608544103)*x[1]