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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6470 - (show annotations)
Wed Jan 18 05:37:05 2017 UTC (22 months, 3 weeks ago) by jfenwick
File MIME type: text/x-python
File size: 173248 byte(s)
Initial tests binary operation

1
2 ##############################################################################
3 #
4 # Copyright (c) 2003-2016 by The University of Queensland
5 # http://www.uq.edu.au
6 #
7 # Primary Business: Queensland, Australia
8 # Licensed under the Apache License, version 2.0
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 # Development 2012-2013 by School of Earth Sciences
13 # Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 #
15 ##############################################################################
16
17 from __future__ import print_function, division
18
19 __copyright__="""Copyright (c) 2003-2016 by The University of Queensland
20 http://www.uq.edu.au
21 Primary Business: Queensland, Australia"""
22 __license__="""Licensed under the Apache License, version 2.0
23 http://www.apache.org/licenses/LICENSE-2.0"""
24 __url__="https://launchpad.net/escript-finley"
25
26 """
27 basic tests for util.py
28
29 :remark: use see `test_util`
30
31 :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 """
38
39 __author__="Lutz Gross, l.gross@uq.edu.au"
40
41 import esys.escriptcore.utestselect as unittest
42 import numpy
43 import os
44 from esys.escript import *
45 from esys import escript
46
47 try:
48 ESCRIPT_WORKDIR=os.environ['ESCRIPT_WORKDIR']
49 except KeyError:
50 ESCRIPT_WORKDIR='.'
51
52
53 class Test_util_values(unittest.TestCase):
54 """
55 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
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
80 RES_TOL=1.e-7 # RES_TOLerance to compare results
81 DIFF_TOL=1.e-7 # RES_TOLerance to derivatices
82
83 def makeTagged(self, fs, v1, v2):
84 """
85 Helper routine which makes a DataTagged containing the two values
86 (v1 as default and v2 as tag 1).
87 """
88 d=Data(v1, fs)
89 d.setTaggedValue(1, v2)
90 return d
91
92 def get_scalar_inputL(self, cplx):
93 if not cplx:
94 v1=33489.58300735649
95 else:
96 v1=(9824.950442887115-46215.48181304759j)
97 return (v1,v1)
98
99 def get_python_inputL(self, rank, cplx):
100 if cplx:
101 if rank==0:
102 return (-3960.4642291825876+70893.2937559552j,)
103 if rank==1:
104 return ((59731.62346830329-82535.93558513945j), (97413.28611726397-71163.21858234056j))
105 if rank==2:
106 return (((22662.9306818+10450.1928396j), (-5876.588037489+31316.069231294925j)),
107 ((-48775.88574400305+21535.3746218j), (36479.6003269178-39287.306108j)))
108 if rank==3:
109 return ((((-50847.97960-9062.27j), (-63529.6088+55171.4663j), (215.4-10185.37j)),
110 ((40080.58380528418-34586.4289827135j), (-27276.009276950237-61855.16687539085j), (-34721.25780748475+82851.2788274762j)),
111 ((43010.5425+18456.0305j), (-8655.17674+4404.157j), (23658.850518231033-20372.09007648639j))),
112 (((43347.843141+58591.16j), (25836.3146-5995.971j), (-28969.5+31065.035j)),
113 ((-31942.46+61141.334j), (-84655.794+49812.188j), (63001.6-44321.65j)),
114 ((-19368.317+29114.8j), (-84938.09+83917.34j), (30356.3+48962.755j))),
115 (((-50756.5-28925.102j), (3348.16+79354.6j), (30159.52+6881.75j)),
116 ((59025.953-39.831j), (-237.942-53.93j), (9308.8+36247.003775959376j)),
117 ((12068.153033533716-68009.47095735556j), (7693.602018284684-23713.22567007532j), (44993.89718529736-3807.1609666917066j))))
118 if rank==4:
119 return (((((36743.82175242095+26778.737326529765j), (-29754.182129388544+25393.077634889414j), (-7835.209676340906+49819.26015705921j), (33964.789417447566-32778.45444590585j)),
120 ((-44579.370809357875-68703.24361188836j), (-149.28320431357133-64698.83715098185j), (38295.13314270778+58425.02740389345j), (-59088.20438563965-81586.99049191552j)),
121 ((22892.612062358283-24715.70868029048j), (13367.867311961876+20860.578306432217j), (-47859.40778589482+71392.8351064374j), (-2304.287041885458+49294.11306179231j)),
122 ((-62640.841478880255+36871.688232087705j), (10655.923749286507-23128.560897714342j), (-4131.801825297647+4443.2840182007785j), (-27903.670838787744-3117.482981970883j))),
123 (((57034.38962108706+38044.26403584313j), (-4462.844355084104+18211.587917962242j), (4313.178312608696-12868.233657189892j), (46374.72869675713-11812.40480331378j)),
124 ((322.189068738895+47179.67709271595j), (72322.13544947651-3662.5467369358375j), (-9231.467186395414+76230.40517770775j), (-41704.75682501451+32558.11893996234j)),
125 ((79487.23328596324-7366.42862253316j), (10481.924314965669-15120.283604848068j), (26960.83136881994-41071.566704782505j), (-24115.39190283895-7711.336401151741j)),
126 ((22474.95612418659+15623.165463453799j), (25929.087385707462+38175.58304877044j), (-8177.232611463696+21287.640323926986j), (34229.957465479616+34000.54107560321j))),
127 (((26772.169008338446-23226.644157592586j), (44355.462946645705+38435.617150983846j), (82270.23681598579+57228.460214922394j), (-61649.67759149854-29496.646828970726j)),
128 ((33208.12540969731-42543.11381431012j), (-37368.19634070844+36983.91078521421j), (-53479.67762639474+69192.57351520905j), (-16987.119998626833-24907.621827720854j)),
129 ((58265.74226484515+21428.598358311836j), (-25451.773790957814+34641.52936103524j), (49737.44278424142+46668.70872917027j), (-19763.07777821306-55742.60412333406j)),
130 ((39696.62704009203+11792.880723760507j), (45040.78931593459+1353.15524889082j), (38919.41458390256+5018.601358823813j), (24700.01773615746+18638.158415414437j))),
131 (((-27357.697301503198+67993.98776577965j), (43358.65691551873-60981.94828910699j), (-36961.845280498295+73544.32798356535j), (-7005.460088561973+56718.32085849555j)),
132 ((-45794.83454061549-24789.54243897248j), (-35553.771747041705+281.20812003471656j), (741.8214864204201-48926.27892674535j), (15258.748935604614+5750.3134710095765j)),
133 ((13578.214948777008+49023.37779316875j), (-52997.87500887418-28291.632747669166j), (34523.01328904568+70373.31760549065j), (-8549.195292188699+38710.00933198735j)),
134 ((-8724.746595711767+39671.57400059246j), (54220.76682697828+52787.45089736888j), (-2929.7928072663053-14645.947666259133j), (6967.3562262647465+20575.621108094565j)))),
135 ((((41255.3128726088-4735.07598620026j), (17330.015550087788+39190.403383224395j), (-2409.2939922655205+33755.22845153985j), (-84016.4244828014-28839.63999275923j)),
136 ((-7567.298951515288+24481.103774662595j), (-25149.082523503632-8583.669927251554j), (47788.23750305794+37492.05579481191j), (-19575.167208193656+21113.148224316566j)),
137 ((-8076.55304084401+75096.61990916729j), (42138.65038370111-27451.77036345769j), (17599.47893995483-6322.617589222951j), (43000.60101023788+54422.76834543564j)),
138 ((-24961.480874041634-2122.019874702237j), (6425.889470030932+5622.557974648473j), (-65254.39721134174+59644.00375157643j), (-26617.634404672892-53495.819302484895j))),
139 (((-54060.398876227686+55992.77686553825j), (-29817.626727209106-29704.79980981775j), (-6767.670138070098+10024.257522469488j), (-30133.80524111932+40328.89815642918j)),
140 ((50000.78584499907-5894.192721755971j), (-3021.8049413580593-70247.81603731646j), (695.299152508218+58895.55560166443j), (-16680.2648353032-87022.82137596376j)),
141 ((14249.594063942364-1274.074993916045j), (12234.307608613788-18357.139710977237j), (32290.96562094186+38793.36224883628j), (67656.21258170376-9760.573070193976j)),
142 ((-45601.023706816115-74319.21757213926j), (55876.22452146437-61120.98256716965j), (58027.41230717529+10786.688485100865j), (-3495.6762613661413-46756.553429873304j))),
143 (((92894.48804954227+23902.59394418483j), (1353.988548653011-92567.68243719656j), (65397.064463537616+10248.124624835778j), (567.8160836168245+78786.59184031615j)),
144 ((-40282.49291521364+79825.32258981027j), (-40310.88688269715+455.4179428850184j), (-11166.391823961778+2764.918200738073j), (78697.6368921528-685.3372273494751j)),
145 ((70892.98538412598+78843.94735644812j), (-64882.52692417733+80256.3932249126j), (26045.841803168907-12175.162753092736j), (-58159.5440761434-67887.15729778618j)),
146 ((8775.14598500292+16795.25423101084j), (13155.934674011907+16737.126752117358j), (15975.852541323125+14513.776915618466j), (-25215.109458495746+8530.276446405784j))),
147 (((25795.767870170166-31056.851297134257j), (4037.894742402088-83.2035600123636j), (-19413.455650262404+40693.39115961014j), (-63145.75424957367+34735.00168222326j)),
148 ((17181.9690394505+18815.796074907106j), (45370.782381827026+55332.61058358025j), (-15112.046450780603-88000.14177105221j), (81609.38175982882+21862.010369853655j)),
149 ((-55560.45495276697-8487.570486260593j), (-1240.3046453718998-36806.93746782728j), (2314.7751094353007+66709.2996375249j), (73913.798692593+17715.330241595133j)),
150 ((-6756.64963479065-17680.06798381319j), (-68433.87475450675-1521.61274877697j), (-38429.70821819296-59684.70774465629j), (679.6723316871648-5141.593014362268j)))),
151 ((((6009.97586310716+60604.30942478338j), (32396.109723949165-43790.651419414105j), (28779.550340574773+51904.28569017858j), (22898.47954312162+24374.281930383077j)),
152 ((43337.67939273335-5975.004215923647j), (-20668.774830910013-76079.20355770885j), (28645.123677151292+25672.909247014104j), (-31717.682104715685+9732.221717787586j)),
153 ((53661.13842896042+72923.84155787138j), (35385.072072520015-6307.198139944798j), (30479.544507534592+62234.1254985712j), (-1034.7905621764367+40286.709890159545j)),
154 ((-81367.55312016135+16928.505901155673j), (-7815.888755622378+6045.680730129257j), (23493.410721616994+56525.86301109548j), (64379.29795689413-41596.85817228346j))),
155 (((10077.706189869234-14023.344225890105j), (9787.45494885469+1980.526605239269j), (-41789.42734084199+33109.62355852481j), (77722.47714091674+16230.914008263571j)),
156 ((33929.99686388744+69324.24249861641j), (-42944.721176775936+77239.49498876408j), (-24531.218551429585+33511.72101875048j), (38167.50870231599+48640.295148756864j)),
157 ((5153.059156082629+82411.43319343394j), (46237.63154724835-24482.044081531683j), (-42350.512586094905+21364.573202395462j), (27884.705448024964+27406.374083228744j)),
158 ((26735.822927676723-16229.136581069019j), (-20377.70277018177-48828.24171348816j), (-31499.21640336576-14810.9243228345j), (-7904.957576446148-20229.149437926535j))),
159 (((16522.705470639165+17310.831386237332j), (-76148.34984139015+80969.93773509384j), (-24811.00749069672+38047.29320608019j), (20992.172136102876-22605.533994627098j)),
160 ((-20970.94805191878-11158.194764479718j), (-24776.365668172788+15335.11508002579j), (31475.965557547286+42101.17185492054j), (-5067.057332858472-32895.81793448307j)),
161 ((2682.2679111504112+39461.2760464704j), (8347.197026209295+5913.884037792421j), (-33487.63388762134-63339.09288353257j), (-57157.881248657024+1556.61791639906j)),
162 ((-41068.04079080766+48584.07702236999j), (8498.148930898213+14312.48564445498j), (-21316.05107180962+87054.88334056246j), (-21471.236761054563-59830.259831579846j))),
163 (((29431.72773241329-33178.12936911729j), (26409.71652118041+55871.26981512072j), (66462.49459072504+84224.15533504078j), (54448.348792259174+24319.32902355393j)),
164 ((-71328.38862684023+23367.89957869296j), (-59401.71170696309+49485.585597715195j), (41883.2210796735+19719.46171899562j), (-18795.333157237168-68982.70021560306j)),
165 ((59112.62708481629-45457.26410539314j), (-88790.25871362776-25685.393578202435j), (23696.552787236098+41921.596338817966j), (55010.09931039718-93443.28701025742j)),
166 ((39099.27462555075-21859.303492325664j), (-13175.71402014888+48223.91127425416j), (-5568.289447947842-299.0850724438933j), (-20467.28086020409+30095.8347308894j)))),
167 ((((-16018.868474730582-47768.31986595277j), (51712.37041771119-18503.457760090154j), (-49051.6111606494+23687.829560421436j), (-71984.9830420537+396.65467472762975j)),
168 ((10108.4516848598+51857.057322104636j), (-7216.241612916012+72110.85192662141j), (54626.45574269543-59774.72883503144j), (-657.6522009949113+60897.80850184188j)),
169 ((-7989.0171800768585-89431.37235259652j), (-24705.702245950946+70622.38482297733j), (-63459.904012077815-42658.85544672633j), (50226.10296539047+34122.54286740055j)),
170 ((41218.241998490725+14373.480195603668j), (-54370.32919269195+6808.202490824406j), (-1527.4828551954124+54636.12386175628j), (14472.837501920381-52333.2803360176j))),
171 (((-2746.8539660817187-74513.82700384625j), (-61015.83534421826+53680.73473922199j), (-79322.89757472202-30783.74464730559j), (-46747.1238366321-74773.91885253192j)),
172 ((38500.41669416314-55405.667973400086j), (1396.4878373664105+24775.37482803031j), (58020.02299122539+48560.59423440633j), (-29555.466456927898-2523.0682893230987j)),
173 ((-34617.908388179705-12964.332502930381j), (-45031.80883921236+65602.1489634705j), (-25153.44844444198-12070.474688363538j), (-21543.782061126898-86119.31236007596j)),
174 ((71651.55622950022+37553.55829666175j), (73215.11980883317-718.055454765301j), (7065.864625805567-92990.91593148846j), (11751.07053047308-7707.306990859142j))),
175 (((-43076.79837010652+24177.23355451846j), (6793.467392677732-20449.573606641366j), (-71013.01101746038-6225.881152518472j), (74055.17870813374+66606.15686348274j)),
176 ((11557.138464109157+5388.5729086161155j), (36732.06100793248-37022.585715349574j), (2921.611354480643+55496.19455947708j), (55058.90849766818+18274.262129668554j)),
177 ((-58815.802612553605-3016.8034868425602j), (11211.939776371626+85380.70520152281j), (5184.476190878297-46247.039507761j), (66267.98054810712-61671.71978896645j)),
178 ((-5378.665820848371+9328.328146237982j), (43895.1264174895-68770.39938502887j), (-17511.997277418195+58343.13845945775j), (-85449.25399769237+5421.878678659821j))),
179 (((39759.129208538325-36375.49825029998j), (14116.074449609747-3690.404237582101j), (726.610813691339+20601.83416877652j), (-39703.3656455713+3717.592156691331j)),
180 ((59401.5216214189+24249.24110262998j), (32483.925202512517+12478.691995073255j), (-32680.63271733308-27669.460617493503j), (-49228.06429579756+18669.428245068033j)),
181 ((44330.3653675318-76.05447174097935j), (-77173.70951748395-14072.79466329544j), (44365.91092729417+30775.448092456412j), (-27126.74998375852-42673.613992010614j)),
182 ((69065.27619440478+6707.326801963689j), (30689.082128804977-86800.51053515819j), (49475.52450098609+20399.323850453336j), (-29667.120261194417+8908.992755905914j)))))
183 else:
184 if rank==0:
185 return (1968.4370221151426,)
186 if rank==1:
187 return (-24899.54037082102, -25.31549006801)
188 if rank==2:
189 return ((1830.692020877672, 4256.807988523855), (31330.447580824955, 30088.386511638193))
190 if rank==3:
191 return (((22464.14939770715, 9326.07497133658, -58843.28039835674),
192 (-39132.51601559524, -28984.021248456513, 87606.99636934511),
193 (82483.31416277925, 58484.471708777906, 28659.10377643413)),
194 ((-48055.05693146407, 36954.49346593733, 25658.428739633804),
195 (-45374.680239837886, -11967.766802782062, 40707.17918100887),
196 (-9272.611657965084, 95545.34560025277, 36552.65523613798)),
197 ((-91272.06575583504, 61258.36210240262, 23700.008344466856),
198 (-76559.99183386622, 74506.2742834793, -40042.39145376187),
199 (54893.50655552275, -60408.00584363263, -68208.21135366432)))
200 if rank==4:
201 return ((((-2613.5684369694354, 384.9724701708765, 17359.719572324335, -63393.27571171061),
202 (41041.42067423142, -14993.16104673734, -27399.273319594344, 60051.2377656026),
203 (18566.32422588553, -73825.83739655794, 95319.0187027347, -27646.03157540709),
204 (-88007.8178172775, 60759.47561504975, 31822.15287970184, -38852.10105560179)),
205 ((-89386.29724076603, 79511.70453673883, 1325.344653112319, 14210.631402891566),
206 (9099.55295712997, 30612.395205911307, -5512.258312859951, -43371.59702594321),
207 (24961.325742358764, 6843.62962861413, -43588.35638871549, 37139.61080792606),
208 (-59901.00300911518, -59802.81275754453, -26119.701955513825, 70973.81339014533)),
209 ((10824.815145545523, -37682.56858486531, -14732.374901197414, -14286.141738580205),
210 (-43004.59056324265, 59441.985441533616, -83687.96499450768, 4325.869356595635),
211 (-56783.42265829212, -28959.61168144866, -83740.97480554663, -10729.510064491638),
212 (-38480.61835393819, -50636.84578373406, -3588.0738023085723, 56239.74544740876)),
213 ((18228.900850710852, -16632.129655349723, 8015.163471499967, -4521.799739700364),
214 (-51505.380752985875, -1524.7016267364233, -19342.421346891773, -48490.57412835015),
215 (-73047.79149393305, -35239.98425352734, -35458.1734620065, 55659.41536985519),
216 (-13074.184715655007, 6436.319756047014, -28485.17418228225, -11128.300314215841))),
217 (((321.6371242800669, 35572.05942103493, 9515.23626081155, -4433.077669837556),
218 (26761.084128710136, 10867.52013173081, -19183.162620251198, -68559.41235027292),
219 (11484.667574519088, 51828.050682516754, 38005.19565254123, -76175.23771370867),
220 (-5227.790707720851, 71440.84429737684, -50336.09378326664, 37678.70778115371)),
221 ((-45566.74581644684, 5908.975208284799, 22576.958775978783, -50020.73251106653),
222 (-26017.058082686533, -25299.281527364627, 40976.696154446676, -13431.16881318092),
223 (-46649.16989082289, -65794.20117285698, 64119.987425361716, 5497.440022742972),
224 (-2203.2985446707025, -57513.79981817989, 41574.749087273776, 48387.40101623114)),
225 ((-18416.741032524515, -47640.69430896508, 19679.029797917596, -34810.30464977612),
226 (62831.92844082225, 27725.457434774376, -3134.438446956716, 49315.595365086476),
227 (-73623.94099730175, 20978.640264794405, -5573.772319421056, 36086.56272512534),
228 (28660.57533284233, -58241.55583429358, -51661.45261125069, -50693.33103010448)),
229 ((56426.23453986164, 78359.73594286482, -38576.297999959155, 8913.910887926046),
230 (-88189.29548286308, 2602.1208204264694, -15718.494307329529, 39115.51872697051),
231 (50134.74938380022, -42828.424427019796, 39528.932684095016, 71074.105860494),
232 (10360.78422517216, 3628.4946464838577, 866.6535588603292, 31553.01858562138))),
233 (((52390.293064785874, -12243.173190398476, 12973.542140497811, 24679.210914480092),
234 (-39068.25465569209, 11375.555598436607, -11948.963084895935, 23180.6696549638),
235 (7750.742802840003, -4544.655806011273, 17257.229884485423, -38718.29755209083),
236 (-54962.39017442457, -32692.842165301, 79228.7545707964, -46958.08883925094)),
237 ((58808.04021951867, 31679.09607989699, 60465.22396617634, 3778.4799478359637),
238 (17712.329884018807, 17874.74312645469, 14954.738052270157, -44753.01307496137),
239 (24417.93508883397, -25931.24652138863, -27186.302587945494, 37605.82669369904),
240 (-20116.370032880397, 22395.271847421376, 39918.504300252374, 43365.55907616498)),
241 ((-29680.436323581554, -7156.784950690315, -27141.447127045933, 65196.42918411147),
242 (-10851.323062587486, -12918.348059911383, -61892.308397834146, -49367.20478221224),
243 (-12048.985149625369, 61619.01673500164, 19594.218775417554, 52093.668037218595),
244 (-38465.24637072596, -9188.19710817252, -7828.463839086282, -62406.93767988804)),
245 ((-35787.91825329978, 23117.81737012358, -49967.17854684144, -9030.162340133553),
246 (-31476.492123520133, -42646.47087585365, -80893.4161545868, -38123.68731593444),
247 (23794.505773755358, -1648.5505688887642, -18076.67754352292, -50552.198666715994),
248 (31218.595116869503, 36051.76246348336, -23827.05367940539, 6983.787679924746))),
249 (((-22717.871470141312, 41000.10860057993, 57170.77347009425, -45870.224065572766),
250 (-75749.5782286584, 82016.05469083885, 15364.324776823589, -34421.772637849994),
251 (56091.35037369725, 69020.64428824343, -54982.82912975482, 26461.710610700044),
252 (-6865.449808598962, 1458.33269652327, 19976.42644646119, 71857.51352483299)),
253 ((-19816.540187252496, 8015.999325965924, 73384.47295519276, -29811.76619356322),
254 (-13116.527286368713, -76148.43320182734, 694.6129571919591, -51487.98727764331),
255 (-18216.321286892955, 19089.44846330423, -49851.57024753545, -23061.547216296094),
256 (4069.367521493099, 4460.02510964268, -70628.47512058845, -5320.222269188191)),
257 ((55551.601997272795, 15131.970379855833, 9132.149357120768, -1748.749782567771),
258 (25571.39049857318, -22269.3336119335, -40013.90106400979, -41645.300687720875),
259 (19942.423484201456, -77721.3403094917, -49049.37211887518, -42125.028417728725),
260 (-20331.591530993654, 18849.729202127564, -11172.361078239031, -42378.721186597744)),
261 ((-28162.219784186906, 27005.38411136302, 28047.626970074954, -48907.05914121462),
262 (21561.00249540838, 16819.379648924267, 21373.309752767862, 81217.52472263864),
263 (14530.50392089595, -38878.60235910026, 18507.98920090188, 38187.90762089445),
264 (24234.820876412356, 50390.96325142998, 5976.493423496679, -16545.42618485792))))
265
266 def get_scalar_input1(self, cplx):
267 if not cplx:
268 v1=0.6081355033581688
269 else:
270 v1=(0.27562178672620385+0.42446484939332796j)
271 return (v1,v1)
272
273 def get_scalar_input2(self, cplx):
274 if not cplx:
275 v2=0.5327268994219874
276 else:
277 v2=(0.49976275640416334+0.4141087840210876j)
278 return (v2,v2)
279
280 def get_scalar_input3(self, cplx):
281 if not cplx:
282 v3=0.4903827487969067
283 else:
284 v3=(0.4130410618402195+0.7195601418761082j)
285 return (v3,v3)
286
287 def get_scalar_input4(self, cplx):
288 if not cplx:
289 v3=-0.4555987934301202
290 else:
291 v3=(-0.2562657772006671-0.09989064526858904j)
292 return (v3,v3)
293
294 def get_python_input1(self, rank, cplx):
295 if cplx:
296 if rank==0:
297 return (-0.8493106430566671+0.5498588650604705j,)
298 elif rank==1:
299 return (0.5213538174366878+0.45097055421243537j, 0.25896216831911634-0.5966874048733529j)
300 elif rank==2:
301 return (((-0.20984377987310687+0.024810300993445944j), (0.024805532005481523+0.015098314700385806j)),
302 ((0.2292639954026584-0.7100972341857507j), (0.08682454615283863+0.12332238221542291j)))
303 elif rank==3:
304 return ((((-0.6550500854131598-0.2127087989155373j), (-0.017627543683440106-0.3665841375380333j), (0.12492952051741912+0.05374046981620606j)),
305 ((-0.11197479851035519-0.5608269924316476j), (-0.5419470859968003+0.07356518546227997j), (-0.42635110929148823+0.47738396333288513j)),
306 ((-0.16556333483163588+0.009959138144123747j), (-0.17095759700320223+0.19563542216810015j), (0.38543550056193654-0.7475542165987907j))),
307 (((-0.773039591137402+0.001304882415888442j), (0.005692414753365238+0.7073228171031704j), (0.16149889599978962-0.5779399189029897j)),
308 ((-0.39240472327059983+0.5661946692113213j), (0.15619153376084327-0.2043397442335695j), (0.12989734566943012-0.6797045089189742j)),
309 ((-0.2953545934396431+0.00897241164565632j), (0.2424492369208724-0.3012099081809274j), (-0.5052331641775911-0.7560269073586534j))),
310 (((-0.4330063069118393+0.4662418513842146j), (0.14640515390237896+0.21280275920042335j), (-0.6848374766215319+0.688509731931129j)),
311 ((-0.7009542857194253+0.5090290863675988j), (-0.08777137326709294-0.0642088074588476j), (-0.22469168662839534-0.20497222057853204j)),
312 ((-0.004895060324627054-0.0007149461427655712j), (0.5733987472263198-0.020876347517763794j), (0.14677839835678597-0.33748939337229644j))))
313 elif rank==4:
314 return (((((0.790344350-0.675690862j), (-0.33969014424346+0.004667354999j), (-0.353898037-0.23103247j), (-0.173453149+0.350472j)),
315 ((0.262318036+0.493920836j), (0.122221063-0.2126j), (-0.2002867+0.62847794j), (0.2585201923791-0.1055537993243j)),
316 ((0.1024287918-0.07259437049j), (0.3338564+0.44847000j), (0.0433384-0.2616078j), (-0.1717597+0.2503709670077j)),
317 ((-0.768778331-0.076403010j), (0.251991719+0.62985777j), (0.4514933+0.47696252j), (-0.0351486+0.023037350246j))),
318 (((-0.4863645-0.24921801802j), (-0.023444472-0.5599386j), (-0.56592+0.4275706j), (0.41222370286-0.34867238925j)),
319 ((-0.5252590+0.04977251205j), (-0.33737953+0.27293775j), (0.66428+0.87048705j), (0.0672260574-0.416242856449j)),
320 ((0.148783460-0.4520517585j), (-0.41537536+0.16140391j), (0.6278127+0.263838j), (-0.07760387-0.1831155602152j)),
321 ((0.0470026875+0.481795665j), (0.0215979296-0.081945318j), (0.7913869-0.0861j), (0.39466-0.36695690929153635j))),
322 (((-0.143371038+0.36692459j), (-0.05936024660+0.57744203j), (0.35210125-0.3062606j), (0.09250628940+0.2787772j)),
323 ((0.5220814-0.12741648j), (-0.054402209613+0.8726141525j), (0.19115503+0.059924j), (0.34340959513-0.13436584j)),
324 ((-0.854710-0.3580477j), (-0.45614757+0.0726810109j), (-0.11809521670+0.15075834042j), (-0.028270996-0.13039829j)),
325 ((-0.4935554755+0.6616606j), (-0.77712599-0.292285j), (-0.29938802+0.958714551j), (0.1306040901396+0.5467211724j))),
326 (((-0.490711642822499-0.0679784225903799j), (-0.028147241164195536-0.03995809530085381j), (-0.28811330815221536-0.6815443637070895j), (0.07421744086779403+0.7402073156785812j)),
327 ((-0.20556698745139912+0.15621646747170792j), (0.09192542596753261+0.12253579257228409j), (-0.3264483145179087-0.946630282004219j), (0.224192041112648-0.90380956121387j)),
328 ((-0.23224656797256493-0.6768140280012414j), (0.2451768408209073+0.17488492564153224j), (-0.6851697787753819-0.08406614036650228j), (0.20088414272093424+0.1669900873662492j)),
329 ((-0.36057308512412345+0.4226878583624143j), (0.4490488492756204+0.11240390126422484j), (0.03234540063577107+0.5512325765639803j), (-0.5756238638317961-0.46042879607009257j)))),
330 ((((0.24124399378525585-0.8745635773731907j), (-0.19374525735285986+0.5380787997061398j), (-0.4489085299026162-0.6296073456803736j), (0.056570144039872594-0.135671341894538j)),
331 ((0.05530486113034205-0.45284053426797866j), (-0.04502323738051783+0.0630304737860885j), (0.004887893978963609+0.5713368827301133j), (0.18732743423207876-0.7143408881411377j)),
332 ((-0.3712234322764927+0.24908466763268566j), (0.6364022966205971-0.21808571418727385j), (-0.5670900710572193+0.6348611392807915j), (0.9245683140013828+0.3899090325528184j)),
333 ((-0.6094870272364956-0.2685532809269351j), (0.6287315177811945+0.4264823533706973j), (0.1676715780106749-0.48029733292855326j), (-0.5376630517471747-0.7182359990772386j))),
334 (((-0.018779747197580465+0.6114308512727638j), (0.3732084851158033-0.4786089418474003j), (-0.5663664323873074+0.39392462282467033j), (0.13538143997466878-0.12985823792228446j)),
335 ((-0.4780490757496574-0.39805216916921526j), (-0.2797090849741719+0.93720217986173j), (0.6203622207514078-0.15823957110011522j), (0.6060182605777774+0.018214531480017393j)),
336 ((-0.3696664461011986+0.07708468475820063j), (0.3066672994071602-0.345863819817513j), (-0.18002308351634988+0.6758164917135244j), (-0.3299795335012433+0.3472073085359665j)),
337 ((-0.018635553181191034-0.2527645838168162j), (0.10050559250760827-0.2682102608362037j), (0.15675656210201427-0.8704771160865176j), (0.2060240187990353+0.1525158024705776j))),
338 (((0.17233488629737193-0.11594210469295985j), (0.06281516668626441-0.2603634509290429j), (-0.05642743012335105-0.655594777161181j), (0.6959785793264961+0.19699171017512973j)),
339 ((-0.17348338509217032-0.6986792371372937j), (-0.8346643961801311-0.3680194342368177j), (0.12864312443903647-0.32156359553027614j), (0.6861567331359726-0.010430013106866087j)),
340 ((-0.6222917331694062+0.112713903157314j), (-0.12621654439609742+0.28520452943867913j), (0.44508284456518865-0.7522188187153122j), (-0.2636591190438452-0.040926078833506185j)),
341 ((-0.19805372118683406+0.5858778783604968j), (0.8721978764710994-0.548302441850661j), (-0.15430327558703272-0.01201209901149869j), (-0.3670274756811238+0.5474051336552919j))),
342 (((0.25034760722181615-0.15703084151927404j), (-0.14637027923589074+0.2928912738619156j), (0.46416445476921286+0.08042093992929411j), (-0.506840204775922-0.1186965040818393j)),
343 ((-0.37679950234230697-0.2701183493158177j), (0.043782673009088335+0.06734842807447794j), (0.2517828293729589-0.46888255931621403j), (0.6737055518213005-0.812365808946925j)),
344 ((-0.2661639821601073+0.13557351739334367j), (0.7392306869051049+0.5132140781139445j), (0.8364137600747349+0.15412542220542547j), (-0.5220472284167044-0.3618612888730691j)),
345 ((0.13970939326026943-0.3036727447660489j), (-0.38759251152342933+0.18775991991684293j), (-0.2487083238049208-0.4778652656270306j), (0.1390512499757498-0.9134653209907141j)))),
346 ((((0.04833008268979544+0.15219347436054742j), (0.26103655160455086-0.3757461116008425j), (-0.12150273403936784-0.617683120749172j), (0.06086845258368434+0.5631830804862105j)),
347 ((0.5300453373682147+0.4166351114705461j), (-0.6851243348127105+0.6918703698362535j), (-0.7710255671005614+0.10134603710624956j), (-0.26008427165733317+0.39542364464404867j)),
348 ((0.5854498106749348+0.549731062650827j), (0.2519939415821417-0.43527531634423966j), (-0.6267811606157699+0.8585285100484663j), (0.07940474123690222-0.5124720092697812j)),
349 ((0.30776303313314646-0.15530657580599816j), (0.007522269998118669+0.35668611429959896j), (-0.1919814476250188-0.30177638543157503j), (-0.1646298733419591-0.7159546806725978j))),
350 (((-0.30218788472478486+0.7760123719336528j), (-0.6314508280105797-0.1304090779644247j), (0.47461359141937576+0.4479088939414325j), (-0.06334668969380608+0.1323481666947287j)),
351 ((-0.7546949847971307+0.1756014222789699j), (0.25493728708952623-0.1282474899023487j), (0.390011965026524+0.4028431671750171j), (0.06598509493063165+0.7155111116236064j)),
352 ((0.07881709314826968-0.24405932002231845j), (0.36802109324120846-0.15749901166866498j), (-0.4450424875753707+0.7030178139999255j), (0.27329963141708635-0.7119309406610871j)),
353 ((-0.30933381776423374-0.11542316873853986j), (-0.0254248179097315-0.7313241377455038j), (0.10700540112141-0.4660169963118146j), (-0.3013644469437623+0.17540339691654783j))),
354 (((0.0008073119623276392-0.05721575120619815j), (-0.08090870209548084-0.5957005266957907j), (0.17886979689341065+0.08798138279240286j), (-0.47326181867795214-0.39061153265097337j)),
355 ((-0.6240780356387126+0.931178282425864j), (0.49774084728858903-0.6554241240698137j), (-0.5514724615982707-0.1357900974308276j), (0.9476110679732384-0.8254384162767912j)),
356 ((0.339181898243627-0.26749719725842025j), (-0.8452885480367868+0.6880217962554664j), (0.6160319781793868-0.21382367328363683j), (-0.10773724739140955+0.12900692439104278j)),
357 ((-0.4524239681624962-0.05106064389660214j), (0.3502260661172907-0.28486272434416593j), (-0.22611152371676513-0.4473111544777272j), (-0.07889011849494199-0.902189430409641j))),
358 (((-0.4549255061524088+0.8204137745689758j), (0.6262794891433104-0.07873980006902381j), (-0.2099285569580429-0.5700098959028401j), (0.6485809522680817+0.09567054692828636j)),
359 ((0.20594301199461984+0.4902067661467834j), (0.3329644191869927-0.02188884849814343j), (-0.22921000231707434+0.3393725843732417j), (0.5813376839449342+0.09312340842380451j)),
360 ((-0.44184373889384854-0.22572260324605908j), (-0.2865930601221123+0.2963815667447778j), (0.23401187102772336-0.14690195925951866j), (0.5821368881041176+0.7899842539077798j)),
361 ((0.21512923589171906-0.5017618261731809j), (-0.29710734954707296+0.3058974064324922j), (-0.3522028959822211-0.5211544989239631j), (0.0833888296839771+0.47110470479799904j)))),
362 ((((-0.12192871299046759-0.7328491805867747j), (0.7012790193629233+0.7216675552235499j), (0.07746694166806012+0.07187177179945092j), (-0.11596083131875812-0.3402549730235054j)),
363 ((0.4419525909212654-0.41264178907481297j), (-0.9540280899180219-0.0931626138838092j), (0.5850822884122122+0.023613319021177137j), (0.6204747822108139+0.4817530149691007j)),
364 ((0.12857240889181254+0.26765277556782874j), (-0.5905959060433874+0.30391448875145577j), (-0.33009606966351646-0.5133049903372606j), (0.3911371567574641-0.5699531083068055j)),
365 ((-0.06951047741648464+0.09185412570082496j), (0.23412720494006845-0.15301303449597714j), (-0.3632868271203742-0.0854806981764501j), (-0.06898965841232252-0.08895516025337646j))),
366 (((-0.30228646550028415+0.06630530646305488j), (0.1386457118575627-0.48419676726390337j), (-0.22729071025997294-0.7643686926101503j), (-0.3622425543437594+0.8590754571587876j)),
367 ((-0.22721539776726385-0.36036034464849565j), (0.31497309604817325+0.3597772211828737j), (0.5069787174234794-0.8219928876404512j), (0.11194139062149588+0.26293050464964796j)),
368 ((0.4612090001013647+0.27388506472486907j), (-0.30194776224929665-0.13263761985638922j), (-0.6233657091294399+0.44684364446587943j), (-0.3450340301594258+0.11542147033108141j)),
369 ((-0.014881287063154947-0.18928627620951555j), (-0.015185483586684478+0.8972647988323046j), (-0.4351552758945989-0.7299460860379636j), (-0.12326133732628419+0.012329124057677388j))),
370 (((0.10476345838581014-0.14636495344507483j), (-0.32803930125358216+0.27809153512314866j), (0.22528172636268207+0.3494691827944507j), (-0.5310240602410343+0.04119281216138804j)),
371 ((-0.5533642323509493+0.2906558493993484j), (-0.33436396580317507+0.4888660226122262j), (-0.4290629671820184+0.09348041559022413j), (-0.1635189281331263+0.08219415853032563j)),
372 ((-0.48564277336559514-0.39389189119028456j), (-0.07859439546331881-0.5417512106196164j), (-0.2634745687747664+0.6393823484701674j), (-0.4717227533107514+0.7886365869114986j)),
373 ((0.1574555874287038-0.15735823857163656j), (-0.3407071004516933-0.00848408628817443j), (0.111461150743281-0.4496138761616306j), (-0.08146922125654954+0.5259628325969007j))),
374 (((0.34656176542518824+0.07880355128877725j), (-0.258503112094004+0.23322070678863926j), (-0.6883175179734812+0.06684313489266447j), (-0.04692875801791596+0.7384728581195434j)),
375 ((-0.3413224116842536-0.07621317699837815j), (0.23082091132507632-0.7397247652890888j), (-0.7325151537847703-0.2399819049396238j), (-0.13092551439092603-0.2541771655857984j)),
376 ((-0.6621690601235584-0.3959496844857878j), (-0.18349053313548802-0.8753348282719295j), (-0.03908532595157577+0.35883701301557147j), (-0.051099789459096545+0.22309220396282636j)),
377 ((0.255858259117678+0.5962976405338435j), (-0.4167005907396837-0.7228120687439701j), (-0.4251792094268322-0.5598290555324366j), (-0.02547169493326129-0.10035815157656547j)))))
378 else:
379 if rank==0:
380 return (0.16343477325759478,)
381 elif rank==1:
382 return (-0.414447461350212, 0.5940893953018536)
383 elif rank==2:
384 return ((-0.18517072101415805, 0.20812345616476052),
385 (-0.5546197008728526, -0.5564107547626429))
386 elif rank==3:
387 return (((0.39959975888207894, -0.6577401243413907, 0.4280968882108843),
388 (0.22892610169500252, -0.29400534047234894, -0.3596253597614875),
389 (-0.352145347223075, -0.22330947752937103, 0.6040999239623353)),
390 ((0.5820901702251168, 0.5118427342586129, -0.784142756428528),
391 (0.32306580123331297, 0.5718638969764223, 0.35139290436334764),
392 (-0.38744644765122205, 0.6230529976422874, -0.4451744915244834)),
393 ((-0.1680467743981198, 0.8270861936315199, 0.2604978984507546),
394 (-0.3179202431655108, 0.592515989853744, 0.37531069237770537),
395 (-0.5594567456296533, -0.5354189906699913, -0.6879940596903789)))
396 elif rank==4:
397 return ((((0.07653880859335448, -0.8506240072658446, 0.5669507117736834, 0.5069631117128448),
398 (0.7231092428343939, -0.18235569823019526, 0.46022740126490647, 0.8492333455592396),
399 (0.6170052818637486, -0.8808747630127647, 0.1563085221153727, 0.8244613246958687),
400 (0.4294616619386404, -0.12118821840316875, 0.7616687854731052, 0.6728140330125063)),
401 ((0.6436880168986288, -0.25021445743624676, 0.11998265803070028, 0.8312669978628259),
402 (0.6870391868795935, -0.41825547772474664, 0.601722908359805, 0.10996760961876721),
403 (0.30815741382372003, -0.8484037060918963, 0.6225223666523892, 0.25636768516056313),
404 (-0.5403219505752949, 0.784036866371234, 0.11777309540223573, 0.4039156719922558)),
405 ((0.5543818190876664, 0.5654917578606441, 0.6110438985958697, 0.09343833716996176),
406 (0.663012375502168, 0.2314869852119426, 0.23762537471584116, 0.6933683606475624),
407 (-0.29276295759188187, 0.714837865189284, 0.1872658031279304, 0.1702169706800615),
408 (-0.4542436592804883, 0.07976845049430197, 0.08816046717012539, 0.462262050647425)),
409 ((0.506450528739594, 0.4062122557330939, 0.5462416476803083, 0.25191742530295563),
410 (0.3393578341507891, 0.2825671991633298, 0.13447310100386736, 0.5860351833019655),
411 (0.6612450693192753, 0.6774796280346236, 0.2676680871992434, 0.507190159923532),
412 (0.6953428609343382, 0.7171619543885263, 0.6260223993304953, 0.331615476564711))),
413 (((-0.27573547448763347, 0.5077386283774998, 0.4453961872519076, 0.43130840985234026),
414 (-0.580315177591782, 0.5652609083059623, 0.8511780780181941, 0.33371199932631807),
415 (0.699271673783864, 0.49366804495096395, 0.06797744724509305, 0.5353269755409358),
416 (-0.6252936853093409, 0.8905733967820801, 0.3089031678403189, 0.5261014470187029)),
417 ((-0.7404002858536928, 0.2048176759131214, 0.4980581903575471, 0.42894050825990854),
418 (0.45779709857247547, -0.7620468819613082, 0.6247644411339963, 0.6305323474999456),
419 (0.7909315252937255, -0.3012402477673979, 0.4525703288970107, 0.9352115724287626),
420 (0.31693114412209444, -0.37281844304816186, 0.7318694959034, 0.19786924305064665)),
421 ((0.3274437623324882, -0.33087589095095155, 0.8556630658488849, 0.524447118150698),
422 (0.41163320939179787, -0.9238459438767593, 0.21861731917563137, 0.4424459362963088),
423 (0.5776510801231114, 0.6065647351222803, -0.639307289457621, 0.7314330090773533),
424 (0.27421408841108247, 0.12621566941798637, -0.46606608860175, 0.08985539889445235)),
425 ((0.25771437676193215, 0.8671956551054035, -0.7024115898342955, 0.6180265239465382),
426 (0.3536132615270657, 0.4678494273732346, -0.5440963329219566, 0.5386557403677203),
427 (0.425277398166178, 0.5397867882224323, -0.21245876299659439, 0.8499599729452116),
428 (0.282819828736375, 0.616976644425216, 0.45750716248923645, 0.10388406898090359))),
429 (((0.480212232724941, -0.8937086550918505, -0.6399122280175192, -0.3926739182869949),
430 (0.5866305704975537, 0.37523483543667685, 0.34455787558391154, 0.7468191968550546),
431 (-0.7561559742324413, 0.6618299652906166, 0.5497360987548463, 0.44000411823919794),
432 (0.5489342296514085, 0.33299878380451237, -0.6851907132585857, -0.8837744966993399)),
433 ((0.2449050432846066, 0.7225682113974873, -0.42149169327348723, -0.5241172273711572),
434 (0.7461632214743219, 0.3773660518547119, 0.5911139199924735, 0.12543356040664694),
435 (-0.4374385476373295, -0.7523855940695361, 0.4381969239605094, 0.37308327852970813),
436 (-0.21637181734766117, 0.49874174259134, 0.3912614640116107, 0.4526617072173223)),
437 ((0.7151470272616507, 0.43893562960939475, 0.4654984531602598, 0.026153794290457506),
438 (0.7899612010454996, 0.4349102788459652, 0.7453956466392258, 0.47431536809150776),
439 (0.42979681026390004, -0.571667413005515, 0.608322709782375, 0.4374481254420103),
440 (0.33514856567435775, 0.5877137248653976, 0.9386863487830309, 0.1386415730993477)),
441 ((0.35219579066973905, -0.6168773605138196, 0.40504448843510976, 0.424824210157774),
442 (0.7812627665326543, 0.19452639019667187, 0.6000050187112531, 0.7539670503073901),
443 (0.2981680001911141, 0.5123292320600974, 0.6035479676835969, 0.5180365031497639),
444 (0.4958302538856905, -0.5666881217462356, 0.3057862327558582, 0.16322148534649822))),
445 (((0.5219568172234907, 0.6691120408133714, 0.5415030041267854, 0.5178254487487362),
446 (0.550999473408774, 0.3224491374840088, 0.40632316238837907, 0.5316822545746088),
447 (0.15782246477014253, -0.39011414803016886, 0.5923055243411701, 0.33403984110147705),
448 (0.5476956624940421, 0.353567340179472, 0.7751336150761081, 0.3769351266082521)),
449 ((0.26092129669846587, 0.38531106190825626, 0.43089380185467957, 0.3517745063606868),
450 (0.6068795949566435, -0.7313287811237782, 0.7817415065395071, 0.539725422031037),
451 (-0.4681995762086918, 0.8081081299514932, 0.45349678068383653, 0.1676286251112078),
452 (0.9418725604754995, 0.7388572732026134, 0.44262594936532146, 0.7474149440129483)),
453 ((0.8132968384251593, -0.5972218943821608, -0.5919410574164853, -0.35599895731169406),
454 (0.7520654612132684, 0.45483154483372135, 0.4059225646226807, 0.4001021311571795),
455 (0.241190931159322, 0.8294262552595144, 0.6807436275202874, -0.3970641092078186),
456 (0.41214139959674073, -0.49530207420971023, 0.2603640589059204, -0.5320822386899074)),
457 ((0.4852677073030271, 0.5126350217914364, 0.5251827072400477, 0.4107256987588376),
458 (0.5923200155158566, -0.7301177285915048, -0.774241876159728, 0.6746581037497406),
459 (0.3573798122820507, 0.169636160666647, -0.5725299039287078, 0.23182444091612892),
460 (0.3601137116698788, -0.07438414986800912, -0.4165677125316061, 0.0790530879666291))))
461
462 def get_python_input2(self, rank, cplx):
463 if not cplx:
464 if rank==0:
465 return (-0.22889838791916658,)
466 elif rank==1:
467 return (-0.49012030903632825, 0.6031662135176437)
468 elif rank==2:
469 return ((-0.6891705183553265, 0.7417620269931902), (-0.5710307758197861, 0.39980890346586717))
470 elif rank==3:
471 return (((0.450166488818521, 0.40335229027346475, -0.34323251080578104),
472 (0.2842555722086943, 0.519038548037327, -0.22356691063536377),
473 (0.6233434523085559, -0.6939552082789993, 0.20717775496120844)),
474 ((0.6635014413084468, -0.12427061907674535, 0.4316471005230688),
475 (-0.3462206066776269, 0.5812789855981269, 0.1513383660423066),
476 (0.40921125173698586, -0.6302181341512401, 0.4857376224901844)),
477 ((-0.5156818720590722, 0.3810418328134193, 0.5228685660307542),
478 (0.44668606111653875, -0.8552520337523355, -0.30378907822454826),
479 (-0.572442375071903, 0.13397389728880899, 0.)))
480 elif rank==4:
481 return ((((0.45433363368861773, 0.6498884169562154, 0.8968304717142223, 0.8907734241559906),
482 (0.4777438965822781, 0.19219763395957137, 0.47760828704065156, 0.099611811950238),
483 (0.28320121503596124, 0.6794412465012807, 0.13188620716114968, 0.40410020187234463),
484 (0.170095604634749, 0.6491679236703396, 0.48405171480791914, -0.48480616171976565)),
485 ((0.40796761374598983, 0.5888935058511742, 0.810959910176321, -0.3519432924326292),
486 (0.6778803492879535, 0.15159482372964073, 0.7609511790213423, -0.4291829232233251),
487 (-0.6597430856795399, 0.5416080050562327, -0.7316035149420569, 0.17492295472360206),
488 (0.3585956180854316, 0.4506986634961759, -0.3068624306617866, 0.6450035140643098)),
489 ((0.7690325599562085, 0.6582789850176016, -0.6556413596206179, 0.615423012961261),
490 (0.3947622967482572, 0.3604341682179244, -0.5689343825826134, -0.22003697279869047),
491 (-0.6004909191668832, 0.48591852805780483, 0.6670811381503408, -0.33418084981888524),
492 (-0.5696228030807892, 0.8349733556806979, 0.08716776292987743, -0.6103200906618154)),
493 ((0.32673151927490685, 0.3650741778596788, 0.4719563946069752, -0.2624495178810215),
494 (-0.6911360309172416, 0.629718040535628, 0.37138298773280687, 0.7867876295855086),
495 (-0.6768502043234856, 0.32903587935447837, 0.6229889864689531, 0.5226994780805113),
496 (-0.6571446582814051, 0.30807025622961254, 0.3025565918384279, 0.5316791314282434))),
497 (((0.7110156690310308, 0.07897654694359649, 0.49671935812956247, 0.15989919493282642),
498 (0.4454758263127157, -0.8468596115253173, -0.4603369168686832, 0.7835562740584727),
499 (0.1973500874759318, -0.6890077016392274, -0.38353764662415646, 0.2602210860778308),
500 (0.3062963684983607, -0.5485723785169033, -0.7558085192193574, 0.7260373711224899)),
501 ((0.6292337309967168, -0.6298019421801468, 0.5769038995707547, 0.805909547222589),
502 (0.2956786092814956, -0.8516163380649984, 0.0433563110406362, 0.5562648421367056),
503 (-0.44398600437607083, -0.3132864322653825, 0.1309184523859448, 0.09487956033144461),
504 (-0.39347200269496224, 0.6744128343886427, -0.17787462973897294, 0.6844498649820736)),
505 ((-0.4668129815805621, 0.46840442065095245, -0.6348701936076414, 0.534532796163385),
506 (0.5401302006866129, 0.42361490419012787, 0.3055178484323608, 0.4099049291060996),
507 (0.15643756091005653, 0.5538397868668722, 0.5793672234228313, 0.5343825930606839),
508 (0.567145595353928, 0.7936293829906991, 0.5159699957715731, -0.11524767048966807)),
509 ((0.46983068856527466, 0.829272105469925, 0.8242448082292821, 0.3155783126108229),
510 (0.46679344399363587, -0.35498575768428703, 0.8195558132407107, 0.044710380043836144),
511 (0.7228682303918399, 0.5956512578344273, 0.5842273233950968, -0.46445592272801267),
512 (0.48424480615111076, -0.43589572454719294, 0.2739525289177576, 0.5141521147948742))),
513 (((0.5353156164778932, -0.827716346014944, 0.2661170502005538, 0.6240217001592496),
514 (0.5889586875315378, -0.6056309378106368, 0.38460210470822326, 0.3257073061066195),
515 (0.38605597818925463, 0.5566287156895975, 0.8868213070850919, -0.10818212758613992),
516 (0.44934219884516874, 0.7722925534790802, 0.6824771465971564, -0.4861304182325704)),
517 ((0.35670465647772914, 0.40563319853724733, 0.9215374519881303, 0.3261075398074149),
518 (0.5466590188369063, 0.8063505325979616, 0.2505468000914572, -0.27573025774136484),
519 (0.743952777599612, -0.5916038948220598, 0.5814331576314142, -0.25330559867360414),
520 (-0.9281192928557953, -0.5526121099889816, 0.7663168620517609, 0.27644519542436335)),
521 ((0.4312170339514421, 0.39670998093753257, 0.6147975692316388, 0.49353631380425866),
522 (0.2914782490250003, 0.34495461015075896, 0.724277583477783, 0.7656114513280461),
523 (0.2967100926835535, -0.3708225100005513, 0.4557999563503535, 0.21401134707432434),
524 (-0.33196574382892885, 0.6509108525238382, 0.44580359408187276, 0.6130947882235365)),
525 ((0.11173436827791464, 0.6700051363761477, 0.12807937551069665, 0.7174522662954508),
526 (0.40082249771839484, -0.6435832868289147, 0.47429720113534696, 0.44533186804848607),
527 (0.4625441865293232, 0.24229257632548656, 0.655276132353378, 0.27883861657454045),
528 (0.638496711915504, 0.5391658143407168, 0.6794910638048037, 0.18819631783938193))),
529 (((0.49500523167298044, -0.7621808699493068, 0.8002303121407335, 0.4339016426795843),
530 (0.6899502135654372, 0.9438297115207196, 0.39545080237118185, 0.43835240439976453),
531 (-0.5324364296711654, -0.7403526206887153, 0.421079060947922, 0.28183735731097076),
532 (0.7641745784203584, -0.8052630361187237, 0.4113425938410049, 0.4873541423815537)),
533 ((0.4763043550807671, 0.8818320340667569, 0.4376950912132615, 0.5155236207246434),
534 (0.4770314956120568, 0.6995239422377975, 0.29342906280323733, 0.2207382366023154),
535 (0.47119152389910457, 0.5643383062697325, 0.19014363807175272, 0.47728067160438753),
536 (0.293549802812087, 0.3091310044125135, 0.8079461149429534, 0.30540675213143226)),
537 ((-0.6562012019806969, -0.5762140611417803, -0.8922117406714833, -0.5644163171621817),
538 (0.28018207838767606, -0.6980601983118322, 0.9321643060248082, -0.6857895197253853),
539 (0.30248864387340907, 0.37739756004900193, -0.5011312641768506, 0.19190880686969636),
540 (-0.36857760657786354, 0.6980580453947155, -0.4162678161352499, 0.6651932863378893)),
541 ((-0.2969663268640197, 0.5012850908098417, -0.5630486821046159, 0.5994825528795871),
542 (-0.45367000863631446, 0.24430658191105983, -0.277060548382701, 0.5169546884489187),
543 (-0.9278462241176814, 0.5112886572173754, -0.3908093365092602, 0.7815138913982161),
544 (-0.32136995201761503, 0.2619940057725135, -0.35043110649096515, 0.9241246395431221))))
545 else:
546 if rank==0:
547 return (0.22889838791916658j,)
548 elif rank==1:
549 return (-0.49012030903632825, 0.6031662135176437j)
550 elif rank==2:
551 return ((0.6891705183553265, 0.7417620269931902j), (0.5710307758197861j, 0.39980890346586717))
552 elif rank==3:
553 return ((((0.07547574295591059+0.525876939609691j), (0.6637422951496057+0.7388772645580287j), (-0.11575430357267835+0.3396973817710597j)),
554 ((0.489975174033296-0.7778617185395662j), (-0.8582089062218037+0.7890680975791542j), (-0.34130307486775563+0.3651975276800719j)),
555 ((0.6269390600608432+0.28192633671923134j), (0.6386868409229303+0.8545339974263741j), (0.8227777914187108+0.9768191533988598j))),
556 (((0.3925840042771697+0.8092934421771397j), (0.27266165100309064+0.32623317563034737j), (-0.8740927141261398-0.4161371090973831j)),
557 ((0.6702575659927514-0.450686130655044j), (0.474828305773418+0.7656845168857629j), (0.15253090291865834+0.46008109446176876j)),
558 ((0.6094857432227104+0.5897008435426775j), (0.5134349957841884+0.09305616116877985j), (0.7954114232091216-0.4633804802000654j))),
559 (((-0.29941397426915045-0.666629677984151j), (0.41045211458021535+0.6422008897066637j), (0.7608807908849147-0.2263883386308603j)),
560 ((0.21016378700056504+0.8009138519791235j), (0.10548646537128033+0.43289764157877525j), (0.4083797466047874+0.9040107808706966j)),
561 ((-0.8930070536981469+0.4674003925883036j), (-0.7258863558039299-0.38206684572695093j), (0.40771065599848233+0.14217138669583038j))))
562
563 elif rank==4:
564 return (((((-0.38981592692954015-0.2856117645961309j), (-0.035094151427129905-0.265178716783423j), (-0.34532231395177504+0.36673987839501265j), (0.2041672227930209-0.6128500993893164j)),
565 ((-0.12421070955162938+0.026349493748204833j), (-0.3415725798389704-0.0775430038163134j), (0.17048268853378434-0.08862480715498033j), (-0.1106967683514759-0.10379778205326462j)),
566 ((0.7298716846009465+0.20776829436005195j), (-0.33435577984609854+0.039072521387463754j), (-0.05886662990481739-0.05072122421891534j), (0.18354830862254912+0.4606377888934907j)),
567 ((-0.0767806399525307-0.8221389203690308j), (0.190835818629008+0.16192941104126957j), (0.17778866234180712+0.2584570168682756j), (0.07671782176673747-0.8469237188822869j))),
568 (((-0.35597391704713033+0.25043169560436107j), (0.41228040156904044-0.3258644927079958j), (0.3255845547364652-0.04129891413069664j), (-0.49623171650577047-0.28943245984704047j)),
569 ((-0.29908631455896795+0.32223868604261874j), (0.22549183711675158-0.07473853585711632j), (0.8473949873724411-0.1266457939975455j), (-0.28218966494496867-0.7447571699002506j)),
570 ((0.43626155573856107-0.22452973659230602j), (-0.13852005024639502-0.2549763508471894j), (0.40223991129540115+0.6286067642439117j), (0.05222020648272985+0.36124142226658207j)),
571 ((-0.5521041254588972+0.04526366394953618j), (0.028005364473586924+0.664136776905772j), (0.19982797953123066+0.6970088780138949j), (-0.27592458615859916+0.05358189338835073j))),
572 (((-0.01401304893255595-0.2592802467152746j), (0.38457288044239724+0.022898781579736238j), (0.11747849077927963+0.02982853498608895j), (0.43510885272308897-0.5971898990476139j)),
573 ((-0.1386049812442307+0.48221564332109246j), (0.12985640511010177-0.46733815759024744j), (0.36035270943159226+0.030123486580092673j), (0.13433570628907954-0.3548300324692315j)),
574 ((0.3630171981969085-0.10489930496648125j), (-0.19285139550925268-0.22152540990095826j), (0.067448080460355-0.22485851852233463j), (-0.22642725802173436-0.8030852201557207j)),
575 ((-0.4923572157490467+0.6941947968511506j), (-0.3083492643827028-0.21029535607801164j), (0.04516826032767807+0.16347006444443446j), (-0.4979722425636467+0.2600475135508704j))),
576 (((-0.9146464795838944-0.4811995164563062j), (0.12372743851535117-0.19857635465689238j), (-0.32654984398293085+0.1399970385669752j), (0.5030023710839411-0.15390603274578885j)),
577 ((0.12140042439229626-0.1677658216785154j), (0.15883782681413416+0.33379103634910656j), (0.185779713490287-0.3870952578769751j), (-0.06711575082420218+0.06791735335184867j)),
578 ((-0.39839017930339415-0.5701893857302205j), (0.517636015942468+0.2847028688489578j), (0.3792093531943226+0.6747299891837335j), (0.3790566911887919-0.5890859768662702j)),
579 ((0.10419770368967918-0.5497491933319889j), (0.037156668670760284-0.08813180251072528j), (0.3918645219248724+0.294242167456119j), (0.46981783997943394-0.1336764441655952j)))),
580 ((((0.033498149202913496+0.5105612554548389j), (-0.00671182242426005-0.34435078880309433j), (-0.0373284784284601-0.5412680712938157j), (-0.21266128835217923+0.7435692921379757j)),
581 ((-0.6338796544785741-0.1519302355817751j), (0.19056981672575435-0.2151423521624617j), (-0.2906156104811447-0.06976477293942895j), (0.11015974132120787+0.034078789456797876j)),
582 ((-0.802973040360448+0.25982604363200634j), (0.4470120196869066+0.1070242653063358j), (-0.17139489854864864+0.280001955020894j), (0.481238612220953-0.1754485899809457j)),
583 ((-0.2395451407327337+0.17708193346527168j), (-0.5161417899394428-0.1119365768848799j), (0.48501626047241986+0.14129638224677343j), (-0.8906342486796647+0.5959903703773012j))),
584 (((0.4573784894991153+0.5594852951634348j), (0.5713680069309577-0.5494425630562785j), (0.08288855869575895-0.46808758933789407j), (0.0881202973963836+0.030710301266941187j)),
585 ((-0.06642229051907478-0.22323447873665903j), (-0.7628208743574287-0.6371785162956514j), (-0.2246568157836294+0.3567254755305702j), (0.68327814761898-0.27973991174997725j)),
586 ((0.2784159984258674-0.17498289569648884j), (0.004730953615886158+0.07715287138774296j), (0.0773670863004613-0.6360012413426752j), (-0.0647551047878423+0.6906328131396173j)),
587 ((0.558480058973719-0.04481293285577537j), (0.09684530531415203-0.40763537195877164j), (-0.3913240230298858-0.004438441098584933j), (0.031510290166036015-0.30876711061254836j))),
588 (((-0.588734853251181+0.36452828173265184j), (-0.19810928581934018+0.20823750547135322j), (-0.45274761144312026-0.17983105119023213j), (-0.11229734410645587+0.2560770621269597j)),
589 ((-0.4038055786345742+0.7025954299708754j), (0.6537842056064525-0.34973368012330475j), (0.35464537317028266-0.21682856487173952j), (-0.01815814374546676+0.4718839114346507j)),
590 ((-0.36336965745600625+0.3759504695343794j), (0.2248053726148399+0.22029644112859348j), (-0.09064428722611384-0.08254509314972736j), (0.12418920854260185-0.5471431985662905j)),
591 ((-0.5200354642412095+0.5425236434272582j), (0.4144201383368241-0.03221161184797661j), (0.10973679214385457+0.2887677216157485j), (0.8119344460935665-0.3782880124387231j))),
592 (((0.5132990185785542+0.1269895435922086j), (-0.8779926345719881-0.5240101078639017j), (-0.1083296281261924-0.8147529275948924j), (0.09647199912137994+0.6723852222785147j)),
593 ((0.2928885382594636-0.17353985395496885j), (-0.21364153320667634-0.03557466867344006j), (0.09421518259275086+0.6153556681629657j), (0.42459824192798623-0.17443990666881448j)),
594 ((-0.5143367641601848-0.474941950841561j), (-0.2759320986482162-0.8250929199965524j), (0.21922685784092444-0.5600860240181191j), (-0.8569179028983865-0.16482185283148332j)),
595 ((0.5268959167118139+0.55401274233894j), (0.08678495563788746-0.11915652486681427j), (-0.35416282616502737-0.4847172453257278j), (0.17111904837721448-0.8480796973331977j)))),
596 ((((0.5469697524334143+0.02787502521930041j), (0.2605342686105838-0.0738711527960102j), (-0.39955538445037275-0.37613379994879603j), (-0.013180544897028024-0.5858094274207383j)),
597 ((0.2506641890300212-0.1324021828426094j), (0.2972858012659867+0.21562443620437732j), (-0.6161716236733459-0.16509522040718683j), (-0.18102929570881354-0.6067237673008904j)),
598 ((-0.13192637373724614-0.6510388019746922j), (-0.5546497186031663+0.15957406458683243j), (0.3605761118213213+0.25686768414528705j), (0.401508970393731-0.5108236410388888j)),
599 ((0.39953367426110775+0.2252371577830028j), (-0.3347746193719203+0.2263747029817541j), (0.43746847580536263+0.5388066331831217j), (-0.07344964656116226+0.5473468419762271j))),
600 (((-0.6996969040609468+0.7213293709800207j), (-0.37557411707556654+0.1506412600826108j), (0.46608440397755446+0.013185375483020345j), (0.29865953531762246+0.19232124238469206j)),
601 ((-0.06222220564236847+0.5694069457780013j), (-0.5368962596793275+0.36703072903452505j), (-0.05182804478010006+0.3840540087750902j), (0.16375632553791997-0.4661212952339301j)),
602 ((-0.4041070739038938-0.04037225736899819j), (0.24215413306521716-0.06631187616668377j), (-0.2663745437846935+0.611183098942953j), (0.337942638568164-0.5670011153091816j)),
603 ((0.3876032723274968-0.08306424304240201j), (0.2173881180889634+0.4512865759999062j), (0.8795902664110721+0.8614312675002035j), (0.2870339354260544-0.11303384551216167j))),
604 (((-0.1319661103321904-0.1378309763195904j), (-0.03263197183994404+0.03651637220786119j), (-0.33530432503994767-0.007463082947573474j), (-0.3110039705203388+0.17231544573803292j)),
605 ((-0.07377573914613977+0.3678250464292866j), (0.3280327212275782-0.08984395132040435j), (-0.4492548090143319-0.3165726498892033j), (0.4186631970202508+0.14692250754002467j)),
606 ((0.12300006190073354+0.8465896476419659j), (-0.3266430699658883+0.9258477806121458j), (0.1270817126276501+0.7278063130820139j), (0.04390487289582379-0.07072636756748818j)),
607 ((0.8411822363338441+0.3271788959517308j), (0.14233232632431592-0.8034008469283107j), (-0.012057809815140041-0.07447549854466373j), (-0.5078787065469428-0.3322994351304549j))),
608 (((0.2823845584710901+0.3169641678915194j), (-0.14926005618963878-0.06141784434383113j), (-0.3336711008317823+0.608644554614276j), (0.042858723261329-0.25353753207960283j)),
609 ((-0.19596385250682435+0.29611929225848677j), (0.9379729841249024-0.5720585057483617j), (0.20515378855823352-0.5330821799545553j), (-0.45689594348515183-0.5221745972924456j)),
610 ((0.005913178294852495-0.04464774171993757j), (-0.3515104653551274-0.8716563770921714j), (-0.5644652537988155+0.4413367915251234j), (-0.32684204426160013-0.6404138884316928j)),
611 ((-0.20862357692064337-0.008586491450952471j), (0.7110044208850719-0.0260275339943824j), (0.33195949443404427-0.060726068233408204j), (-0.24054180926541135-0.22750131116864736j)))),
612 ((((-0.19779207637655705-0.06170675636552225j), (0.24801124896429994+0.52301594517833j), (0.3359762170142643+0.006887001901350498j), (-0.5044830473838094-0.023633199563395157j)),
613 ((0.35936388285588383-0.12044000986333014j), (0.06567318357927132+0.23081033720558908j), (-0.006063340342035706-0.43355358359223595j), (0.560747142959132-0.019735739750161296j)),
614 ((0.16778778206380363+0.4393001381475511j), (-0.19115676223578515+0.023171844709636735j), (-0.10056678281864495+0.11175155826135519j), (-0.24878623491611496+0.8172452900981119j)),
615 ((-0.4955653304024539-0.35864956392371916j), (-0.002728871185003978+0.3416061368260671j), (0.12387109110953831-0.2654493686440327j), (0.10889405520664741+0.1218720709206873j))),
616 (((0.07498012788575437+0.251986782960711j), (0.3511927502553568+0.27907917288389616j), (-0.6319086362942079-0.11628342415274562j), (-0.02365411536311457+0.7887319952841338j)),
617 ((0.38406832355686993+0.03416295519609358j), (0.35717793709754475+0.7751423080742306j), (0.29135030536626805+0.15668909755462013j), (0.14503883313378096-0.030524299930524523j)),
618 ((0.3331132451297607-0.03848385697279688j), (0.0750244753960323+0.10077551583585709j), (-0.15490975501427928-0.1798249796504282j), (0.9066796997830194-0.6602275207883976j)),
619 ((0.1471293723064081+0.10463425812772786j), (-0.5961028228889094+0.5480663905625878j), (0.0026089287349913004-0.5747699075005761j), (0.2899525342736272+0.1268195775198908j))),
620 (((-0.13364076045805806-0.17688339222579297j), (0.6013848685157083+0.3493674941578545j), (0.22523028276047052-0.21939576800830496j), (0.09111222639027305+0.7894981102504295j)),
621 ((0.6016850426953799+0.043886903791527376j), (-0.5060405108831854-0.5381151561460222j), (-0.4760569419146623+0.40666832623996363j), (-0.5318516495722876+0.16837803612551516j)),
622 ((0.024034551466941778-0.2166311876229967j), (0.26494031063742085-0.002375780112287895j), (-0.4730046544996984+0.6644551176991773j), (-0.39157195926624855+0.6199256868216445j)),
623 ((-0.04324867778353203-0.08087976286625231j), (0.1578599942534593-0.5156287674297576j), (-0.15005517462767193-0.09424179596026594j), (-0.13944975064956378-0.17543248499412656j))),
624 (((-0.5648616238096438+0.46394478768979586j), (-0.41003938415951235-0.33614785565882677j), (-0.3893130130095368+0.05645367151196268j), (0.3821121473593535+0.17991382827274327j)),
625 ((-0.5139083991747512+0.789121431720947j), (-0.6171117805874629+0.3660741433822048j), (0.05303400234375011+0.5094418060177022j), (-0.3545806168076585+0.4629656377266379j)),
626 ((0.2658032276104465+0.4237937984173149j), (0.18183157447480658+0.06623748664233398j), (0.12546831548404336-0.10575754034359075j), (-0.6833387940577664+0.23947306785979094j)),
627 ((-0.20503554348285624+0.21628529049971312j), (0.23649982943904524-0.6159980174662008j), (-0.20651357702330975+0.08458167450189069j), (0.j)))))
628
629 def get_python_input3(self, rank, cplx):
630 if not cplx:
631 if rank==0:
632 return (0.37126864363799594,)
633 elif rank==1:
634 return (0.6234908821535466, 0.6138798448505429)
635 elif rank==2:
636 return ((0.46458697075264, 0.47521353725342), (0.2769991834092879, 0.7655903776259643))
637 elif rank==3:
638 return (((-0.7087306338233754, 0.5091993546185136, 0.7823132790082358),
639 (0.7809687239325918, -0.7618301393180559, 0.13846012311583666),
640 (0.24584408982123662, -0.30175410391822816, -0.6508820239463049)),
641 ((0.0799357328507963, 0.4268164046934606, -0.3340669557843154),
642 (-0.5352665915599666, -0.4796035531201281, -0.31521200922735726),
643 (0.6181927127971525, 0.5813500010909463, 0.6485259530707308)),
644 ((-0.607591622470962, 0.5134390179382666, -0.7761053727330762),
645 (0.30315911281007185, -0.7772739725828741, 0.21981237010097954),
646 (0.5720780258224234, -0.7199923733581466, -0.8038912730779739)))
647 elif rank==4:
648 return ((((0.45368972429803434, 0.43658224238126836, 0.327332664787118, 0.1659399779578305),
649 (0.5908203393014015, 0.6287596060266886, 0.26557881193403204, 0.7640693855123928),
650 (0.6550472925659366, 0.4051939492486867, 0.39695234748477226, 0.7984350907853707),
651 (0.45152587205177463, -0.6915126698433964, -0.1408991785923076, 0.5555466803377823)),
652 ((-0.7111217974645967, 0.22442551434498154, 0.33601178864915354, 0.21277504641255832),
653 (0.10220061513651632, 0.4523774178793611, 0.4079018667540423, -0.909554257065248),
654 (0.6139494095517375, 0.3083569476979329, 0.6376629339543685, -0.28647430781873456),
655 (-0.36486444793373635, 0.3134770531471723, 0.19207850462685053, 0.2742209367740796)),
656 ((0.5206089841634276, 0.24952538894537638, 0.0933758645493489, 0.24304014487798284),
657 (0.2039225828898289, 0.423378042043955, 0.21847415387885974, 0.4823494123271024),
658 (0.49781756385165377, 0.42765522168555026, -0.4737414300227722, -0.5398374124738391),
659 (0.2640617374368053, 0.34880253282719476, 0.32357380359477705, -0.7111559522372015)),
660 ((0.23761918672652063, 0.1593578505403827, 0.6530063992033186, 0.9079894778799892),
661 (-0.8250545394400823, 0.4861804550261372, -0.3406365725750848, 0.42480466462889144),
662 (0.47203132507512685, 0.20818156589620632, 0.20161698569028383, 0.42806013456132413),
663 (0.7792675299565863, 0.3736959703075082, 0.19761992623295196, 0.4235372420916027))),
664 (((0.6459817009885405, 0.2610419659851719, 0.39888588458573665, 0.6358114313716404),
665 (0.6789108524310596, 0.4760144991501489, 0.5132407231875976, -0.7445121079875354),
666 (-0.3165090047475903, 0.1882290433512482, -0.30270840337500193, 0.4773827304127968),
667 (0.27248041023839426, 0.5356669773887297, -0.5759298824759524, 0.27026295067501754)),
668 ((0.2225815420544881, 0.6296933698530776, 0.6420994781708316, 0.5292910401325328),
669 (0.4838814244753861, 0.3015763358329324, 0.5966105067811018, 0.437555952383517),
670 (0.2508886824465943, -0.3688703869280175, 0.44848941714873286, 0.6968286221703255),
671 (0.7458127375857659, 0.5565367320025696, -0.5221639609134333, -0.5043229193744858)),
672 ((0.2704586652152375, 0.23622061144754075, 0.5668874045788246, -0.7383427762361463),
673 (0.3326338826927772, -0.5180692401299339, 0.6853188934444896, -0.5105611442225273),
674 (0.32729714889258044, 0.7634733351662765, 0.2667323956085834, 0.3813499428619923),
675 (-0.707758750914661, 0.23317899979615478, -0.6728060312412778, -0.5045011288076484)),
676 ((-0.2758755420358796, -0.6849112850328907, 0.7208465949939953, 0.5465246847493163),
677 (0.5382081700827642, 0.4626841039902129, 0.38537277159039474, -0.5918003106653552),
678 (0.7410792569612943, -0.848695963275266, -0.35215371840141596, 0.7859807920638692),
679 (0.439754658119384, -0.09885040884202281, -0.20324265625602897, 0.6393707779383961))),
680 (((0.45932643067605416, 0.4867064483724215, -0.2492845750953945, 0.4071869028109893),
681 (0.518352199566693, 0.6265341328104177, 0.5719047743470251, -0.8284284690707643),
682 (0.1255527780884896, -0.133522460155736, 0.5939516968011829, 0.6970674969748756),
683 (0.821986273583169, 0.3881563859122813, 0.16941736964779366, -0.288738726812057)),
684 ((0.48102730273877786, 0.1522385344365771, 0.5752150637264031, 0.39522973755221524),
685 (-0.732520712427958, -0.49190588963815157, 0.6125760080831428, 0.2716702847832281),
686 (-0.8159103581398756, 0.34507912842082983, 0.7075657623779936, 0.29530894172611916),
687 (0.5278442353318813, -0.6539972004065213, -0.48897529954240776, 0.7932403888940815)),
688 ((0.831358889394934, 0.48050345824229945, -0.6410388202892018, 0.8982570057418652),
689 (0.30388123939085465, 0.727912073121657, -0.543834760379716, -0.6710456332208439),
690 (0.4417259323277584, -0.5717441377950038, 0.3664067245442036, 0.3280925201821242),
691 (-0.5400907637568426, 0.43207844188064887, -0.732946675152238, -0.5339092194505695)),
692 ((-0.22369526225631464, 0.5665529520090573, 0.2653373517286637, 0.6914637769007175),
693 (0.22138531453529892, 0.17362665833183274, 0.11873401018627547, 0.48731998406078203),
694 (0.5508721228465998, -0.3492961556670177, -0.5692351404720578, 0.5107492266892075),
695 (0.17584863513461835, -0.35755945941346623, 0.7650117785966029, 0.48316674832514844))),
696 (((0.2982202413301988, 0.2348830652298031, 0.3114442699257422, -0.20218169729319738),
697 (0.6846710473822368, -0.8119003553529898, 0.1790804504032915, 0.4781252356617314),
698 (-0.3766941501672641, 0.5437027703705374, -0.24423050827666176, 0.3323763024031741),
699 (0.8189980567608663, -0.5888920746029481, 0.17138276940268463, 0.5475256795584624)),
700 ((0.4569907243510988, 0.5255497422421722, -0.1680676291815795, -0.2879601796868399),
701 (0.5419471765149858, 0.8765158329632898, -0.21847500231364173, 0.6219663103942495),
702 (0.8993300494227338, 0.5256551743041176, 0.4312579142909404, -0.28503463714017396),
703 (-0.6601304123050094, 0.9681225089321629, 0.6110831795473397, 0.630733896684101)),
704 ((0.7252549854189686, -0.48905018110325815, 0.3949054499635516, 0.6883221515509466),
705 (0.3510020242244332, 0.5964593467774927, -0.665927090247577, -0.19851750424804993),
706 (0.49702295298466764, -0.32952301722148614, 0.6578112215358343, 0.629875436683738),
707 (0.5228582859488041, 0.48834135369831744, -0.8107618558028835, 0.012956020032133924)),
708 ((-0.3966015859408982, 0.19901168720580728, 0.6930890007374754, 0.7839579709117346),
709 (0.8623235889093344, 0.5661301336086426, -0.6547115325958021, -0.6689861941430038),
710 (-0.5105113993916237, 0.7066840336625683, 0.8004786600943815, 0.5266845579213677),
711 (0.689553296868146, -0.773301352126767, -0.7364812118860565, 0.5377502245784462))))
712 else:
713 if rank==0:
714 return (0.37126864363799594j,)
715 elif rank==1:
716 return (-0.6234908821535466, -0.6138798448505429j)
717 elif rank==2:
718 return ((0.46458697075264j, 0.47521353725342), (-0.2769991834092879j, 0.7655903776259643))
719 elif rank==3:
720 return ((((0.1454277130999836-0.7320274919853249j), (0.6111728482069096+0.3264747748994178j), (-0.5638648912195857-0.17450334170489668j)),
721 ((0.36745011107568193-0.36335598004419434j), (0.17683177117302507+0.17980667188917787j), (0.1975971229124449+0.4658291218212517j)),
722 ((-0.2014605099933947+0.2948257187520392j), (-0.744292187546457-0.06353546214852701j), (0.5315307768500955+0.20979695600906234j))),
723 (((0.6658801836076347-0.5765177344716341j), (0.49015610705744417-0.5133880244308395j), (-0.1502312930208003+0.1561733784845012j)),
724 ((-0.661348002857287-0.029644750992120383j), (0.006584637699976192-0.4781943559540154j), (0.12266084950784173+0.46542904661542706j)),
725 ((-0.41697557600280255-0.3537461357888442j), (0.26272750067625794-0.43630595153076535j), (-0.21367481541695688-0.2618183771588106j))),
726 (((-0.22338538892626414-0.10818049912878436j), (-0.040383727106552136+0.48764341091162444j), (0.014766392396017403+0.8223651913211714j)),
727 ((0.003228290936111433-0.37610619147220625j), (-0.01103811298925661-0.39851348234329986j), (0.20163130848248234-0.49523755760391885j)),
728 ((0.37812723691663375+0.354147330172629j), (0.08116710042198705+0.1643297763093502j), (0.015047687899757523-0.05023160033399521j))))
729 elif rank==4:
730 return ((((0.45368972429803434, 0.43658224238126836j, 0.327332664787118, 0.1659399779578305),
731 (0.5908203393014015, 0.6287596060266886, 0.26557881193403204, 0.7640693855123928),
732 (0.6550472925659366, 0.4051939492486867, 0.39695234748477226, 0.7984350907853707),
733 (0.45152587205177463, 0.6915126698433964, 0.1408991785923076, 0.5555466803377823)),
734 ((0.7111217974645967, -0.224425514+0.12j, -0.336011788-035j, 0.21277504641255832),
735 (0.10220061513651632, 0.4523774178793611, 0.4079018667540423, 0.909554257065248),
736 (0.6139494095517375, 0.3083569476979329, 0.6376629339543685, 0.28647430781873456),
737 (0.36486444793373635, -0.31347705-0.8765j, 0.19207850462685053, 0.2742209367740796)),
738 ((0.5206089841634276, 0.24952538894537638, 0.0933758645493489, 0.24304014487798284),
739 (-0.2039225828898289, 0.423378042043955, 0.21847415387885974, 0.4823494123271024),
740 (0.49781756385165377, 0.42765522168555026j, 0.4737414300227722, 0.5398374124738391),
741 (0.2640617374368053, 0.34880253282719476, 0.32357380359477705, 0.7111559522372015)),
742 ((0.23761918672652063, -0.1593578505403827, 0.6530063992033186, 0.9079894778799892),
743 (0.8250545394400823, 0.4861804550261372, 0.3406365725750848, 0.42480466462889144),
744 (0.47203132507512685, 0.20818156589620632, 0.20161698569028383, 0.42806013456132413),
745 (0.7792675299565863, -0.3736959703075082, -0.19761992623295196, 0.4235372420916027))),
746 (((0.6459817009885405, 0.2610419659851719, -0.39888588458573665, 0.6358114313716404),
747 (0.6789108524310596, 0.4760144991501489, 0.5132407231875976, 0.7445121079875354),
748 (0.3165090047475903, 0.1882290433512482, 0.30270840337500193, 0.4773827304127968),
749 (0.27248041023839426, 0.5356669773887297, 0.5759298824759524, 0.27026295067501754)),
750 ((-0.2225815420544881, 0.6296933698530776, 0.6420994781708316, 0.5292910401325328),
751 (0.4838814244753861, 0.3015763358329324, 0.5966105067811018, 0.437555952383517),
752 (0.2508886824465943, 0.3688703869280175j, 0.44848941714873286, 0.6968286221703255),
753 (0.7458127375857659, 0.5565367320025696, 0.5221639609134333, 0.5043229193744858)),
754 ((0.2704586652152375, 0.23622061144754075, 0.5668874045788246, 0.7383427762361463),
755 (0.3326338826927772, 0.5180692401299339, -0.6853188934444896, 0.5105611442225273),
756 (0.32729714889258044, 0.7634733351662765, 0.2667323956085834, 0.3813499428619923),
757 (0.707758750914661, 0.23317899979615478, 0.6728060312412778, 0.5045011288076484)),
758 ((0.2758755420358796, 0.6849112850328907, 0.7208465949939953, 0.5465246847493163),
759 (0.5382081700827642, 0.4626841039902129, 0.38537277159039474, 0.5918003106653552),
760 (0.7410792569612943, 0.848695963275266, 0.35215371840141596, 0.7859807920638692),
761 (0.439754658119384, 0.09885040884202281, 0.20324265625602897, 0.6393707779383961))),
762 (((0.45932643067605416, 0.4867064483724215, 0.2492845750953945, 0.4071869028109893),
763 (0.518352199566693, 0.6265341328104177, 0.5719047743470251, 0.8284284690707643),
764 (0.1255527780884896, 0.133522460155736, 0.5939516968011829, 0.6970674969748756),
765 (0.821986273583169, 0.3881563859122813, 0.16941736964779366, 0.288738726812057)),
766 ((0.48102730273877786, 0.1522385344365771, 0.5752150637264031, 0.39522973755221524),
767 (0.732520712427958, 0.49190588963815157, 0.6125760080831428, 0.2716702847832281),
768 (0.8159103581398756, 0.34507912842082983, 0.7075657623779936, 0.29530894172611916),
769 (0.5278442353318813, 0.6539972004065213, 0.48897529954240776, 0.7932403888940815)),
770 ((0.831358889394934, 0.48050345824229945, 0.6410388202892018, 0.8982570057418652),
771 (0.30388123939085465, 0.727912073121657, 0.543834760379716, 0.6710456332208439),
772 (0.4417259323277584, 0.5717441377950038, 0.3664067245442036, 0.3280925201821242),
773 (0.5400907637568426, 0.43207844188064887, 0.732946675152238, 0.5339092194505695)),
774 ((0.22369526225631464, 0.5665529520090573, 0.2653373517286637, 0.6914637769007175),
775 (0.22138531453529892, 0.17362665833183274, 0.11873401018627547, 0.48731998406078203),
776 (0.5508721228465998, 0.3492961556670177, 0.5692351404720578, 0.5107492266892075),
777 (0.17584863513461835, 0.35755945941346623, 0.7650117785966029, 0.48316674832514844))),
778 (((0.2982202413301988, 0.2348830652298031, 0.3114442699257422, 0.20218169729319738),
779 (0.6846710473822368, 0.8119003553529898, 0.1790804504032915, 0.4781252356617314),
780 (0.3766941501672641, 0.5437027703705374, 0.24423050827666176, 0.3323763024031741),
781 (0.8189980567608663, 0.5888920746029481, 0.17138276940268463, 0.5475256795584624)),
782 ((0.4569907243510988, 0.5255497422421722, 0.1680676291815795, 0.2879601796868399),
783 (0.5419471765149858, 0.8765158329632898, 0.21847500231364173, 0.6219663103942495),
784 (0.8993300494227338, 0.5256551743041176, 0.4312579142909404, 0.28503463714017396),
785 (0.6601304123050094, 0.9681225089321629, 0.6110831795473397, 0.630733896684101)),
786 ((0.7252549854189686, 0.48905018110325815, 0.3949054499635516, 0.6883221515509466),
787 (0.3510020242244332, 0.5964593467774927, 0.665927090247577, 0.19851750424804993),
788 (0.49702295298466764, 0.32952301722148614, 0.6578112215358343, 0.629875436683738),
789 (0.5228582859488041, 0.48834135369831744, 0.8107618558028835, 0.012956020032133924)),
790 ((0.3966015859408982, 0.19901168720580728, 0.6930890007374754, 0.7839579709117346),
791 (0.8623235889093344, 0.5661301336086426, 0.6547115325958021, 0.6689861941430038),
792 (0.5105113993916237, 0.7066840336625683, 0.8004786600943815, 0.5266845579213677),
793 (0.689553296868146j, 0.773301352126767j, 0.7364812118860565j, 0.5377502245784462))))
794
795
796 def get_python_input4(self, rank, cplx):
797 if not cplx:
798 if rank==0:
799 return (0.9153151043823012,)
800 elif rank==1:
801 return (-0.5162647246320071, -0.06342374260616546)
802 elif rank==2:
803 return ((0.7011839736500342, 0.625639950892529), (-0.17902320165992758, -0.049498389409131205))
804 elif rank==3:
805 return (((0.008309531806355519, 0.22817074073669497, 0.7216964601946423),
806 (0.33084432155377397, -0.48472374994936485, 0.4116921963539759),
807 (0.0257088350105531, -0.2370277105296692, 0.3798801329452163)),
808 ((0.01734050560720546, 0.16286702001136155, -0.6501064087150703),
809 (0.02818311904325488, -0.4169901835040347, 0.4086136135582773),
810 (0.5627838019596704, -0.16279418267275847, 0.581645077262897)),
811 ((0.6948207132066607, 0.23541367609085884, -0.4228977230091847),
812 (0.3216823894305869, 0.37129093662137924, -0.7134833270353387),
813 (0.710538786928389, -0.08441890458925416, -0.458946120570603)))
814 elif rank==4:((((0.37235501675945715, 0.11714100415866135, -0.034600745840691394, -0.15554835015413082),
815 (0.47232144877941096, 0.07592804193006697, 0.3405294503824112, 0.21948666128556615),
816 (-0.5332861513294131, -0.08886798656259431, -0.6083217502772487, 0.2316612945607922),
817 (0.5258922230225587, 0.08708823651373188, 0.4234306811212821, -0.04179959817125434)),
818 ((-0.3035688394279197, 0.49483554648710537, 0.05745994060999282, -0.12747381808333336),
819 (0.39332214767836104, 0.46534190633912254, 0.04365690803996003, 0.7650379849598341),
820 (0.1999985251338784, 0.0842829190391805, -0.16877153378631293, 0.31704188690973756),
821 (-0.329887201245436, -0.6511923884088605, -0.6220851080992487, -0.8494734189039839)),
822 ((-0.3231756242543622, -0.554464792835363, 0.4522418958171174, 0.7395807541527681),
823 (0.5498904829451162, -0.05590161752080769, 0.4965321688385663, 0.5728276202033591),
824 (0.5272647821134722, 0.5774470894044734, -0.12581800958739708, 0.9700828208339976),
825 (0.2893640797543078, -0.5484780137131635, 0.9149540829219327, -0.4070409332163506)),
826 ((0.8068861149817737, -0.08739646094657716, 0.15604945884485388, 0.2159877611783666),
827 (-0.08757552786227041, -0.5362091498098354, 0.1379626847994988, -0.02263864637679258),
828 (-0.05403837215914031, 0.6570928483791509, -0.014539560837078191, 0.1353955668770478),
829 (-0.033528144292161, -0.471223531770967, -0.012087259265455508, -0.4443704288092061))),
830 (((0.12815286370127177, 0.08288774005977806, -0.6591909957174392, -0.3227689715877514),
831 (-0.1560371012493621, 0.04563397602135244, 0.18608455069144747, -0.23618249688069137),
832 (-0.1857379168928618, -0.6112258715631804, 0.257168970542067, 0.46862986167858467),
833 (0.8134511475542548, -0.2930500911112336, 0.31803040987546893, -0.1662974948326531)),
834 ((0.09994879483867802, 0.11656104212951102, 0.24567744809079017, 0.2466674448155779),
835 (0.10560598300537649, 0.5594223586687221, -0.269996887150316, -0.006724786299250773),
836 (0.2494899758063036, -0.25302027094976054, 0.5346069245538014, 0.9394209073288707),
837 (0.4895739925732161, -0.6973902811154304, -0.04576531668146877, -0.05978124614419089)),
838 ((-0.4225874457751645, 0.06851122980870317, -0.12558552929455635, -0.059065175364745315),
839 (-0.5869469247109007, -0.4166268018632071, -0.17595117034871932, 0.34489468842970006),
840 (0.19428688924434412, -0.4410298941561428, -0.07610953060207504, 0.2917329578363864),
841 (-0.3087834675004315, -0.5017232119230198, 0.6463307399810825, -0.0997023137687646)),
842 ((-0.3721359342866154, 0.012800610965129966, -0.026147073121323694, 0.249394864255974),
843 (-0.19732520391810227, 0.6877652212967196, 0.09328828976651427, -0.6510049138630607),
844 (-0.4848547986972145, -0.35735976033028827, 0.09165186856904783, -0.40982007152443234),
845 (-0.574914716311232, -0.6488293490765211, 0.4883180795650498, -0.15158507647269426))),
846 (((0.5708514963046316, -0.21247793529126768, 0.11030963705086905, -0.4353799184220226),
847 (0.37323818315312085, -0.10788816216228836, -0.16605325912656543, 0.6104874356554703),
848 (-0.30847384861896465, -0.16679636365155348, 0.5922642783564169, 0.07864692847157684),
849 (0.2791875133546827, 0.09496780294295215, -0.45316050025403876, -0.1610271603413973)),
850 ((-0.42706418878716035, 0.2928066574998388, 0.571174679676169, -0.14560760969133357),
851 (0.9643430182032757, -0.008481138733699822, 0.39800339772985893, -0.7013700291692165),
852 (0.8355714997095827, -0.624788527855067, 0.05466250391400629, -0.9509878285060569),
853 (-0.0973807062547889, -0.5407506278578577, 0.09210951353229235, 0.154379276954291)),
854 ((0.020599999927309876, -0.27945772586433815, -0.4172996686676522, -0.01634325308254314),
855 (0.20212191256900158, 0.21234576281878903, -0.639142180879022, 0.5580272378144776),
856 (0.010545335242685194, 0.29112493809527284, 0.018635172247521647, -0.06613029570794826),
857 (0.155833422371511, -0.09759470769513245, -0.03063166472236889, -0.05428014538371495)),
858 ((0.23577186821185425, 0.1500579314912276, -0.3132878838809129, -0.1097762446447772),
859 (0.6269933317054381, 0.6145430525526924, -0.10380848715617585, -0.06442945507207776),
860 (0.2787614779979213, -0.7358725127577144, 0.20796477034679672, -0.23780046049837644),
861 (0.9267282798589614, 0.16997001112351162, -0.5282983087375479, 0.36538217505303483))),
862 (((-0.8579510472159081, -0.7246352503258299, -0.15510078775815894, 0.12619420876242404),
863 (0.24743683866122967, 0.5615110519360075, -0.3322404459371945, -0.7048709861468231),
864 (0.7028698531861565, -0.22853480716765995, 0.7720042932598191, -0.13166327267604216),
865 (-0.2435352215957982, 0.22931953113912795, 0.3655062306761121, -0.12152100998681392)),
866 ((-0.5677571978624529, 0.6521623982090801, 0.45610015782255964, 0.04035238030125632),
867 (-0.23851414230639378, -0.30637231258391073, 0.046201693717512704, -0.27136411183670195),
868 (0.6857476357642973, 0.3410717717617201, 0.01289524408298115, -0.013360855488527279),
869 (-0.032304469159492366, -0.0835492970599051, -0.0028734534647487653, -0.4654703960804025)),
870 ((-0.2290818436503651, -0.5296681103638246, 0.6162246876592932, 0.17128234890632854),
871 (-0.5811995554061062, 0.6417647758172681, 0.7628730887993724, -0.37912907041142807),
872 (-0.09316417943340105, -0.27095731560349645, 0.6194574328449272, -0.24948060355551438),
873 (0.5728337951942462, -0.0924305626769284, 0.3298848378599575, 0.415637420812042)),
874 ((-0.061049694343089045, -0.8003464214443662, 0.29655140456799867, -0.7735799111191699),
875 (0.29917720082276444, 0.3643378373698344, -0.7665309138650984, 0.35430115119764427),
876 (0.39429765393905847, -0.215211613577439, 0.22195510594293588, -0.20240345662915427),
877 (-0.06694319875792287, -0.6036398699231508, -0.6775777632295854, -0.13199173966023536))))
878 if rank==0:
879 return (0.1916945198248936-0.13520600821648232j,)
880 elif rank==1:
881 return (-0.1083940865407611-0.43931913768613384j,)
882 elif rank==2:
883 return (((-0.0008665125778035687+0.43157678379712805j), (0.6508260343349135-0.13342532131846585j)),
884 ((0.25346912744174943-0.6465790214072134j), (-0.15962337965743467-0.01177491815738152j)))
885 elif rank==3:
886 return ((((-0.11057636539275228-0.3175750394405701j), (0.7947500539520073-0.3434988438428338j), (-0.17008528220766383+0.22755084276175752j)),
887 ((-0.21753248913138046+0.3073046922694095j), (-0.5987149773078468+0.6404407581234498j), (-0.2733628131901674-0.7312216337378827j)),
888 ((0.46021781519502736-0.32179246699810604j), (-0.4650578935554821+0.5210104598763112j), (-0.36535537317523425+0.4289080712460789j))),
889 (((-0.19578475796433725-0.1604786258607791j), (-0.070669831429362-0.34066414803932554j), (0.09414012129996285-0.14312760505028332j)),
890 ((0.02962390819527594-0.08129940555056081j), (-0.29691277198852295+0.5445730330279386j), (-0.8314872838325128-0.10478982105017087j)),
891 ((-0.4875034489526303+0.11245261823496877j), (0.307917858878609+0.4746451405124599j), (0.41480950330452204+0.4450092645412934j))),
892 (((0.7567520084099626-0.5568082250793975j), (0.5933616991307173-0.03406028934656724j), (-0.5349903124170489-0.396773950179919j)),
893 ((0.46555626239679515-0.16518290948365888j), (0.8398844896104096+0.28827801011043974j), (-0.05286735815237498-0.06537526369272817j)),
894 ((-0.7873594868218297+0.23455905590585036j), (0.43718502738612375+0.17935920771077773j), (-0.16708210956083058-0.29630670019555294j))))
895 elif rank==4:
896 return (((((-0.37669743703656033+0.3367989420952414j), (0.3280202440259613-0.42443833914985585j), (0.5751207710641884-0.6671925997156294j), (0.033365010564720965+0.18416168128369115j)),
897 ((-0.1305885333955732+0.258183803742714j), (0.5291111892948406+0.12768860044004038j), (0.3044538909411727+0.7018739119608393j), (-0.09384324555072743+0.44762291055240755j)),
898 ((-0.5172985234092151-0.4246631134190011j), (-0.05697702151796369-0.38499672629412374j), (-0.16330371172505076+0.6329885254352636j), (0.005206064694582513-0.6979570589219142j)),
899 ((0.10042081122085011+0.2730078961548078j), (0.37702343940278005+0.3312339822361312j), (-0.38712718853663275+0.043310706850169245j), (-0.43842301200718425-0.15186366915048966j))),
900 (((0.5818010551152796-0.36497243994846373j), (0.19198280565084558-0.5011496107835725j), (0.24413432536571378-0.6379767379075698j), (0.34455193126269634-0.08664637040123147j)),
901 ((0.8168889487559259-0.9032656902589163j), (-0.5603456946720172-0.1195734571550765j), (-0.1605088593685251-0.13483121449943314j), (0.6174544850032535-0.44047675305704703j)),
902 ((-0.42307951312623815-0.30327702147916713j), (-0.2618637556175357-0.1986043745329351j), (0.04718850736664815-0.10738185754632579j), (0.23587778497574974-0.6504332945195135j)),
903 ((-0.05076119295424941+0.4047602633806563j), (0.11093393085917946+0.12427836254382474j), (-0.8132105391139205+0.37548311525522216j), (-0.26953236282243265-0.31159778790771064j))),
904 (((-0.39250877863236644-0.4881044190028637j), (-0.8360834411136835+0.02188471873683928j), (0.02679042509032048+0.6879063358020456j), (-0.10048291543082566-0.2233219762257277j)),
905 ((0.5390402819188123+0.1204054017602989j), (-0.2931730415212582+0.11535281644759132j), (-0.30548980198917564+0.026411218830157512j), (-0.19472436433201012+0.081056583169555j)),
906 ((0.0005464858113309878+0.3225143801544309j), (-0.07709944497321652-0.7481530123633068j), (0.16337505191696478+0.5103151975086361j), (-0.12750402538858618+0.7545748937897574j)),
907 ((-0.9554831189812294+0.13987108056505082j), (-0.27483290404380223+0.8226848528344127j), (0.521831527873442+0.4970661477293601j), (0.9061234743087792-0.1504241528269118j))),
908 (((-0.1882846543421225+0.5304062832141554j), (0.10579078542556297+0.22780442714023064j), (-0.011294630508038805+0.5779466549586485j), (0.08025599710182507+0.12004966544994533j)),
909 ((-0.6586788023520793+0.29488829592817734j), (-0.5025090781370782-0.495410044054439j), (-0.10853891499487645+0.024651020003384483j), (-0.0009726817521150677-0.0764710138257787j)),
910 ((0.32613207343707196+0.7335754039319815j), (0.3508358997571207+0.3240452830066213j), (-0.3835841075004305-0.06342158227281525j), (0.32061104148045194+0.14435049185949667j)),
911 ((-0.4702553987233302+0.2965575488822829j), (0.2726823746215451+0.21252896664298115j), (-0.40480220218419416+0.5684528722603068j), (-0.8662951962865073-0.02018655350327081j)))),
912 ((((0.31691366872411453-0.16565320239992465j), (0.6119279222420073+0.4061058795460125j), (-0.2724431323567723+0.47301403973137435j), (-0.07564711093225085+0.3318822040674295j)),
913 ((0.35444199580157854-0.17921840306504822j), (0.029427102181375453-0.03357316416483169j), (-0.21032412371046783+0.01667316554624787j), (0.0663834457499225+0.2586952407467318j)),
914 ((0.20873626161577874+0.5387073631313459j), (-0.7679630879573601-0.6188379588287274j), (-0.3195249665071722-0.597193477248285j), (0.43272245800774456-0.23801421308823245j)),
915 ((-0.037613711494389857+0.10818062943154994j), (0.057829377352543676-0.04999419264444982j), (0.3022465975999099-0.5349078896215682j), (-0.5231242476811815+0.42998339300583244j))),
916 (((0.0856361897298803-0.6998154250460039j), (-0.11463868513147624+0.16152088708434365j), (-0.5127925687279636+0.11002739851016519j), (0.2599079869203247+0.02491071853128979j)),
917 ((0.7015604708055061-0.591598702814476j), (0.7022599678145434+0.41303884890699527j), (0.6770753952633466+0.003915616175995784j), (0.5221501522889332+0.015184149238084643j)),
918 ((-0.18955797508665606+0.5485819797109972j), (-0.2971676553030109-0.17836414101585318j), (-0.5711343992923511+0.06842526899025392j), (0.059265927050955236-0.6735602608611315j)),
919 ((-0.1520857966428928+0.29169887374589554j), (-0.3146943503222607+0.5076388713801581j), (0.9710102040544507-0.04876498142745134j), (-0.19853216294306686-0.6550688027359666j))),
920 (((0.18951981302782428-0.2412793295224065j), (-0.7777428226995063-0.365999090785438j), (0.6228318351380273+0.06995476281885704j), (-0.6740149120004719+0.10711001728991842j)),
921 ((0.1129279157975297-0.4283924106357786j), (0.40438767481744564-0.2635679354391648j), (-0.29420852109617845+0.4847733937880756j), (-0.3510828870978512-0.11064283076221504j)),
922 ((-0.060808250212467274-0.3509555798569397j), (0.2310570876125041+0.27346891132233075j), (-0.07736476852424223-0.24833618620126674j), (-0.78074150969927-0.7230863125461435j)),
923 ((-0.4757051297031988-0.3783458735437233j), (-0.5401521152562118+0.035723203675678605j), (-0.17580640953890292+0.6827665743960223j), (0.39326629202893215-0.21993263281519704j))),
924 (((0.6386214443611579-0.764943290056036j), (0.18713633494964688+0.06363868519230131j), (0.29526336078276216+0.30178995300494826j), (0.05001443364181468-0.42881696117817625j)),
925 ((-0.5275034189476259+0.6550538425247074j), (0.6943261638500615+0.006776882726276523j), (0.5153311571315663-0.05413330835192531j), (0.2988153589979258+0.3049744060817169j)),
926 ((0.14785883887146767+0.0763051493978234j), (0.16312754082743042-0.03795584967477661j), (0.040229546593022913+0.16530303115245693j), (-0.1831772476291057+0.06328054147911466j)),
927 ((0.1476643669767913+0.325680674159183j), (0.14707868586431028+0.9047584008820329j), (0.9011552589577467+0.11447442281060494j), (0.005973469367093642+0.22263862886336694j)))),
928 ((((0.19283269000734593-0.28709497228064285j), (-0.47096481014533476-0.13173508510496024j), (0.562477770007406+0.26491027512352816j), (0.03783964186943933-0.03978396106597093j)),
929 ((-0.5333576204038937+0.20057170743675312j), (-0.5554481805321547-0.7626212986623081j), (-0.47686434977953773+0.5802686248218423j), (0.5920361023050167-0.14491946597655325j)),
930 ((-0.4126930229374297+0.39966003185091536j), (0.2850544980649773+0.7484131241244993j), (-0.13160190253004878-0.10190869345823672j), (0.34602765479100117-0.18205626983880596j)),
931 ((0.4219188545707674+0.5086508238768007j), (-0.0677006672392233-0.11766198036052333j), (0.45020863060305627+0.20389430038718892j), (-0.5125265629738844-0.4771765521430704j))),
932 (((0.37701640058097874+0.05204261987362635j), (0.17260326851591068+0.4285264843160088j), (0.10359131962737611-0.8137076321465101j), (-0.02286762418683419+0.34829474498525603j)),
933 ((-0.010410922319074811+0.09105220878486131j), (0.43519051427706756-0.20447320160562032j), (-0.14399460120821073-0.46777690039065734j), (-0.04872781035419649-0.4298525400055381j)),
934 ((0.18896093939688385-0.16705599789601278j), (-0.5364935215041872+0.3749309246942789j), (-0.18268036947723632-0.25385754338743693j), (-0.5091199532153567-0.32766264406763357j)),
935 ((-0.35235219578282473-0.661850620842785j), (-0.6072679594510126+0.09656978047989173j), (-0.5126540710595279-0.1672195227969181j), (-0.2830351750830662+0.12517368885386926j))),
936 (((0.04686974540685185+0.08438300173836044j), (-0.17974800480460484-0.5026848778236594j), (0.4496570044640005+0.5182953038532189j), (0.673892629006263-0.39593441606543756j)),
937 ((0.2166952267447365+0.191459813763583j), (0.6130127820906195+0.3500318802920196j), (-0.5419820712240513-0.13457437148792628j), (0.3343112127482648+0.07888610819775466j)),
938 ((-0.39276675341804346+0.7570076529568248j), (-0.3988406372126929-0.8608946218773403j), (0.576648779753566-0.6725693071527158j), (-0.4183085693722922-0.21421782809798817j)),
939 ((-0.3010231423615105-0.020535079475881957j), (0.006107583077576639-0.0812822534033596j), (-0.029724210300932086+0.35635178233793563j), (-0.20891136846604574-0.34703924148843457j))),
940 (((-0.07194174413486831-0.07558412271718051j), (0.04378297698600753+0.17934356988151767j), (-0.47189150794751766+0.5780327062551049j), (-0.5125220316089242+0.24892817111211096j)),
941 ((-0.36059488463245326-0.44683441504676813j), (-0.26735527077170973-0.3699650359773635j), (-0.3057966963958182-0.07264390084352956j), (-0.7281560219128018-0.3560659246206268j)),
942 ((0.1329046092679943-0.03153689763456646j), (-0.39271490859265534+0.2062873488401652j), (0.3802945078185428+0.013499908367005542j), (-0.1756191306230559+0.40464153144244697j)),
943 ((0.4802390728634319+0.5190956065611698j), (0.14465603430627616+0.005475878763732567j), (0.3018703057475889-0.0352888758412262j), (0.6943368615391298+0.019202869121973j)))),
944 ((((-0.07500673578875616+0.44031114122474946j), (-0.7205258224784314+0.16865003592058259j), (0.07737090079316822-0.1946277248102064j), (-0.34196425749144166+0.03817853010131156j)),
945 ((0.17755139682612575+0.8238455606059262j), (-0.6657721503572177+0.19793806270117809j), (0.29019650633065386-0.0952118701646486j), (0.14507433328106534-0.515594049976717j)),
946 ((-0.2046653289959417-0.3621700659367947j), (0.6793982849049701+0.3212370850216385j), (0.752468338707956-0.2485926849867901j), (0.5515361195592884-0.4034740977009965j)),
947 ((0.06814007049845194-0.598437803123891j), (-0.5946418447770585-0.6903237885619982j), (-0.36295182276739524-0.7047248113077316j), (0.4250255531847421-0.18162334572617966j))),
948 (((-0.330842360993192+0.6332178345844492j), (-0.1626525936800115+0.12616954195069585j), (-0.1140983493592932+0.16115787963839956j), (-0.5146861509822459-0.47712128557213807j)),
949 ((-0.5846954521386037+0.05824004235002933j), (-0.6485911018934266+0.16723477358583239j), (0.08398284507027964-0.43010971419153865j), (0.473289092320511-0.20201419097169482j)),
950 ((0.4304851671543479+0.3403150943545751j), (-0.5833160536688786+0.4728250155621482j), (0.07457807134020211-0.7490249718724199j), (-0.7171842661512965-0.4045396117992399j)),
951 ((0.38115752645606027-0.581098921622462j), (-0.5631172341731325-0.3169246082570121j), (-0.3187906517321565-0.04147798917128964j), (0.19509565877461577-0.2078658202899497j))),
952 (((0.8183607993729423+0.6099794355828236j), (-0.04871961343893161-0.07033624155755913j), (-0.5113369106671184+0.057386755559324376j), (-0.8572333770628078-0.11952395630018997j)),
953 ((-0.14669430492038193+0.22930953454219938j), (0.8593021941295018-0.6567284188814271j), (-0.3498005693861541+0.4978632770594925j), (0.09110494626854304+0.14596905700539575j)),
954 ((0.5821565237474922+0.0943377064392501j), (-0.12067415509324098-0.2752660016054119j), (-0.06217450649156364-0.024782412571600743j), (0.18973873165376154-0.4643249608246277j)),
955 ((0.221440302929653-0.013268267564226499j), (0.23727492055667987+0.24335036846179636j), (0.20590162356036257-0.7773726672859762j), (0.6650340170009239+0.23251699933937398j))),
956 (((-0.10862117873771637-0.37601603473231926j), (0.14702795412639624+0.2708674170765101j), (-0.6649779112242566-0.18174044911513143j), (-0.8835405205485383+0.67800004101369j)),
957 ((0.5595753470648851+0.06619472947501459j), (-0.5165025553457263+0.06614105368782663j), (0.6989509353083828-0.04232214137167867j), (0.27326536666764734+0.055971454399568965j)),
958 ((-0.4225563301191848-0.46504433769204656j), (0.021693692712496326+0.03736604787989928j), (-0.5231593756263367-0.2743293424312542j), (0.030072300170931987-0.5713925695108115j)),
959 ((0.2665173135965969-0.541283942963249j), (0.10755640859650628-0.30605105910067054j), (-0.5717247916937898+0.2531629402939769j), (0.6106906755601762-0.8354582126221755j)))))
960
961 def get_array_inputL(self, rank, cplx):
962 z=self.get_python_inputL(rank, cplx)
963 return (numpy.array(z),numpy.array(z))
964
965 # does not have the same range as get_array_inputL but hopefully this will be enough
966 # at the moment it is only used in tagged testing
967 def get_array_inputL2(self, rank, cplx):
968 z=self.get_python_input2(rank, cplx)
969 return (1000*numpy.array(z), 1000*numpy.array(z))
970
971 def get_array_input1(self, rank, cplx):
972 z=self.get_python_input1(rank, cplx)
973 return (numpy.array(z),numpy.array(z))
974
975 def get_array_input2(self, rank, cplx):
976 z=self.get_python_input2(rank, cplx)
977 return (numpy.array(z),numpy.array(z))
978
979 def get_array_input3(self, rank, cplx):
980 z=self.get_python_input3(rank, cplx)
981 return (numpy.array(z),numpy.array(z))
982
983 def get_array_input4(self, rank, cplx):
984 z=self.get_python_input4(rank, cplx)
985 return (numpy.array(z),numpy.array(z))
986
987 def get_const_inputL(self, rank, fs, cplx):
988 z=self.get_python_inputL(rank, cplx)
989 d=Data(z, fs)
990 return (d, numpy.array(z))
991
992 def get_const_input1(self, rank, fs, cplx):
993 z=self.get_python_input1(rank, cplx)
994 d=Data(z, fs)
995 return (d, numpy.array(z))
996
997 def get_const_input2(self, rank, fs, cplx):
998 z=self.get_python_input2(rank, cplx)
999 d=Data(z, fs)
1000 return (d, numpy.array(z))
1001
1002 def get_expanded_inputL(self, rank, fs, cplx):
1003 base=self.get_python_inputL(rank, cplx)
1004 x=fs.getX()[0]
1005 mask=whereNegative(x-0.5) # A trick from Lutz Gross' version of tests
1006 r=base*mask+(1-mask)*base
1007 return (r, base)
1008
1009 def get_expanded_inputL2(self, rank, fs, cplx):
1010 base=numpy.array(self.get_python_input1(rank, cplx))*1000
1011 base=base.tolist()
1012 x=fs.getX()[0]
1013 mask=whereNegative(x-0.5) # A trick from Lutz Gross' version of tests
1014 r=base*mask+(1-mask)*base
1015 return (r, base)
1016
1017 def get_expanded_input1(self, rank, fs, cplx):
1018 base=self.get_python_input1(rank, cplx)
1019 x=fs.getX()[0]
1020 mask=whereNegative(x-0.5) # A trick from Lutz Gross' version of tests
1021 r=base*mask+(1-mask)*base
1022 return (r, base)
1023
1024 def get_tagged_inputL(self, rank, fs, cplx):
1025 z=self.get_python_inputL(rank, cplx)
1026 ref=self.get_array_inputL(rank, cplx)[0]
1027 d=Data(z, fs)
1028 d.tag()
1029 return (d, ref)
1030
1031 def get_tagged_with_tagL1(self, rank, fs, cplx, set_tags=False):
1032 ref=self.get_array_inputL(rank, cplx)[0]
1033 d=Data(ref,fs)
1034 if set_tags:
1035 ref1=self.get_array_input2(rank, cplx)[0]*1000
1036 for t in fs.getListOfTags():
1037 d.setTaggedValue(t, ref1)
1038 ref=ref1
1039 return (d,ref)
1040
1041 def get_tagged_with_tagL2(self, rank, fs, cplx, set_tags=False):
1042 ref=self.get_array_input2(rank, cplx)[0]*1000
1043 d=Data(ref,fs)
1044 if set_tags:
1045 ref1=self.get_array_input3(rank, cplx)[0]*1000
1046 for t in fs.getListOfTags():
1047 d.setTaggedValue(t, ref1)
1048 ref=ref1
1049 return (d,ref)
1050
1051 def get_tagged_input1(self, rank, fs, cplx):
1052 z=self.get_python_input1(rank, cplx)
1053 ref=self.get_array_input1(rank, cplx)[0]
1054 d=Data(z, fs)
1055 d.tag()
1056 return (d, ref)
1057
1058 def execute_ce_params(self, pars):
1059 for v in pars:
1060 a=v[0]
1061 op=v[1]
1062 misccheck=v[2]
1063 ref=v[3]
1064 oraclecheck=v[4]
1065 description=v[5]
1066 res=eval(op)
1067 if misccheck is not None:
1068 miscres=eval(misccheck)
1069 if not miscres:
1070 print("Failed check:"+misccheck)
1071 print(type(a))
1072 print(" vs ")
1073 print(type(res))
1074 print(" values:")
1075 print(a)
1076 print(res)
1077 self.assertTrue(miscres,"Failed check for "+description)
1078 oraclevalue=eval(oraclecheck)
1079 oracleres=Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue)
1080 if not oracleres:
1081 print("Wrong result:"+oraclecheck)
1082 print(type(res))
1083 print(" vs ")
1084 print(type(oraclevalue))
1085 print(" values:")
1086 print(res)
1087 print(" vs ")
1088 print(oraclevalue)
1089 self.assertTrue(oracleres,"wrong result for "+description)
1090
1091 def execute_ce_throws(self, pars):
1092 for v in pars:
1093 a=v[0]
1094 def get_expanded_input1(self, rank, fs, cplx):
1095 base=self.get_python_input1(rank, cplx)
1096 x=fs.getX()[0]
1097 mask=whereNegative(x-0.5) # A trick from Lutz Gross' version of tests
1098 r=base*mask+(1-mask)*base
1099 return (r, base)
1100
1101 def get_tagged_inputL(self, rank, fs, cplx):
1102 z=self.get_python_inputL(rank, cplx)
1103 ref=self.get_array_inputL(rank, cplx)[0]
1104 d=Data(z, fs)
1105 d.tag()
1106 return (d, ref)
1107
1108 def get_tagged_input1(self, rank, fs, cplx):
1109 z=self.get_python_input1(rank, cplx)
1110 ref=self.get_array_input1(rank, cplx)[0]
1111 d=Data(z, fs)
1112 d.tag()
1113 return (d, ref)
1114
1115 def execute_ce_params(self, pars):
1116 for v in pars:
1117 a=v[0]
1118 op=v[1]
1119 misccheck=v[2]
1120 ref=v[3]
1121 oraclecheck=v[4]
1122 description=v[5]
1123 res=eval(op)
1124 if misccheck is not None:
1125 miscres=eval(misccheck)
1126 if not miscres:
1127 print("Failed check:"+misccheck)
1128 print(type(a))
1129 print(" vs ")
1130 print(type(res))
1131 print(" values:")
1132 print(a)
1133 print(res)
1134 self.assertTrue(miscres,"Failed check for "+description)
1135 oraclevalue=eval(oraclecheck)
1136 oracleres=Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue)
1137 if not oracleres:
1138 print("Wrong result:"+oraclecheck)
1139 print(type(res))
1140 print(" vs ")
1141 print(type(oraclevalue))
1142 print(" values:")
1143 print(res)
1144 print(" vs ")
1145 print(oraclevalue)
1146 self.assertTrue(oracleres,"wrong result for "+description)
1147
1148 def execute_ce_throws(self, pars):
1149 for v in pars:
1150 a=v[0]
1151 op=v[1]
1152 misccheck=v[2]
1153 ref=v[3]
1154 oraclecheck=v[4]
1155 description=v[5]
1156 expected_exceptions=v[6]
1157 if expected_exceptions is None:
1158 expected_exceptions=(TypeError, RuntimeError) # These are used for unsupported complex
1159 with self.assertRaises(Exception) as err:
1160 res=eval(op)
1161 # unfortunately, we don't return a single exception type in this case
1162 self.assertTrue(type(err.exception) in expected_exceptions, "Exception was raised but it was of unexpected type ("+str(type(err.exception))+")")
1163
1164 def execute_t_params(self, pars):
1165 for v in pars:
1166 description=v[0]
1167 a=v[1]
1168 tagcount=1
1169 for step in v[3:]:
1170 a.setTaggedValue(tagcount, step[0])
1171 op=step[1]
1172 misccheck=step[2]
1173 ref=step[3]
1174 oraclecheck=step[4]
1175 res=eval(op)
1176 if misccheck is not None:
1177 self.assertTrue(eval(misccheck), "Check failed for "+description+" checking "+misccheck)
1178 if oraclecheck is not None:
1179 oraclevalue=eval(oraclecheck)
1180 else:
1181 oraclevalue=ref
1182 if not Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue):
1183 print(v)
1184 print(" This step ")
1185 print(step)
1186 print("Failed comparison:")
1187 print(res)
1188 print(" vs ")
1189 print(oraclevalue)
1190 print(" a= ")
1191 print(a)
1192 print(" ref== ")
1193 print(ref)
1194 print(" oraclecheck= ")
1195 print(oraclecheck)
1196 self.assertTrue(Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue),"wrong result for "+description+" for tag "+str(tagcount))
1197 tagcount+=1
1198
1199
1200 def execute_t_throws(self, pars):
1201 for v in pars:
1202 description=v[0]
1203 a=v[1]
1204 tagcount=1
1205 expected_exceptions=v[2]
1206 if expected_exceptions is None:
1207 expected_exceptions=(TypeError, RuntimeError) # These are used for unsupported complex
1208 for step in v[3:]:
1209 a.setTaggedValue(tagcount, step[0])
1210 op=step[1]
1211 misccheck=step[2]
1212 ref=step[3]
1213 oraclecheck=step[4]
1214 with self.assertRaises(Exception) as err:
1215 res=eval(op)
1216 self.assertTrue(type(err.exception) in expected_exceptions, "Exception was raised but it was of unexpected type ("+str(type(err.exception))+")")
1217 tagcount+=1
1218
1219 def generate_operation_test_batch(self, supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans=None, no_scalars=False, minrank=0, maxrank=4,
1220 expect_raise_on_ranks=None, expected_exceptions=None):
1221 """
1222 supportcplx is a boolean indicating whether complex operations should be checked for values (True)
1223 or tested to see if they raise (False)
1224 opstring is a string of the operation to be performed (in terms of argument a) eg "Lsup(a)"
1225 misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1226 opname is a string used to describe the operation being tested eg "inf"
1227 update1 and update2 are strings giving code used to update a variable rmerge to
1228 account for tag additions for tagged data.
1229 eg: update1="r2.min()"
1230 update2="min(rmerge, r3.min())"
1231 would result in rmerge=eval(update1) running after the first tag is calculatedand
1232 rmerge=eval(update2) running after the second
1233 """
1234 self.generate_operation_test_batch_driver(supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans, no_scalars, minrank, maxrank,
1235 expect_raise_on_ranks, expected_exceptions, inp_scalar1=self.get_scalar_input1, inp_array1=self.get_array_input1, inp_array2=self.get_array_input2, inp_const1=self.get_const_input1, inp_expanded1=self.get_expanded_input1, inp_tagged1=self.get_tagged_input1)
1236
1237 def generate_operation_test_batch_driver(self, supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans=None, no_scalars=False, minrank=0, maxrank=4,
1238 expect_raise_on_ranks=None, expected_exceptions=None, inp_scalar1=None, inp_array1=None, inp_array2=None, inp_const1=None, inp_expanded1=None, inp_tagged1=None):
1239 """
1240 supportcplx is a boolean indicating whether complex operations should be checked for values (True)
1241 or tested to see if they raise (False)
1242 opstring is a string of the operation to be performed (in terms of argument a) eg "Lsup(a)"
1243 misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1244 opname is a string used to describe the operation being tested eg "inf"
1245 update1 and update2 are strings giving code used to update a variable rmerge to
1246 account for tag additions for tagged data.
1247 eg: update1="r2.min()"
1248 update2="min(rmerge, r3.min())"
1249 would result in rmerge=eval(update1) running after the first tag is calculatedand
1250 rmerge=eval(update2) running after the second
1251 """
1252 if input_trans is None:
1253 input_trans=lambda x: x
1254 if expect_raise_on_ranks is None:
1255 expect_raise_on_ranks=()
1256 pars=[]
1257 epars=[] # operations which should throw
1258 if not no_scalars:
1259 (f1,f2)=inp_scalar1(False)
1260 f1=input_trans(f1)
1261 f2=input_trans(f2)
1262 pars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - scalar", expected_exceptions))
1263 if supportcplx:
1264 (f1,f2)=inp_scalar1(True)
1265 f1=input_trans(f1)
1266 f2=input_trans(f2)
1267 pars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - complex scalar",expected_exceptions))
1268 else:
1269 (f1,f2)=inp_scalar1(True)
1270 f1=input_trans(f1)
1271 f2=input_trans(f2)
1272 epars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - complex scalar", expected_exceptions))
1273 for c in (False, True):
1274 if c:
1275 cs="complex "
1276 else:
1277 cs=""
1278 for rank in range(minrank, maxrank+1):
1279 dest=pars
1280 if rank in expect_raise_on_ranks or (c and not supportcplx):
1281 dest=epars
1282 if not no_scalars:
1283 (a, r)=inp_array1(rank, c)
1284 a=input_trans(a)
1285 r=input_trans(r)
1286 p=(a, opstring, misccheck, numpy.array(r), oraclecheck, opname+" - "+cs+"array rank "+str(rank), expected_exceptions)
1287 dest.append(p)
1288 (a, r)=inp_const1(rank, self.functionspace, c)
1289 a=input_trans(a)
1290 r=input_trans(numpy.array(r))
1291 p=(a, opstring, misccheck, r, oraclecheck, opname+" - "+cs+"Constant Data rank "+str(rank), expected_exceptions)
1292 dest.append(p)
1293 (a, r)=inp_expanded1(rank, self.functionspace, c)
1294 a=input_trans(a)
1295 r=input_trans(numpy.array(r))
1296 p=(a, opstring, misccheck, r, oraclecheck, opname+" - "+cs+"Expanded Data rank "+str(rank), expected_exceptions)
1297 dest.append(p)
1298 self.execute_ce_params(pars)
1299 self.execute_ce_throws(epars)
1300 del pars
1301 del epars
1302 tpars=[] # tagged versions
1303 epars=[]
1304 for c in (False, True):
1305 if c:
1306 cs="complex "
1307 else:
1308 cs=""
1309 for rank in range(minrank, maxrank+1):
1310 dest=tpars
1311 if rank in expect_raise_on_ranks or (c and not supportcplx):
1312 dest=epars
1313 test=[opname+" - "+cs+"tagged rank "+str(rank),]
1314 (a, r)=inp_tagged1(rank, self.functionspace, c)
1315 a=input_trans(a)
1316 r=input_trans(numpy.array(r))
1317 test.append(a)
1318 test.append(expected_exceptions)
1319 # arguments are new tagged value, operation, extra check, reference_value, reference_check
1320 (t2, r2)=inp_array2(rank, c)
1321 t2=input_trans(t2)
1322 r2=input_trans(numpy.array(r2))
1323 rmerge=eval(update1)
1324 test.append((t2, opstring, misccheck, rmerge, None,))
1325 dest.append(test)
1326 self.execute_t_params(tpars)
1327 self.execute_t_throws(epars)
1328
1329
1330 def generate_operation_test_batch(self, supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans=None, no_scalars=False, minrank=0, maxrank=4,
1331 expect_raise_on_ranks=None, expected_exceptions=None):
1332 """
1333 supportcplx is a boolean indicating whether complex operations should be checked for values (True)
1334 or tested to see if they raise (False)
1335 opstring is a string of the operation to be performed (in terms of argument a) eg "Lsup(a)"
1336 misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1337 opname is a string used to describe the operation being tested eg "inf"
1338 update1 and update2 are strings giving code used to update a variable rmerge to
1339 account for tag additions for tagged data.
1340 eg: update1="r2.min()"
1341 update2="min(rmerge, r3.min())"
1342 would result in rmerge=eval(update1) running after the first tag is calculatedand
1343 rmerge=eval(update2) running after the second
1344 """
1345 self.generate_operation_test_batch_driver(supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans=input_trans, no_scalars=no_scalars, minrank=minrank, maxrank=maxrank,
1346 expect_raise_on_ranks=expect_raise_on_ranks, expected_exceptions=expected_exceptions, inp_scalar1=self.get_scalar_input1, inp_array1=self.get_array_input1, inp_array2=self.get_array_input2, inp_const1=self.get_const_input1, inp_expanded1=self.get_expanded_input1, inp_tagged1=self.get_tagged_input1)
1347
1348
1349 def generate_operation_test_batch_large(self, supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans=None, no_scalars=False, minrank=0, maxrank=4, expect_raise_on_ranks=None, expected_exceptions=None):
1350 """
1351 Uses the same logic as generate_operation_test_batch but uses larger values.
1352 supportcplx is a boolean indicating whether complex operations should be checked for values (True)
1353 or tested to see if they raise (False)
1354 opstring is a string of the operation to be performed (in terms of argument a) eg "Lsup(a)"
1355 misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1356 opname is a string used to describe the operation being tested eg "inf"
1357 update1 and update2 are strings giving code used to update a variable rmerge to
1358 account for tag additions for tagged data.
1359 eg: update1="r2.min()"
1360 update2="min(rmerge, r3.min())"
1361 would result in rmerge=eval(update1) running after the first tag is calculatedand
1362 rmerge=eval(update2) running after the second
1363 """
1364 self.generate_operation_test_batch_driver(supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans, no_scalars, minrank, maxrank,
1365 expect_raise_on_ranks, expected_exceptions, inp_scalar1=self.get_scalar_inputL, inp_array1=self.get_array_inputL, inp_array2=self.get_array_inputL2, inp_const1=self.get_const_inputL, inp_expanded1=self.get_expanded_inputL, inp_tagged1=self.get_tagged_inputL)
1366
1367 def execute_binary_params(self, pars):
1368 for v in pars:
1369 a=v[0]
1370 b=v[1]
1371 op=v[2]
1372 misccheck=v[3]
1373 refa=v[4]
1374 refb=v[5]
1375 oraclecheck=v[6]
1376 description=v[7]
1377 res=eval(op)
1378 if misccheck is not None:
1379 miscres=eval(misccheck)
1380 if not miscres:
1381 print("Failed check:"+misccheck)
1382 print(type(a))
1383 print(" , ")
1384 print(type(b))
1385 print(" vs ")
1386 print(type(res))
1387 print(" values:")
1388 print(a)
1389 print(" , ")
1390 print(b)
1391 print(res)
1392 self.assertTrue(miscres,"Failed check for "+description)
1393 oraclevalue=eval(oraclecheck)
1394 oracleres=Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue)
1395 if not oracleres:
1396 print("Wrong result:"+oraclecheck)
1397 print(" refa=")
1398 print(str(refa))
1399 print(" refb=")
1400 print(str(refb))
1401 print(" res=")
1402 print(type(res))
1403 print(" vs oraclevalue=")
1404 print(type(oraclevalue))
1405 print(" values:")
1406 print(res)
1407 print(" vs ")
1408 print(oraclevalue)
1409 self.assertTrue(oracleres,"wrong result for "+description)
1410
1411
1412
1413 def generate_binary_operation_test_batch_large(self, opstring, misccheck, oraclecheck, opname, input_trans=None, minrank=0, maxrank=4, no_shape_mismatch=False, permit_scalar_mismatch=True):
1414 """
1415 Generates a set of tests for binary operations.
1416 It is similar to the unary versions but with some unneeded options removed.
1417 For example, all operations in this type should accept complex arguments.
1418 opstring is a string of the operation to be performed (in terms of arguments a and b) eg "inner(a,b)"
1419 misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1420 opname is a string used to describe the operation being tested eg "inner"
1421 update1 is a string giving code used to update a variable rmerge to
1422 account for tag additions for tagged data.
1423 eg: update1="r2.min()"
1424 would result in rmerge=eval(update1) running after the first tag is calculated
1425 """
1426 if input_trans is None:
1427 input_trans=lambda x: x
1428 pars=[]
1429 for ac in (False, True):
1430 for bc in (False, True):
1431 astr="real" if ac else "complex"
1432 bstr="real" if bc else "complex"
1433 aargset=[]
1434 bargset=[]
1435 for atype in "SACTE": # Scalar/Array/Constant/Tagged/Expanded
1436 if atype=='S':
1437 aargset.append((self.get_scalar_input1(ac),astr+' scalar'))
1438 elif atype=='A':
1439 for r in range(minrank, maxrank+1):
1440 aargset.append((self.get_array_input1(r,ac),astr+' array rank '+str(r)))
1441 elif atype=='C':
1442 for r in range(minrank, maxrank+1):
1443 aargset.append((self.get_const_input1(r, self.functionspace, ac), astr+' Constant rank '+str(r)))
1444 elif atype=='T':
1445 for r in range(minrank, maxrank+1):
1446 aargset.append((self.get_tagged_with_tagL1(r, self.functionspace, ac, set_tags=False),astr+' Tagged rank '+str(r)))
1447 elif atype=='E':
1448 for r in range(minrank, maxrank+1):
1449 aargset.append((self.get_expanded_inputL(r,self.functionspace, ac),astr+' Expanded rank '+str(r)))
1450 for atype in "SACTE": # Scalar/Array/Constant/Tagged/Expanded
1451 if atype=='S':
1452 bargset.append((self.get_scalar_input2(ac),bstr+' scalar'))
1453 elif atype=='A':
1454 for r in range(minrank, maxrank+1):
1455 bargset.append((self.get_array_input2(r,ac),bstr+' array rank '+str(r)))
1456 elif atype=='C':
1457 for r in range(minrank, maxrank+1):
1458 bargset.append((self.get_const_input2(r, self.functionspace, ac),bstr+' Constant rank '+str(r)))
1459 elif atype=='T':
1460 for r in range(minrank, maxrank+1):
1461 bargset.append((self.get_tagged_with_tagL2(r, self.functionspace, ac, set_tags=True), bstr+' Tagged rank '+str(r)))
1462 elif atype=='E':
1463 for r in range(minrank, maxrank+1):
1464 bargset.append((self.get_expanded_inputL2(r, self.functionspace, ac),bstr+' Expanded rank '+str(r)))
1465 # now we have a complete set of possible args
1466 for aarg in aargset:
1467 for barg in bargset:
1468 if no_shape_mismatch:
1469 sa=getShape(aarg[0][0])
1470 sb=getShape(barg[0][0])
1471 if sa!=sb:
1472 if not permit_scalar_mismatch or (sa!=() and rb!=()):
1473 continue
1474 p=(aarg[0][0], barg[0][0], opstring, misccheck,
1475 numpy.array(aarg[0][1]), numpy.array(barg[0][1]),
1476 oraclecheck, opname+' '+aarg[1]+'/'+barg[1])
1477 pars.append(p)
1478 self.execute_binary_params(pars)
1479
1480 class Test_util_base(Test_util_values):
1481 """
1482 basic tests on util.py
1483 """
1484 #=========================================================
1485 # File writer
1486 #=========================================================
1487 def setup(self):
1488 self.workdir=ESCRIPT_WORKDIR
1489
1490 def __checkContent(self,fn,ref_cont):
1491 cont=open(fn,'r').readlines()
1492 self.assertTrue(len(cont)==len(ref_cont),"wrong number of records")
1493 for i in range(len(cont)):
1494 self.assertTrue(cont[i].strip()==ref_cont[i],"wrong records %s"%i)
1495 def test_FileWriter_W(self):
1496 fn=os.path.join(self.workdir, "filewriter_w.txt")
1497 self.assertRaises(IOError,FileWriter,fn="",append=False)
1498 f=FileWriter(fn,append=False)
1499 self.assertTrue(f.name==fn, "wrong file name.")
1500 self.assertTrue(f.mode=='w', "wrong mode")
1501 self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1502 self.assertTrue(not f.closed,"file shuold not be closed.")
1503 f.write("line1"+f.newlines)
1504 f.flush()
1505 self.__checkContent(fn,["line1"])
1506 f.writelines(["line2"+f.newlines, "line3"+f.newlines])
1507 f.close()
1508 self.assertTrue(f.closed,"file shuold be closed.")
1509 self.__checkContent(fn,["line1", "line2", "line3"])
1510 MPIBarrierWorld()
1511 if getMPIRankWorld()==0: os.unlink(fn)
1512
1513 def test_FileWriter_A(self):
1514 fn=os.path.join(self.workdir, "filewriter_a.txt")
1515 if getMPIRankWorld()==0: open(fn,'w').write("line1"+os.linesep)
1516 self.assertRaises(IOError,FileWriter,fn="",append=True)
1517 f=FileWriter(fn,append=True)
1518 self.assertTrue(f.name==fn, "wrong file name.")
1519 self.assertTrue(f.mode=='a', "wrong mode")
1520 self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1521 self.assertTrue(not f.closed,"file shuold not be closed.")
1522 f.write("line2"+f.newlines)
1523 f.flush()
1524 self.__checkContent(fn,["line1", "line2"])
1525 f.writelines(["line3"+f.newlines, "line4"+f.newlines])
1526 f.close()
1527 self.assertTrue(f.closed,"file shuold be closed.")
1528 self.__checkContent(fn,["line1", "line2", "line3", "line4"])
1529 MPIBarrierWorld()
1530 if getMPIRankWorld()==0: os.unlink(fn)
1531
1532 def test_FileWriter_A_loc(self):
1533 fn=os.path.join(self.workdir, "filewriter_a_loc.txt")
1534 if getMPIRankWorld()>0:
1535 fn2=fn+".%s"%getMPIRankWorld()
1536 else:
1537 fn2=fn
1538 open(fn2,'w').write("line1"+os.linesep)
1539 self.assertRaises(IOError,FileWriter,fn="",append=True, createLocalFiles=True)
1540 f=FileWriter(fn,append=True,createLocalFiles=True)
1541 self.assertTrue(f.name==fn, "wrong file name.")
1542 self.assertTrue(f.mode=='a', "wrong mode")
1543 self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1544 self.assertTrue(not f.closed,"file shuold not be closed.")
1545 f.write("line2"+f.newlines)
1546 f.flush()
1547 self.__checkContent(fn2,["line1", "line2"])
1548 f.writelines(["line3"+f.newlines, "line4"+f.newlines])
1549 f.close()
1550 self.assertTrue(f.closed,"file shuold be closed.")
1551 self.__checkContent(fn2,["line1", "line2", "line3", "line4"])
1552 os.unlink(fn2)
1553
1554 def test_FileWriter_W_loc(self):
1555 fn=os.path.join(self.workdir, "filewriter_w_loc.txt")
1556 if getMPIRankWorld()>0:
1557 fn2=fn+".%s"%getMPIRankWorld()
1558 else:
1559 fn2=fn
1560 self.assertRaises(IOError,FileWriter,fn="",append=True, createLocalFiles=True)
1561 f=FileWriter(fn,append=False,createLocalFiles=True)
1562 self.assertTrue(f.name==fn, "wrong file name.")
1563 self.assertTrue(f.mode=='w', "wrong mode")
1564 self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1565 self.assertTrue(not f.closed,"file shuold not be closed.")
1566 f.write("line1"+f.newlines)
1567 f.flush()
1568 self.__checkContent(fn2,["line1"])
1569 f.writelines(["line2"+f.newlines, "line3"+f.newlines])
1570 f.close()
1571 self.assertTrue(f.closed,"file shuold be closed.")
1572 self.__checkContent(fn2,["line1", "line2", "line3"])
1573 os.unlink(fn2)
1574
1575 #=========================================================
1576 # constants
1577 #=========================================================
1578 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1579 def test_kronecker_1(self):
1580 val=kronecker(d=1)
1581 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1582 self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1583 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1584 def test_kronecker_2(self):
1585 val=kronecker(d=2)
1586 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1587 self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1588 self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1589 self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1590 self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1591 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1592 def test_kronecker_3(self):
1593 val=kronecker(d=3)
1594 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1595 self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1596 self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1597 self.assertEqual(val[0,2],0.0,"wrong value for (0,2)")
1598 self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1599 self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1600 self.assertEqual(val[1,2],0.0,"wrong value for (1,2)")
1601 self.assertEqual(val[2,0],0.0,"wrong value for (2,0)")
1602 self.assertEqual(val[2,1],0.0,"wrong value for (2,1)")
1603 self.assertEqual(val[2,2],1.0,"wrong value for (2,2)")
1604 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1605 def test_kronecker_domain(self):
1606 val=kronecker(d=self.domain)
1607 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1608 self.assertEqual(val.shape,(self.domain.getDim(),self.domain.getDim()),"wrong shape.")
1609 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1610 def test_kronecker_functionspace(self):
1611 val=kronecker(d=self.functionspace)
1612 self.assertTrue(isinstance(val,escript.Data),"wrong type of result.")
1613 self.assertEqual(val.getShape(),(self.functionspace.getDim(),self.functionspace.getDim()),"wrong shape.")
1614 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1615 def test_identityTensor_1(self):
1616 val=identityTensor(d=1)
1617 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1618 self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1619 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1620 def test_identityTensor_2(self):
1621 val=identityTensor(d=2)
1622 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1623 self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1624 self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1625 self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1626 self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1627 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1628 def test_identityTensor_3(self):
1629 val=identityTensor(d=3)
1630 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1631 self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1632 self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1633 self.assertEqual(val[0,2],0.0,"wrong value for (0,2)")
1634 self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1635 self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1636 self.assertEqual(val[1,2],0.0,"wrong value for (1,2)")
1637 self.assertEqual(val[2,0],0.0,"wrong value for (2,0)")
1638 self.assertEqual(val[2,1],0.0,"wrong value for (2,1)")
1639 self.assertEqual(val[2,2],1.0,"wrong value for (2,2)")
1640 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1641 def test_identityTensor_domain(self):
1642 val=identityTensor(d=self.domain)
1643 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1644 self.assertEqual(val.shape,(self.domain.getDim(),self.domain.getDim()),"wrong shape.")
1645 if self.domain.getDim()==2:
1646 self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1647 self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1648 self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1649 self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1650 if self.domain.getDim()==3:
1651 self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1652 self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1653 self.assertEqual(val[0,2],0.0,"wrong value for (0,2)")
1654 self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1655 self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1656 self.assertEqual(val[1,2],0.0,"wrong value for (1,2)")
1657 self.assertEqual(val[2,0],0.0,"wrong value for (2,0)")
1658 self.assertEqual(val[2,1],0.0,"wrong value for (2,1)")
1659 self.assertEqual(val[2,2],1.0,"wrong value for (2,2)")
1660 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1661 def test_identityTensor_functionspace(self):
1662 val=identityTensor(d=self.functionspace)
1663 self.assertTrue(isinstance(val,escript.Data),"wrong type of result.")
1664 self.assertEqual(val.getShape(),(self.functionspace.getDim(),self.functionspace.getDim()),"wrong shape.")
1665 if self.domain.getDim()==2:
1666 self.assertTrue(Lsup(val[0,0]-1.0)<=self.RES_TOL,"wrong value for (0,0)")
1667 self.assertTrue(Lsup(val[0,1]-0.0)<=self.RES_TOL,"wrong value for (0,1)")
1668 self.assertTrue(Lsup(val[1,0]-0.0)<=self.RES_TOL,"wrong value for (1,0)")
1669 self.assertTrue(Lsup(val[1,1]-1.0)<=self.RES_TOL,"wrong value for (1,1)")
1670 if self.domain.getDim()==3:
1671 self.assertTrue(Lsup(val[0,0]-1.0)<=self.RES_TOL,"wrong value for (0,0)")
1672 self.assertTrue(Lsup(val[0,1]-0.0)<=self.RES_TOL,"wrong value for (0,1)")
1673 self.assertTrue(Lsup(val[0,2]-0.0)<=self.RES_TOL,"wrong value for (0,2)")
1674 self.assertTrue(Lsup(val[1,0]-0.0)<=self.RES_TOL,"wrong value for (1,0)")
1675 self.assertTrue(Lsup(val[1,1]-1.0)<=self.RES_TOL,"wrong value for (1,1)")
1676 self.assertTrue(Lsup(val[1,2]-0.0)<=self.RES_TOL,"wrong value for (1,2)")
1677 self.assertTrue(Lsup(val[2,0]-0.0)<=self.RES_TOL,"wrong value for (2,0)")
1678 self.assertTrue(Lsup(val[2,1]-0.0)<=self.RES_TOL,"wrong value for (2,1)")
1679 self.assertTrue(Lsup(val[2,2]-1.0)<=self.RES_TOL,"wrong value for (2,2)")
1680 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1681 def test_identityTensor4_1(self):
1682 val=identityTensor4(d=1)
1683 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1684 self.assertEqual(val[0,0,0,0],1.0,"wrong value for (0,0,0,0)")
1685 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1686 def test_identityTensor4_2(self):
1687 val=identityTensor4(d=2)
1688 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1689 self.assertEqual(val[0,0,0,0],1.0,"wrong value for (0,0,0,0)")
1690 self.assertEqual(val[0,0,0,1],0.0,"wrong value for (0,0,0,1)")
1691 self.assertEqual(val[0,0,1,0],0.0,"wrong value for (0,0,1,0)")
1692 self.assertEqual(val[0,0,1,1],0.0,"wrong value for (0,0,1,1)")
1693 self.assertEqual(val[0,1,0,0],0.0,"wrong value for (0,1,0,0)")
1694 self.assertEqual(val[0,1,0,1],1.0,"wrong value for (0,1,0,1)")
1695 self.assertEqual(val[0,1,1,0],0.0,"wrong value for (0,1,1,0)")
1696 self.assertEqual(val[0,1,1,1],0.0,"wrong value for (0,1,1,1)")
1697 self.assertEqual(val[1,0,0,0],0.0,"wrong value for (1,0,0,0)")
1698 self.assertEqual(val[1,0,0,1],0.0,"wrong value for (1,0,0,1)")
1699 self.assertEqual(val[1,0,1,0],1.0,"wrong value for (1,0,1,0)")
1700 self.assertEqual(val[1,0,1,1],0.0,"wrong value for (1,0,1,1)")
1701 self.assertEqual(val[1,1,0,0],0.0,"wrong value for (1,1,0,0)")
1702 self.assertEqual(val[1,1,0,1],0.0,"wrong value for (1,1,0,1)")
1703 self.assertEqual(val[1,1,1,0],0.0,"wrong value for (1,1,1,0)")
1704 self.assertEqual(val[1,1,1,1],1.0,"wrong value for (1,1,1,1)")
1705 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1706 def test_identityTensor4_3(self):
1707 val=identityTensor4(d=3)
1708 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1709 self.assertEqual(val[0,0,0,0],1.0,"wrong value for (0,0,0,0)")
1710 self.assertEqual(val[0,0,0,1],0.0,"wrong value for (0,0,0,1)")
1711 self.assertEqual(val[0,0,0,2],0.0,"wrong value for (0,0,0,2)")
1712 self.assertEqual(val[0,0,1,0],0.0,"wrong value for (0,0,1,0)")
1713 self.assertEqual(val[0,0,1,1],0.0,"wrong value for (0,0,1,1)")
1714 self.assertEqual(val[0,0,1,2],0.0,"wrong value for (0,0,1,2)")
1715 self.assertEqual(val[0,0,2,0],0.0,"wrong value for (0,0,2,0)")
1716 self.assertEqual(val[0,0,2,1],0.0,"wrong value for (0,0,2,1)")
1717 self.assertEqual(val[0,0,2,2],0.0,"wrong value for (0,0,2,2)")
1718 self.assertEqual(val[0,1,0,0],0.0,"wrong value for (0,1,0,0)")
1719 self.assertEqual(val[0,1,0,1],1.0,"wrong value for (0,1,0,1)")
1720 self.assertEqual(val[0,1,0,2],0.0,"wrong value for (0,1,0,2)")
1721 self.assertEqual(val[0,1,1,0],0.0,"wrong value for (0,1,1,0)")
1722 self.assertEqual(val[0,1,1,1],0.0,"wrong value for (0,1,1,1)")
1723 self.assertEqual(val[0,1,1,2],0.0,"wrong value for (0,1,1,2)")
1724 self.assertEqual(val[0,1,2,0],0.0,"wrong value for (0,1,2,0)")
1725 self.assertEqual(val[0,1,2,1],0.0,"wrong value for (0,1,2,1)")
1726 self.assertEqual(val[0,1,2,2],0.0,"wrong value for (0,1,2,2)")
1727 self.assertEqual(val[0,2,0,0],0.0,"wrong value for (0,2,0,0)")
1728 self.assertEqual(val[0,2,0,1],0.0,"wrong value for (0,2,0,1)")
1729 self.assertEqual(val[0,2,0,2],1.0,"wrong value for (0,2,0,2)")
1730 self.assertEqual(val[0,2,1,0],0.0,"wrong value for (0,2,1,0)")
1731 self.assertEqual(val[0,2,1,1],0.0,"wrong value for (0,2,1,1)")
1732 self.assertEqual(val[0,2,1,2],0.0,"wrong value for (0,2,1,2)")
1733 self.assertEqual(val[0,2,2,0],0.0,"wrong value for (0,2,2,0)")
1734 self.assertEqual(val[0,2,2,1],0.0,"wrong value for (0,2,2,1)")
1735 self.assertEqual(val[0,2,2,2],0.0,"wrong value for (0,2,2,2)")
1736 self.assertEqual(val[1,0,0,0],0.0,"wrong value for (1,0,0,0)")
1737 self.assertEqual(val[1,0,0,1],0.0,"wrong value for (1,0,0,1)")
1738 self.assertEqual(val[1,0,0,2],0.0,"wrong value for (1,0,0,2)")
1739 self.assertEqual(val[1,0,1,0],1.0,"wrong value for (1,0,1,0)")
1740 self.assertEqual(val[1,0,1,1],0.0,"wrong value for (1,0,1,1)")
1741 self.assertEqual(val[1,0,1,2],0.0,"wrong value for (1,0,1,2)")
1742 self.assertEqual(val[1,0,2,0],0.0,"wrong value for (1,0,2,0)")
1743 self.assertEqual(val[1,0,2,1],0.0,"wrong value for (1,0,2,1)")
1744 self.assertEqual(val[1,0,2,2],0.0,"wrong value for (1,0,2,2)")
1745 self.assertEqual(val[1,1,0,0],0.0,"wrong value for (1,1,0,0)")
1746 self.assertEqual(val[1,1,0,1],0.0,"wrong value for (1,1,0,1)")
1747 self.assertEqual(val[1,1,0,2],0.0,"wrong value for (1,1,0,2)")
1748 self.assertEqual(val[1,1,1,0],0.0,"wrong value for (1,1,1,0)")
1749 self.assertEqual(val[1,1,1,1],1.0,"wrong value for (1,1,1,1)")
1750 self.assertEqual(val[1,1,1,2],0.0,"wrong value for (1,1,1,2)")
1751 self.assertEqual(val[1,1,2,0],0.0,"wrong value for (1,1,2,0)")
1752 self.assertEqual(val[1,1,2,1],0.0,"wrong value for (1,1,2,1)")
1753 self.assertEqual(val[1,1,2,2],0.0,"wrong value for (1,1,2,2)")
1754 self.assertEqual(val[1,2,0,0],0.0,"wrong value for (1,2,0,0)")
1755 self.assertEqual(val[1,2,0,1],0.0,"wrong value for (1,2,0,1)")
1756 self.assertEqual(val[1,2,0,2],0.0,"wrong value for (1,2,0,2)")
1757 self.assertEqual(val[1,2,1,0],0.0,"wrong value for (1,2,1,0)")
1758 self.assertEqual(val[1,2,1,1],0.0,"wrong value for (1,2,1,1)")
1759 self.assertEqual(val[1,2,1,2],1.0,"wrong value for (1,2,1,2)")
1760 self.assertEqual(val[1,2,2,0],0.0,"wrong value for (1,2,2,0)")
1761 self.assertEqual(val[1,2,2,1],0.0,"wrong value for (1,2,2,1)")
1762 self.assertEqual(val[1,2,2,2],0.0,"wrong value for (1,2,2,2)")
1763 self.assertEqual(val[2,0,0,0],0.0,"wrong value for (2,0,0,0)")
1764 self.assertEqual(val[2,0,0,1],0.0,"wrong value for (2,0,0,1)")
1765 self.assertEqual(val[2,0,0,2],0.0,"wrong value for (2,0,0,2)")
1766 self.assertEqual(val[2,0,1,0],0.0,"wrong value for (2,0,1,0)")
1767 self.assertEqual(val[2,0,1,1],0.0,"wrong value for (2,0,1,1)")
1768 self.assertEqual(val[2,0,1,2],0.0,"wrong value for (2,0,1,2)")
1769 self.assertEqual(val[2,0,2,0],1.0,"wrong value for (2,0,2,0)")
1770 self.assertEqual(val[2,0,2,1],0.0,"wrong value for (2,0,2,1)")
1771 self.assertEqual(val[2,0,2,2],0.0,"wrong value for (2,0,2,2)")
1772 self.assertEqual(val[2,1,0,0],0.0,"wrong value for (2,1,0,0)")
1773 self.assertEqual(val[2,1,0,1],0.0,"wrong value for (2,1,0,1)")
1774 self.assertEqual(val[2,1,0,2],0.0,"wrong value for (2,1,0,2)")
1775 self.assertEqual(val[2,1,1,0],0.0,"wrong value for (2,1,1,0)")
1776 self.assertEqual(val[2,1,1,1],0.0,"wrong value for (2,1,1,1)")
1777 self.assertEqual(val[2,1,1,2],0.0,"wrong value for (2,1,1,2)")
1778 self.assertEqual(val[2,1,2,0],0.0,"wrong value for (2,1,2,0)")
1779 self.assertEqual(val[2,1,2,1],1.0,"wrong value for (2,1,2,1)")
1780 self.assertEqual(val[2,1,2,2],0.0,"wrong value for (2,1,2,2)")
1781 self.assertEqual(val[2,2,0,0],0.0,"wrong value for (2,2,0,0)")
1782 self.assertEqual(val[2,2,0,1],0.0,"wrong value for (2,2,0,1)")
1783 self.assertEqual(val[2,2,0,2],0.0,"wrong value for (2,2,0,2)")
1784 self.assertEqual(val[2,2,1,0],0.0,"wrong value for (2,2,1,0)")
1785 self.assertEqual(val[2,2,1,1],0.0,"wrong value for (2,2,1,1)")
1786 self.assertEqual(val[2,2,1,2],0.0,"wrong value for (2,2,1,2)")
1787 self.assertEqual(val[2,2,2,0],0.0,"wrong value for (2,2,2,0)")
1788 self.assertEqual(val[2,2,2,1],0.0,"wrong value for (2,2,2,1)")
1789 self.assertEqual(val[2,2,2,2],1.0,"wrong value for (2,2,2,2)")
1790 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1791 def test_identityTensor4_domain(self):
1792 val=identityTensor4(d=self.domain)
1793 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1794 self.assertEqual(val.shape,(self.domain.getDim(),self.domain.getDim(),self.domain.getDim(),self.domain.getDim()),"wrong shape.")
1795 if self.domain.getDim()==2:
1796 self.assertEqual(val[0,0,0,0],1.0,"wrong value for (0,0,0,0)")
1797 self.assertEqual(val[0,0,0,1],0.0,"wrong value for (0,0,0,1)")
1798 self.assertEqual(val[0,0,1,0],0.0,"wrong value for (0,0,1,0)")
1799 self.assertEqual(val[0,0,1,1],0.0,"wrong value for (0,0,1,1)")
1800 self.assertEqual(val[0,1,0,0],0.0,"wrong value for (0,1,0,0)")
1801 self.assertEqual(val[0,1,0,1],1.0,"wrong value for (0,1,0,1)")
1802 self.assertEqual(val[0,1,1,0],0.0,"wrong value for (0,1,1,0)")
1803 self.assertEqual(val[0,1,1,1],0.0,"wrong value for (0,1,1,1)")
1804 self.assertEqual(val[1,0,0,0],0.0,"wrong value for (1,0,0,0)")
1805 self.assertEqual(val[1,0,0,1],0.0,"wrong value for (1,0,0,1)")
1806 self.assertEqual(val[1,0,1,0],1.0,"wrong value for (1,0,1,0)")
1807 self.assertEqual(val[