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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6468 - (hide annotations)
Tue Jan 17 07:35:13 2017 UTC (18 months ago) by jfenwick
File MIME type: text/x-python
File size: 169798 byte(s)
reductions no longer ignore tags with default values

Also fix the tests which depended on broken Lsup
But it's better this way anyway

1 ksteube 1809
2 jfenwick 3981 ##############################################################################
3 ksteube 1312 #
4 jfenwick 5863 # Copyright (c) 2003-2016 by The University of Queensland
5 jfenwick 3981 # http://www.uq.edu.au
6 ksteube 1312 #
7 ksteube 1809 # Primary Business: Queensland, Australia
8 jfenwick 6112 # Licensed under the Apache License, version 2.0
9     # http://www.apache.org/licenses/LICENSE-2.0
10 ksteube 1312 #
11 jfenwick 3981 # Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 jfenwick 4657 # Development 2012-2013 by School of Earth Sciences
13     # Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 jfenwick 3981 #
15     ##############################################################################
16 ksteube 1312
17 sshaw 5706 from __future__ import print_function, division
18    
19 jfenwick 5863 __copyright__="""Copyright (c) 2003-2016 by The University of Queensland
20 jfenwick 3981 http://www.uq.edu.au
21 ksteube 1809 Primary Business: Queensland, Australia"""
22 jfenwick 6112 __license__="""Licensed under the Apache License, version 2.0
23     http://www.apache.org/licenses/LICENSE-2.0"""
24 jfenwick 2344 __url__="https://launchpad.net/escript-finley"
25 ksteube 1809
26 gross 395 """
27     basic tests for util.py
28    
29 jfenwick 2625 :remark: use see `test_util`
30 gross 637
31 jfenwick 2625 :var __author__: name of author
32     :var __copyright__: copyrights
33     :var __license__: licence agreement
34     :var __url__: url entry point on documentation
35     :var __version__: version
36     :var __date__: date of the version
37 gross 395 """
38    
39     __author__="Lutz Gross, l.gross@uq.edu.au"
40    
41 jfenwick 4938 import esys.escriptcore.utestselect as unittest
42 jfenwick 2455 import numpy
43 gross 2415 import os
44 gross 395 from esys.escript import *
45 jfenwick 4003 from esys import escript
46 gross 395
47 caltinay 3349 try:
48     ESCRIPT_WORKDIR=os.environ['ESCRIPT_WORKDIR']
49     except KeyError:
50     ESCRIPT_WORKDIR='.'
51    
52 jfenwick 6450
53     class Test_util_values(unittest.TestCase):
54     """
55 jfenwick 6453 Please do not define tests in this class.
56     The idea is to make it easier to isolate groups of tests, which
57     will be harder if there are tests in the base class
58 jfenwick 6450
59     Sets of values could be generated as follows:
60     def z2(levels, row):
61     if levels==1:
62     v=[]
63     for j in range(row):
64     v.append(random.triangular(-1., 1.0))
65     return tuple(v)
66     else:
67     v=[]
68     for j in range(row):
69     v.append(z2(levels-1,row))
70     return tuple(v)
71    
72     z2(2,2)
73     z2(3,3)
74     z2(4,4)
75    
76     However, some of the larger arrays are modified afterwards to ensure
77     that they contain at least one 0 for NaN checking purposes
78     """
79 jfenwick 6453
80     RES_TOL=1.e-7 # RES_TOLerance to compare results
81     DIFF_TOL=1.e-7 # RES_TOLerance to derivatices
82    
83 jfenwick 6468 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 jfenwick 6450
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 jfenwick 6453 return (1968.4370221151426,)
186 jfenwick 6450 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 jfenwick 6468
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 jfenwick 6450
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 jfenwick 6468 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 jfenwick 6450 def get_array_inputL(self, rank, cplx):
962     z=self.get_python_inputL(rank, cplx)
963     return (numpy.array(z),numpy.array(z))
964 jfenwick 6468
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 jfenwick 6450
971 jfenwick 6468
972 jfenwick 6450 def get_array_input1(self, rank, cplx):
973     z=self.get_python_input1(rank, cplx)
974     return (numpy.array(z),numpy.array(z))
975    
976     def get_array_input2(self, rank, cplx):
977     z=self.get_python_input2(rank, cplx)
978     return (numpy.array(z),numpy.array(z))
979    
980     def get_array_input3(self, rank, cplx):
981     z=self.get_python_input3(rank, cplx)
982     return (numpy.array(z),numpy.array(z))
983 jfenwick 6468
984     def get_array_input4(self, rank, cplx):
985     z=self.get_python_input4(rank, cplx)
986     return (numpy.array(z),numpy.array(z))
987 jfenwick 6450
988     def get_const_inputL(self, rank, fs, cplx):
989     z=self.get_python_inputL(rank, cplx)
990     d=Data(z, fs)
991     return (d, numpy.array(z))
992    
993     def get_const_input1(self, rank, fs, cplx):
994     z=self.get_python_input1(rank, cplx)
995     d=Data(z, fs)
996     return (d, numpy.array(z))
997    
998     def get_const_input2(self, rank, fs, cplx):
999     z=self.get_python_input2(rank, cplx)
1000     d=Data(z, fs)
1001     return (d, numpy.array(z))
1002    
1003     def get_expanded_inputL(self, rank, fs, cplx):
1004     base=self.get_python_inputL(rank, cplx)
1005     x=fs.getX()[0]
1006     mask=whereNegative(x-0.5) # A trick from Lutz Gross' version of tests
1007     r=base*mask+(1-mask)*base
1008     return (r, base)
1009    
1010     def get_expanded_input1(self, rank, fs, cplx):
1011     base=self.get_python_input1(rank, cplx)
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_tagged_inputL(self, rank, fs, cplx):
1018     z=self.get_python_inputL(rank, cplx)
1019 jfenwick 6465 ref=self.get_array_inputL(rank, cplx)[0]
1020 jfenwick 6450 d=Data(z, fs)
1021     d.tag()
1022     return (d, ref)
1023    
1024     def get_tagged_input1(self, rank, fs, cplx):
1025     z=self.get_python_input1(rank, cplx)
1026 jfenwick 6465 ref=self.get_array_input1(rank, cplx)[0]
1027 jfenwick 6450 d=Data(z, fs)
1028     d.tag()
1029     return (d, ref)
1030    
1031     def execute_ce_params(self, pars):
1032     for v in pars:
1033     a=v[0]
1034     op=v[1]
1035     misccheck=v[2]
1036     ref=v[3]
1037     oraclecheck=v[4]
1038     description=v[5]
1039     res=eval(op)
1040     if misccheck is not None:
1041 jfenwick 6458 miscres=eval(misccheck)
1042     if not miscres:
1043 jfenwick 6453 print("Failed check:"+misccheck)
1044     print(type(a))
1045     print(" vs ")
1046     print(type(res))
1047     print(" values:")
1048     print(a)
1049     print(res)
1050 jfenwick 6458 self.assertTrue(miscres,"Failed check for "+description)
1051 jfenwick 6450 oraclevalue=eval(oraclecheck)
1052 jfenwick 6458 oracleres=Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue)
1053     if not oracleres:
1054     print("Wrong result:"+oraclecheck)
1055 jfenwick 6462 print(type(res))
1056 jfenwick 6458 print(" vs ")
1057 jfenwick 6462 print(type(oraclevalue))
1058 jfenwick 6458 print(" values:")
1059 jfenwick 6462 print(res)
1060     print(" vs ")
1061     print(oraclevalue)
1062 jfenwick 6458 self.assertTrue(oracleres,"wrong result for "+description)
1063 jfenwick 6450
1064     def execute_ce_throws(self, pars):
1065     for v in pars:
1066     a=v[0]
1067     op=v[1]
1068     misccheck=v[2]
1069     ref=v[3]
1070     oraclecheck=v[4]
1071     description=v[5]
1072 jfenwick 6459 expected_exceptions=v[6]
1073     if expected_exceptions is None:
1074     expected_exceptions=(TypeError, RuntimeError) # These are used for unsupported complex
1075     with self.assertRaises(Exception) as err:
1076 jfenwick 6457 res=eval(op)
1077     # unfortunately, we don't return a single exception type in this case
1078 jfenwick 6459 self.assertTrue(type(err.exception) in expected_exceptions, "Exception was raised but it was of unexpected type ("+str(type(err.exception))+")")
1079 jfenwick 6450
1080     def execute_t_params(self, pars):
1081     for v in pars:
1082     description=v[0]
1083     a=v[1]
1084     tagcount=1
1085 jfenwick 6459 for step in v[3:]:
1086 jfenwick 6450 a.setTaggedValue(tagcount, step[0])
1087     op=step[1]
1088     misccheck=step[2]
1089     ref=step[3]
1090     oraclecheck=step[4]
1091     res=eval(op)
1092     if misccheck is not None:
1093     self.assertTrue(eval(misccheck), "Check failed for "+description+" checking "+misccheck)
1094     if oraclecheck is not None:
1095     oraclevalue=eval(oraclecheck)
1096     else:
1097     oraclevalue=ref
1098 jfenwick 6453 if not Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue):
1099     print(v)
1100     print(" This step ")
1101     print(step)
1102     print("Failed comparison:")
1103     print(res)
1104     print(" vs ")
1105     print(oraclevalue)
1106     print(" a= ")
1107     print(a)
1108     print(" ref== ")
1109     print(ref)
1110     print(" oraclecheck= ")
1111     print(oraclecheck)
1112 jfenwick 6450 self.assertTrue(Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue),"wrong result for "+description+" for tag "+str(tagcount))
1113     tagcount+=1
1114    
1115    
1116     def execute_t_throws(self, pars):
1117     for v in pars:
1118     description=v[0]
1119     a=v[1]
1120     tagcount=1
1121 jfenwick 6459 expected_exceptions=v[2]
1122     if expected_exceptions is None:
1123     expected_exceptions=(TypeError, RuntimeError) # These are used for unsupported complex
1124     for step in v[3:]:
1125 jfenwick 6450 a.setTaggedValue(tagcount, step[0])
1126     op=step[1]
1127     misccheck=step[2]
1128     ref=step[3]
1129     oraclecheck=step[4]
1130 jfenwick 6459 with self.assertRaises(Exception) as err:
1131 jfenwick 6457 res=eval(op)
1132 jfenwick 6459 self.assertTrue(type(err.exception) in expected_exceptions, "Exception was raised but it was of unexpected type ("+str(type(err.exception))+")")
1133 jfenwick 6450 tagcount+=1
1134    
1135 jfenwick 6468 def generate_operation_test_batch(self, supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans=None, no_scalars=False, minrank=0, maxrank=4,
1136 jfenwick 6459 expect_raise_on_ranks=None, expected_exceptions=None):
1137 jfenwick 6450 """
1138     supportcplx is a boolean indicating whether complex operations should be checked for values (True)
1139     or tested to see if they raise (False)
1140     opstring is a string of the operation to be performed (in terms of argument a) eg "Lsup(a)"
1141     misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1142     opname is a string used to describe the operation being tested eg "inf"
1143     update1 and update2 are strings giving code used to update a variable rmerge to
1144     account for tag additions for tagged data.
1145     eg: update1="r2.min()"
1146     update2="min(rmerge, r3.min())"
1147     would result in rmerge=eval(update1) running after the first tag is calculatedand
1148     rmerge=eval(update2) running after the second
1149     """
1150 jfenwick 6468 self.generate_operation_test_batch_driver(supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans, no_scalars, minrank, maxrank,
1151     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)
1152    
1153     def generate_operation_test_batch_driver(self, supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans=None, no_scalars=False, minrank=0, maxrank=4,
1154     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):
1155     """
1156     supportcplx is a boolean indicating whether complex operations should be checked for values (True)
1157     or tested to see if they raise (False)
1158     opstring is a string of the operation to be performed (in terms of argument a) eg "Lsup(a)"
1159     misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1160     opname is a string used to describe the operation being tested eg "inf"
1161     update1 and update2 are strings giving code used to update a variable rmerge to
1162     account for tag additions for tagged data.
1163     eg: update1="r2.min()"
1164     update2="min(rmerge, r3.min())"
1165     would result in rmerge=eval(update1) running after the first tag is calculatedand
1166     rmerge=eval(update2) running after the second
1167     """
1168 jfenwick 6450 if input_trans is None:
1169     input_trans=lambda x: x
1170 jfenwick 6459 if expect_raise_on_ranks is None:
1171     expect_raise_on_ranks=()
1172 jfenwick 6450 pars=[]
1173     epars=[] # operations which should throw
1174 jfenwick 6464 if not no_scalars:
1175 jfenwick 6468 (f1,f2)=inp_scalar1(False)
1176 jfenwick 6453 f1=input_trans(f1)
1177     f2=input_trans(f2)
1178 jfenwick 6459 pars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - scalar", expected_exceptions))
1179 jfenwick 6450 if supportcplx:
1180 jfenwick 6468 (f1,f2)=inp_scalar1(True)
1181 jfenwick 6453 f1=input_trans(f1)
1182     f2=input_trans(f2)
1183 jfenwick 6459 pars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - complex scalar",expected_exceptions))
1184 jfenwick 6450 else:
1185 jfenwick 6468 (f1,f2)=inp_scalar1(True)
1186 jfenwick 6453 f1=input_trans(f1)
1187     f2=input_trans(f2)
1188 jfenwick 6459 epars.append((f1, opstring, misccheck, numpy.array(f2), oraclecheck, opname+" - complex scalar", expected_exceptions))
1189 jfenwick 6457 for c in (False, True):
1190 jfenwick 6450 if c:
1191     cs="complex "
1192     else:
1193     cs=""
1194 jfenwick 6457 for rank in range(minrank, maxrank+1):
1195 jfenwick 6459 dest=pars
1196     if rank in expect_raise_on_ranks or (c and not supportcplx):
1197     dest=epars
1198 jfenwick 6464 if not no_scalars:
1199 jfenwick 6468 (a, r)=inp_array1(rank, c)
1200 jfenwick 6453 a=input_trans(a)
1201     r=input_trans(r)
1202 jfenwick 6459 p=(a, opstring, misccheck, numpy.array(r), oraclecheck, opname+" - "+cs+"array rank "+str(rank), expected_exceptions)
1203 jfenwick 6450 dest.append(p)
1204 jfenwick 6468 (a, r)=inp_const1(rank, self.functionspace, c)
1205 jfenwick 6453 a=input_trans(a)
1206     r=input_trans(numpy.array(r))
1207 jfenwick 6459 p=(a, opstring, misccheck, r, oraclecheck, opname+" - "+cs+"Constant Data rank "+str(rank), expected_exceptions)
1208 jfenwick 6450 dest.append(p)
1209 jfenwick 6468 (a, r)=inp_expanded1(rank, self.functionspace, c)
1210 jfenwick 6453 a=input_trans(a)
1211     r=input_trans(numpy.array(r))
1212 jfenwick 6459 p=(a, opstring, misccheck, r, oraclecheck, opname+" - "+cs+"Expanded Data rank "+str(rank), expected_exceptions)
1213 jfenwick 6450 dest.append(p)
1214     self.execute_ce_params(pars)
1215     self.execute_ce_throws(epars)
1216     del pars
1217     del epars
1218     tpars=[] # tagged versions
1219     epars=[]
1220 jfenwick 6457 for c in (False, True):
1221 jfenwick 6450 if c:
1222     cs="complex "
1223     else:
1224     cs=""
1225 jfenwick 6457 for rank in range(minrank, maxrank+1):
1226 jfenwick 6459 dest=tpars
1227     if rank in expect_raise_on_ranks or (c and not supportcplx):
1228     dest=epars
1229 jfenwick 6450 test=[opname+" - "+cs+"tagged rank "+str(rank),]
1230 jfenwick 6468 (a, r)=inp_tagged1(rank, self.functionspace, c)
1231 jfenwick 6453 a=input_trans(a)
1232     r=input_trans(numpy.array(r))
1233     test.append(a)
1234 jfenwick 6459 test.append(expected_exceptions)
1235 jfenwick 6450 # arguments are new tagged value, operation, extra check, reference_value, reference_check
1236 jfenwick 6468 (t2, r2)=inp_array2(rank, c)
1237 jfenwick 6453 t2=input_trans(t2)
1238     r2=input_trans(numpy.array(r2))
1239 jfenwick 6450 rmerge=eval(update1)
1240 jfenwick 6453 test.append((t2, opstring, misccheck, rmerge, None,))
1241 jfenwick 6450 dest.append(test)
1242     self.execute_t_params(tpars)
1243 jfenwick 6468 self.execute_t_throws(epars)
1244 jfenwick 6450
1245    
1246 jfenwick 6468 def generate_operation_test_batch(self, supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans=None, no_scalars=False, minrank=0, maxrank=4,
1247     expect_raise_on_ranks=None, expected_exceptions=None):
1248 jfenwick 6450 """
1249     supportcplx is a boolean indicating whether complex operations should be checked for values (True)
1250     or tested to see if they raise (False)
1251     opstring is a string of the operation to be performed (in terms of argument a) eg "Lsup(a)"
1252     misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1253     opname is a string used to describe the operation being tested eg "inf"
1254     update1 and update2 are strings giving code used to update a variable rmerge to
1255     account for tag additions for tagged data.
1256     eg: update1="r2.min()"
1257     update2="min(rmerge, r3.min())"
1258     would result in rmerge=eval(update1) running after the first tag is calculatedand
1259     rmerge=eval(update2) running after the second
1260     """
1261 jfenwick 6468 self.generate_operation_test_batch_driver(supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans=input_trans, no_scalars=no_scalars, minrank=minrank, maxrank=maxrank,
1262     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)
1263    
1264    
1265     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):
1266     """
1267     Uses the same logic as generate_operation_test_batch but uses larger values.
1268     supportcplx is a boolean indicating whether complex operations should be checked for values (True)
1269     or tested to see if they raise (False)
1270     opstring is a string of the operation to be performed (in terms of argument a) eg "Lsup(a)"
1271     misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1272     opname is a string used to describe the operation being tested eg "inf"
1273     update1 and update2 are strings giving code used to update a variable rmerge to
1274     account for tag additions for tagged data.
1275     eg: update1="r2.min()"
1276     update2="min(rmerge, r3.min())"
1277     would result in rmerge=eval(update1) running after the first tag is calculatedand
1278     rmerge=eval(update2) running after the second
1279     """
1280     self.generate_operation_test_batch_driver(supportcplx, opstring, misccheck, oraclecheck, opname, update1, input_trans, no_scalars, minrank, maxrank,
1281     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)
1282    
1283     def execute_binary_params(self, pars):
1284     for v in pars:
1285     a=v[0]
1286     b=v[1]
1287     op=v[2]
1288     misccheck=v[3]
1289     refa=v[4]
1290     refb=v[5]
1291     oraclecheck=v[6]
1292     description=v[7]
1293     res=eval(op)
1294     if misccheck is not None:
1295     miscres=eval(misccheck)
1296     if not miscres:
1297     print("Failed check:"+misccheck)
1298     print(type(a))
1299     print(" , ")
1300     print(type(b))
1301     print(" vs ")
1302     print(type(res))
1303     print(" values:")
1304     print(a)
1305     print(" , ")
1306     print(b)
1307     print(res)
1308     self.assertTrue(miscres,"Failed check for "+description)
1309     oraclevalue=eval(oraclecheck)
1310     oracleres=Lsup(res-oraclevalue)<=self.RES_TOL*Lsup(oraclevalue)
1311     if not oracleres:
1312     print("Wrong result:"+oraclecheck)
1313     print(type(res))
1314     print(" vs ")
1315     print(type(oraclevalue))
1316     print(" values:")
1317     print(res)
1318     print(" vs ")
1319     print(oraclevalue)
1320     self.assertTrue(oracleres,"wrong result for "+description)
1321    
1322    
1323    
1324     def generate_binary_operation_test_batch_large(self, opstring, misccheck, oraclecheck, opname, input_trans=None, minrank=0, maxrank=4):
1325     """
1326     Generates a set of tests for binary operations.
1327     It is similar to the unary versions but with some unneeded options removed.
1328     For example, all operations in this type should accept complex arguments.
1329     opstring is a string of the operation to be performed (in terms of arguments a and b) eg "inner(a,b)"
1330     misccheck is a string giving a check to be run after the operation eg "isinstance(res,float)"
1331     opname is a string used to describe the operation being tested eg "inner"
1332     update1 is a string giving code used to update a variable rmerge to
1333     account for tag additions for tagged data.
1334     eg: update1="r2.min()"
1335     would result in rmerge=eval(update1) running after the first tag is calculated
1336     """
1337 jfenwick 6450 if input_trans is None:
1338     input_trans=lambda x: x
1339     pars=[]
1340 jfenwick 6468 for ac in (False, True):
1341     for bc in (False, True):
1342     astr="real" if ac else "complex"
1343     bstr="real" if bc else "complex"
1344     aargset=[]
1345     bargset=[]
1346     for atype in "SACTE": # Scalar/Array/Constant/Tagged/Expanded
1347     aargs=[]
1348     if atype=='S':
1349     aargs=((self.get_scalar_input1(ac),astr+' scalar'),)
1350     elif atype=='A':
1351     for r in range(minrank, maxrank+1):
1352     aargs.append((self.get_array_input1(r,ac),astr+' array rank '+str(r)))
1353     elif atype=='C':
1354     for r in range(minrank, maxrank+1):
1355     aargs.append((self.get_const_input1(r, self.functionspace, ac), astr+' Constant rank '+str(r)))
1356     elif atype=='T':
1357     for r in range(minrank, maxrank+1):
1358     aargs.append((self.get_tagged_input1(r, self.functionspace, ac),astr+' Tagged rank '+str(r)))
1359     elif atype=='E':
1360     for r in range(minrank, maxrank+1):
1361     aargs.append((self.get_expanded_input1(r,self.functionspace, ac),astr+' Expanded rank '+str(r)))
1362     aargset.append(aargs)
1363     for atype in "SACTE": # Scalar/Array/Constant/Tagged/Expanded
1364     bargs=[]
1365     if atype=='S':
1366     bargs=((self.get_scalar_input2(ac),bstr+' scalar'),)
1367     elif atype=='A':
1368     for r in range(minrank, maxrank+1):
1369     bargs.append((self.get_array_input2(r,ac),bstr+' array rank '+str(r)))
1370     elif atype=='C':
1371     for r in range(minrank, maxrank+1):
1372     bargs.append((self.get_const_input2(r, self.functionspace, ac),bstr+' Constant rank '+str(r)))
1373     elif atype=='T':
1374     for r in range(minrank, maxrank+1):
1375     bargs.append((self.get_tagged_input2(r, self.functionspace, ac), bstr+' Tagged rank '+str(r)))
1376     elif atype=='E':
1377     for r in range(minrank, maxrank+1):
1378     bargs.append((self.get_expanded_input2(r, self.functionspace, ac),bstr+' Expanded rank '+str(r)))
1379     bargset.append(bargs)
1380     # now we have a complete set of possible args
1381     for aarg in aargset:
1382     for barg in bargset:
1383     p=(aarg[0][0], barg[0][0], opstring, misccheck,
1384     numpy.array(aarg[0][1]), numpy.array(barg[0][1]),
1385     oraclecheck, opname+' '+aarg[1][0]+'/'+barg[1][0])
1386     pars.append(p)
1387     self.execute_binary_params(pars)
1388 jfenwick 6450
1389 jfenwick 6453 class Test_util_base(Test_util_values):
1390 gross 395 """
1391     basic tests on util.py
1392     """
1393     #=========================================================
1394 gross 2415 # File writer
1395     #=========================================================
1396 jfenwick 5419 def setup(self):
1397     self.workdir=ESCRIPT_WORKDIR
1398    
1399 gross 2415 def __checkContent(self,fn,ref_cont):
1400     cont=open(fn,'r').readlines()
1401 jfenwick 3551 self.assertTrue(len(cont)==len(ref_cont),"wrong number of records")
1402 jfenwick 3771 for i in range(len(cont)):
1403 jfenwick 3551 self.assertTrue(cont[i].strip()==ref_cont[i],"wrong records %s"%i)
1404 gross 2415 def test_FileWriter_W(self):
1405 jfenwick 5419 fn=os.path.join(self.workdir, "filewriter_w.txt")
1406 jfenwick 3551 self.assertRaises(IOError,FileWriter,fn="",append=False)
1407 gross 2415 f=FileWriter(fn,append=False)
1408 jfenwick 3551 self.assertTrue(f.name==fn, "wrong file name.")
1409     self.assertTrue(f.mode=='w', "wrong mode")
1410     self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1411     self.assertTrue(not f.closed,"file shuold not be closed.")
1412 gross 2415 f.write("line1"+f.newlines)
1413     f.flush()
1414     self.__checkContent(fn,["line1"])
1415     f.writelines(["line2"+f.newlines, "line3"+f.newlines])
1416     f.close()
1417 jfenwick 3551 self.assertTrue(f.closed,"file shuold be closed.")
1418 gross 2415 self.__checkContent(fn,["line1", "line2", "line3"])
1419 caltinay 5101 MPIBarrierWorld()
1420 caltinay 4448 if getMPIRankWorld()==0: os.unlink(fn)
1421 gross 2415
1422     def test_FileWriter_A(self):
1423 jfenwick 5419 fn=os.path.join(self.workdir, "filewriter_a.txt")
1424 gross 2415 if getMPIRankWorld()==0: open(fn,'w').write("line1"+os.linesep)
1425 jfenwick 3551 self.assertRaises(IOError,FileWriter,fn="",append=True)
1426 gross 2415 f=FileWriter(fn,append=True)
1427 jfenwick 3551 self.assertTrue(f.name==fn, "wrong file name.")
1428     self.assertTrue(f.mode=='a', "wrong mode")
1429     self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1430     self.assertTrue(not f.closed,"file shuold not be closed.")
1431 gross 2415 f.write("line2"+f.newlines)
1432     f.flush()
1433     self.__checkContent(fn,["line1", "line2"])
1434     f.writelines(["line3"+f.newlines, "line4"+f.newlines])
1435     f.close()
1436 jfenwick 3551 self.assertTrue(f.closed,"file shuold be closed.")
1437 gross 2415 self.__checkContent(fn,["line1", "line2", "line3", "line4"])
1438 caltinay 5101 MPIBarrierWorld()
1439 caltinay 4448 if getMPIRankWorld()==0: os.unlink(fn)
1440 gross 2415
1441     def test_FileWriter_A_loc(self):
1442 jfenwick 5419 fn=os.path.join(self.workdir, "filewriter_a_loc.txt")
1443 gross 2415 if getMPIRankWorld()>0:
1444     fn2=fn+".%s"%getMPIRankWorld()
1445     else:
1446     fn2=fn
1447     open(fn2,'w').write("line1"+os.linesep)
1448 jfenwick 3551 self.assertRaises(IOError,FileWriter,fn="",append=True, createLocalFiles=True)
1449 gross 2415 f=FileWriter(fn,append=True,createLocalFiles=True)
1450 jfenwick 3551 self.assertTrue(f.name==fn, "wrong file name.")
1451     self.assertTrue(f.mode=='a', "wrong mode")
1452     self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1453     self.assertTrue(not f.closed,"file shuold not be closed.")
1454 gross 2415 f.write("line2"+f.newlines)
1455     f.flush()
1456     self.__checkContent(fn2,["line1", "line2"])
1457     f.writelines(["line3"+f.newlines, "line4"+f.newlines])
1458     f.close()
1459 jfenwick 3551 self.assertTrue(f.closed,"file shuold be closed.")
1460 gross 2415 self.__checkContent(fn2,["line1", "line2", "line3", "line4"])
1461 caltinay 4447 os.unlink(fn2)
1462 gross 2415
1463     def test_FileWriter_W_loc(self):
1464 jfenwick 5419 fn=os.path.join(self.workdir, "filewriter_w_loc.txt")
1465 gross 2415 if getMPIRankWorld()>0:
1466     fn2=fn+".%s"%getMPIRankWorld()
1467     else:
1468     fn2=fn
1469 jfenwick 3551 self.assertRaises(IOError,FileWriter,fn="",append=True, createLocalFiles=True)
1470 gross 2415 f=FileWriter(fn,append=False,createLocalFiles=True)
1471 jfenwick 3551 self.assertTrue(f.name==fn, "wrong file name.")
1472     self.assertTrue(f.mode=='w', "wrong mode")
1473     self.assertTrue(f.newlines==os.linesep, "wrong line seps")
1474     self.assertTrue(not f.closed,"file shuold not be closed.")
1475 gross 2415 f.write("line1"+f.newlines)
1476     f.flush()
1477     self.__checkContent(fn2,["line1"])
1478     f.writelines(["line2"+f.newlines, "line3"+f.newlines])
1479     f.close()
1480 jfenwick 3551 self.assertTrue(f.closed,"file shuold be closed.")
1481 gross 2415 self.__checkContent(fn2,["line1", "line2", "line3"])
1482 caltinay 4447 os.unlink(fn2)
1483    
1484 gross 2415 #=========================================================
1485 gross 395 # constants
1486     #=========================================================
1487     #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1488     def test_kronecker_1(self):
1489     val=kronecker(d=1)
1490 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1491     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1492 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1493     def test_kronecker_2(self):
1494     val=kronecker(d=2)
1495 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1496     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1497     self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1498     self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1499     self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1500 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1501     def test_kronecker_3(self):
1502     val=kronecker(d=3)
1503 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1504     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1505     self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1506     self.assertEqual(val[0,2],0.0,"wrong value for (0,2)")
1507     self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1508     self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1509     self.assertEqual(val[1,2],0.0,"wrong value for (1,2)")
1510     self.assertEqual(val[2,0],0.0,"wrong value for (2,0)")
1511     self.assertEqual(val[2,1],0.0,"wrong value for (2,1)")
1512     self.assertEqual(val[2,2],1.0,"wrong value for (2,2)")
1513 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1514     def test_kronecker_domain(self):
1515 gross 442 val=kronecker(d=self.domain)
1516 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1517     self.assertEqual(val.shape,(self.domain.getDim(),self.domain.getDim()),"wrong shape.")
1518 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1519 gross 442 def test_kronecker_functionspace(self):
1520     val=kronecker(d=self.functionspace)
1521 jfenwick 3551 self.assertTrue(isinstance(val,escript.Data),"wrong type of result.")
1522     self.assertEqual(val.getShape(),(self.functionspace.getDim(),self.functionspace.getDim()),"wrong shape.")
1523 gross 442 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1524 gross 395 def test_identityTensor_1(self):
1525     val=identityTensor(d=1)
1526 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1527     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1528 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1529     def test_identityTensor_2(self):
1530     val=identityTensor(d=2)
1531 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1532     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1533     self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1534     self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1535     self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1536 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1537     def test_identityTensor_3(self):
1538     val=identityTensor(d=3)
1539 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1540     self.assertEqual(val[0,0],1.0,"wrong value for (0,0)")
1541     self.assertEqual(val[0,1],0.0,"wrong value for (0,1)")
1542     self.assertEqual(val[0,2],0.0,"wrong value for (0,2)")
1543     self.assertEqual(val[1,0],0.0,"wrong value for (1,0)")
1544     self.assertEqual(val[1,1],1.0,"wrong value for (1,1)")
1545     self.assertEqual(val[1,2],0.0,"wrong value for (1,2)")
1546     self.assertEqual(val[2,0],0.0,"wrong value for (2,0)")
1547     self.assertEqual(val[2,1],0.0,"wrong value for (2,1)")
1548     self.assertEqual(val[2,2],1.0,"wrong value for (2,2)")
1549 gross 395 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1550     def test_identityTensor_domain(self):
1551 gross 442 val=identityTensor(d=self.domain)
1552 jfenwick 3551 self.assertTrue(isinstance(val,numpy.ndarray),"wrong type of result.")
1553     self.assertEqual(val.shape,(self.domain.getDim(),self.domain.getDim()),"wrong shape.")
1554 gross 442 if self.domain.getDim()==2:
1555 jfenwick 3551 self.assertEqual(val[0,0],1.0