/[escript]/trunk/escriptcore/test/python/test_util_base.py
ViewVC logotype

Annotation of /trunk/escriptcore/test/python/test_util_base.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6453 - (hide annotations)
Mon Jan 9 03:17:00 2017 UTC (18 months, 1 week ago) by jfenwick
File MIME type: text/x-python
File size: 138853 byte(s)
More tests using the more general tester.

Added type to the Lsup type error message to help with future debugging.
The unary tests currently have some duplication because all of the old tests
run as well as the new tests but I'll fix that once the new tests cover everything.


1 ksteube 1809
2 jfenwick 3981 ##############################################################################
3 ksteube 1312 #
4 jfenwick 5863 # Copyright (c) 2003-2016 by The University of Queensland
5 jfenwick 3981 # http://www.uq.edu.au
6 ksteube 1312 #
7 ksteube 1809 # Primary Business: Queensland, Australia
8 jfenwick 6112 # Licensed under the Apache License, version 2.0
9     # http://www.apache.org/licenses/LICENSE-2.0
10 ksteube 1312 #
11 jfenwick 3981 # Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 jfenwick 4657 # Development 2012-2013 by School of Earth Sciences
13     # Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 jfenwick 3981 #
15     ##############################################################################
16 ksteube 1312
17 sshaw 5706 from __future__ import print_function, division
18    
19 jfenwick 5863 __copyright__="""Copyright (c) 2003-2016 by The University of Queensland
20 jfenwick 3981 http://www.uq.edu.au
21 ksteube 1809 Primary Business: Queensland, Australia"""
22 jfenwick 6112 __license__="""Licensed under the Apache License, version 2.0
23     http://www.apache.org/licenses/LICENSE-2.0"""
24 jfenwick 2344 __url__="https://launchpad.net/escript-finley"
25 ksteube 1809
26 gross 395 """
27     basic tests for util.py
28    
29 jfenwick 2625 :remark: use see `test_util`
30 gross 637
31 jfenwick 2625 :var __author__: name of author
32     :var __copyright__: copyrights
33     :var __license__: licence agreement
34     :var __url__: url entry point on documentation
35     :var __version__: version
36     :var __date__: date of the version
37 gross 395 """
38    
39     __author__="Lutz Gross, l.gross@uq.edu.au"
40    
41 jfenwick 4938 import esys.escriptcore.utestselect as unittest
42 jfenwick 2455 import numpy
43 gross 2415 import os
44 gross 395 from esys.escript import *
45 jfenwick 4003 from esys import escript
46 gross 395
47 caltinay 3349 try:
48     ESCRIPT_WORKDIR=os.environ['ESCRIPT_WORKDIR']
49     except KeyError:
50     ESCRIPT_WORKDIR='.'
51    
52 jfenwick 6450
53     class Test_util_values(unittest.TestCase):
54     """
55 jfenwick 6453 Please do not define tests in this class.
56     The idea is to make it easier to isolate groups of tests, which
57     will be harder if there are tests in the base class
58 jfenwick 6450
59     Sets of values could be generated as follows:
60     def z2(levels, row):
61     if levels==1:
62     v=[]
63     for j in range(row):
64     v.append(random.triangular(-1., 1.0))
65     return tuple(v)
66     else:
67     v=[]
68     for j in range(row):
69     v.append(z2(levels-1,row))
70     return tuple(v)
71    
72     z2(2,2)
73     z2(3,3)
74     z2(4,4)
75    
76     However, some of the larger arrays are modified afterwards to ensure
77     that they contain at least one 0 for NaN checking purposes
78     """
79 jfenwick 6453
80     RES_TOL=1.e-7 # RES_TOLerance to compare results
81     DIFF_TOL=1.e-7 # RES_TOLerance to derivatices
82    
83 jfenwick 6450
84     def get_scalar_inputL(self, cplx):
85     if not cplx:
86     v1=33489.58300735649
87     else:
88     v1=(9824.950442887115-46215.48181304759j)
89     return (v1,v1)
90    
91     def get_python_inputL(self, rank, cplx):
92     if cplx:
93     if rank==0:
94     return (-3960.4642291825876+70893.2937559552j,)
95     if rank==1:
96     return ((59731.62346830329-82535.93558513945j), (97413.28611726397-71163.21858234056j))
97     if rank==2:
98     return (((22662.9306818+10450.1928396j), (-5876.588037489+31316.069231294925j)),
99     ((-48775.88574400305+21535.3746218j), (36479.6003269178-39287.306108j)))
100     if rank==3:
101     return ((((-50847.97960-9062.27j), (-63529.6088+55171.4663j), (215.4-10185.37j)),
102     ((40080.58380528418-34586.4289827135j), (-27276.009276950237-61855.16687539085j), (-34721.25780748475+82851.2788274762j)),
103     ((43010.5425+18456.0305j), (-8655.17674+4404.157j), (23658.850518231033-20372.09007648639j))),
104     (((43347.843141+58591.16j), (25836.3146-5995.971j), (-28969.5+31065.035j)),
105     ((-31942.46+61141.334j), (-84655.794+49812.188j), (63001.6-44321.65j)),
106     ((-19368.317+29114.8j), (-84938.09+83917.34j), (30356.3+48962.755j))),
107     (((-50756.5-28925.102j), (3348.16+79354.6j), (30159.52+6881.75j)),
108     ((59025.953-39.831j), (-237.942-53.93j), (9308.8+36247.003775959376j)),
109     ((12068.153033533716-68009.47095735556j), (7693.602018284684-23713.22567007532j), (44993.89718529736-3807.1609666917066j))))
110     if rank==4:
111     return (((((36743.82175242095+26778.737326529765j), (-29754.182129388544+25393.077634889414j), (-7835.209676340906+49819.26015705921j), (33964.789417447566-32778.45444590585j)),
112     ((-44579.370809357875-68703.24361188836j), (-149.28320431357133-64698.83715098185j), (38295.13314270778+58425.02740389345j), (-59088.20438563965-81586.99049191552j)),
113     ((22892.612062358283-24715.70868029048j), (13367.867311961876+20860.578306432217j), (-47859.40778589482+71392.8351064374j), (-2304.287041885458+49294.11306179231j)),
114     ((-62640.841478880255+36871.688232087705j), (10655.923749286507-23128.560897714342j), (-4131.801825297647+4443.2840182007785j), (-27903.670838787744-3117.482981970883j))),
115     (((57034.38962108706+38044.26403584313j), (-4462.844355084104+18211.587917962242j), (4313.178312608696-12868.233657189892j), (46374.72869675713-11812.40480331378j)),
116     ((322.189068738895+47179.67709271595j), (72322.13544947651-3662.5467369358375j), (-9231.467186395414+76230.40517770775j), (-41704.75682501451+32558.11893996234j)),
117     ((79487.23328596324-7366.42862253316j), (10481.924314965669-15120.283604848068j), (26960.83136881994-41071.566704782505j), (-24115.39190283895-7711.336401151741j)),
118     ((22474.95612418659+15623.165463453799j), (25929.087385707462+38175.58304877044j), (-8177.232611463696+21287.640323926986j), (34229.957465479616+34000.54107560321j))),
119     (((26772.169008338446-23226.644157592586j), (44355.462946645705+38435.617150983846j), (82270.23681598579+57228.460214922394j), (-61649.67759149854-29496.646828970726j)),
120     ((33208.12540969731-42543.11381431012j), (-37368.19634070844+36983.91078521421j), (-53479.67762639474+69192.57351520905j), (-16987.119998626833-24907.621827720854j)),
121     ((58265.74226484515+21428.598358311836j), (-25451.773790957814+34641.52936103524j), (49737.44278424142+46668.70872917027j), (-19763.07777821306-55742.60412333406j)),
122     ((39696.62704009203+11792.880723760507j), (45040.78931593459+1353.15524889082j), (38919.41458390256+5018.601358823813j), (24700.01773615746+18638.158415414437j))),
123     (((-27357.697301503198+67993.98776577965j), (43358.65691551873-60981.94828910699j), (-36961.845280498295+73544.32798356535j), (-7005.460088561973+56718.32085849555j)),
124     ((-45794.83454061549-24789.54243897248j), (-35553.771747041705+281.20812003471656j), (741.8214864204201-48926.27892674535j), (15258.748935604614+5750.3134710095765j)),
125     ((13578.214948777008+49023.37779316875j), (-52997.87500887418-28291.632747669166j), (34523.01328904568+70373.31760549065j), (-8549.195292188699+38710.00933198735j)),
126     ((-8724.746595711767+39671.57400059246j), (54220.76682697828+52787.45089736888j), (-2929.7928072663053-14645.947666259133j), (6967.3562262647465+20575.621108094565j)))),
127     ((((41255.3128726088-4735.07598620026j), (17330.015550087788+39190.403383224395j), (-2409.2939922655205+33755.22845153985j), (-84016.4244828014-28839.63999275923j)),
128     ((-7567.298951515288+24481.103774662595j), (-25149.082523503632-8583.669927251554j), (47788.23750305794+37492.05579481191j), (-19575.167208193656+21113.148224316566j)),
129     ((-8076.55304084401+75096.61990916729j), (42138.65038370111-27451.77036345769j), (17599.47893995483-6322.617589222951j), (43000.60101023788+54422.76834543564j)),
130     ((-24961.480874041634-2122.019874702237j), (6425.889470030932+5622.557974648473j), (-65254.39721134174+59644.00375157643j), (-26617.634404672892-53495.819302484895j))),
131     (((-54060.398876227686+55992.77686553825j), (-29817.626727209106-29704.79980981775j), (-6767.670138070098+10024.257522469488j), (-30133.80524111932+40328.89815642918j)),
132     ((50000.78584499907-5894.192721755971j), (-3021.8049413580593-70247.81603731646j), (695.299152508218+58895.55560166443j), (-16680.2648353032-87022.82137596376j)),
133     ((14249.594063942364-1274.074993916045j), (12234.307608613788-18357.139710977237j), (32290.96562094186+38793.36224883628j), (67656.21258170376-9760.573070193976j)),
134     ((-45601.023706816115-74319.21757213926j), (55876.22452146437-61120.98256716965j), (58027.41230717529+10786.688485100865j), (-3495.6762613661413-46756.553429873304j))),
135     (((92894.48804954227+23902.59394418483j), (1353.988548653011-92567.68243719656j), (65397.064463537616+10248.124624835778j), (567.8160836168245+78786.59184031615j)),
136     ((-40282.49291521364+79825.32258981027j), (-40310.88688269715+455.4179428850184j), (-11166.391823961778+2764.918200738073j), (78697.6368921528-685.3372273494751j)),
137     ((70892.98538412598+78843.94735644812j), (-64882.52692417733+80256.3932249126j), (26045.841803168907-12175.162753092736j), (-58159.5440761434-67887.15729778618j)),
138     ((8775.14598500292+16795.25423101084j), (13155.934674011907+16737.126752117358j), (15975.852541323125+14513.776915618466j), (-25215.109458495746+8530.276446405784j))),
139     (((25795.767870170166-31056.851297134257j), (4037.894742402088-83.2035600123636j), (-19413.455650262404+40693.39115961014j), (-63145.75424957367+34735.00168222326j)),
140     ((17181.9690394505+18815.796074907106j), (45370.782381827026+55332.61058358025j), (-15112.046450780603-88000.14177105221j), (81609.38175982882+21862.010369853655j)),
141     ((-55560.45495276697-8487.570486260593j), (-1240.3046453718998-36806.93746782728j), (2314.7751094353007+66709.2996375249j), (73913.798692593+17715.330241595133j)),
142     ((-6756.64963479065-17680.06798381319j), (-68433.87475450675-1521.61274877697j), (-38429.70821819296-59684.70774465629j), (679.6723316871648-5141.593014362268j)))),
143     ((((6009.97586310716+60604.30942478338j), (32396.109723949165-43790.651419414105j), (28779.550340574773+51904.28569017858j), (22898.47954312162+24374.281930383077j)),
144     ((43337.67939273335-5975.004215923647j), (-20668.774830910013-76079.20355770885j), (28645.123677151292+25672.909247014104j), (-31717.682104715685+9732.221717787586j)),
145     ((53661.13842896042+72923.84155787138j), (35385.072072520015-6307.198139944798j), (30479.544507534592+62234.1254985712j), (-1034.7905621764367+40286.709890159545j)),
146     ((-81367.55312016135+16928.505901155673j), (-7815.888755622378+6045.680730129257j), (23493.410721616994+56525.86301109548j), (64379.29795689413-41596.85817228346j))),
147     (((10077.706189869234-14023.344225890105j), (9787.45494885469+1980.526605239269j), (-41789.42734084199+33109.62355852481j), (77722.47714091674+16230.914008263571j)),
148     ((33929.99686388744+69324.24249861641j), (-42944.721176775936+77239.49498876408j), (-24531.218551429585+33511.72101875048j), (38167.50870231599+48640.295148756864j)),
149     ((5153.059156082629+82411.43319343394j), (46237.63154724835-24482.044081531683j), (-42350.512586094905+21364.573202395462j), (27884.705448024964+27406.374083228744j)),
150     ((26735.822927676723-16229.136581069019j), (-20377.70277018177-48828.24171348816j), (-31499.21640336576-14810.9243228345j), (-7904.957576446148-20229.149437926535j))),
151     (((16522.705470639165+17310.831386237332j), (-76148.34984139015+80969.93773509384j), (-24811.00749069672+38047.29320608019j), (20992.172136102876-22605.533994627098j)),
152     ((-20970.94805191878-11158.194764479718j), (-24776.365668172788+15335.11508002579j), (31475.965557547286+42101.17185492054j), (-5067.057332858472-32895.81793448307j)),
153     ((2682.2679111504112+39461.2760464704j), (8347.197026209295+5913.884037792421j), (-33487.63388762134-63339.09288353257j), (-57157.881248657024+1556.61791639906j)),
154     ((-41068.04079080766+48584.07702236999j), (8498.148930898213+14312.48564445498j), (-21316.05107180962+87054.88334056246j), (-21471.236761054563-59830.259831579846j))),
155     (((29431.72773241329-33178.12936911729j), (26409.71652118041+55871.26981512072j), (66462.49459072504+84224.15533504078j), (54448.348792259174+24319.32902355393j)),
156     ((-71328.38862684023+23367.89957869296j), (-59401.71170696309+49485.585597715195j), (41883.2210796735+19719.46171899562j), (-18795.333157237168-68982.70021560306j)),
157     ((59112.62708481629-45457.26410539314j), (-88790.25871362776-25685.393578202435j), (23696.552787236098+41921.596338817966j), (55010.09931039718-93443.28701025742j)),
158     ((39099.27462555075-21859.303492325664j), (-13175.71402014888+48223.91127425416j), (-5568.289447947842-299.0850724438933j), (-20467.28086020409+30095.8347308894j)))),
159     ((((-16018.868474730582-47768.31986595277j), (51712.37041771119-18503.457760090154j), (-49051.6111606494+23687.829560421436j), (-71984.9830420537+396.65467472762975j)),
160     ((10108.4516848598+51857.057322104636j), (-7216.241612916012+72110.85192662141j), (54626.45574269543-59774.72883503144j), (-657.6522009949113+60897.80850184188j)),
161     ((-7989.0171800768585-89431.37235259652j), (-24705.702245950946+70622.38482297733j), (-63459.904012077815-42658.85544672633j), (50226.10296539047+34122.54286740055j)),
162     ((41218.241998490725+14373.480195603668j), (-54370.32919269195+6808.202490824406j), (-1527.4828551954124+54636.12386175628j), (14472.837501920381-52333.2803360176j))),
163     (((-2746.8539660817187-74513.82700384625j), (-61015.83534421826+53680.73473922199j), (-79322.89757472202-30783.74464730559j), (-46747.1238366321-74773.91885253192j)),
164     ((38500.41669416314-55405.667973400086j), (1396.4878373664105+24775.37482803031j), (58020.02299122539+48560.59423440633j), (-29555.466456927898-2523.0682893230987j)),
165     ((-34617.908388179705-12964.332502930381j), (-45031.80883921236+65602.1489634705j), (-25153.44844444198-12070.474688363538j), (-21543.782061126898-86119.31236007596j)),
166     ((71651.55622950022+37553.55829666175j), (73215.11980883317-718.055454765301j), (7065.864625805567-92990.91593148846j), (11751.07053047308-7707.306990859142j))),
167     (((-43076.79837010652+24177.23355451846j), (6793.467392677732-20449.573606641366j), (-71013.01101746038-6225.881152518472j), (74055.17870813374+66606.15686348274j)),
168     ((11557.138464109157+5388.5729086161155j), (36732.06100793248-37022.585715349574j), (2921.611354480643+55496.19455947708j), (55058.90849766818+18274.262129668554j)),
169     ((-58815.802612553605-3016.8034868425602j), (11211.939776371626+85380.70520152281j), (5184.476190878297-46247.039507761j), (66267.98054810712-61671.71978896645j)),
170     ((-5378.665820848371+9328.328146237982j), (43895.1264174895-68770.39938502887j), (-17511.997277418195+58343.13845945775j), (-85449.25399769237+5421.878678659821j))),
171     (((39759.129208538325-36375.49825029998j), (14116.074449609747-3690.404237582101j), (726.610813691339+20601.83416877652j), (-39703.3656455713+3717.592156691331j)),
172     ((59401.5216214189+24249.24110262998j), (32483.925202512517+12478.691995073255j), (-32680.63271733308-27669.460617493503j), (-49228.06429579756+18669.428245068033j)),
173     ((44330.3653675318-76.05447174097935j), (-77173.70951748395-14072.79466329544j), (44365.91092729417+30775.448092456412j), (-27126.74998375852-42673.613992010614j)),
174     ((69065.27619440478+6707.326801963689j), (30689.082128804977-86800.51053515819j), (49475.52450098609+20399.323850453336j), (-29667.120261194417+8908.992755905914j)))))
175     else:
176     if rank==0:
177 jfenwick 6453 return (1968.4370221151426,)
178 jfenwick 6450 if rank==1:
179     return (-24899.54037082102, -25.31549006801)
180     if rank==2:
181     return ((1830.692020877672, 4256.807988523855), (31330.447580824955, 30088.386511638193))
182     if rank==3:
183     return (((22464.14939770715, 9326.07497133658, -58843.28039835674),
184     (-39132.51601559524, -28984.021248456513, 87606.99636934511),
185     (82483.31416277925, 58484.471708777906, 28659.10377643413)),
186     ((-48055.05693146407, 36954.49346593733, 25658.428739633804),
187     (-45374.680239837886, -11967.766802782062, 40707.17918100887),
188     (-9272.611657965084, 95545.34560025277, 36552.65523613798)),
189     ((-91272.06575583504, 61258.36210240262, 23700.008344466856),
190     (-76559.99183386622, 74506.2742834793, -40042.39145376187),
191     (54893.50655552275, -60408.00584363263, -68208.21135366432)))
192     if rank==4:
193     return ((((-2613.5684369694354, 384.9724701708765, 17359.719572324335, -63393.27571171061),
194     (41041.42067423142, -14993.16104673734, -27399.273319594344, 60051.2377656026),
195     (18566.32422588553, -73825.83739655794, 95319.0187027347, -27646.03157540709),
196     (-88007.8178172775, 60759.47561504975, 31822.15287970184, -38852.10105560179)),
197     ((-89386.29724076603, 79511.70453673883, 1325.344653112319, 14210.631402891566),
198     (9099.55295712997, 30612.395205911307, -5512.258312859951, -43371.59702594321),
199     (24961.325742358764, 6843.62962861413, -43588.35638871549, 37139.61080792606),
200     (-59901.00300911518, -59802.81275754453, -26119.701955513825, 70973.81339014533)),
201     ((10824.815145545523, -37682.56858486531, -14732.374901197414, -14286.141738580205),
202     (-43004.59056324265, 59441.985441533616, -83687.96499450768, 4325.869356595635),
203     (-56783.42265829212, -28959.61168144866, -83740.97480554663, -10729.510064491638),
204     (-38480.61835393819, -50636.84578373406, -3588.0738023085723, 56239.74544740876)),
205     ((18228.900850710852, -16632.129655349723, 8015.163471499967, -4521.799739700364),
206     (-51505.380752985875, -1524.7016267364233, -19342.421346891773, -48490.57412835015),
207     (-73047.79149393305, -35239.98425352734, -35458.1734620065, 55659.41536985519),
208     (-13074.184715655007, 6436.319756047014, -28485.17418228225, -11128.300314215841))),
209     (((321.6371242800669, 35572.05942103493, 9515.23626081155, -4433.077669837556),
210     (26761.084128710136, 10867.52013173081, -19183.162620251198, -68559.41235027292),
211     (11484.667574519088, 51828.050682516754, 38005.19565254123, -76175.23771370867),
212     (-5227.790707720851, 71440.84429737684, -50336.09378326664, 37678.70778115371)),
213     ((-45566.74581644684, 5908.975208284799, 22576.958775978783, -50020.73251106653),
214     (-26017.058082686533, -25299.281527364627, 40976.696154446676, -13431.16881318092),
215     (-46649.16989082289, -65794.20117285698, 64119.987425361716, 5497.440022742972),
216     (-2203.2985446707025, -57513.79981817989, 41574.749087273776, 48387.40101623114)),
217     ((-18416.741032524515, -47640.69430896508, 19679.029797917596, -34810.30464977612),
218     (62831.92844082225, 27725.457434774376, -3134.438446956716, 49315.595365086476),
219     (-73623.94099730175, 20978.640264794405, -5573.772319421056, 36086.56272512534),
220     (28660.57533284233, -58241.55583429358, -51661.45261125069, -50693.33103010448)),
221     ((56426.23453986164, 78359.73594286482, -38576.297999959155, 8913.910887926046),
222     (-88189.29548286308, 2602.1208204264694, -15718.494307329529, 39115.51872697051),
223     (50134.74938380022, -42828.424427019796, 39528.932684095016, 71074.105860494),
224     (10360.78422517216, 3628.4946464838577, 866.6535588603292, 31553.01858562138))),
225     (((52390.293064785874, -12243.173190398476, 12973.542140497811, 24679.210914480092),
226     (-39068.25465569209, 11375.555598436607, -11948.963084895935, 23180.6696549638),
227     (7750.742802840003, -4544.655806011273, 17257.229884485423, -38718.29755209083),
228     (-54962.39017442457, -32692.842165301, 79228.7545707964, -46958.08883925094)),
229     ((58808.04021951867, 31679.09607989699, 60465.22396617634, 3778.4799478359637),
230     (17712.329884018807, 17874.74312645469, 14954.738052270157, -44753.01307496137),
231     (24417.93508883397, -25931.24652138863, -27186.302587945494, 37605.82669369904),
232     (-20116.370032880397, 22395.271847421376, 39918.504300252374, 43365.55907616498)),
233     ((-29680.436323581554, -7156.784950690315, -27141.447127045933, 65196.42918411147),
234     (-10851.323062587486, -12918.348059911383, -61892.308397834146, -49367.20478221224),
235     (-12048.985149625369, 61619.01673500164, 19594.218775417554, 52093.668037218595),
236     (-38465.24637072596, -9188.19710817252, -7828.463839086282, -62406.93767988804)),
237     ((-35787.91825329978, 23117.81737012358, -49967.17854684144, -9030.162340133553),
238     (-31476.492123520133, -42646.47087585365, -80893.4161545868, -38123.68731593444),
239     (23794.505773755358, -1648.5505688887642, -18076.67754352292, -50552.198666715994),
240     (31218.595116869503, 36051.76246348336, -23827.05367940539, 6983.787679924746))),
241     (((-22717.871470141312, 41000.10860057993, 57170.77347009425, -45870.224065572766),
242     (-75749.5782286584, 82016.05469083885, 15364.324776823589, -34421.772637849994),
243     (56091.35037369725, 69020.64428824343, -54982.82912975482, 26461.710610700044),
244     (-6865.449808598962, 1458.33269652327, 19976.42644646119, 71857.51352483299)),
245     ((-19816.540187252496, 8015.999325965924, 73384.47295519276, -29811.76619356322),
246     (-13116.527286368713, -76148.43320182734, 694.6129571919591, -51487.98727764331),
247     (-18216.321286892955, 19089.44846330423, -49851.57024753545, -23061.547216296094),
248     (4069.367521493099, 4460.02510964268, -70628.47512058845, -5320.222269188191)),
249     ((55551.601997272795, 15131.970379855833, 9132.149357120768, -1748.749782567771),
250     (25571.39049857318, -22269.3336119335, -40013.90106400979, -41645.300687720875),
251     (19942.423484201456, -77721.3403094917, -49049.37211887518, -42125.028417728725),
252     (-20331.591530993654, 18849.729202127564, -11172.361078239031, -42378.721186597744)),
253     ((-28162.219784186906, 27005.38411136302, 28047.626970074954, -48907.05914121462),
254     (21561.00249540838, 16819.379648924267, 21373.309752767862, 81217.52472263864),
255     (14530.50392089595, -38878.60235910026, 18507.98920090188, 38187.90762089445),
256     (24234.820876412356, 50390.96325142998, 5976.493423496679, -16545.42618485792))))
257    
258     def get_scalar_input1(self, cplx):
259     if not cplx:
260     v1=0.6081355033581688
261     else:
262     v1=(0.27562178672620385+0.42446484939332796j)
263     return (v1,v1)
264    
265     def get_scalar_input2(self, cplx):
266     if not cplx:
267     v2=0.5327268994219874
268     else:
269     v2=(0.49976275640416334+0.4141087840210876j)
270     return (v2,v2)
271    
272     def get_scalar_input3(self, cplx):
273     if not cplx:
274     v3=0.4903827487969067
275     else:
276     v3=(0.4130410618402195+0.7195601418761082j)
277     return (v3,v3)
278    
279     def get_python_input1(self, rank, cplx):
280     if cplx:
281     if rank==0:
282     return (-0.8493106430566671+0.5498588650604705j,)
283     elif rank==1:
284     return (0.5213538174366878+0.45097055421243537j, 0.25896216831911634-0.5966874048733529j)
285     elif rank==2:
286     return (((-0.20984377987310687+0.024810300993445944j), (0.024805532005481523+0.015098314700385806j)),
287     ((0.2292639954026584-0.7100972341857507j), (0.08682454615283863+0.12332238221542291j)))
288     elif rank==3:
289     return ((((-0.6550500854131598-0.2127087989155373j), (-0.017627543683440106-0.3665841375380333j), (0.12492952051741912+0.05374046981620606j)),
290     ((-0.11197479851035519-0.5608269924316476j), (-0.5419470859968003+0.07356518546227997j), (-0.42635110929148823+0.47738396333288513j)),
291     ((-0.16556333483163588+0.009959138144123747j), (-0.17095759700320223+0.19563542216810015j), (0.38543550056193654-0.7475542165987907j))),
292     (((-0.773039591137402+0.001304882415888442j), (0.005692414753365238+0.7073228171031704j), (0.16149889599978962-0.5779399189029897j)),
293     ((-0.39240472327059983+0.5661946692113213j), (0.15619153376084327-0.2043397442335695j), (0.12989734566943012-0.6797045089189742j)),
294     ((-0.2953545934396431+0.00897241164565632j), (0.2424492369208724-0.3012099081809274j), (-0.5052331641775911-0.7560269073586534j))),
295     (((-0.4330063069118393+0.4662418513842146j), (0.14640515390237896+0.21280275920042335j), (-0.6848374766215319+0.688509731931129j)),
296     ((-0.7009542857194253+0.5090290863675988j), (-0.08777137326709294-0.0642088074588476j), (-0.22469168662839534-0.20497222057853204j)),
297     ((-0.004895060324627054-0.0007149461427655712j), (0.5733987472263198-0.020876347517763794j), (0.14677839835678597-0.33748939337229644j))))
298     elif rank==4:
299     return (((((0.790344350-0.675690862j), (-0.33969014424346+0.004667354999j), (-0.353898037-0.23103247j), (-0.173453149+0.350472j)),
300     ((0.262318036+0.493920836j), (0.122221063-0.2126j), (-0.2002867+0.62847794j), (0.2585201923791-0.1055537993243j)),
301     ((0.1024287918-0.07259437049j), (0.3338564+0.44847000j), (0.0433384-0.2616078j), (-0.1717597+0.2503709670077j)),
302     ((-0.768778331-0.076403010j), (0.251991719+0.62985777j), (0.4514933+0.47696252j), (-0.0351486+0.023037350246j))),
303     (((-0.4863645-0.24921801802j), (-0.023444472-0.5599386j), (-0.56592+0.4275706j), (0.41222370286-0.34867238925j)),
304     ((-0.5252590+0.04977251205j), (-0.33737953+0.27293775j), (0.66428+0.87048705j), (0.0672260574-0.416242856449j)),
305     ((0.148783460-0.4520517585j), (-0.41537536+0.16140391j), (0.6278127+0.263838j), (-0.07760387-0.1831155602152j)),
306     ((0.0470026875+0.481795665j), (0.0215979296-0.081945318j), (0.7913869-0.0861j), (0.39466-0.36695690929153635j))),
307     (((-0.143371038+0.36692459j), (-0.05936024660+0.57744203j), (0.35210125-0.3062606j), (0.09250628940+0.2787772j)),
308     ((0.5220814-0.12741648j), (-0.054402209613+0.8726141525j), (0.19115503+0.059924j), (0.34340959513-0.13436584j)),
309     ((-0.854710-0.3580477j), (-0.45614757+0.0726810109j), (-0.11809521670+0.15075834042j), (-0.028270996-0.13039829j)),
310     ((-0.4935554755+0.6616606j), (-0.77712599-0.292285j), (-0.29938802+0.958714551j), (0.1306040901396+0.5467211724j))),
311     (((-0.490711642822499-0.0679784225903799j), (-0.028147241164195536-0.03995809530085381j), (-0.28811330815221536-0.6815443637070895j), (0.07421744086779403+0.7402073156785812j)),
312     ((-0.20556698745139912+0.15621646747170792j), (0.09192542596753261+0.12253579257228409j), (-0.3264483145179087-0.946630282004219j), (0.224192041112648-0.90380956121387j)),
313     ((-0.23224656797256493-0.6768140280012414j), (0.2451768408209073+0.17488492564153224j), (-0.6851697787753819-0.08406614036650228j), (0.20088414272093424+0.1669900873662492j)),
314     ((-0.36057308512412345+0.4226878583624143j), (0.4490488492756204+0.11240390126422484j), (0.03234540063577107+0.5512325765639803j), (-0.5756238638317961-0.46042879607009257j)))),
315     ((((0.24124399378525585-0.8745635773731907j), (-0.19374525735285986+0.5380787997061398j), (-0.4489085299026162-0.6296073456803736j), (0.056570144039872594-0.135671341894538j)),
316     ((0.05530486113034205-0.45284053426797866j), (-0.04502323738051783+0.0630304737860885j), (0.004887893978963609+0.5713368827301133j), (0.18732743423207876-0.7143408881411377j)),
317     ((-0.3712234322764927+0.24908466763268566j), (0.6364022966205971-0.21808571418727385j), (-0.5670900710572193+0.6348611392807915j), (0.9245683140013828+0.3899090325528184j)),
318     ((-0.6094870272364956-0.2685532809269351j), (0.6287315177811945+0.4264823533706973j), (0.1676715780106749-0.48029733292855326j), (-0.5376630517471747-0.7182359990772386j))),
319     (((-0.018779747197580465+0.6114308512727638j), (0.3732084851158033-0.4786089418474003j), (-0.5663664323873074+0.39392462282467033j), (0.13538143997466878-0.12985823792228446j)),
320     ((-0.4780490757496574-0.39805216916921526j), (-0.2797090849741719+0.93720217986173j), (0.6203622207514078-0.15823957110011522j), (0.6060182605777774+0.018214531480017393j)),
321     ((-0.3696664461011986+0.07708468475820063j), (0.3066672994071602-0.345863819817513j), (-0.18002308351634988+0.6758164917135244j), (-0.3299795335012433+0.3472073085359665j)),
322     ((-0.018635553181191034-0.2527645838168162j), (0.10050559250760827-0.2682102608362037j), (0.15675656210201427-0.8704771160865176j), (0.2060240187990353+0.1525158024705776j))),
323     (((0.17233488629737193-0.11594210469295985j), (0.06281516668626441-0.2603634509290429j), (-0.05642743012335105-0.655594777161181j), (0.6959785793264961+0.19699171017512973j)),
324     ((-0.17348338509217032-0.6986792371372937j), (-0.8346643961801311-0.3680194342368177j), (0.12864312443903647-0.32156359553027614j), (0.6861567331359726-0.010430013106866087j)),
325     ((-0.6222917331694062+0.112713903157314j), (-0.12621654439609742+0.28520452943867913j), (0.44508284456518865-0.7522188187153122j), (-0.2636591190438452-0.040926078833506185j)),
326     ((-0.19805372118683406+0.5858778783604968j), (0.8721978764710994-0.548302441850661j), (-0.15430327558703272-0.01201209901149869j), (-0.3670274756811238+0.5474051336552919j))),
327     (((0.25034760722181615-0.15703084151927404j), (-0.14637027923589074+0.2928912738619156j), (0.46416445476921286+0.08042093992929411j), (-0.506840204775922-0.1186965040818393j)),
328     ((-0.37679950234230697-0.2701183493158177j), (0.043782673009088335+0.06734842807447794j), (0.2517828293729589-0.46888255931621403j), (0.6737055518213005-0.812365808946925j)),
329     ((-0.2661639821601073+0.13557351739334367j), (0.7392306869051049+0.5132140781139445j), (0.8364137600747349+0.15412542220542547j), (-0.5220472284167044-0.3618612888730691j)),
330     ((0.13970939326026943-0.3036727447660489j), (-0.38759251152342933+0.18775991991684293j), (-0.2487083238049208-0.4778652656270306j), (0.1390512499757498-0.9134653209907141j)))),
331     ((((0.04833008268979544+0.15219347436054742j), (0.26103655160455086-0.3757461116008425j), (-0.12150273403936784-0.617683120749172j), (0.06086845258368434+0.5631830804862105j)),
332     ((0.5300453373682147+0.4166351114705461j), (-0.6851243348127105+0.6918703698362535j), (-0.7710255671005614+0.10134603710624956j), (-0.26008427165733317+0.39542364464404867j)),
333     ((0.5854498106749348+0.549731062650827j), (0.2519939415821417-0.43527531634423966j), (-0.6267811606157699+0.8585285100484663j), (0.07940474123690222-0.5124720092697812j)),
334     ((0.30776303313314646-0.15530657580599816j), (0.007522269998118669+0.35668611429959896j), (-0.1919814476250188-0.30177638543157503j), (-0.1646298733419591-0.7159546806725978j))),
335     (((-0.30218788472478486+0.7760123719336528j), (-0.6314508280105797-0.1304090779644247j), (0.47461359141937576+0.4479088939414325j), (-0.06334668969380608+0.1323481666947287j)),
336     ((-0.7546949847971307+0.1756014222789699j), (0.25493728708952623-0.1282474899023487j), (0.390011965026524+0.4028431671750171j), (0.06598509493063165+0.7155111116236064j)),
337     ((0.07881709314826968-0.24405932002231845j), (0.36802109324120846-0.15749901166866498j), (-0.4450424875753707+0.7030178139999255j), (0.27329963141708635-0.7119309406610871j)),
338     ((-0.30933381776423374-0.11542316873853986j), (-0.0254248179097315-0.7313241377455038j), (0.10700540112141-0.4660169963118146j), (-0.3013644469437623+0.17540339691654783j))),
339     (((0.0008073119623276392-0.05721575120619815j), (-0.08090870209548084-0.5957005266957907j), (0.17886979689341065+0.08798138279240286j), (-0.47326181867795214-0.39061153265097337j)),
340     ((-0.6240780356387126+0.931178282425864j), (0.49774084728858903-0.6554241240698137j), (-0.5514724615982707-0.1357900974308276j), (0.9476110679732384-0.8254384162767912j)),
341     ((0.339181898243627-0.26749719725842025j), (-0.8452885480367868+0.6880217962554664j), (0.6160319781793868-0.21382367328363683j), (-0.10773724739140955+0.12900692439104278j)),
342     ((-0.4524239681624962-0.05106064389660214j), (0.3502260661172907-0.28486272434416593j), (-0.22611152371676513-0.4473111544777272j), (-0.07889011849494199-0.902189430409641j))),
343     (((-0.4549255061524088+0.8204137745689758j), (0.6262794891433104-0.07873980006902381j), (-0.2099285569580429-0.5700098959028401j), (0.6485809522680817+0.09567054692828636j)),
344     ((0.20594301199461984+0.4902067661467834j), (0.3329644191869927-0.02188884849814343j), (-0.22921000231707434+0.3393725843732417j), (0.5813376839449342+0.09312340842380451j)),
345     ((-0.44184373889384854-0.22572260324605908j), (-0.2865930601221123+0.2963815667447778j), (0.23401187102772336-0.14690195925951866j), (0.5821368881041176+0.7899842539077798j)),
346     ((0.21512923589171906-0.5017618261731809j), (-0.29710734954707296+0.3058974064324922j), (-0.3522028959822211-0.5211544989239631j), (0.0833888296839771+0.47110470479799904j)))),
347     ((((-0.12192871299046759-0.7328491805867747j), (0.7012790193629233+0.7216675552235499j), (0.07746694166806012+0.07187177179945092j), (-0.11596083131875812-0.3402549730235054j)),
348     ((0.4419525909212654-0.41264178907481297j), (-0.9540280899180219-0.0931626138838092j), (0.5850822884122122+0.023613319021177137j), (0.6204747822108139+0.4817530149691007j)),
349     ((0.12857240889181254+0.26765277556782874j), (-0.5905959060433874+0.30391448875145577j), (-0.33009606966351646-0.5133049903372606j), (0.3911371567574641-0.5699531083068055j)),
350     ((-0.06951047741648464+0.09185412570082496j), (0.23412720494006845-0.15301303449597714j), (-0.3632868271203742-0.0854806981764501j), (-0.06898965841232252-0.08895516025337646j))),
351     (((-0.30228646550028415+0.06630530646305488j), (0.1386457118575627-0.48419676726390337j), (-0.22729071025997294-0.7643686926101503j), (-0.3622425543437594+0.8590754571587876j)),
352     ((-0.22721539776726385-0.36036034464849565j), (0.31497309604817325+0.3597772211828737j), (0.5069787174234794-0.8219928876404512j), (0.11194139062149588+0.26293050464964796j)),
353     ((0.4612090001013647+0.27388506472486907j), (-0.30194776224929665-0.13263761985638922j), (-0.6233657091294399+0.44684364446587943j), (-0.3450340301594258+0.11542147033108141j)),
354     ((-0.014881287063154947-0.18928627620951555j), (-0.015185483586684478+0.8972647988323046j), (-0.4351552758945989-0.7299460860379636j), (-0.12326133732628419+0.012329124057677388j))),
355     (((0.10476345838581014-0.14636495344507483j), (-0.32803930125358216+0.27809153512314866j), (0.22528172636268207+0.3494691827944507j), (-0.5310240602410343+0.04119281216138804j)),
356     ((-0.5533642323509493+0.2906558493993484j), (-0.33436396580317507+0.4888660226122262j), (-0.4290629671820184+0.09348041559022413j), (-0.1635189281331263+0.08219415853032563j)),
357     ((-0.48564277336559514-0.39389189119028456j), (-0.07859439546331881-0.5417512106196164j), (-0.2634745687747664+0.6393823484701674j), (-0.4717227533107514+0.7886365869114986j)),
358     ((0.1574555874287038-0.15735823857163656j), (-0.3407071004516933-0.00848408628817443j), (0.111461150743281-0.4496138761616306j), (-0.08146922125654954+0.5259628325969007j))),
359     (((0.34656176542518824+0.07880355128877725j), (-0.258503112094004+0.23322070678863926j), (-0.6883175179734812+0.06684313489266447j), (-0.04692875801791596+0.7384728581195434j)),
360     ((-0.3413224116842536-0.07621317699837815j), (0.23082091132507632-0.7397247652890888j), (-0.7325151537847703-0.2399819049396238j), (-0.13092551439092603-0.2541771655857984j)),
361     ((-0.6621690601235584-0.3959496844857878j), (-0.18349053313548802-0.8753348282719295j), (-0.03908532595157577+0.35883701301557147j), (-0.051099789459096545+0.22309220396282636j)),
362     ((0.255858259117678+0.5962976405338435j), (-0.4167005907396837-0.7228120687439701j), (-0.4251792094268322-0.5598290555324366j), (-0.02547169493326129-0.10035815157656547j)))))
363     else:
364     if rank==0:
365     return (0.16343477325759478,)
366     elif rank==1:
367     return (-0.414447461350212, 0.5940893953018536)
368     elif rank==2:
369     return ((-0.18517072101415805, 0.20812345616476052),
370     (-0.5546197008728526, -0.5564107547626429))
371     elif rank==3:
372     return (((0.39959975888207894, -0.6577401243413907, 0.4280968882108843),
373     (0.22892610169500252, -0.29400534047234894, -0.3596253597614875),
374     (-0.352145347223075, -0.22330947752937103, 0.6040999239623353)),
375     ((0.5820901702251168, 0.5118427342586129, -0.784142756428528),
376     (0.32306580123331297, 0.5718638969764223, 0.35139290436334764),
377     (-0.38744644765122205, 0.6230529976422874, -0.4451744915244834)),
378     ((-0.1680467743981198, 0.8270861936315199, 0.2604978984507546),
379     (-0.3179202431655108, 0.592515989853744, 0.37531069237770537),
380     (-0.5594567456296533, -0.5354189906699913, -0.6879940596903789)))
381     elif rank==4:
382     return ((((0.07653880859335448, -0.8506240072658446, 0.5669507117736834, 0.5069631117128448),
383     (0.7231092428343939, -0.18235569823019526, 0.46022740126490647, 0.8492333455592396),
384     (0.6170052818637486, -0.8808747630127647, 0.1563085221153727, 0.8244613246958687),
385     (0.4294616619386404, -0.12118821840316875, 0.7616687854731052, 0.6728140330125063)),
386     ((0.6436880168986288, -0.25021445743624676, 0.11998265803070028, 0.8312669978628259),
387     (0.6870391868795935, -0.41825547772474664, 0.601722908359805, 0.10996760961876721),
388     (0.30815741382372003, -0.8484037060918963, 0.6225223666523892, 0.25636768516056313),
389     (-0.5403219505752949, 0.784036866371234, 0.11777309540223573, 0.4039156719922558)),
390     ((0.5543818190876664, 0.5654917578606441, 0.6110438985958697, 0.09343833716996176),
391     (0.663012375502168, 0.2314869852119426, 0.23762537471584116, 0.6933683606475624),
392     (-0.29276295759188187, 0.714837865189284, 0.1872658031279304, 0.1702169706800615),
393     (-0.4542436592804883, 0.07976845049430197, 0.08816046717012539, 0.462262050647425)),
394     ((0.506450528739594, 0.4062122557330939, 0.5462416476803083, 0.25191742530295563),
395     (0.3393578341507891, 0.2825671991633298, 0.13447310100386736, 0.5860351833019655),
396     (0.6612450693192753, 0.6774796280346236, 0.2676680871992434, 0.507190159923532),
397     (0.6953428609343382, 0.7171619543885263, 0.6260223993304953, 0.331615476564711))),
398     (((-0.27573547448763347, 0.5077386283774998, 0.4453961872519076, 0.43130840985234026),
399     (-0.580315177591782, 0.5652609083059623, 0.8511780780181941, 0.33371199932631807),
400     (0.699271673783864, 0.49366804495096395, 0.06797744724509305, 0.5353269755409358),
401     (-0.6252936853093409, 0.8905733967820801, 0.3089031678403189, 0.5261014470187029)),
402     ((-0.7404002858536928, 0.2048176759131214, 0.4980581903575471, 0.42894050825990854),
403     (0.45779709857247547, -0.7620468819613082, 0.6247644411339963, 0.6305323474999456),
404     (0.7909315252937255, -0.3012402477673979, 0.4525703288970107, 0.9352115724287626),
405     (0.31693114412209444, -0.37281844304816186, 0.7318694959034, 0.19786924305064665)),
406     ((0.3274437623324882, -0.33087589095095155, 0.8556630658488849, 0.524447118150698),
407     (0.41163320939179787, -0.9238459438767593, 0.21861731917563137, 0.4424459362963088),
408     (0.5776510801231114, 0.6065647351222803, -0.639307289457621, 0.7314330090773533),
409     (0.27421408841108247, 0.12621566941798637, -0.46606608860175, 0.08985539889445235)),
410     ((0.25771437676193215, 0.8671956551054035, -0.7024115898342955, 0.6180265239465382),
411     (0.3536132615270657, 0.4678494273732346, -0.5440963329219566, 0.5386557403677203),
412     (0.425277398166178, 0.5397867882224323, -0.21245876299659439, 0.8499599729452116),
413     (0.282819828736375, 0.616976644425216, 0.45750716248923645, 0.10388406898090359))),
414     (((0.480212232724941, -0.8937086550918505, -0.6399122280175192, -0.3926739182869949),
415     (0.5866305704975537, 0.37523483543667685, 0.34455787558391154, 0.7468191968550546),
416     (-0.7561559742324413, 0.6618299652906166, 0.5497360987548463, 0.44000411823919794),
417     (0.5489342296514085, 0.33299878380451237, -0.6851907132585857, -0.8837744966993399)),
418     ((0.2449050432846066, 0.7225682113974873, -0.42149169327348723, -0.5241172273711572),
419     (0.7461632214743219, 0.3773660518547119, 0.5911139199924735, 0.12543356040664694),
420     (-0.4374385476373295, -0.7523855940695361, 0.4381969239605094, 0.37308327852970813),
421     (-0.21637181734766117, 0.49874174259134, 0.3912614640116107, 0.4526617072173223)),
422     ((0.7151470272616507, 0.43893562960939475, 0.4654984531602598, 0.026153794290457506),
423     (0.7899612010454996, 0.4349102788459652, 0.7453956466392258, 0.47431536809150776),
424     (0.42979681026390004, -0.571667413005515, 0.608322709782375, 0.4374481254420103),
425     (0.33514856567435775, 0.5877137248653976, 0.9386863487830309, 0.1386415730993477)),
426     ((0.35219579066973905, -0.6168773605138196, 0.40504448843510976, 0.424824210157774),
427     (0.7812627665326543, 0.19452639019667187, 0.6000050187112531, 0.7539670503073901),
428     (0.2981680001911141, 0.5123292320600974, 0.6035479676835969, 0.5180365031497639),
429     (0.4958302538856905, -0.5666881217462356, 0.3057862327558582, 0.16322148534649822))),
430     (((0.5219568172234907, 0.6691120408133714, 0.5415030041267854, 0.5178254487487362),
431     (0.550999473408774, 0.3224491374840088, 0.40632316238837907, 0.5316822545746088),
432     (0.15782246477014253, -0.39011414803016886, 0.5923055243411701, 0.33403984110147705),
433     (0.5476956624940421, 0.353567340179472, 0.7751336150761081, 0.3769351266082521)),
434     ((0.26092129669846587, 0.38531106190825626, 0.43089380185467957, 0.3517745063606868),
435     (0.6068795949566435, -0.7313287811237782, 0.7817415065395071, 0.539725422031037),
436     (-0.4681995762086918, 0.8081081299514932, 0.45349678068383653, 0.1676286251112078),
437     (0.9418725604754995, 0.7388572732026134, 0.44262594936532146, 0.7474149440129483)),
438     ((0.8132968384251593, -0.5972218943821608, -0.5919410574164853, -0.35599895731169406),
439     (0.7520654612132684, 0.45483154483372135, 0.4059225646226807, 0.4001021311571795),
440     (0.241190931159322, 0.8294262552595144, 0.6807436275202874, -0.3970641092078186),
441     (0.41214139959674073, -0.49530207420971023, 0.2603640589059204, -0.5320822386899074)),
442     ((0.4852677073030271, 0.5126350217914364, 0.5251827072400477, 0.4107256987588376),
443     (0.5923200155158566, -0.7301177285915048, -0.774241876159728, 0.6746581037497406),
444     (0.3573798122820507, 0.169636160666647, -0.5725299039287078, 0.23182444091612892),
445     (0.3601137116698788, -0.07438414986800912, -0.4165677125316061, 0.0790530879666291))))
446    
447     def get_python_input2(self, rank, cplx):
448     if not cplx:
449     if rank==0:
450     return (-0.22889838791916658,)
451     elif rank==1:
452     return (-0.49012030903632825, 0.6031662135176437)
453     elif rank==2:
454     return ((-0.6891705183553265, 0.7417620269931902), (-0.5710307758197861, 0.39980890346586717))
455     elif rank==3:
456     return (((0.450166488818521, 0.40335229027346475, -0.34323251080578104),
457     (0.2842555722086943, 0.519038548037327, -0.22356691063536377),
458     (0.6233434523085559, -0.6939552082789993, 0.20717775496120844)),
459     ((0.6635014413084468, -0.12427061907674535, 0.4316471005230688),
460     (-0.3462206066776269, 0.5812789855981269, 0.1513383660423066),
461     (0.40921125173698586, -0.6302181341512401, 0.4857376224901844)),
462     ((-0.5156818720590722, 0.3810418328134193, 0.5228685660307542),
463     (0.44668606111653875, -0.8552520337523355, -0.30378907822454826),
464     (-0.572442375071903, 0.13397389728880899, 0.)))
465     elif rank==4:
466     return ((((0.45433363368861773, 0.6498884169562154, 0.8968304717142223, 0.8907734241559906),
467     (0.4777438965822781, 0.19219763395957137, 0.47760828704065156, 0.099611811950238),
468     (0.28320121503596124, 0.6794412465012807, 0.13188620716114968, 0.40410020187234463),
469     (0.170095604634749, 0.6491679236703396, 0.48405171480791914, -0.48480616171976565)),
470     ((0.40796761374598983, 0.5888935058511742, 0.810959910176321, -0.3519432924326292),
471     (0.6778803492879535, 0.15159482372964073, 0.7609511790213423, -0.4291829232233251),
472     (-0.6597430856795399, 0.5416080050562327, -0.7316035149420569, 0.17492295472360206),
473     (0.3585956180854316, 0.4506986634961759, -0.3068624306617866, 0.6450035140643098)),
474     ((0.7690325599562085, 0.6582789850176016, -0.6556413596206179, 0.615423012961261),
475     (0.3947622967482572, 0.3604341682179244, -0.5689343825826134, -0.22003697279869047),
476     (-0.6004909191668832, 0.48591852805780483, 0.6670811381503408, -0.33418084981888524),
477     (-0.5696228030807892, 0.8349733556806979, 0.08716776292987743, -0.6103200906618154)),
478     ((0.32673151927490685, 0.3650741778596788, 0.4719563946069752, -0.2624495178810215),
479     (-0.6911360309172416, 0.629718040535628, 0.37138298773280687, 0.7867876295855086),
480     (-0.6768502043234856, 0.32903587935447837, 0.6229889864689531, 0.5226994780805113),
481     (-0.6571446582814051, 0.30807025622961254, 0.3025565918384279, 0.5316791314282434))),
482     (((0.7110156690310308, 0.07897654694359649, 0.49671935812956247, 0.15989919493282642),
483     (0.4454758263127157, -0.8468596115253173, -0.4603369168686832, 0.7835562740584727),
484     (0.1973500874759318, -0.6890077016392274, -0.38353764662415646, 0.2602210860778308),
485     (0.3062963684983607, -0.5485723785169033, -0.7558085192193574, 0.7260373711224899)),
486     ((0.6292337309967168, -0.6298019421801468, 0.5769038995707547, 0.805909547222589),
487     (0.2956786092814956, -0.8516163380649984, 0.0433563110406362, 0.5562648421367056),
488     (-0.44398600437607083, -0.3132864322653825, 0.1309184523859448, 0.09487956033144461),
489     (-0.39347200269496224, 0.6744128343886427, -0.17787462973897294, 0.6844498649820736)),
490     ((-0.4668129815805621, 0.46840442065095245, -0.6348701936076414, 0.534532796163385),
491     (0.5401302006866129, 0.42361490419012787, 0.3055178484323608, 0.4099049291060996),
492     (0.15643756091005653, 0.5538397868668722, 0.5793672234228313, 0.5343825930606839),
493     (0.567145595353928, 0.7936293829906991, 0.5159699957715731, -0.11524767048966807)),
494     ((0.46983068856527466, 0.829272105469925, 0.8242448082292821, 0.3155783126108229),
495     (0.46679344399363587, -0.35498575768428703, 0.8195558132407107, 0.044710380043836144),
496     (0.7228682303918399, 0.5956512578344273, 0.5842273233950968, -0.46445592272801267),
497     (0.48424480615111076, -0.43589572454719294, 0.2739525289177576, 0.5141521147948742))),
498     (((0.5353156164778932, -0.827716346014944, 0.2661170502005538, 0.6240217001592496),
499     (0.5889586875315378, -0.6056309378106368, 0.38460210470822326, 0.3257073061066195),
500     (0.38605597818925463, 0.5566287156895975, 0.8868213070850919, -0.10818212758613992),
501     (0.44934219884516874, 0.7722925534790802, 0.6824771465971564, -0.4861304182325704)),
502     ((0.35670465647772914, 0.40563319853724733, 0.9215374519881303, 0.3261075398074149),
503     (0.5466590188369063, 0.8063505325979616, 0.2505468000914572, -0.27573025774136484),
504     (0.743952777599612, -0.5916038948220598, 0.5814331576314142, -0.25330559867360414),
505     (-0.9281192928557953, -0.5526121099889816, 0.7663168620517609, 0.27644519542436335)),
506     ((0.4312170339514421, 0.39670998093753257, 0.6147975692316388, 0.49353631380425866),
507     (0.2914782490250003, 0.34495461015075896, 0.724277583477783, 0.7656114513280461),
508     (0.2967100926835535, -0.3708225100005513, 0.4557999563503535, 0.21401134707432434),
509     (-0.33196574382892885, 0.6509108525238382, 0.44580359408187276, 0.6130947882235365)),
510     ((0.11173436827791464, 0.6700051363761477, 0.12807937551069665, 0.7174522662954508),
511     (0.40082249771839484, -0.6435832868289147, 0.47429720113534696, 0.44533186804848607),
512     (0.4625441865293232, 0.24229257632548656, 0.655276132353378, 0.27883861657454045),
513     (0.638496711915504, 0.5391658143407168, 0.6794910638048037, 0.18819631783938193))),
514     (((0.49500523167298044, -0.7621808699493068, 0.8002303121407335, 0.4339016426795843),
515     (0.6899502135654372, 0.9438297115207196, 0.39545080237118185, 0.43835240439976453),
516     (-0.5324364296711654, -0.7403526206887153, 0.421079060947922, 0.28183735731097076),
517     (0.7641745784203584, -0.8052630361187237, 0.4113425938410049, 0.4873541423815537)),
518     ((0.4763043550807671, 0.8818320340667569, 0.4376950912132615, 0.5155236207246434),
519     (0.4770314956120568, 0.6995239422377975, 0.29342906280323733, 0.2207382366023154),
520     (0.47119152389910457, 0.5643383062697325, 0.19014363807175272, 0.47728067160438753),
521     (0.293549802812087, 0.3091310044125135, 0.8079461149429534, 0.30540675213143226)),
522     ((-0.6562012019806969, -0.5762140611417803, -0.8922117406714833, -0.5644163171621817),
523     (0.28018207838767606, -0.6980601983118322, 0.9321643060248082, -0.6857895197253853),
524     (0.30248864387340907, 0.37739756004900193, -0.5011312641768506, 0.19190880686969636),
525     (-0.36857760657786354, 0.6980580453947155, -0.4162678161352499, 0.6651932863378893)),
526     ((-0.2969663268640197, 0.5012850908098417, -0.5630486821046159, 0.5994825528795871),
527     (-0.45367000863631446, 0.24430658191105983, -0.277060548382701, 0.5169546884489187),
528     (-0.9278462241176814, 0.5112886572173754, -0.3908093365092602, 0.7815138913982161),
529     (-0.32136995201761503, 0.2619940057725135, -0.35043110649096515, 0.9241246395431221))))
530     else:
531     if rank==0:
532     return (0.22889838791916658j,)
533     elif rank==1:
534     return (-0.49012030903632825, 0.6031662135176437j)
535     elif rank==2:
536     return ((0.6891705183553265, 0.7417620269931902j), (0.5710307758197861j, 0.39980890346586717))
537     elif rank==3:
538     return ((((0.07547574295591059+0.525876939609691j), (0.6637422951496057+0.7388772645580287j), (-0.11575430357267835+0.3396973817710597j)),
539     ((0.489975174033296-0.7778617185395662j), (-0.8582089062218037+0.7890680975791542j), (-0.34130307486775563+0.3651975276800719j)),
540     ((0.6269390600608432+0.28192633671923134j), (0.6386868409229303+0.8545339974263741j), (0.8227777914187108+0.9768191533988598j))),
541     (((0.3925840042771697+0.8092934421771397j), (0.27266165100309064+0.32623317563034737j), (-0.8740927141261398-0.4161371090973831j)),
542     ((0.6702575659927514-0.450686130655044j), (0.474828305773418+0.7656845168857629j), (0.15253090291865834+0.46008109446176876j)),
543     ((0.6094857432227104+0.5897008435426775j), (0.5134349957841884+0.09305616116877985j), (0.7954114232091216-0.4633804802000654j))),
544     (((-0.29941397426915045-0.666629677984151j), (0.41045211458021535+0.6422008897066637j), (0.7608807908849147-0.2263883386308603j)),
545     ((0.21016378700056504+0.8009138519791235j), (0.10548646537128033+0.43289764157877525j), (0.4083797466047874+0.9040107808706966j)),
546     ((-0.8930070536981469+0.4674003925883036j), (-0.7258863558039299-0.38206684572695093j), (0.40771065599848233+0.14217138669583038j))))
547    
548     elif rank==4:
549     return (((((-0.38981592692954015-0.2856117645961309j), (-0.035094151427129905-0.265178716783423j), (-0.34532231395177504+0.36673987839501265j), (0.2041672227930209-0.6128500993893164j)),
550     ((-0.12421070955162938+0.026349493748204833j), (-0.3415725798389704-0.0775430038163134j), (0.17048268853378434-0.08862480715498033j), (-0.1106967683514759-0.10379778205326462j)),
551     ((0.7298716846009465+0.20776829436005195j), (-0.33435577984609854+0.039072521387463754j), (-0.05886662990481739-0.05072122421891534j), (0.18354830862254912+0.4606377888934907j)),
552     ((-0.0767806399525307-0.8221389203690308j), (0.190835818629008+0.16192941104126957j), (0.17778866234180712+0.2584570168682756j), (0.07671782176673747-0.8469237188822869j))),
553     (((-0.35597391704713033+0.25043169560436107j), (0.41228040156904044-0.3258644927079958j), (0.3255845547364652-0.04129891413069664j), (-0.49623171650577047-0.28943245984704047j)),
554     ((-0.29908631455896795+0.32223868604261874j), (0.22549183711675158-0.07473853585711632j), (0.8473949873724411-0.1266457939975455j), (-0.28218966494496867-0.7447571699002506j)),
555     ((0.43626155573856107-0.22452973659230602j), (-0.13852005024639502-0.2549763508471894j), (0.40223991129540115+0.6286067642439117j), (0.05222020648272985+0.36124142226658207j)),
556     ((-0.5521041254588972+0.04526366394953618j), (0.028005364473586924+0.664136776905772j), (0.19982797953123066+0.6970088780138949j), (-0.27592458615859916+0.05358189338835073j))),
557     (((-0.01401304893255595-0.2592802467152746j), (0.38457288044239724+0.022898781579736238j), (0.11747849077927963+0.02982853498608895j), (0.43510885272308897-0.5971898990476139j)),
558     ((-0.1386049812442307+0.48221564332109246j), (0.12985640511010177-0.46733815759024744j), (0.36035270943159226+0.030123486580092673j), (0.13433570628907954-0.3548300324692315j)),
559     ((0.3630171981969085-0.10489930496648125j), (-0.19285139550925268-0.22152540990095826j), (0.067448080460355-0.22485851852233463j), (-0.22642725802173436-0.8030852201557207j)),
560     ((-0.4923572157490467+0.6941947968511506j), (-0.3083492643827028-0.21029535607801164j), (0.04516826032767807+0.16347006444443446j), (-0.4979722425636467+0.2600475135508704j))),
561     (((-0.9146464795838944-0.4811995164563062j), (0.12372743851535117-0.19857635465689238j), (-0.32654984398293085+0.1399970385669752j), (0.5030023710839411-0.15390603274578885j)),
562     ((0.12140042439229626-0.1677658216785154j), (0.15883782681413416+0.33379103634910656j), (0.185779713490287-0.3870952578769751j), (-0.06711575082420218+0.06791735335184867j)),
563     ((-0.39839017930339415-0.5701893857302205j), (0.517636015942468+0.2847028688489578j), (0.3792093531943226+0.6747299891837335j), (0.3790566911887919-0.5890859768662702j)),
564     ((0.10419770368967918-0.5497491933319889j), (0.037156668670760284-0.08813180251072528j), (0.3918645219248724+0.294242167456119j), (0.46981783997943394-0.1336764441655952j)))),
565     ((((0.033498149202913496+0.5105612554548389j), (-0.00671182242426005-0.34435078880309433j), (-0.0373284784284601-0.5412680712938157j), (-0.21266128835217923+0.7435692921379757j)),
566     ((-0.6338796544785741-0.1519302355817751j), (0.19056981672575435-0.2151423521624617j), (-0.2906156104811447-0.06976477293942895j), (0.11015974132120787+0.034078789456797876j)),
567     ((-0.802973040360448+0.25982604363200634j), (0.4470120196869066+0.1070242653063358j), (-0.17139489854864864+0.280001955020894j), (0.481238612220953-0.1754485899809457j)),
568     ((-0.2395451407327337+0.17708193346527168j), (-0.5161417899394428-0.1119365768848799j), (0.48501626047241986+0.14129638224677343j), (-0.8906342486796647+0.5959903703773012j))),
569     (((0.4573784894991153+0.5594852951634348j), (0.5713680069309577-0.5494425630562785j), (0.08288855869575895-0.46808758933789407j), (0.0881202973963836+0.030710301266941187j)),
570     ((-0.06642229051907478-0.22323447873665903j), (-0.7628208743574287-0.6371785162956514j), (-0.2246568157836294+0.3567254755305702j), (0.68327814761898-0.27973991174997725j)),
571     ((0.2784159984258674-0.17498289569648884j), (0.004730953615886158+0.07715287138774296j), (0.0773670863004613-0.6360012413426752j), (-0.0647551047878423+0.6906328131396173j)),
572     ((0.558480058973719-0.04481293285577537j), (0.09684530531415203-0.40763537195877164j), (-0.3913240230298858-0.004438441098584933j), (0.031510290166036015-0.30876711061254836j))),
573     (((-0.588734853251181+0.36452828173265184j), (-0.19810928581934018+0.20823750547135322j), (-0.45274761144312026-0.17983105119023213j), (-0.11229734410645587+0.2560770621269597j)),
574     ((-0.4038055786345742+0.7025954299708754j), (0.6537842056064525-0.34973368012330475j), (0.35464537317028266-0.21682856487173952j), (-0.01815814374546676+0.4718839114346507j)),
575     ((-0.36336965745600625+0.3759504695343794j), (0.2248053726148399+0.22029644112859348j), (-0.09064428722611384-0.08254509314972736j), (0.12418920854260185-0.5471431985662905j)),
576     ((-0.5200354642412095+0.5425236434272582j), (0.4144201383368241-0.03221161184797661j), (0.10973679214385457+0.2887677216157485j), (0.8119344460935665-0.3782880124387231j))),
577     (((0.5132990185785542+0.1269895435922086j), (-0.8779926345719881-0.5240101078639017j), (-0.1083296281261924-0.8147529275948924j), (0.09647199912137994+0.6723852222785147j)),
578     ((0.2928885382594636-0.17353985395496885j), (-0.21364153320667634-0.03557466867344006j), (0.09421518259275086+0.6153556681629657j), (0.42459824192798623-0.17443990666881448j)),
579     ((-0.5143367641601848-0.474941950841561j), (-0.2759320986482162-0.8250929199965524j), (0.21922685784092444-0.5600860240181191j), (-0.8569179028983865-0.16482185283148332j)),
580     ((0.5268959167118139+0.55401274233894j), (0.08678495563788746-0.11915652486681427j), (-0.35416282616502737-0.4847172453257278j), (0.17111904837721448-0.8480796973331977j)))),
581     ((((0.5469697524334143+0.02787502521930041j), (0.2605342686105838-0.0738711527960102j), (-0.39955538445037275-0.37613379994879603j), (-0.013180544897028024-0.5858094274207383j)),
582     ((0.2506641890300212-0.1324021828426094j), (0.2972858012659867+0.21562443620437732j), (-0.6161716236733459-0.16509522040718683j), (-0.18102929570881354-0.6067237673008904j)),
583     ((-0.13192637373724614-0.6510388019746922j), (-0.5546497186031663+0.15957406458683243j), (0.3605761118213213+0.25686768414528705j), (0.401508970393731-0.5108236410388888j)),
584     ((0.39953367426110775+0.2252371577830028j), (-0.3347746193719203+0.2263747029817541j), (0.43746847580536263+0.5388066331831217j), (-0.07344964656116226+0.5473468419762271j))),
585     (((-0.6996969040609468+0.7213293709800207j), (-0.37557411707556654+0.1506412600826108j), (0.46608440397755446+0.013185375483020345j), (0.29865953531762246+0.19232124238469206j)),
586     ((-0.06222220564236847+0.5694069457780013j), (-0.5368962596793275+0.36703072903452505j), (-0.05182804478010006+0.3840540087750902j), (0.16375632553791997-0.4661212952339301j)),
587     ((-0.4041070739038938-0.04037225736899819j), (0.24215413306521716-0.06631187616668377j), (-0.2663745437846935+0.611183098942953j), (0.337942638568164-0.5670011153091816j)),
588     ((0.3876032723274968-0.08306424304240201j), (0.2173881180889634+0.4512865759999062j), (0.8795902664110721+0.8614312675002035j), (0.2870339354260544-0.11303384551216167j))),
589     (((-0.1319661103321904-0.1378309763195904j), (-0.03263197183994404+0.03651637220786119j), (-0.33530432503994767-0.007463082947573474j), (-0.3110039705203388+0.17231544573803292j)),
590     ((-0.07377573914613977+0.3678250464292866j), (0.3280327212275782-0.08984395132040435j), (-0.4492548090143319-0.3165726498892033j), (0.4186631970202508+0.14692250754002467j)),
591     ((0.12300006190073354+0.8465896476419659j), (-0.3266430699658883+0.9258477806121458j), (0.1270817126276501+0.7278063130820139j), (0.04390487289582379-0.07072636756748818j)),
592     ((0.8411822363338441+0.3271788959517308j), (0.14233232632431592-0.8034008469283107j), (-0.012057809815140041-0.07447549854466373j), (-0.5078787065469428-0.3322994351304549j))),
593     (((0.2823845584710901+0.3169641678915194j), (-0.14926005618963878-0.06141784434383113j), (-0.3336711008317823+0.608644554614276j), (0.042858723261329-0.25353753207960283j)),
594     ((-0.19596385250682435+0.29611929225848677j), (0.9379729841249024-0.5720585057483617j), (0.20515378855823352-0.5330821799545553j), (-0.45689594348515183-0.5221745972924456j)),
595     ((0.005913178294852495-0.04464774171993757j), (-0.3515104653551274-0.8716563770921714j), (-0.5644652537988155+0.4413367915251234j), (-0.32684204426160013-0.6404138884316928j)),
596     ((-0.20862357692064337-0.008586491450952471j), (0.7110044208850719-0.0260275339943824j), (0.33195949443404427-0.060726068233408204j), (-0.24054180926541135-0.22750131116864736j)))),
597     ((((-0.19779207637655705-0.06170675636552225j), (0.24801124896429994+0.52301594517833j), (0.3359762170142643+0.006887001901350498j), (-0.5044830473838094-0.023633199563395157j)),
598     ((0.35936388285588383-0.12044000986333014j), (0.06567318357927132+0.23081033720558908j), (-0.006063340342035706-0.43355358359223595j), (0.560747142959132-0.019735739750161296j)),
599     ((0.16778778206380363+0.4393001381475511j), (-0.19115676223578515+0.023171844709636735j), (-0.10056678281864495+0.11175155826135519j), (-0.24878623491611496+0.8172452900981119j)),
600     ((-0.4955653304024539-0.35864956392371916j), (-0.002728871185003978+0.3416061368260671j), (0.12387109110953831-0.2654493686440327j), (0.10889405520664741+0.1218720709206873j))),
601     (((0.07498012788575437+0.251986782960711j), (0.3511927502553568+0.27907917288389616j), (-0.6319086362942079-0.11628342415274562j), (-0.02365411536311457+0.7887319952841338j)),
602     ((0.38406832355686993+0.03416295519609358j), (0.35717793709754475+0.7751423080742306j), (0.29135030536626805+0.15668909755462013j), (0.14503883313378096-0.030524299930524523j)),
603     ((0.3331132451297607-0.03848385697279688j), (0.0750244753960323+0.10077551583585709j), (-0.15490975501427928-0.1798249796504282j), (0.9066796997830194-0.6602275207883976j)),
604     ((0.1471293723064081+0.10463425812772786j), (-0.5961028228889094+0.5480663905625878j), (0.0026089287349913004-0.5747699075005761j), (0.2899525342736272+0.1268195775198908j))),
605     (((-0.13364076045805806-0.17688339222579297j), (0.6013848685157083+0.3493674941578545j), (0.22523028276047052-0.21939576800830496j), (0.09111222639027305+0.7894981102504295j)),
606     ((0.6016850426953799+0.043886903791527376j), (-0.5060405108831854-0.5381151561460222j), (-0.4760569419146623+0.40666832623996363j), (-0.5318516495722876+0.16837803612551516j)),
607     ((0.024034551466941778-0.2166311876229967j), (0.26494031063742085-0.002375780112287895j), (-0.4730046544996984+0.6644551176991773j), (-0.39157195926624855+0.6199256868216445j)),
608     ((-0.04324867778353203-0.08087976286625231j), (0.1578599942534593-0.5156287674297576j), (-0.15005517462767193-0.09424179596026594j), (-0.13944975064956378-0.17543248499412656j))),
609     (((-0.5648616238096438+0.46394478768979586j), (-0.41003938415951235-0.33614785565882677j), (-0.3893130130095368+0.05645367151196268j), (0.3821121473593535+0.17991382827274327j)),
610     ((-0.5139083991747512+0.789121431720947j), (-0.6171117805874629+0.3660741433822048j), (0.05303400234375011+0.5094418060177022j), (-0.3545806168076585+0.4629656377266379j)),
611     ((0.2658032276104465+0.4237937984173149j), (0.18183157447480658+0.06623748664233398j), (0.12546831548404336-0.10575754034359075j), (-0.6833387940577664+0.23947306785979094j)),
612     ((-0.20503554348285624+0.21628529049971312j), (0.23649982943904524-0.6159980174662008j), (-0.20651357702330975+0.08458167450189069j), (0.j)))))
613    
614     def get_python_input3(self, rank, cplx):
615     if not cplx:
616     if rank==0:
617     return (0.37126864363799594,)
618     elif rank==1:
619     return (0.6234908821535466, 0.6138798448505429)
620     elif rank==2:
621     return ((0.46458697075264, 0.47521353725342), (0.2769991834092879, 0.7655903776259643))
622     elif rank==3:
623     return (((-0.7087306338233754, 0.5091993546185136, 0.7823132790082358),
624     (0.7809687239325918, -0.7618301393180559, 0.13846012311583666),
625     (0.24584408982123662, -0.30175410391822816, -0.6508820239463049)),
626     ((0.0799357328507963, 0.4268164046934606, -0.3340669557843154),
627     (-0.5352665915599666, -0.4796035531201281, -0.31521200922735726),
628     (0.6181927127971525, 0.5813500010909463, 0.6485259530707308)),
629     ((-0.607591622470962, 0.5134390179382666, -0.7761053727330762),
630     (0.30315911281007185, -0.7772739725828741, 0.21981237010097954),
631     (0.5720780258224234, -0.7199923733581466, -0.8038912730779739)))
632     elif rank==4:
633     return ((((0.45368972429803434, 0.43658224238126836, 0.327332664787118, 0.1659399779578305),
634     (0.5908203393014015, 0.6287596060266886, 0.26557881193403204, 0.7640693855123928),
635     (0.6550472925659366, 0.4051939492486867, 0.39695234748477226, 0.7984350907853707),
636     (0.45152587205177463, -0.6915126698433964, -0.1408991785923076, 0.5555466803377823)),
637     ((-0.7111217974645967, 0.22442551434498154, 0.33601178864915354, 0.21277504641255832),
638     (0.10220061513651632, 0.4523774178793611, 0.4079018667540423, -0.909554257065248),
639     (0.6139494095517375, 0.3083569476979329, 0.6376629339543685, -0.28647430781873456),
640     (-0.36486444793373635, 0.3134770531471723, 0.19207850462685053, 0.2742209367740796)),
641     ((0.5206089841634276, 0.24952538894537638, 0.0933758645493489, 0.24304014487798284),
642     (0.2039225828898289, 0.423378042043955, 0.21847415387885974, 0.4823494123271024),
643     (0.49781756385165377, 0.42765522168555026, -0.4737414300227722, -0.5398374124738391),
644     (0.2640617374368053, 0.34880253282719476, 0.32357380359477705, -0.7111559522372015)),
645     ((0.23761918672652063, 0.1593578505403827, 0.6530063992033186, 0.9079894778799892),
646     (-0.8250545394400823, 0.4861804550261372, -0.3406365725750848, 0.42480466462889144),
647     (0.47203132507512685, 0.20818156589620632, 0.20161698569028383, 0.42806013456132413),
648     (0.7792675299565863, 0.3736959703075082, 0.19761992623295196, 0.4235372420916027))),
649     (((0.6459817009885405, 0.2610419659851719, 0.39888588458573665, 0.6358114313716404),
650     (0.6789108524310596, 0.4760144991501489, 0.5132407231875976, -0.7445121079875354),
651     (-0.3165090047475903, 0.1882290433512482, -0.30270840337500193, 0.4773827304127968),
652     (0.27248041023839426, 0.5356669773887297, -0.5759298824759524, 0.27026295067501754)),
653     ((0.2225815420544881, 0.6296933698530776, 0.6420994781708316, 0.5292910401325328),
654     (0.4838814244753861, 0.3015763358329324, 0.5966105067811018, 0.437555952383517),
655     (0.2508886824465943, -0.3688703869280175, 0.44848941714873286, 0.6968286221703255),
656     (0.7458127375857659, 0.5565367320025696, -0.5221639609134333, -0.5043229193744858)),
657     ((0.2704586652152375, 0.23622061144754075, 0.5668874045788246, -0.7383427762361463),
658     (0.3326338826927772, -0.5180692401299339, 0.6853188934444896, -0.5105611442225273),
659     (0.32729714889258044, 0.7634733351662765, 0.2667323956085834, 0.3813499428619923),
660     (-0.707758750914661, 0.23317899979615478, -0.6728060312412778, -0.5045011288076484)),
661     ((-0.2758755420358796, -0.6849112850328907, 0.7208465949939953, 0.5465246847493163),
662     (0.5382081700827642, 0.4626841039902129, 0.38537277159039474, -0.5918003106653552),
663     (0.7410792569612943, -0.848695963275266, -0.35215371840141596, 0.7859807920638692),
664     (0.439754658119384, -0.09885040884202281, -0.20324265625602897, 0.6393707779383961))),
665     (((0.45932643067605416, 0.4867064483724215, -0.2492845750953945, 0.4071869028109893),
666     (0.518352199566693, 0.6265341328104177, 0.5719047743470251, -0.8284284690707643),
667     (0.1255527780884896, -0.133522460155736, 0.5939516968011829, 0.6970674969748756),
668     (0.821986273583169, 0.3881563859122813, 0.16941736964779366, -0.288738726812057)),
669     ((0.48102730273877786, 0.1522385344365771, 0.5752150637264031, 0.39522973755221524),
670     (-0.732520712427958, -0.49190588963815157, 0.6125760080831428, 0.2716702847832281),
671     (-0.8159103581398756, 0.34507912842082983, 0.7075657623779936, 0.29530894172611916),
672     (0.5278442353318813, -0.6539972004065213, -0.48897529954240776, 0.7932403888940815)),
673     ((0.831358889394934, 0.48050345824229945, -0.6410388202892018, 0.8982570057418652),
674     (0.30388123939085465, 0.727912073121657, -0.543834760379716, -0.6710456332208439),
675     (0.4417259323277584, -0.5717441377950038, 0.3664067245442036, 0.3280925201821242),
676     (-0.5400907637568426, 0.43207844188064887, -0.732946675152238, -0.5339092194505695)),
677     ((-0.22369526225631464, 0.5665529520090573, 0.2653373517286637, 0.6914637769007175),
678     (0.22138531453529892, 0.17362665833183274, 0.11873401018627547, 0.48731998406078203),
679     (0.5508721228465998, -0.3492961556670177, -0.5692351404720578, 0.5107492266892075),
680     (0.17584863513461835, -0.35755945941346623, 0.7650117785966029, 0.48316674832514844))),
681     (((0.2982202413301988, 0.2348830652298031, 0.3114442699257422, -0.20218169729319738),
682     (0.6846710473822368, -0.8119003553529898, 0.1790804504032915, 0.4781252356617314),
683     (-0.3766941501672641, 0.5437027703705374, -0.24423050827666176, 0.3323763024031741),
684     (0.8189980567608663, -0.5888920746029481, 0.17138276940268463, 0.5475256795584624)),
685     ((0.4569907243510988, 0.5255497422421722, -0.1680676291815795, -0.2879601796868399),
686     (0.5419471765149858, 0.8765158329632898, -0.21847500231364173, 0.6219663103942495),
687     (0.8993300494227338, 0.5256551743041176, 0.4312579142909404, -0.28503463714017396),
688     (-0.6601304123050094, 0.9681225089321629, 0.6110831795473397, 0.630733896684101)),
689     ((0.7252549854189686, -0.48905018110325815, 0.3949054499635516, 0.6883221515509466),
690     (0.3510020242244332, 0.5964593467774927, -0.665927090247577, -0.19851750424804993),
691     (0.49702295298466764, -0.32952301722148614, 0.6578112215358343, 0.629875436683738),
692     (0.5228582859488041, 0.48834135369831744, -0.8107618558028835, 0.012956020032133924)),
693     ((-0.3966015859408982, 0.19901168720580728, 0.6930890007374754, 0.7839579709117346),
694     (0.8623235889093344, 0.5661301336086426, -0.6547115325958021, -0.6689861941430038),
695     (-0.5105113993916237, 0.7066840336625683, 0.8004786600943815, 0.5266845579213677),
696     (0.689553296868146, -0.773301352126767, -0.7364812118860565, 0.5377502245784462))))
697     else:
698     if rank==0:
699     return (0.37126864363799594j,)
700     elif rank==1:
701     return (-0.6234908821535466, -0.6138798448505429j)
702     elif rank==2:
703     return ((0.46458697075264j, 0.47521353725342), (-0.2769991834092879j, 0.7655903776259643))
704     elif rank==3:
705     return ((((0.1454277130999836-0.7320274919853249j), (0.6111728482069096+0.3264747748994178j), (-0.5638648912195857-0.17450334170489668j)),
706     ((0.36745011107568193-0.36335598004419434j), (0.17683177117302507+0.17980667188917787j), (0.1975971229124449+0.4658291218212517j)),
707     ((-0.2014605099933947+0.2948257187520392j), (-0.744292187546457-0.06353546214852701j), (0.5315307768500955+0.20979695600906234j))),
708     (((0.6658801836076347-0.5765177344716341j), (0.49015610705744417-0.5133880244308395j), (-0.1502312930208003+0.1561733784845012j)),
709     ((-0.661348002857287-0.029644750992120383j), (0.006584637699976192-0.4781943559540154j), (0.12266084950784173+0.46542904661542706j)),
710     ((-0.41697557600280255-0.3537461357888442j), (0.26272750067625794-0.43630595153076535j), (-0.21367481541695688-0.2618183771588106j))),
711     (((-0.22338538892626414-0.10818049912878436j), (-0.040383727106552136+0.48764341091162444j), (0.014766392396017403+0.8223651913211714j)),
712     ((0.003228290936111433-0.37610619147220625j), (-0.01103811298925661-0.39851348234329986j), (0.20163130848248234-0.49523755760391885j)),
713     ((0.37812723691663375+0.354147330172629j), (0.08116710042198705+0.1643297763093502j), (0.015047687899757523-0.05023160033399521j))))
714     elif rank==4:
715     return ((((0.45368972429803434, 0.43658224238126836j, 0.327332664787118, 0.1659399779578305),
716     (0.5908203393014015, 0.6287596060266886, 0.26557881193403204, 0.7640693855123928),
717     (0.6550472925659366, 0.4051939492486867, 0.39695234748477226, 0.7984350907853707),
718     (0.45152587205177463, 0.6915126698433964, 0.1408991785923076, 0.5555466803377823)),
719     ((0.7111217974645967, -0.224425514+0.12j, -0.336011788-035j, 0.21277504641255832),
720     (0.10220061513651632, 0.4523774178793611, 0.4079018667540423, 0.909554257065248),
721     (0.6139494095517375, 0.3083569476979329, 0.6376629339543685, 0.28647430781873456),
722     (0.36486444793373635, -0.31347705-0.8765j, 0.19207850462685053, 0.2742209367740796)),
723     ((0.5206089841634276, 0.24952538894537638, 0.0933758645493489, 0.24304014487798284),
724     (-0.2039225828898289, 0.423378042043955, 0.21847415387885974, 0.4823494123271024),
725     (0.49781756385165377, 0.42765522168555026j, 0.4737414300227722, 0.5398374124738391),
726     (0.2640617374368053, 0.34880253282719476, 0.32357380359477705, 0.7111559522372015)),
727     ((0.23761918672652063, -0.1593578505403827, 0.6530063992033186, 0.9079894778799892),
728     (0.8250545394400823, 0.4861804550261372, 0.3406365725750848, 0.42480466462889144),
729     (0.47203132507512685, 0.20818156589620632, 0.20161698569028383, 0.42806013456132413),
730     (0.7792675299565863, -0.3736959703075082, -0.19761992623295196, 0.4235372420916027))),
731     (((0.6459817009885405, 0.2610419659851719, -0.39888588458573665, 0.6358114313716404),
732     (0.6789108524310596, 0.4760144991501489, 0.5132407231875976, 0.7445121079875354),
733     (0.3165090047475903, 0.1882290433512482, 0.30270840337500193, 0.4773827304127968),
734     (0.27248041023839426, 0.5356669773887297, 0.5759298824759524, 0.27026295067501754)),
735     ((-0.2225815420544881, 0.6296933698530776, 0.6420994781708316, 0.5292910401325328),
736     (0.4838814244753861, 0.3015763358329324, 0.5966105067811018, 0.437555952383517),
737     (0.2508886824465943, 0.3688703869280175j, 0.44848941714873286, 0.6968286221703255),
738     (0.7458127375857659, 0.5565367320025696, 0.5221639609134333, 0.5043229193744858)),
739     ((0.2704586652152375, 0.23622061144754075, 0.5668874045788246, 0.7383427762361463),
740     (0.3326338826927772, 0.5180692401299339, -0.6853188934444896, 0.5105611442225273),
741     (0.32729714889258044, 0.7634733351662765, 0.2667323956085834, 0.3813499428619923),
742     (0.707758750914661, 0.23317899979615478, 0.6728060312412778, 0.5045011288076484)),
743     ((0.2758755420358796, 0.6849112850328907, 0.7208465949939953, 0.5465246847493163),
744     (0.5382081700827642, 0.4626841039902129, 0.38537277159039474, 0.5918003106653552),
745     (0.7410792569612943, 0.848695963275266, 0.35215371840141596, 0.7859807920638692),
746     (0.439754658119384, 0.09885040884202281, 0.20324265625602897, 0.6393707779383961))),
747     (((0.45932643067605416, 0.4867064483724215, 0.2492845750953945, 0.4071869028109893),
748     (0.518352199566693, 0.6265341328104177, 0.5719047743470251, 0.8284284690707643),
749     (0.1255527780884896, 0.133522460155736, 0.5939516968011829, 0.6970674969748756),
750     (0.821986273583169, 0.3881563859122813, 0.16941736964779366, 0.288738726812057)),
751     ((0.48102730273877786, 0.1522385344365771, 0.5752150637264031, 0.39522973755221524),
752     (0.732520712427958, 0.49190588963815157, 0.6125760080831428, 0.2716702847832281),
753     (0.8159103581398756, 0.34507912842082983, 0.7075657623779936, 0.29530894172611916),
754     (0.5278442353318813, 0.6539972004065213, 0.48897529954240776, 0.7932403888940815)),
755     ((0.831358889394934, 0.48050345824229945, 0.6410388202892018, 0.8982570057418652),
756     (0.30388123939085465, 0.727912073121657, 0.543834760379716, 0.6710456332208439),
757     (0.4417259323277584, 0.5717441377950038, 0.3664067245442036, 0.3280925201821242),
758     (0.5400907637568426, 0.43207844188064887, 0.732946675152238, 0.5339092194505695)),
759     ((0.22369526225631464, 0.5665529520090573, 0.2653373517286637, 0.6914637769007175),
760     (0.22138531453529892, 0.17362665833183274, 0.11873401018627547, 0.48731998406078203),
761     (0.5508721228465998, 0.3492961556670177, 0.5692351404720578, 0.5107492266892075),
762     (0.17584863513461835, 0.35755945941346623, 0.7650117785966029, 0.48316674832514844))),
763     (((0.2982202413301988, 0.2348830652298031, 0.3114442699257422, 0.20218169729319738),
764     (0.6846710473822368, 0.8119003553529898, 0.1790804504032915, 0.4781252356617314),
765     (0.3766941501672641, 0.5437027703705374, 0.24423050827666176, 0.3323763024031741),
766     (0.8189980567608663, 0.5888920746029481, 0.17138276940268463, 0.5475256795584624)),
767     ((0.4569907243510988, 0.5255497422421722, 0.1680676291815795, 0.2879601796868399),
768     (0.5419471765149858, 0.8765158329632898, 0.21847500231364173, 0.6219663103942495),
769     (0.8993300494227338, 0.5256551743041176, 0.4312579142909404, 0.28503463714017396),
770     (0.6601304123050094, 0.9681225089321629, 0.6110831795473397, 0.630733896684101)),
771     ((0.7252549854189686, 0.48905018110325815, 0.3949054499635516, 0.6883221515509466),
772     (0.3510020242244332, 0.5964593467774927, 0.665927090247577, 0.19851750424804993),
773     (0.49702295298466764, 0.32952301722148614, 0.6578112215358343, 0.629875436683738),
774     (0.5228582859488041, 0.48834135369831744, 0.8107618558028835, 0.012956020032133924)),
775     ((0.3966015859408982, 0.19901168720580728, 0.6930890007374754, 0.7839579709117346),
776     (0.8623235889093344, 0.5661301336086426, 0.6547115325958021, 0.6689861941430038),
777     (0.5105113993916237, 0.7066840336625683, 0.8004786600943815, 0.5266845579213677),
778     (0.689553296868146j, 0.773301352126767j, 0.7364812118860565j, 0.5377502245784462))))
779    
780    
781     def get_array_inputL(self, rank, cplx):
782     z=self.get_python_inputL(rank, cplx)
783     return (numpy.array(z),numpy.array(z))
784    
785     def get_array_input1(self, rank, cplx):
786     z=self.get_python_input1(rank, cplx)
787     return (numpy.array(z),numpy.array(z))
788    
789     def get_array_input2(self, rank, cplx):
790     z=self.get_python_input2(rank, cplx)
791     return (numpy.array(z),numpy.array(z))
792    
793     def get_array_input3(self, rank, cplx):
794     z=self.get_python_input3(rank, cplx)
795     return (numpy.array(z),numpy.array(z))
796    
797     def get_const_inputL(self, rank, fs, cplx):
798     z=self.get_python_inputL(rank, cplx)
799     d=Data(z, fs)
800     return (d, numpy.array(z))
801    
802     def get_const_input1(self, rank, fs, cplx):
803     z=self.get_python_input1(rank, cplx)
804     d=Data(z, fs)
805     return (d, numpy.array(z))
806    
807     def get_const_input2(self, rank, fs, cplx):
808     z=self.get_python_input2(rank, cplx)
809     d=Data(z, fs)
810     return (d, numpy.array(z))
811    
812     def get_expanded_inputL(self, rank, fs, cplx):
813     base=self.get_python_inputL(rank, cplx)
814     x=fs.getX()[0]
815     mask=whereNegative(x-0.5) # A trick from Lutz Gross' version of tests
816     r=base*mask+(1-mask)*base
817     return (r, base)
818    
819     def get_expanded_input1(self, rank, fs, cplx):
820     base=self.get_python_input1(rank, cplx)
821     x=fs.getX()[0]
822     mask=whereNegative(x-0.5) # A trick from Lutz Gross' version of tests
823     r=base*mask+(1-mask)*base
824     return (r, base)
825    
826     def get_tagged_inputL(self, rank, fs, cplx):
827     z=self.get_python_inputL(rank, cplx)
828     ref=self.get_array_inputL(rank, cplx)
829     d=Data(z, fs)
830     d.tag()
831     return (d, ref)
832    
833     def get_tagged_input1(self, rank, fs, cplx):
834     z=self.get_python_input1(rank, cplx)
835     ref=self.get_array_input1(rank, cplx)
836     d=Data(z, fs)
837     d.tag()
838     return (d, ref)
839    
840     def execute_ce_params(self, pars):
841     for v in pars:
842     a=v[0]
843     op=v[1]
844     misccheck=v[2]
845     ref=v[3]
846     oraclecheck=v[4]
847     description=v[5]
848     res=eval(op)
849     if misccheck is not None:
850 jfenwick 6453 if not eval(misccheck):
851     print("Failed check:"+misccheck)
852     print(type(a))
853     print(" vs ")
854     print(type(res))
855     print(" values:")
856     print(a)
857     print(res)
858     self.assertTrue(eval(misccheck),"Failed check for "+description)
859 jfenwick 6450 oraclevalue=eval(oraclecheck)
860     self.assertTrue(Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue),"wrong result for "+description)
861    
862     def execute_ce_throws(self, pars):
863     for v in pars:
864     a=v[0]
865     op=v[1]
866     misccheck=v[2]
867     ref=v[3]
868     oraclecheck=v[4]
869     description=v[5]
870     with self.assertRaises(TypeError):
871     res=eval(op)
872    
873     def execute_t_params(self, pars):
874     for v in pars:
875     description=v[0]
876     a=v[1]
877     tagcount=1
878     for step in v[2:]:
879     a.setTaggedValue(tagcount, step[0])
880     op=step[1]
881     misccheck=step[2]
882     ref=step[3]
883     oraclecheck=step[4]
884     res=eval(op)
885     if misccheck is not None:
886     self.assertTrue(eval(misccheck), "Check failed for "+description+" checking "+misccheck)
887     if oraclecheck is not None:
888     oraclevalue=eval(oraclecheck)
889     else:
890     oraclevalue=ref
891 jfenwick 6453 if not Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue):
892     print(v)
893     print(" This step ")
894     print(step)
895     print("Failed comparison:")
896     print(res)
897     print(" vs ")
898     print(oraclevalue)
899     print(" a= ")
900     print(a)
901     print(" ref== ")
902     print(ref)
903     print(" oraclecheck= ")
904     print(oraclecheck)
905 jfenwick 6450 self.assertTrue(Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue),"wrong result for "+description+" for tag "+str(tagcount))
906     tagcount+=1
907    
908    
909     def execute_t_throws(self, pars):
910     for v in pars:
911     description=v[0]
912     a=v[1]
913     tagcount=1
914     for step in v[2:]:
915     a.setTaggedValue(tagcount, step[0])
916     op=step[1]
917     misccheck=step[2]
918     ref=step[3]
919     oraclecheck=step[4]
920     with self.assertRaises(TypeError):
921     res=eval(op)
922     tagcount+=1
923    
924     def generate_operation_test_batch(self, supportcplx, opstring, misccheck, oraclecheck, opname, update1, update2, input_trans=None, data_only=False, multisteptag=True):
925     """
926     supportcplx is a boolean indicating whether complex operations should be checked for values (True)
927     or tested to see if they raise (False)
928     opstring is a string of the operation to be performed (in terms of argument a) eg "Lsup(a)"
929     misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
930     opname is a string used to describe the operation being tested eg "inf"
931     update1 and update2 are strings giving code used to update a variable rmerge to
932     account for tag additions for tagged data.
933     eg: update1="r2.min()"
934     update2="min(rmerge, r3.min())"
935     would result in rmerge=eval(update1) running after the first tag is calculatedand
936     rmerge=eval(update2) running after the second
937     """
938     if input_trans is None:
939     input_trans=lambda x: x
940     pars=[]
941     epars=[] # operations which should throw
942     if not data_only:
943     (f1,f2)=self.get_scalar_input1(False)
944 jfenwick 6453 f1=input_trans(f1)
945     f2=input_trans(f2)
946     pars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - scalar"))
947 jfenwick 6450 if supportcplx:
948     (f1,f2)=self.get_scalar_input1(True)
949 jfenwick 6453 f1=input_trans(f1)
950     f2=input_trans(f2)
951     pars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - complex scalar"))
952 jfenwick 6450 else:
953     (f1,f2)=self.get_scalar_input1(True)
954 jfenwick 6453 f1=input_trans(f1)
955     f2=input_trans(f2)
956     epars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - complex scalar"))
957 jfenwick 6450 if supportcplx:
958     fields=(False, True)
959     else:
960     fields=(False,)
961     for c in fields:
962     dest=pars
963     if c:
964     cs="complex "
965     else:
966     cs=""
967     if c and not supportcplx:
968     dest=epars
969     for rank in range(4):
970     if not data_only:
971     (a, r)=self.get_array_input1(rank, c)
972 jfenwick 6453 a=input_trans(a)
973     r=input_trans(r)
974     p=(a, opstring, misccheck, numpy.array(r), oraclecheck, opname+" - "+cs+"array rank "+str(rank))
975 jfenwick 6450 dest.append(p)
976     (a, r)=self.get_const_input1(rank, self.functionspace, c)
977 jfenwick 6453 a=input_trans(a)
978     r=input_trans(numpy.array(r))
979     p=(a, opstring, misccheck, r, oraclecheck, opname+" - "+cs+"Constant Data rank "+str(rank))
980 jfenwick 6450 dest.append(p)
981     (a, r)=self.get_expanded_input1(rank, self.functionspace, c)
982 jfenwick 6453 a=input_trans(a)
983     r=input_trans(numpy.array(r))
984     p=(a, opstring, misccheck, r, oraclecheck, opname+" - "+cs+"Expanded Data rank "+str(rank))
985 jfenwick 6450 dest.append(p)
986     self.execute_ce_params(pars)
987     self.execute_ce_throws(epars)
988     del pars
989     del epars
990     tpars=[] # tagged versions
991     epars=[]
992     for c in fields:
993     dest=tpars
994     if c:
995     cs="complex "
996     else:
997     cs=""
998     if c and not supportcplx:
999     dest=epars
1000     for rank in range(4):
1001     test=[opname+" - "+cs+"tagged rank "+str(rank),]
1002     (a, r)=self.get_tagged_input1(rank, self.functionspace, c)
1003 jfenwick 6453 a=input_trans(a)
1004     r=input_trans(numpy.array(r))
1005     test.append(a)
1006 jfenwick 6450 # arguments are new tagged value, operation, extra check, reference_value, reference_check
1007     (t2, r2)=self.get_array_input2(rank, c)
1008 jfenwick 6453 t2=input_trans(t2)
1009     r2=input_trans(numpy.array(r2))
1010 jfenwick 6450 rmerge=eval(update1)
1011 jfenwick 6453 test.append((t2, opstring, misccheck, rmerge, None,))
1012 jfenwick 6450 if multisteptag:
1013     (t3, r3)=self.get_array_input3(rank, c)
1014 jfenwick 6453 t3=input_trans(t3)
1015     r3=input_trans(numpy.array(r3))
1016 jfenwick 6450 rmerge=eval(update2)
1017 jfenwick 6453 test.append((t3, opstring, misccheck, rmerge, None,))
1018 jfenwick 6450 dest.append(test)
1019     self.execute_t_params(tpars)
1020     self.execute_t_throws(epars)
1021    
1022    
1023     def generate_operation_test_batch_large(self, supportcplx, opstring, misccheck, oraclecheck, opname, update1, update2, input_trans=None, data_only=False, multisteptag=True):
1024     """
1025     (At time of writing) This is the same as generate_operation_test_batch but using
1026 jfenwick 6453 inputL to add some large (magnitude) values into the mix.
1027 jfenwick 6450 supportcplx is a boolean indicating whether complex operations should be checked for values (True)
1028     or tested to see if they raise (False)
1029     opstring is a string of the operation to be performed (in terms of argument a) eg "Lsup(a)"
1030     misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1031     opname is a string used to describe the operation being tested eg "inf"
1032     update1 and update2 are strings giving code used to update a variable rmerge to
1033     account for tag additions for tagged data.
1034     eg: update1="r2.min()"
1035     update2="min(rmerge, r3.min())"
1036     would result in rmerge=eval(update1) running after the first tag is calculatedand
1037     rmerge=eval(update2) running after the second
1038     """
1039     if input_trans is None:
1040     input_trans=lambda x: x
1041     pars=[]
1042     epars=[] # operations which should throw
1043     if not data_only:
1044     (f1,f2)=self.get_scalar_inputL(False)
1045 jfenwick 6453 f1=input_trans(f1)
1046     f2=input_trans(f2)
1047     pars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - scalar"))
1048 jfenwick 6450 if supportcplx:
1049     (f1,f2)=self.get_scalar_inputL(True)
1050 jfenwick 6453 f1=input_trans(f1)
1051     f2=input_trans(f2)
1052     pars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - complex scalar"))
1053 jfenwick 6450 else:
1054     (f1,f2)=self.get_scalar_inputL(True)
1055 jfenwick 6453 f1=input_trans(f1)
1056     f2=input_trans(f2)
1057     epars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - complex scalar"))
1058 jfenwick 6450 if supportcplx:
1059     fields=(False, True)
1060     else:
1061     fields=(False,)
1062     for c in fields:
1063     dest=pars
1064     if c:
1065     cs="complex "
1066     else:
1067     cs=""
1068     if c and not supportcplx:
1069     dest=epars
1070     for rank in range(4):
1071     if not data_only:
1072     (a, r)=self.get_array_inputL(rank, c)
1073 jfenwick 6453 a=input_trans(a)
1074     r=input_trans(r)
1075     p=(a, opstring, misccheck, numpy.array(r), oraclecheck, opname+" - "+cs+"array rank "+str(rank))
1076 jfenwick 6450 dest.append(p)
1077     (a, r)=self.get_const_inputL(rank, self.functionspace, c)
1078 jfenwick 6453 a=input_trans(a)
1079     r=input_trans(numpy.array(r))
1080     p=(a, opstring, misccheck, r, oraclecheck, opname+" - "+cs+"Constant Data rank "+str(rank))
1081 jfenwick 6450 dest.append(p)
1082     (a, r)=self.get_expanded_inputL(rank, self.functionspace, c)
1083 jfenwick 6453 a=input_trans(a)
1084     r=input_trans(numpy.array(r))
1085     p=(a, opstring, misccheck, r, oraclecheck, opname+" - "+cs+"Expanded Data rank "+str(rank))
1086 jfenwick 6450 dest.append(p)
1087     self.execute_ce_params(pars)
1088     self.execute_ce_throws(epars)
1089     del pars
1090     del epars
1091     tpars=[] # tagged versions
1092     epars=[]
1093     for c in fields:
1094     dest=tpars
1095     if c:
1096     cs="complex "
1097     else:
1098     cs=""
1099     if c and not supportcplx:
1100     dest=epars
1101     for rank in range(4):
1102     test=[opname+" - "+cs+"tagged rank "+str(rank),]
1103     (a, r)=self.get_tagged_input1(rank, self.functionspace, c)
1104 jfenwick 6453 a=input_trans(a)
1105     r=input_trans(numpy.array(r))
1106     test.append(a)
1107 jfenwick 6450 # arguments are new tagged value, operation, extra check, reference_value, reference_check
1108     (t2, r2)=self.get_array_inputL(rank, c)
1109 jfenwick 6453 t2=input_trans(t2)
1110     r2=input_trans(numpy.array(r2))
1111 jfenwick 6450 rmerge=eval(update1)
1112 jfenwick 6453 test.append((t2, opstring, misccheck, rmerge, None,))
1113 jfenwick 6450 if multisteptag:
1114     (t3, r3)=self.get_array_input3(rank, c)
1115 jfenwick 6453 t3=input_trans(t3)
1116     r3=input_trans(numpy.array(r3))
1117 jfenwick 6450 rmerge=eval(update2)
1118 jfenwick 6453 test.append((t3, opstring, misccheck, rmerge, None,))
1119 jfenwick 6450 dest.append(test)
1120     self.execute_t_params(tpars)
1121     self.execute_t_throws(epars)
1122    
1123 jfenwick 6453 class Test_util_base(Test_util_values):
1124 gross 395 """
1125     basic tests on util.py
1126     """
1127     #=========================================================
1128 gross 2415 # File writer
1129     #=========================================================
1130 jfenwick 5419 def setup(self):
1131     self.workdir=ESCRIPT_WORKDIR
1132    
1133 gross 2415 def __checkContent(self,fn,ref_cont):
1134     cont=open(fn,'r').readlines()
1135 jfenwick 3551 self.assertTrue(len(cont)==len(ref_cont),"wrong number of records")
1136 jfenwick 3771 for i in range(len(cont)):
1137 jfenwick 3551 self.assertTrue(cont[i].strip()==ref_cont[i],"wrong records %s"%i)
1138 gross 2415 def test_FileWriter_W(self):
1139 jfenwick 5419 fn=os.path.join(self.workdir, "filewriter_w.txt")
1140 jfenwick 3551 self.assertRaises(IOError,FileWriter,fn="",append=False)
1141 gross 2415 f=FileWriter(fn,append=False)
1142 jfenwick 3551 self.assertTrue(f.name==fn, "wrong file name.")
1143     self.assertTrue(f.mode=='w', "wrong mode")
1144     self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1145     self.assertTrue(not f.closed,"file shuold not be closed.")
1146 gross 2415 f.write("line1"+f.newlines)
1147     f.flush()
1148     self.__checkContent(fn,["line1"])
1149     f.writelines(["line2"+f.newlines, "line3"+f.newlines])
1150     f.close()
1151 jfenwick 3551 self.assertTrue(f.closed,"file shuold be closed.")
1152 gross 2415 self.__checkContent(fn,["line1", "line2", "line3"])
1153 caltinay 5101 MPIBarrierWorld()
1154 caltinay 4448 if getMPIRankWorld()==0: os.unlink(fn)
1155 gross 2415
1156     def test_FileWriter_A(self):
1157 jfenwick 5419 fn=os.path.join(self.workdir, "filewriter_a.txt")
1158 gross 2415 if getMPIRankWorld()==0: open(fn,'w').write("line1"+os.linesep)
1159 jfenwick 3551 self.assertRaises(IOError,FileWriter,fn="",append=True)
1160 gross 2415 f=FileWriter(fn,append=True)
1161 jfenwick 3551 self.assertTrue(f.name==fn, "wrong file name.")
1162     self.assertTrue(f.mode=='a', "wrong mode")
1163     self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1164     self.assertTrue(not f.closed,"file shuold not be closed.")
1165 gross 2415 f.write("line2"+f.newlines)
1166     f.flush()
1167     self.__checkContent(fn,["line1", "line2"])
1168     f.writelines(["line3"+f.newlines, "line4"+f.newlines])
1169     f.close()
1170 jfenwick 3551 self.assertTrue(f.closed,"file shuold be closed.")
1171 gross 2415 self.__checkContent(fn,["line1", "line2", "line3", "line4"])
1172 caltinay 5101 MPIBarrierWorld()
1173 caltinay 4448 if getMPIRankWorld()==0: os.unlink(fn)
1174 gross 2415
1175     def test_FileWriter_A_loc(self):
1176 jfenwick 5419 fn=os.path.join(self.workdir, "filewriter_a_loc.txt")
1177 gross 2415 if getMPIRankWorld()>0:
1178     fn2=fn+".%s"%getMPIRankWorld()
1179     else:
1180     fn2=fn
1181     open(fn2,'w').write("line1"+os.linesep)
1182 jfenwick 3551 self.assertRaises(IOError,FileWriter,fn="",append=True, createLocalFiles=True)
1183 gross 2415 f=FileWriter(fn,append=True,createLocalFiles=True)
1184 jfenwick 3551 self.assertTrue(f.name==fn, "wrong file name.")
1185     self.assertTrue(f.mode=='a', "wrong mode")
1186     self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1187     self.assertTrue(not f.closed,"file shuold not be closed.")
1188 gross 2415 f.write("line2"+f.newlines)
1189     f.flush()
1190     self.__checkContent(fn2,["line1", "line2"])
1191     f.writelines(["line3"+f.newlines, "line4"+f.newlines])
1192     f.close()
1193 jfenwick 3551 self.assertTrue(f.closed,"file shuold be closed.")
1194 gross 2415 self.__checkContent(fn2,["line1", "line2", "line3", "line4"])
1195 caltinay 4447 os.unlink(fn2)
1196 gross 2415
1197     def test_FileWriter_W_loc(self):
1198 jfenwick 5419 fn=os.path.join(self.workdir, "filewriter_w_loc.txt")
1199 gross 2415 if getMPIRankWorld()>0:
1200     fn2=fn+".%s"%getMPIRankWorld()
1201     else:
1202     fn2=fn
1203 jfenwick 3551 self.assertRaises(IOError,FileWriter,fn="",append=True, createLocalFiles=True)
1204 gross 2415 f=FileWriter(fn,append=False,createLocalFiles=True)
1205 jfenwick 3551 self.assertTrue(f.name==fn, "wrong file name.")
1206     self.assertTrue(f.mode=='w', "wrong mode")
1207     self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1208     self.assertTrue(not f.closed,"file shuold not be closed.")
1209 gross 2415 f.write("line1"+f.newlines)
1210     f.flush()
1211     self.__checkContent(fn2,["line1"])
1212     f.writelines(["line2"+f.newlines, "line3"+f.newlines])
1213     f.close()
1214 jfenwick 3551 self.assertTrue(f.closed,"file shuold be closed.")
1215 gross 2415 self.__checkContent(fn2,["line1", "line2", "line3"])
1216 caltinay 4447 os.unlink(fn2)
1217    
1218 gross 2415 #=========================================================
1219 gross 395 # constants
1220     #=========================================================
1221     #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1222     def test_kronecker_1(self):
1223     val=kronecker(d=1)
1224 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1225     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1226 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1227     def test_kronecker_2(self):
1228     val=kronecker(d=2)
1229 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1230     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1231     self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1232     self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1233     self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1234 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1235     def test_kronecker_3(self):
1236     val=kronecker(d=3)
1237 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1238     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1239     self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1240     self.assertEqual(val[0,2],0.0,"wrong value for (0,2)")
1241     self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1242     self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1243     self.assertEqual(val[1,2],0.0,"wrong value for (1,2)")
1244     self.assertEqual(val[2,0],0.0,"wrong value for (2,0)")
1245     self.assertEqual(val[2,1],0.0,"wrong value for (2,1)")
1246     self.assertEqual(val[2,2],1.0,"wrong value for (2,2)")
1247 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1248     def test_kronecker_domain(self):
1249 gross 442 val=kronecker(d=self.domain)
1250 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1251     self.assertEqual(val.shape,(self.domain.getDim(),self.domain.getDim()),"wrong shape.")
1252 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1253 gross 442 def test_kronecker_functionspace(self):
1254     val=kronecker(d=self.functionspace)
1255 jfenwick 3551 self.assertTrue(isinstance(val,escript.Data),"wrong type of result.")
1256     self.assertEqual(val.getShape(),(self.functionspace.getDim(),self.functionspace.getDim()),"wrong shape.")
1257 gross 442 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1258 gross 395 def test_identityTensor_1(self):
1259     val=identityTensor(d=1)
1260 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1261     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1262 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1263     def test_identityTensor_2(self):
1264     val=identityTensor(d=2)
1265 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1266     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1267     self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1268     self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1269     self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1270 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1271     def test_identityTensor_3(self):
1272     val=identityTensor(d=3)
1273 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1274     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1275     self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1276     self.assertEqual(val[0,2],0.0,"wrong value for (0,2)")
1277     self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1278     self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1279     self.assertEqual(val[1,2],0.0,"wrong value for (1,2)")
1280     self.assertEqual(val[2,0],0.0,"wrong value for (2,0)")
1281     self.assertEqual(val[2,1],0.0,"wrong value for (2,1)")
1282     self.assertEqual(val[2,2],1.0,"wrong value for (2,2)")
1283 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1284     def test_identityTensor_domain(self):
1285 gross 442 val=identityTensor(d=self.domain)
1286 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1287     self.assertEqual(val.shape,(self.domain.getDim(),self.domain.getDim()),"wrong shape.")
1288 gross 442 if self.domain.getDim()==2:
1289 jfenwick 3551 self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1290     self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1291     self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1292     self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1293 gross 442 if self.domain.getDim()==3:
1294 jfenwick 3551 self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1295     self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1296     self.assertEqual(val[0,2],0.0,"wrong value for (0,2)")
1297     self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1298     self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1299     self.assertEqual(val[1,2],0.0,"wrong value for (1,2)")
1300     self.assertEqual(val[2,0],0.0,"wrong value for (2,0)")
1301     self.assertEqual(val[2,1],0.0,"wrong value for (2,1)")
1302     self.assertEqual(val[2,2],1.0,"wrong value for (2,2)")
1303 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1304 gross 442 def test_identityTensor_functionspace(self):
1305     val=identityTensor(d=self.functionspace)
1306 jfenwick 3551 self.assertTrue(isinstance(val,escript.Data),"wrong type of result.")
1307     self.assertEqual(val.getShape(),(self.functionspace.getDim(),self.functionspace.getDim()),"wrong shape.")
1308 gross 442 if self.domain.getDim()==2:
1309 jfenwick 3551 self.assertTrue(Lsup(val[0,0]-1.0)<=self.RES_TOL,"wrong value for (0,0)")
1310     self.assertTrue(Lsup(val[0,1]-0.0)<=self.RES_TOL,"wrong value for (0,1)")
1311     self.assertTrue(Lsup(val[1,0]-0.0)<=self.RES_TOL,"wrong value for (1,0)")
1312     self.assertTrue(Lsup(val[1,1]-1.0)<=self.RES_TOL,"wrong value for (1,1)")
1313 gross 442 if self.domain.getDim()==3:
1314 jfenwick 3551 self.assertTrue(Lsup(val[0,0]-1.0)<=self.RES_TOL,"wrong value for (0,0)")
1315     self.assertTrue(Lsup(val[0,1]-0.0)<=self.RES_TOL,"wrong value for (0,1)")
1316     self.assertTrue(Lsup(val[0,2]-0.0)<=self.RES_TOL,"wrong value for (0,2)")
1317     self.assertTrue(Lsup(val[1,0]-0.0)<=self.RES_TOL,"wrong value for (1,0)")
1318     self.assertTrue(Lsup(val[1,1]-1.0)<=self.RES_TOL,"wrong value for (1,1)")
1319     self.assertTrue(Lsup(val[1,2]-0.0)<=self.RES_TOL,"wrong value for (1,2)")
1320     self.assertTrue(Lsup(val[2,0]-0.0)<=self.RES_TOL,"wrong value for (2,0)")
1321     self.assertTrue(Lsup(val[2,1]-0.0)<=self.RES_TOL,"wrong value for (2,1)")
1322     self.assertTrue(Lsup(val[2,2]-1.0)<=self.RES_TOL,"wrong value for (2,2)")
1323 gross 442 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1324 gross 395 def test_identityTensor4_1(self):
1325     val=identityTensor4(d=1)
1326 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1327     self.assertEqual(val[0,0,0,0],1.0,"wrong value for (0,0,0,0)")
1328 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1329     def test_identityTensor4_2(self):
1330     val=identityTensor4(d=2)
1331 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1332     self.assertEqual(val[0,0,0,0],1.0,"wrong value for (0,0,0,0)")
1333     self.assertEqual(val[0,0,0,1],0.0,"wrong value for (0,0,0,1)")
1334     self.assertEqual(val[0,0,1,0],0.0,"wrong value for (0,0,1,0)")
1335     self.assertEqual(val[0,0,1,1],0.0,"wrong value for (0,0,1,1)")
1336     self.assertEqual(val[0,1,0,0],0.0,"wrong value for (0,1,0,0)")
1337     self.assertEqual(val[0,1,0,1],1.0,"wrong value for (0,1,0,1)")
1338     self.assertEqual(val[0,1,1,0],0.0,"wrong value for (0,1,1,0)")
1339     self.assertEqual(val[0,1,1,1],0.0,"wrong value for (0,1,1,1)")
1340     self.assertEqual(val[1,0,0,0],0.0,"wrong value for (1,0,0,0)")
1341     self.assertEqual(val[1,0,0,1],0.0,"wrong value for (1,0,0,1)")
1342     self.assertEqual(val[1,0,1,0],1.0,"wrong value for (1,0,1,0)")
1343     self.assertEqual(val[1,0,1,1],0.0,"wrong value for (1,0,1,1)")
1344     self.assertEqual(val[1,1,0,0],0.0,"wrong value for (1,1,0,0)")
1345     self.assertEqual(val[1,1,0,1],0.0,"wrong value for (1,1,0,1)")
1346     self.assertEqual(val[1,1,1,0],0.0,"wrong value for (1,1,1,0)")
1347     self.assertEqual(val[1,1,1,1],1.0,"wrong value for (1,1,1,1)")
1348 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1349     def test_identityTensor4_3(self):
1350     val=identityTensor4(d=3)
1351 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1352     self.assertEqual(val[0,0,0,0],1.0,"wrong value for (0,0,0,0)")
1353     self.assertEqual(val[0,0,0,1],0.0,"wrong value for (0,0,0,1)")
1354     self.assertEqual(val[0,0,0,2],0.0,"wrong value for (0,0,0,2)")
1355     self.assertEqual(val[0,0,1,0],0.0,"wrong value for (0,0,1,0)")
1356     self.assertEqual(val[0,0,1,1],0.0,"wrong value for (0,0,1,1)")
1357     self.assertEqual(val[0,0,1,2],0.0,"wrong value for (0,0,1,2)")
1358     self.assertEqual(val[0,0,2,0],0.0,"wrong value for (0,0,2,0)")
1359     self.assertEqual(val[0,0,2,1],0.0,"wrong value for (0,0,2,1)")
1360     self.assertEqual(val[0,0,2,2],0.0,"wrong value for (0,0,2,2)")
1361     self.assertEqual(val[0,1,0,0],0.0,"wrong value for (0,1,0,0)")
1362     self.assertEqual(val[0,1,0,1],1.0,"wrong value for (0,1,0,1)")
1363     self.assertEqual(val[0,1,0,2],0.0,"wrong value for (0,1,0,2)")
1364     self.assertEqual(val[0,1,1,0],0.0,"wrong value for (0,1,1,0)")
1365     self.assertEqual(val[0,1,1,1],0.0,"wrong value for (0,1,1,1)")
1366     self.assertEqual(val[0,1,1,2],0.0,"wrong value for (0,1,1,2)")
1367     self.assertEqual(val[0,1,2,0],0.0,"wrong value for (0,1,2,0)")
1368     self.assertEqual(val[0,1,2,1],0.0,"wrong value for (0,1,2,1)")
1369     self.assertEqual(val[0,1,2,2],0.0,"wrong value for (0,1,2,2)")
1370     self.assertEqual(val[0,2,0,0],0.0,"wrong value for (0,2,0,0)")
1371     self.assertEqual(val[0,2,0,1],0.0,"wrong value for (0,2,0,1)")
1372     self.assertEqual(val[0,2,0,2],1.0,"wrong value for (0,2,0,2)")
1373     self.assertEqual(val[0,2,1,0],0.0,"wrong value for (0,2,1,0)")
1374     self.assertEqual(val[0,2,1,1],0.0,"wrong value for (0,2,1,1)")
1375     self.assertEqual(val[0,2,1,2],0.0,"wrong value for (0,2,1,2)")
1376     self.assertEqual(val[0,2,2,0],0.0,"wrong value for (0,2,2,0)")
1377     self.assertEqual(val[0,2,2,1],0.0,"wrong value for (0,2,2,1)")
1378     self.assertEqual(val[0,2,2,2],0.0,"wrong value for (0,2,2,2)")
1379     self.assertEqual(val[1,0,0,0],0.0,"wrong value for (1,0,0,0)")
1380     self.assertEqual(val[1,0,0,1],0.0,"wrong value for (1,0,0,1)")
1381     self.assertEqual(val[1,0,0,2],0.0,"wrong value for (1,0,0,2)")
1382     self.assertEqual(val[1,0,1,0],1.0,"wrong value for (1,0,1,0)")
1383     self.assertEqual(val[1,0,1,1],0.0,"wrong value for (1,0,1,1)")
1384     self.assertEqual(val[1,0,1,2],0.0,"wrong value for (1,0,1,2)")
1385     self.assertEqual(val[1,0,2,0],0.0,"wrong value for (1,0,2,0)")
1386     self.assertEqual(val[1,0,2,1],0.0,"wrong value for (1,0,2,1)")
1387     self.assertEqual(val[1,0,2,2],0.0,"wrong value for (1,0,2,2)")
1388     self.assertEqual(val[1,1,0,0],0.0,"wrong value for (1,1,0,0)")
1389     self.assertEqual(val[1,1,0,1],0.0,"wrong value for (1,1,0,1)")
1390     self.assertEqual(val[1,1,0,2],0.0,"wrong value for (1,1,0,2)")
1391     self.assertEqual(val[1,1,1,0],0.0,"wrong value for (1,1,1,0)")
1392     self.assertEqual(val[1,1,1,1],1.0,"wrong value for (1,1,1,1)")
1393     self.assertEqual(val[1,1,1,2],0.0,"wrong value for (1,1,1,2)")
1394     self.assertEqual(val[1,1,2,0],0.0,"wrong value for (1,1,2,0)")
1395     self.assertEqual(val[1,1,2,1],0.0,"wrong value for (1,1,2,1)")
1396     self.assertEqual(val[1,1,2,2],0.0,"wrong value for (1,1,2,2)")
1397     self.assertEqual(val[1,2,0,0],0.0,"wrong value for (1,2,0,0)")
1398     self.assertEqual(val[1,2,0,1],0.0,"wrong value for (1,2,0,1)")
1399     self.assertEqual(val[1,2,0,2],0.0,"wrong value for (1,2,0,2)")
1400     self.assertEqual(val[1,2,1,0],0.0,"wrong value for (1,2,1,0)")
1401     self.assertEqual(val[1,2,1,1],0.0,"wrong value for (1,2,1,1)")
1402     self.assertEqual(val[1,2,1,2],1.0,"wrong value for (1,2,1,2)")
1403     self.assertEqual(val[1,2,2,0],0.0,"wrong value for (1,2,2,0)")
1404     self.assertEqual(val[1,2,2,1],0.0,"wrong value for (1,2,2,1)")
1405     self.assertEqual(val[1,2,2,2],0.0,"wrong value for (1,2,2,2)")
1406     self.assertEqual(val[2,0,0,0],0.0,"wrong value for (2,0,0,0)")
1407     self.assertEqual(val[2,0,0,1],0.0,"wrong value for (2,0,0,1)")
1408     self.assertEqual(val[2,0,0,2],0.0,"wrong value for (2,0,0,2)")
1409     self.assertEqual(val[2,0,1,0],0.0,"wrong value for (2,0,1,0)")
1410     self.assertEqual(val[2,0,1,1],0.0,"wrong value for (2,0,1,1)")
1411     self.assertEqual(val[2,0,1,2],0.0,"wrong value for (2,0,1,2)")
1412     self.assertEqual(val[2,0,2,0],1.0,"wrong value for (2,0,2,0)")
1413     self.assertEqual(val[2,0,2,1],0.0,"wrong value for (2,0,2,1)")
1414     self.assertEqual(val[2,0,2,2],0.0,"wrong value for (2,0,2,2)")
1415     self.assertEqual(val[2,1,0,0],0.0,"wrong value for (2,1,0,0)")
1416     self.assertEqual(val[2,1,0,1],0.0,"wrong value for (2,1,0,1)")
1417     self.assertEqual(val[2,1,0,2],0.0,"wrong value for (2,1,0,2)")
1418     self.assertEqual(val[2,1,1,0],0.0,"wrong value for (2,1,1,0)")
1419     self.assertEqual(val[2,1,1,1],0.0,"wrong value for (2,1,1,1)")
1420     self.assertEqual(val[2,1,1,2],0.0,"wrong value for (2,1,1,2)")
1421     self.assertEqual(val[2,1,2,0],0.0,"wrong value for (2,1,2,0)")
1422     self.assertEqual(val[2,1,2,1],1.0,"wrong value for (2,1,2,1)")
1423     self.assertEqual(val[2,1,2,2],0.0,"wrong value for (2,1,2,2)")
1424     self.assertEqual(val[2,2,0,0],0.0,"wrong value for (2,2,0,0)")
1425     self.assertEqual(val[2,2,0,1],0.0,"wrong value for (2,2,0,1)")
1426     self.assertEqual(val[2,2,0,2],0.0,"wrong value for (2,2,0,2)")
1427     self.assertEqual(val[2,2,1,0],0.0,"wrong value for (2,2,1,0)")
1428     self.assertEqual(val[2,2,1,1],0.0,"wrong value for (2,2,1,1)")
1429     self.assertEqual(val[2,2,1,2],0.0,"wrong value for (2,2,1,2)")
1430     self.assertEqual(val[2,2,2,0],0.0,"wrong value for (2,2,2,0)")
1431     self.assertEqual(val[2,2,2,1],0.0,"wrong value for (2,2,2,1)")
1432     self.assertEqual(val[2,2,2,2],1.0,"wrong value for (2,2,2,2)")
1433 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1434     def test_identityTensor4_domain(self):
1435 gross 442 val=identityTensor4(d=self.domain)
1436 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1437     self.assertEqual(val.shape,(self.domain.getDim(),self.domain.getDim(),self.domain.getDim(),self.domain.getDim()),"wrong shape.")
1438 gross 442 if self.domain.getDim()==2:
1439 jfenwick 3551 self.assertEqual(val[0,0,0,0],1.0,"wrong value for (0,0,0,0)")
1440     self.assertEqual(val[0,0,0,1],0.0,"wrong value for (0,0,0,1)")
1441     self.assertEqual(val[0,0,1,0],0.0,"wrong value for (0,0,1,0)")
1442     self.assertEqual(val[0,0,1,1],0.0,"wrong value for (0,0,1,1)")
1443     self.assertEqual(val[0,1,0,0],0.0,"wrong value for (0,1,0,0)")
1444     self.assertEqual(val[0,1,0,1],1.0,"wrong value for (0,1,0,1)")
1445     self.assertEqual(val[0,1,1,0],0.0,"wrong value for (0,1,1,0)")
1446     self.assertEqual(val[0,1,1,1],0.0,"wrong value for (0,1,1,1)")
1447     self.assertEqual(val[1,0,0,0],0.0,"wrong value for (1,0,0,0)")
1448     self.assertEqual(val[1,0,0,1],0.0,"wrong value for (1,0,0,1)")
1449     self.assertEqual(val[1,0,1,0],1.0,"wrong value for (1,0,1,0)")
1450     self.assertEqual(val[1,0,1,1],0.0,"wrong value for (1,0,1,1)")
1451     self.assertEqual(val[1,1,0,0],0.0,"wrong value for (1,1,0,0)")
1452     self.assertEqual(val[1,1,0,1],0.0,"wrong value for (1,1,0,1)")
1453     self.assertEqual(val[1,1,1,0],0.0,"wrong value for (1,1,1,0)")
1454     self.assertEqual(val[1,1,1,1],1.0,"wrong value for (1,1,1,1)")
1455 gross 442 if self.domain.getDim()==3:
1456 jfenwick 3551 self.assertEqual(val[0,0,0,0],1.0,"wrong value for (0,0,0,0)")
1457     self.assertEqual(val[0,0,0,1],0.0,"wrong value for (0,0,0,1)")
1458     self.assertEqual(val[0,0,0,2],0.0,"wrong value for (0,0,0,2)")
1459     self.assertEqual(val[0,0,1,0],0.0,"wrong value for (0,0,1,0)")
1460     self.assertEqual(val[0,0,1,1],0.0,"wrong value for (0,0,1,1)")
1461     self.assertEqual(val[0,0,1,2],0.0,"wrong value for (0,0,1,2)")
1462     self.assertEqual(val[0,0,2,0],0.0,"wrong value for (0,0,2,0)")
1463     self.assertEqual(val[0,0,2,1],0.0,"wrong value for (0,0,2,1)")
1464     self.assertEqual(val[0,0,2,2],0.0,"wrong value for (0,0,2,2)")
1465     self.assertEqual(val[0,1,0,0],0.0,"wrong value for (0,1,0,0)")
1466     self.assertEqual(val[0,1,0,1],1.0,"wrong value for (0,1,0,1)")
1467     self.assertEqual(val[0,1,0,2],0.0,"wrong value for (0,1,0,2)")
1468     self.assertEqual(val[0,1,1,0],0.0,"wrong value for (0,1,1,0)")
1469     self.assertEqual(val[0,1,1,1],0.0,"wrong value for (0,1,1,1)")
1470     self.assertEqual(val[0,1,1,2],0.0,"wrong value for (0,1,1,2)")
1471     self.assertEqual(val[0,1,2,0],0.0,"wrong value for (0,1,2,0)")
1472     self.assertEqual(val[0,1,2,1],0.0,"wrong value for (0,1,2,1)")
1473     self.assertEqual(val[0,1,2,2],0.0,"wrong value for (0,1,2,2)")
1474     self.assertEqual(val[0,2,0,0],0.0,"wrong value for (0,2,0,0)")
1475     self.assertEqual(val[0,2,0,1],0.0,"wrong value for (0,2,0,1)")
1476     self.assertEqual(val[0,2,0,2],1.0,"wrong value for (0,2,0,2)")
1477     self.assertEqual(val[0,2,1,0],0.0,"wrong value for (0,2,1,0)")
1478     self.assertEqual(val[0,2,1,1],0.0,"wrong value for (0,2,1,1)")
1479     self.assertEqual(val[0,2,1,2],0.0,"wrong value for (0,2,1,2)")
1480     self.assertEqual(val[0,2,2,0],0.0,"wrong value for (0,2,2,0)")
1481     self.assertEqual(val[0,2,2,1],0.0,"wrong value for (0,2,2,1)")
1482     self.assertEqual(val[0,2,2,2],0.0,"wrong value for (0,2,2,2)")
1483     self.assertEqual(val[1,0,0,0],0.0,"wrong value for (1,0,0,0)")
1484     self.assertEqual(val[1,0,0,1],0.0,"wrong value for (1,0,0,1)")
1485     self.assertEqual(val[1,0,0,2],0.0,"wrong value for (1,0,0,2)")
1486     self.assertEqual(val[1,0,1,0],1.0,"wrong value for (1,0,1,0)")
1487     self.assertEqual(val[1,0,1,1],0.0,"wrong value for (1,0,1,1)")
1488     self.assertEqual(val[1,0,1,2],0.0,"wrong value for (1,0,1,2)")
1489     self.assertEqual(val[1,0,2,0],0.0,"wrong value for (1,0,2,0)")
1490     self.assertEqual(val[1,0,2,1],0.0,"wrong value for (1,0,2,1)")
1491     self.assertEqual(val[1,0,2,2],0.0,"wrong value for (1,0,2,2)")
1492     self.assertEqual(val[1,1,0,0],0.0,"wrong value for (1,1,0,0)")
1493     self.assertEqual(val[1,1,0,1],0.0,"wrong value for (1,1,0,1)")
1494     self.assertEqual(val[1,1,0,2],0.0,"wrong value for (1,1,0,2)")
1495     self.assertEqual(val[1,1,1,0],0.0,"wrong value for (1,1,1,0)")
1496     self.assertEqual(val[1,1,1,1],1.0,"wrong value for (1,1,1,1)")
1497     self.assertEqual(val[1,1,1,2],0.0,"wrong value for (1,1,1,2)")
1498     self.assertEqual(val[1,1,2,0],0.0,"wrong value for (1,1,2,0)")
1499     self.assertEqual(val[1,1,2,1],0.0,"wrong value for (1,1,2,1)")
1500     self.assertEqual(val[1,1,2,2],0.0,"wrong value for (1,1,2,2)")
1501     self.assertEqual(val[1,2,0,0],0.0,"wrong value for (1,2,0,0)")
1502     self.assertEqual(val[1,2,0,1],0.0,"wrong value for (1,2,0,1)")
1503     self.assertEqual(val[1,2,0,2],0.0,"wrong value for (1,2,0,2)")
1504     self.assertEqual(val[1,2,1,0],0.0,"wrong value for (1,2,1,0)")
1505     self.assertEqual(val[1,2,1,1],0.0,"wrong value for (1,2,1,1)")
1506     self.assertEqual(val[1,2,1,2],1.0,"wrong value for (1,2,1,2)")
1507     self.assertEqual(val[1,2,2,0],0.0,"wrong value for (1,2,2,0)")
1508     self.assertEqual(val[1,2,2,1],0.0,"wrong value for (1,2,2,1)")
1509     self.assertEqual(val[1,2,2,2],0.0,"wrong value for (1,2,2,2)")
1510     self.assertEqual(val[2,0,0,0],0.0,"wrong value for (2,0,0,0)")
1511     self.assertEqual(val[2,0,0,1],0.0,"wrong value for (2,0,0,1)")
1512     self.assertEqual(val[2,0,0,2],0.0,"wrong value for (2,0,0,2)")
1513     self.assertEqual(val[2,0,1,0],0.0,"wrong value for (2,0,1,0)")
1514     self.assertEqual(val[2,0,1,1],0.0,"wrong value for (2,0,1,1)")
1515     self.assertEqual(val[2,0,1,2],0.0,"wrong value for (2,0,1,2)")
1516     self.assertEqual(val[2,0,2,0],1.0,"wrong value for (2,0,2,0)")
1517     self.assertEqual(val[2,0,2,1],0.0,"wrong value for (2,0,2,1)")
1518     self.assertEqual(val[2,0,2,2],0.0,"wrong value for (2,0,2,2)")
1519     self.assertEqual(val[2,1,0,0],0.0,"wrong value for (2,1,0,0)")
1520     self.assertEqual(val[2,1,0,1],0.0,"wrong value for (2,1,0,1)")
1521     self.assertEqual(val[2,1,0,2],0.0,"wrong value for (2,1,0,2)")
1522     self.assertEqual(val[2,1,1,0],0.0,