diff --git a/py3gpp/__init__.py b/py3gpp/__init__.py index 5a524f2..277da4c 100644 --- a/py3gpp/__init__.py +++ b/py3gpp/__init__.py @@ -42,6 +42,8 @@ from .nrDLSCHInfo import nrDLSCHInfo from .nrPDSCHIndices import nrPDSCHIndices from .nrPDSCHMCSTables import nrPDSCHMCSTables +from .nrTransformPrecode import nrTransformPrecode +from .nrTransformDeprecode import nrTransformDeprecode from .configs.nrCarrierConfig import nrCarrierConfig from .configs.nrNumerologyConfig import nrNumerologyConfig diff --git a/py3gpp/nrTransformDeprecode.py b/py3gpp/nrTransformDeprecode.py new file mode 100644 index 0000000..c03c73d --- /dev/null +++ b/py3gpp/nrTransformDeprecode.py @@ -0,0 +1,6 @@ +import numpy as np + +def nrTransformDeprecode(modSym, mrb): + mrb = int(mrb) + assert modSym.shape[0] % (mrb * 12) == 0, "input number of rows must be an integer multiple of mrb * 12" + return (np.fft.ifft(modSym.reshape(int(modSym.shape[0] / (mrb * 12)), mrb * 12)) * np.sqrt(mrb * 12)).ravel() diff --git a/py3gpp/nrTransformPrecode.py b/py3gpp/nrTransformPrecode.py new file mode 100644 index 0000000..475ff22 --- /dev/null +++ b/py3gpp/nrTransformPrecode.py @@ -0,0 +1,6 @@ +import numpy as np + +def nrTransformPrecode(modSym, mrb): + mrb = int(mrb) + assert modSym.shape[0] % (mrb * 12) == 0, "input number of rows must be an integer multiple of mrb * 12" + return (np.fft.fft(modSym.reshape(int(modSym.shape[0] / (mrb * 12)), mrb * 12)) * 1/np.sqrt(mrb * 12)).ravel() diff --git a/tests/test_data/transformPrecode.py b/tests/test_data/transformPrecode.py new file mode 100644 index 0000000..7955d57 --- /dev/null +++ b/tests/test_data/transformPrecode.py @@ -0,0 +1,6 @@ +import numpy as np +import cmath + +cw = [1,1,0,1,1,0,0,1,1,1,0,1,1,0,1,0,0,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,1,1,0,1,1,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,1,1,0,1,1,0,1,0,0,1,1,1,0,1,0,0,0,0,1,0,1,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,0,0,1,1,0,1,1,0,0,0,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,1,1,1,0,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,1,1,1,0,1,0,0,1,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,0,0,1,0,0,1,0,1,1,1,0,1,1,1,1,1,0,0,1,0,0,0,0,1,1,0,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,1,1,0,1,0,1,1,1,1,1,0,0,1,0,0,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,0,1,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,0,1,0,0,1,1,0,1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,1,1,1,0,0,1,1,1,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,1,0,1,1,1,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,1,1,0,1,0,0,1,0,1,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,1,1,0,1,1,1,0] +desired_result_2 = [-0.866025403784439 + 9.06493303673679e-17j,0.0886253458471277 - 0.292749491079059j,-0.144337567297406 - 0.616025403784439j,0.0845509893628814 + 0.0845509893628814j,0.461324865405187 + 0.355662432702594j,-0.0237470898486667 + 0.227871235080598j,0.00000000000000 - 1.44337567297406j,-0.914357290107489 + 0.180377055383265j,-0.116025403784439 + 0.0669872981077807j,-0.323697301100982 - 0.492799279826745j,-0.144337567297407 - 1.11602540378444j,-0.434978016267146 - 0.115498799384804j,-0.288675134594813 + 1.15470053837925j,-0.877300480441941 + 1.08142462567387j,-0.433012701892220 + 1.03867513459481j,0.492799279826745 + 0.492799279826745j,-1.61602540378444 - 0.933012701892220j,0.235071955253854 - 0.439196100485786j,1.15470053837925 - 0.866025403784439j,-0.874317844487325 + 0.0309478100219224j,-1.03867513459481 - 0.644337567297407j,0.901047570290608 - 0.0845509893628814j,-0.433012701892219 - 0.461324865405187j,1.64630288167233 - 0.673176335210009j,-1.44337567297406 + 0.866025403784439j,0.785548770905804 - 0.173176335210009j,0.750000000000000 + 0.355662432702594j,-0.323697301100982 - 1.18972270488542j,-1.51036297108185 - 0.538675134594813j,-0.143320245717717 - 0.469052189978078j,4.53246651836840e-17 - 1.15470053837925j,0.735071955253854 + 0.122699519558059j,-0.644337567297407 + 0.616025403784439j,-0.492799279826745 - 0.373226123957694j,-0.750000000000000 - 0.644337567297407j,-1.37730048044194 - 0.764928044746146j,0.288675134594813 - 0.288675134594813j,-0.996873636310991 + 0.384501200615196j,0.250000000000000 - 0.355662432702594j,0.901047570290608 + 0.0350221665061689j,0.355662432702594 + 1.11602540378444j,0.931995380312530 - 0.319622944616735j,-4.53246651836840e-17 - 0.577350269189626j,0.476252910151333 + 1.08862534584713j,-0.510362971081845 - 0.0386751345948128j,-0.0845509893628814 - 0.781474414421558j,-0.250000000000000 + 0.644337567297407j,-0.411374654152872 - 1.02374708984867j,1.44337567297406 - 1.15470053837925j,-0.934631026821485 - 0.0211114433397122j,-0.577350269189626 - 0.788675134594813j,0.492799279826745 - 0.492799279826745j,0.788675134594813 + 0.577350269189626j,0.198362135033968 + 0.887136847124151j,9.06493303673679e-17 + 0.288675134594813j,0.367464113759731 + 0.0984617125293381j,0.211324865405187 + 0.577350269189626j,-0.492799279826745 + 0.661901258552507j,-0.577350269189626 + 0.211324865405187j,0.0509675328320042 + 0.190213422065475j,-1.44337567297406 - 1.15470053837925j,-0.00874464615257987 + 0.387136847124151j,0.00000000000000 - 0.211324865405187j,0.0845509893628814 - 0.0845509893628813j,-0.788675134594813 + 0.577350269189626j,-2.14173780800803 + 0.478888556660288j,1.15470053837925 - 0.288675134594813j,-1.15613924835454 - 0.309786577934525j,-0.211324865405187 + 0.577350269189626j,-0.0845509893628814 + 1.07014954901637j,9.06493303673679e-17 + 0.788675134594813j,0.160357332573183 + 0.598461712529338j,0.00000000000000 + 1.73205080756888j,0.204124145231932 - 1.33915195024676j,0.366025403784439 - 0.211324865405187j,0.781474414421558 + 0.323697301100982j,0.711324865405187 - 0.500000000000000j,-0.204124145231932 - 0.522655369319036j,-0.288675134594813 - 0.866025403784439j,0.373226123957694 + 0.223796878596352j,0.866025403784439 - 0.500000000000000j,0.204124145231932 + 0.492799279826745j,1.36602540378444 + 0.788675134594813j,0.781474414421558 + 0.223796878596352j,-1.15470053837925 + 0.00000000000000j,-0.204124145231932 + 0.184451411867511j,-0.788675134594813 + 1.36602540378444j,0.373226123957694 - 0.901047570290608j,0.866025403784439 + 0.500000000000000j,0.204124145231931 - 0.632045169060215j,-0.866025403784439 + 0.288675134594813j,0.781474414421557 + 0.930903659782900j,-1.28867513459481 + 0.500000000000000j,-0.204124145231932 + 0.0845509893628814j,0.211324865405187 + 0.366025403784439j,0.373226123957694 + 0.930903659782900j,0.577350269189626 + 0.577350269189626j,-0.975762192971279 + 0.363389757275484j,0.538675134594813 + 0.933012701892220j,1.30929586075447 + 0.204124145231932j,-0.0669872981077808 + 0.538675134594813j,0.0448585331883791 + 0.567513902507416j,-0.288675134594813 - 0.866025403784439j,1.12220880237801 + 0.0200197228100819j,2.01036297108185 + 0.327350269189626j,-0.492799279826744 - 0.373226123957694j,0.0386751345948129 - 0.0669872981077806j,-0.898411923781653 + 1.04064044896974j,4.53246651836840e-17 - 0.577350269189626j,0.398411923781653 + 0.213960511914142j,-0.172649730810374 + 0.433012701892219j,-0.731945591564845 - 0.204124145231932j,0.0103629710818452 + 0.827350269189626j,-0.622208802378005 + 0.00983636668221010j,-1.44337567297406 + 0.866025403784439j,0.455141466811621 - 0.0200197228100818j,0.933012701892219 + 0.0386751345948129j,-0.0845509893628814 - 0.781474414421557j,1.32735026918963 + 0.433012701892219j,0.475762192971279 - 1.04064044896974j,0.00000000000000 - 0.866025403784439j,-0.821588258991662 + 0.399429245361342j,0.144337567297406 - 0.827350269189626j,0.119573155869050 + 0.00000000000000j,-0.221687836487032 + 0.616025403784439j,0.403156612399927 + 0.307677535825205j,1.15470053837925 + 0.866025403784439j,1.70201510312261 + 0.508819045102521j,0.933012701892219 + 0.116025403784439j,-0.288675134594813 + 0.408248290463863j,0.144337567297406 - 0.327350269189626j,-0.706233187341251 - 1.21592582628907j,0.577350269189626 + 0.866025403784439j,1.11026339358648 + 0.100570754638658j,0.721687836487032 - 0.250000000000000j,-0.696923425058676 + 0.00000000000000j,-0.0669872981077807 + 1.61602540378444j,-0.114481477805114 - 0.807677535825206j,0.577350269189626 + 0.288675134594813j,0.586660031472201 - 0.00881904510252081j,-1.22168783648703 + 1.11602540378444j,-0.288675134594813 - 0.408248290463863j,0.721687836487033 + 0.250000000000000j,-1.00509167806394 + 0.715925826289068j,-0.288675134594813 + 0.577350269189626j,0.542749491079059 + 0.732962913144534j,0.105662432702594 - 0.683012701892219j,0.950576393147320 + 1.35882468361118j,0.211324865405187 - 0.288675134594813j,-0.477871235080599 - 0.379409522551260j,-1.15470053837925 + 0.288675134594813j,0.189196100485785 - 0.755618282463571j,1.07735026918963 - 0.788675134594813j,-1.59797099534928 + 0.612372435695795j,-0.394337567297407 - 0.183012701892219j,-0.831424625673872 - 1.45974242769550j,-0.288675134594813 - 1.15470053837925j,-0.831424625673872 - 0.232962913144534j,-0.971687836487032 - 0.394337567297407j,1.35882468361118 + 0.950576393147320j,0.0773502691896257 + 0.211324865405187j,0.189196100485786 - 0.120590477448740j,-0.577350269189626 - 0.866025403784439j,-0.477871235080598 + 0.100917744084319j,-0.788675134594813 - 0.288675134594813j,0.443270456970032 - 0.612372435695795j,-0.471687836487032 + 0.105662432702594j,0.542749491079059 - 0.194958110683749j,0.866025403784439 - 4.53246651836840e-17j,-0.683012701892220 + 0.879936126950895j,-0.500000000000000 + 4.53246651836840e-17j,0.612372435695795 + 0.204124145231932j,-0.500000000000000 + 0.577350269189626j,-0.183012701892219 + 0.563439546023169j,-0.577350269189626 + 0.288675134594813j,0.941831746994740 + 0.125335166067014j,0.866025403784439 - 2.36602540378444j,0.612372435695795 - 0.781474414421558j,0.500000000000000 - 4.53246651836840e-17j,-0.782913124396849 + 0.0335834565308770j,0.866025403784439 + 0.577350269189626j,-0.683012701892219 + 0.0634395460231692j,0.288675134594813 - 0.211324865405187j,-0.612372435695795 - 0.204124145231932j,0.866025403784439 + 0.633974596215562j,-0.183012701892219 + 1.37993612695090j,4.53246651836840e-17 - 0.866025403784439j,0.424193656789699 + 1.24069023771743j,0.500000000000000 + 0.577350269189626j,-0.612372435695795 - 0.373226123957694j,0.288675134594813 + 0.788675134594813j,1.14893852818129 + 0.332441947253562j,-0.577350269189626 + 0.577350269189626j,0.617464113759731 + 0.314878255998461j,-0.933012701892219 - 0.0386751345948130j,0.408248290463863 + 0.577350269189626j,0.644337567297406 - 0.172649730810374j,-0.199032467167996 - 0.185121744001539j,0.00000000000000 + 0.577350269189626j,0.478218224526260 - 1.15104757029061j,-0.144337567297406 - 0.0386751345948128j,-0.169101978725763 - 1.15470053837925j,0.0669872981077808 - 0.538675134594813j,0.0699699340623968 + 0.573697301100982j,0.577350269189626 + 0.577350269189626j,-0.906139248354543 - 0.392228525188087j,1.43301270189222 - 0.404700538379252j,-0.408248290463863 + 0.577350269189626j,-0.144337567297407 - 0.538675134594813j,-0.0896426674268172 - 0.892228525188087j,0.00000000000000 + 0.577350269189626j,-1.34424362831070 + 0.0736973011009817j,-0.355662432702594 + 1.32735026918963j,-0.985598559653489 - 1.15470053837925j,-0.566987298107781 - 1.90470053837925j,-0.935995337846835 - 0.651047570290608j,1.44337567297406 - 0.866025403784439j,0.408248290463863 + 0.408248290463863j,1.81298660734736e-16 - 0.788675134594813j,-0.492799279826744 - 0.373226123957694j,0.788675134594813 - 1.15470053837925j,-0.408248290463863 - 0.408248290463863j,-0.577350269189626 + 0.577350269189626j,-0.196923425058676 + 0.679285334853634j,0.211324865405187 - 9.06493303673679e-17j,-1.07014954901637 - 0.204124145231932j,-9.06493303673679e-17 + 0.211324865405187j,-0.380426844130950 + 1.31227849670909j,0.288675134594813 - 0.288675134594813j,-0.408248290463863 - 0.408248290463863j,-1.57735026918963 - 0.788675134594813j,-0.0845509893628813 - 0.781474414421558j,-0.788675134594813 + 2.26623325918420e-17j,0.408248290463863 + 0.408248290463863j,4.53246651836840e-17 + 0.577350269189626j,0.619573155869050 + 0.898064934335992j,-0.211324865405187 - 1.15470053837925j,-0.661901258552507 + 0.204124145231932j,0.422649730810374 + 0.211324865405187j,-1.19692342505868 - 1.73492822751946j,-0.577350269189626 - 0.866025403784439j,0.488054591208470 + 0.259836366682210j,-0.500000000000000 - 0.788675134594813j,-0.781474414421557 - 1.76707297407505j,-0.183012701892219 - 0.0283121635129678j,0.283930445976539 - 0.0360394880858582j,-1.44337567297407 - 4.53246651836840e-17j,-0.423176335210009 + 0.444287778549721j,0.971687836487032 + 1.18301270189222j,0.443270456970032 - 0.373226123957694j,0.500000000000000 + 0.211324865405187j,-0.219052189978078 - 0.668084657146073j,0.00000000000000 + 0.288675134594813j,-0.776729725803283 + 0.817513902507416j,0.788675134594813 - 0.866025403784439j,-0.373226123957694 - 0.542328102683457j,0.471687836487032 - 0.316987298107781j,-0.572605580571351 + 0.113389757275484j,0.866025403784439 + 0.577350269189626j,0.134501200615196 - 0.521638047739347j,-0.683012701892219 + 1.47168783648703j,-1.59797099534928 - 0.781474414421557j,-0.211324865405187 - 0.866025403784439j,-0.0696229446167353 - 0.409265612043553j,-0.288675134594813 + 0.866025403784439j,-0.196396820659041 - 0.944287778549722j,0.788675134594813 + 0.211324865405187j,0.816496580927726 + 1.97119711930698j,-0.183012701892219 - 0.105662432702594j,1.41597561503675 + 1.16808465714607j,0.288675134594813 - 0.288675134594813j,-0.400520965890973 + 1.52462068369396j,0.394337567297406 + 0.683012701892219j,0.00000000000000 - 0.577350269189626j,-0.211324865405187 - 0.788675134594813j,1.62009976026869 + 0.820496538462032j,0.866025403784439 - 0.288675134594813j,0.0624222244434798 + 0.0216380477393470j,-1.07735026918963 - 0.288675134594813j,-0.816496580927726 + 0.338203957451526j,-0.105662432702594 + 0.183012701892219j,0.450049788747685 + 0.909265612043553j,0.288675134594813 - 0.288675134594813j,0.266546369675411 - 0.447270414504337j,-0.683012701892219 + 0.394337567297406j,0.00000000000000 - 0.577350269189626j,-0.0773502691896257 - 0.288675134594813j,0.245925643515754 - 0.743146269272406j,-1.44337567297406 - 0.288675134594813j,0.877300480441941 - 0.384501200615196j,-0.616025403784439 - 0.144337567297406j,0.901047570290608 - 0.204124145231932j,-0.433012701892220 + 1.03867513459481j,-0.235071955253854 + 0.319622944616735j,0.00000000000000 + 0.577350269189626j,0.476252910151333 + 0.757727324572891j,-0.510362971081845 + 0.827350269189626j,0.323697301100982 + 0.781474414421557j,-1.11602540378444 - 0.144337567297406j,-0.411374654152872 + 0.461851469804822j,0.866025403784439 + 0.288675134594813j,-0.0886253458471276 + 0.173176335210009j,-0.750000000000000 - 0.221687836487032j,-0.323697301100982 + 0.204124145231931j,-1.51036297108185 + 0.327350269189626j,0.0237470898486669 + 0.469052189978078j,1.73205080756888 - 0.577350269189626j,0.735071955253854 + 0.608298079211548j,-0.433012701892219 - 0.461324865405187j,-0.901047570290608 + 0.373226123957694j,0.750000000000000 - 1.22168783648703j,-1.37730048044194 - 0.0958260660203833j,0.00000000000000 + 0.288675134594813j,-1.29274949107906 - 0.238054591208470j,0.327350269189626 + 0.0669872981077806j,-0.901047570290608 - 0.0845509893628814j,-0.855662432702594 + 1.40470053837925j,1.22787123508060 - 0.533930445976539j,-0.288675134594813 - 0.577350269189626j,-0.847444390949649 - 0.192849068574430j,0.433012701892219 - 0.327350269189626j,-0.492799279826745 - 0.0845509893628814j,0.827350269189626 - 0.933012701892219j,1.48967291613774 - 0.896973213806361j,0.577350269189626 + 0.288675134594813j,0.0814246256738724 + 1.02672972580328j,-0.172649730810374 + 0.355662432702594j,0.323697301100982 - 0.492799279826745j,0.433012701892220 - 0.827350269189626j,0.560803899514215 + 0.322605580571351j,-0.288675134594813 + 0.00000000000000j,0.636119525544462 - 0.750526604399635j,1.14433756729741 + 0.904700538379252j,-0.0845509893628814 - 0.492799279826745j,1.32735026918963 - 0.644337567297407j,-0.700997781542923 - 1.04640245916770j,-0.288675134594813 + 0.288675134594813j,-0.754600960883882 + 0.139245889233471j,1.00000000000000 + 0.500000000000000j,1.44337567297406 + 1.27427369424830j,-1.28867513459481 - 0.577350269189626j,-0.529856089492292 - 0.269002401230393j,0.866025403784439 - 0.288675134594813j,-0.288675134594813 - 0.408248290463863j,0.0773502691896258 - 0.211324865405187j,-0.288675134594813 - 0.119573155869050j,-1.00000000000000 - 0.500000000000000j,-0.288675134594813 + 0.408248290463863j,-0.288675134594813 + 0.288675134594813j,1.17725069169426 + 0.438104379956155j,0.366025403784439 - 0.288675134594813j,1.44337567297406 + 0.457777113320576j,1.07735026918963 + 0.788675134594813j,-1.04749417969733 + 0.846352670420018j,0.866025403784439 + 0.866025403784439j,-0.288675134594813 + 0.408248290463863j,0.711324865405187 - 0.577350269189626j,-0.288675134594813 + 0.696923425058676j,1.36602540378444 - 0.288675134594813j,-0.288675134594813 - 0.408248290463863j,0.288675134594813 + 1.44337567297406j,0.338625345847128 - 0.797841169142995j,1.47168783648703 - 0.605662432702594j,0.781474414421558 - 0.492799279826745j,-1.81298660734736e-16 + 1.81298660734736e-16j,-0.273747089848667 + 0.314531266552800j,0.00000000000000 + 0.577350269189626j,0.423176335210009 - 0.222779557016663j,0.654700538379252 + 0.711324865405187j,-1.18972270488542 - 0.323697301100982j,-0.0283121635129680 + 0.894337567297407j,0.219052189978078 + 0.706089459606858j,-0.866025403784439 + 0.866025403784439j,-0.627300480441941 + 0.875191438332621j,0.183012701892219 - 0.105662432702594j,0.373226123957694 - 0.0845509893628814j,1.65470053837925 - 1.28867513459481j,-0.0149280447461460 + 0.762819002636826j,-0.577350269189626 + 0.577350269189626j,-0.134501200615196 + 0.145429287827037j,4.53246651836840e-17 - 9.06493303673679e-17j,0.0350221665061689 + 0.901047570290608j,0.683012701892220 + 0.394337567297406j,0.0696229446167353 - 1.78343972879648j,-1.44337567297406 + 0.288675134594813j,0.113389757275484 - 0.226252910151333j,-0.211324865405187 + 0.577350269189626j,-0.119573155869050 + 0.288675134594813j,0.183012701892219 - 0.316987298107781j,0.817513902507416 + 0.161374654152872j,-0.288675134594813 + 0.866025403784439j,0.817513902507416 + 0.838625345847128j,-0.394337567297407 - 1.26036297108185j,-0.119573155869050 + 1.44337567297406j,0.788675134594813 + 0.577350269189626j,0.113389757275484 - 0.773747089848667j,0.866025403784439 - 0.866025403784439j,-0.0360394880858583 - 0.485071955253854j,1.07735026918963 - 0.500000000000000j,0.696923425058676 + 0.288675134594813j,0.105662432702594 - 0.760362971081845j,0.259836366682210 + 1.12730048044194j,-1.44337567297406 - 0.288675134594813j,0.259836366682210 - 0.127300480441941j,0.683012701892219 + 1.18301270189222j,0.696923425058676 + 1.44337567297406j,0.0773502691896257 + 0.500000000000000j,-0.0360394880858583 - 0.514928044746146j,0.577350269189626 + 0.866025403784439j,-0.0536031793409589 + 0.200049788747685j,-1.11602540378444 - 0.0669872981077807j,0.781474414421558 - 0.204124145231932j,1.51036297108185 - 0.116025403784439j,-1.16597561503675 + 0.312422224443480j,-0.288675134594813 - 0.577350269189626j,1.02672972580328 + 1.37009976026869j,1.01036297108185 + 0.250000000000000j,0.612372435695795 + 0.612372435695795j,-0.616025403784439 + 0.933012701892220j,0.322605580571351 - 0.150520965890973j,-1.15470053837925 + 0.866025403784439j,-0.312422224443480 + 1.16597561503675j,0.327350269189626 - 0.144337567297406j,0.373226123957694 + 0.204124145231932j,1.01036297108185 - 0.250000000000000j,-0.200049788747685 + 0.0536031793409590j,0.866025403784439 + 0.00000000000000j,-0.238054591208470 - 0.00407435648424633j,0.510362971081845 - 1.61602540378444j,-0.612372435695795 - 0.612372435695795j,0.827350269189626 - 0.144337567297407j,-0.533930445976539 + 0.516546369675411j,1.44337567297406 + 0.577350269189626j,0.751618324929265 - 0.992799279826745j,-0.288675134594813 + 1.36602540378444j,0.781474414421558 + 0.542328102683457j,-0.0773502691896257 + 4.53246651836840e-17j,-0.881374836926187 + 0.415449010637119j,-1.15470053837925 + 0.288675134594813j,0.373226123957694 + 0.642228525188087j,-0.288675134594813 + 0.211324865405187j,-0.373226123957694 + 0.373226123957694j,-0.288675134594813 + 0.366025403784439j,0.781474414421558 + 0.642228525188087j,0.288675134594813 + 4.53246651836840e-17j,-0.174268055739639 - 0.584550989362882j,1.07735026918963 - 0.577350269189626j,0.373226123957694 + 1.76707297407505j,-0.288675134594813 - 0.788675134594813j,1.45872510611581 + 0.00720072017325564j,0.577350269189626 - 0.866025403784439j,0.781474414421558 - 0.0648782559984610j,-1.07735026918963 + 9.06493303673679e-17j,-0.781474414421558 + 0.781474414421558j,0.0773502691896258 - 0.577350269189626j,0.373226123957694 - 0.0648782559984609j,-0.866025403784439 + 0.866025403784439j,-0.179359733803575 - 0.613042767829823j,-0.250000000000000 + 0.0669872981077807j,0.746452247915389 + 0.408248290463863j,-0.172649730810374 - 0.144337567297407j,1.04538513758801 + 0.295205522634040j,0.866025403784439 - 0.866025403784439j,0.151538287470662 - 0.0458758547680686j,-0.250000000000000 + 0.433012701892219j,9.06493303673679e-17 - 0.816496580927726j,0.250000000000000 - 0.933012701892219j,-0.440213422065475 + 0.0458758547680685j,-0.288675134594813 + 0.288675134594813j,1.04538513758801 - 1.61900803973906j,0.750000000000000 + 0.0669872981077807j,1.56294882884312 - 0.408248290463863j,0.250000000000000 + 0.433012701892220j,-0.179359733803575 - 1.52725633020292j,-0.866025403784439 + 0.866025403784439j,0.559786577934525 - 0.454124145231932j,1.32735026918963 - 0.144337567297406j,-4.53246651836840e-17 + 0.816496580927726j,-0.750000000000000 - 0.933012701892219j,-0.848461712529338 + 0.454124145231932j] +desired_result_40 = [-0.322748612183951 + 1.29099444873581j,-0.429355623383487 + 0.259657863060891j,-0.410358421133973 + 0.00556850432806366j,-0.625783121183030 - 0.0863383163580968j,-0.437112473792830 + 0.969085562642644j,-1.81703728058548 + 1.67868735080134j,0.344283429039496 - 0.484579621791222j,0.337035361178253 + 0.274113698690617j,0.991464272376599 - 1.02646164535747j,0.274006608550455 - 1.71879062737048j,-1.47109573940248 + 0.480915896029758j,-1.15067807141871 - 1.28447189224866j,-0.416117211386967 + 0.821989321261467j,0.191148579270432 + 0.813256460809606j,-0.378872137365603 - 0.696462388899845j,-0.149681008117842 - 0.633722845275669j,-0.341728684834661 + 0.692385639717019j,-0.586610567247884 + 0.318986720180409j,1.49155484695508 - 0.286155030720091j,-0.691953176884508 - 1.05915233378268j,-0.151148291611680 - 0.519884079271490j,0.658640544290364 - 0.497887458713834j,0.362340692785999 + 0.194307058737182j,0.215818093424759 + 0.0614655238554381j,-0.0229137297393287 - 0.0929924933359922j,-0.0286774084700496 - 0.594972077540071j,0.553750146178497 + 0.677020683417572j,-0.946258527567955 - 0.527834988568070j,-0.107944678707553 + 0.259515934193993j,-0.503668662673490 + 0.342662900883544j,-0.646745095746908 - 0.728180954793154j,-0.382495890226825 + 0.210258454429760j,0.212110723238273 - 1.14601213040815j,0.399846663650817 - 0.307518175753213j,-0.683056685196044 - 0.709922016754577j,0.377620455173775 - 0.0539828703957819j,1.41603778348589 - 0.0118614198523030j,0.651157720058850 + 0.340951875546387j,-1.00429927334061 + 0.642899996532439j,0.615197966614462 + 0.255842470124817j,0.0795285376565942 - 0.331396635183247j,-0.424348443403418 + 0.863465989125977j,-0.939401507877304 - 0.910774805859754j,-0.0963274225712297 - 0.588330850255075j,0.422766215943316 - 0.573958097209060j,-0.214957035420982 + 0.330056083582480j,0.589543874813215 - 0.552590576656311j,-1.56960343230476 - 0.997126448761530j,-1.22672006641727 - 0.309174523276811j,-0.377332318783580 - 0.706700510187196j,-0.298162202714576 + 0.659934378709009j,-0.564265489058153 + 0.159112672153863j,0.867653615579279 - 0.365664830154582j,0.204255505045821 + 1.28747873108610j,-0.0494085764441088 - 0.205040082585094j,1.28564389741239 + 0.0295849979323994j,-0.487413251824957 - 0.624366073609897j,0.584557796034937 + 0.199582760093563j,-0.417446555273282 - 0.761148616436123j,0.450238508817812 - 0.203922629162874j,1.87652935819703 + 0.543135149975060j,0.255408154635638 - 0.311561881919439j,-1.30735010542201 - 0.481830638556143j,0.0555775185916111 + 0.916687905172063j,-0.370019551150710 + 0.115131064174561j,-0.454538738470739 + 1.50228610318717j,-0.377822937456797 - 0.571676702961305j,0.121802627557920 + 0.133418142677911j,-1.47118048462989 - 0.595930515071605j,0.135820435510111 - 0.111309938195077j,-0.247707312812543 - 0.440744129603063j,0.330173348741349 + 0.590207967762849j,-1.01372823590122 + 1.84276115846982j,1.64804640293271 - 0.847496987128506j,1.18166639656977 - 0.263454632893561j,-0.298431355933978 + 0.411285394193799j,-0.556246050936731 - 0.603452528916591j,-0.736657820888274 + 0.0916746084529782j,-0.279000628191508 - 0.962568880778085j,0.257405529932336 + 0.265931445150337j,-0.0432401149964777 + 0.260516120525948j,0.233292771134355 - 0.489609452148762j,0.778728928830978 + 0.195066946894788j,-1.44256614843403 + 1.23806299828581j,-0.720899424472695 - 0.0832050852646557j,0.156538787109987 + 0.362266895603030j,0.847839294675896 + 0.271901191548571j,-0.510851405212795 - 1.51839602793755j,0.529570770135399 - 0.565668711643764j,0.719600459800735 + 0.0939507296288036j,-0.183012379990710 - 0.832410600682881j,-0.729530599052252 + 0.00387277770111999j,-0.425826097314200 + 0.404488922061500j,0.354529857178759 - 1.70778625045147j,0.543775057208547 - 0.634562548904422j,0.773431743201238 + 0.238487286764513j,-0.265253101107655 + 0.264127286767868j,0.868005646742182 - 0.809156726281803j,-0.0351938910230366 + 1.10740826159557j,-0.243955178870756 - 0.119624897896467j,0.159134664511986 + 0.611982713109926j,-0.311641732364538 + 0.379337968937288j,0.303274369190992 - 0.719180176258925j,-0.404499003097605 + 0.476207205194015j,0.353901982066394 - 0.591766208793123j,-0.0389875135251205 + 0.895089379968380j,1.32949973366575 - 0.290771191368793j,-0.542636311467159 + 0.800423043569591j,-0.984835346220022 + 0.151391701036845j,1.14987393911012 + 0.0548597394897195j,-0.298116982956160 - 0.412359162667348j,-0.525306070978302 - 0.853503808629850j,0.316695420801670 + 0.0234850411998264j,0.370450597323485 - 0.307587884518340j,0.354912965108462 - 0.140088778281178j,0.0800766323673727 - 0.175537081995657j,-0.0815022334597591 - 0.313160577792138j,0.328512357025895 - 0.607340852972543j,0.136142736736429 + 0.0110371626888607j,0.643606860588170 - 1.15028689709278j,-0.710046946804693 - 0.387298334620742j,0.222747719699944 - 0.879703163317652j,-1.24975479974919 - 1.20413250277305j,0.768605705956871 - 0.419054031487491j,0.733200469806516 - 0.362411356337841j,0.0432498122660973 - 0.0531570332325402j,-1.09976569112303 + 0.270958592141641j,0.447877035213477 + 0.0305972102599381j,-0.0574090290518276 + 0.204957773491865j,0.500857931322036 - 0.291397305726457j,0.545286845372755 + 0.174454647106077j,-0.215248937181948 - 0.273384050084825j,0.349832506990974 + 0.561929502823749j,-1.29130865193689 - 0.442464448982101j,-0.825197028770507 + 0.231668874575912j,-0.401399518928672 - 0.0395857858268064j,-1.16790477427997 - 0.0725663707400930j,0.504070627410653 - 1.39018548619302j,-1.33996401425730 - 0.286494395506786j,0.911118237024086 + 0.989465709089559j,1.36547099086750 + 1.06436058235711j,-0.166273058525469 - 0.669600577825662j,-0.762450840406003 + 0.944560549373401j,-1.29633352966837 - 0.312682787767162j,0.175067158474717 - 0.873561288218241j,0.184319708910105 - 0.301997081524779j,-0.453088342410790 + 0.913244489992540j,-0.324164260689410 + 0.242871688311992j,-0.261736324915269 + 0.465332800936498j,0.656267790343421 - 0.378391943842707j,-0.843216913959099 + 0.0322011663221529j,1.47930056359877 + 1.00114992433428j,-0.335069300941138 + 0.545857757562014j,-0.651723729937496 - 0.249282449051512j,0.996911334021977 + 0.603298714904151j,-0.215582852524234 - 1.00336642065673j,0.155485808809765 + 0.530416982686411j,-0.0416233585687497 - 1.25497966914853j,-2.12581919422401 + 0.492992502022050j,-0.0557522259043359 + 1.01731891897942j,1.64771425280109 + 0.114120629653777j,-0.970330474938329 - 0.719043207992416j,0.154470054989793 + 1.03768376403341j,-1.16379644643824 + 0.198075174564592j,0.725417651454550 + 0.596810150427346j,-0.247437950205984 - 0.0888114941582184j,-0.378073754897587 - 1.22800537786936j,-0.472350261412477 - 0.171531568491424j,0.405901721863940 + 0.369390738904555j,0.759303489735510 + 0.653389158012763j,-0.474283186164447 + 0.0260766700648001j,-1.40512936677748 - 0.636912449660098j,-0.0873134461868567 + 0.389434277209457j,-0.175963918393931 - 0.800787327423583j,0.291810505701885 + 1.44690661944231j,0.313279615100733 - 0.413149948862979j,-0.936953571037027 - 1.16507121965283j,0.0475639406470443 - 1.00076554283924j,0.568293872691882 - 0.794256918836291j,0.241774268554366 + 0.152414158527442j,-1.16189500386223 - 0.0645497224367903j,-0.356175654538828 + 0.625566796310689j,0.464835863581281 - 0.883246344144574j,-0.962286783158353 + 0.146631103508273j,0.0625756471071558 - 0.587443483555039j,0.469125191330757 - 0.687692515341342j,-0.922428239837006 - 0.160457784538428j,0.0349758240739672 + 0.263134319589816j,0.808684832256620 - 0.122350502938537j,0.0665568956655430 + 0.357723072284829j,0.363040526834750 - 0.332229809387986j,0.103807492448604 + 0.793049985079043j,-1.41769386888476 + 0.818755594459353j,-0.589265390972526 - 1.01041913496323j,0.513529111868167 - 0.211735926817925j,0.711820667444348 - 0.0318755214905776j,0.525297111468820 - 0.610739789096715j,-0.600025569484440 - 1.32895422246285j,0.345616484161787 - 0.637681020573083j,-0.0345095377524993 + 0.365122934875735j,-0.144078260093385 - 0.443200034058236j,-0.329571882853992 - 0.249514974584600j,-0.767855681846327 - 0.479200802502935j,-0.933151496059655 - 1.32595458317710j,0.649916639911701 - 0.388231949937052j,0.234404382886797 - 0.466761434898771j,0.550841214421498 + 0.167405854462646j,-0.343991748051193 + 0.145454678547962j,0.334766106797066 - 0.362705095783724j,-0.354955432010168 + 0.161923402356064j,0.0146044947318884 + 0.247226723140444j,-0.238048362401217 + 0.859437126998712j,-0.365662611578766 + 0.432363689363316j,-0.0856563682339148 + 0.140502195919524j,-0.702726806240717 - 1.09402064438926j,-0.0663330816926024 + 0.515992116607088j,0.497194374703660 - 0.0571655188025836j,-0.551725012837481 - 0.945118606389815j,-0.366401923008972 + 0.979476882369154j,0.0464331879797242 - 1.52009357847456j,-0.295674620843716 + 0.0924791020711905j,-0.561045759860898 + 0.825902078413595j,0.176631367284226 - 0.0857730708143165j,-0.875488124330613 - 0.580216957671638j,-1.50728744553467 + 0.701570317212339j,-0.229059835235250 + 1.26899662374600j,-0.0326961885824997 - 0.858834274850107j,0.987184759727045 - 0.653998334958368j,-1.55920901209381 - 0.772288685155810j,1.65997774264455 - 0.0568656903597080j,0.427229525093493 + 0.645729120271984j,-0.458432497886391 - 0.332615341912552j,-1.20425027149716 - 0.503896337960184j,-0.554956508305229 - 0.238374839581832j,-1.50109378460707 - 0.148598929222046j,-0.368634071475290 + 0.741220025173906j,0.0190597884286173 + 0.794462569879674j,0.579207051835918 + 0.541711126639725j,0.439674201819203 - 0.112351680375266j,-0.615180756061962 - 0.282778962075027j,0.0645497224367904 + 0.387298334620742j,-1.77858762778042 + 0.220191038771375j,0.00392649835665733 + 0.436131268061309j,0.401461130178154 + 0.596096788297342j,-0.806530692542485 + 0.225962985254239j,0.685092758374283 - 0.202468240658493j,-0.0780456424311676 - 0.614136837449337j,-0.346317456836611 + 0.429808130592624j,-0.482625281815605 + 0.108270874302354j,-0.0313407046291584 - 0.896450101001142j,-0.730314695386357 + 0.0992768642160847j,-0.306795114462799 - 0.0165581655773415j,0.546152376025184 - 0.571218363768570j,0.456956427713506 - 0.320076798855023j,-1.15925907667710 - 0.000616298801848821j,-0.689441259785460 - 1.01631235539598j,0.0621424406194496 - 0.790877817511112j,-0.201344141294359 - 0.651552190829304j,-1.67603355021439 - 0.363328193700363j,0.680077653227899 - 0.360564420715652j,-0.683363638509019 + 0.718167708139435j,-0.334617641395263 + 0.162634781481009j,-0.0866726335407250 - 0.880084433674434j,0.566878021256780 + 0.534827849445795j,0.886977804775269 + 0.478840692611656j,0.475442501541413 - 0.537319619916630j,0.926398613892186 + 0.138549860749379j,0.863601599103063 + 0.00278583274995634j,1.03402071418979 + 1.30776701465769j,-0.00802176854581720 - 0.357428784134331j,-0.408200426192368 + 0.621231472870204j,-0.0584044496084512 - 1.06539472981987j,0.393518274658201 + 0.0977863640357813j,-0.333519609282048 - 0.449448121618900j,-0.554734499709885 + 0.625147807913340j,-0.139333691762831 + 0.398963735498787j,0.270245395462465 - 0.0666966947664110j,-0.111315439264227 + 0.827646907398458j,-0.568257263631156 - 1.45310150839561j,0.291918659886949 + 0.276839412195239j,0.295108212523130 - 0.525045802493618j,0.885097095662043 + 1.02353806679817j,0.724456921673927 + 0.540582918861214j,-0.169638533676670 + 0.0820448448812687j,-0.376591101951216 + 0.531121396778195j,0.415689353019469 + 0.477741406309978j,-0.0947454006010420 + 0.700136805085749j,0.879055804508856 + 1.78508533098086j,0.861402166960133 - 0.496006982275402j,-0.267703221714465 + 0.468943980066815j,-1.30527119356649 - 0.636686045056014j,0.202761656236150 - 0.496219643996940j,0.465573954586516 - 1.20088902108473j,-0.306091712051671 + 1.18454034192040j,1.15616261397361 - 0.773135950010073j,-0.250964831717588 - 1.18015894066956j,-0.285713454206262 - 0.320641012583767j,0.686273912474764 + 1.24455822404647j,0.496742778254888 - 0.0897386984206117j,1.39899593887077 - 0.319575954174915j,0.963658429021748 + 0.360560964140004j,0.767230915210055 + 1.00505886263612j,-0.669536298028567 + 0.327448052439808j,0.323655386126131 - 0.0214161939290109j,0.410658457702849 - 0.233955963490542j,-0.376440906043687 + 0.226016118613781j,0.865588655038474 - 0.0188112628371385j,1.16738491970017 + 0.201394246293816j,0.590471407513802 - 0.138567890582475j,0.321483142666175 + 0.981572698830202j,0.907988010877969 - 1.38336180430738j,0.494312005343115 - 0.706006190691572j,1.23854654993066 + 0.950210583914623j,0.0192026721429445 + 0.182898673214766j,-0.375896241306929 + 0.668725534352845j,0.0649122880651988 - 1.14615955266936j,-0.223367910281260 - 0.0300405990927519j,-0.443424409625837 + 0.344609692059005j,-1.76684728731508 - 1.08381605419593j,-1.39055100465382 - 0.646047318636053j,0.417876865176203 + 0.337727427403756j,1.43835030876565 + 0.502280120825218j,-0.603438234928467 + 0.283449196115972j,-1.02548922580181 - 0.154807017030591j,0.348892473624821 + 0.192239444731022j,-0.131948162382761 + 0.702900320022448j,0.141139535946805 - 1.27463644281273j,0.538512423004359 + 1.32914472398501j,-0.299909231696435 + 0.346612996486204j,-0.280455036833082 + 0.783303862518729j,-0.462484844377193 + 0.360312747089821j,-1.10867690116349 + 1.29962395709126j,-0.304555738370314 + 0.349490337640702j,-0.563495159332066 + 0.304163014165176j,-0.396165069998233 + 0.0512352129966494j,0.429447188936598 + 0.896182871008430j,-0.746596982823174 - 0.364524327763114j,-0.119704221052468 - 1.25269011838890j,0.645225583062467 - 0.821827092459495j,1.01747958155072 - 1.20692886675846j,-0.0992194036327697 + 0.480728106757935j,-0.785969994809795 - 0.316637973498940j,0.526691800879463 + 0.00429384076340447j,0.609896711904771 + 0.0595155477939037j,0.847549885419512 - 0.856868265607580j,-0.0825905869046882 - 0.354011778595675j,0.759960384828509 - 0.378942321881983j,-0.573189757800051 - 0.387126649160587j,-2.22919756441818 + 0.402910255559394j,1.22034887846567 + 0.319394442738066j,0.196290194854121 + 1.11662622318464j,0.906097214855614 + 0.597295872036325j,1.96491327588426 + 0.173575686640739j,0.850981110475089 + 0.809865255614444j,-0.110389631652263 + 0.0631587377252515j,-0.804437572842139 + 0.125440865623475j,0.191089076450372 + 1.33811898315119j,0.216981167570737 - 0.837622979077235j,0.661254401496716 + 0.594527206781107j,-0.216200853789628 - 0.752373844339619j,0.451848057057532 + 0.00000000000000j,-0.528685563949935 + 0.145134109206690j,1.15321739879055 - 1.01891302450217j,0.467946300498783 - 0.725763998609948j,-1.19378917890964 + 0.873015355020449j,-1.02474644110385 - 0.0601812475426637j,-0.415658550601484 - 0.263613677597241j,0.472124704944999 - 0.134549247201549j,0.198926258565587 - 0.794959101182015j,-0.327075461448952 + 1.02820395660508j,-0.185860730811232 - 1.07276155797830j,-0.210200648581265 - 0.366108561630055j,-0.330344449635168 - 1.23269375114062j,-1.36583449847946 - 1.14846122420451j,0.528948927223999 + 0.0954795079199692j,0.434600339579647 + 0.216052351927595j,0.0537915763623040 - 0.942726543849829j,-0.778319449094516 - 0.901084733602872j,-0.330500331425294 + 0.216284029512700j,-0.637179477533117 - 0.286594883287581j,0.492567575126691 + 0.629986446766320j,0.358036416216161 + 0.0955280747384284j,-0.00472901433107223 - 0.378906150976386j,0.747284117618513 + 0.908774945581869j,-0.146701033519569 + 0.0586213254160837j,-0.124865865685159 + 0.0133790733441627j,0.448029582310963 - 0.160910527717938j,0.559125200578993 - 0.816969210159274j,-1.26916432439353 + 0.0151495366873298j,-1.29587936651601 + 0.0259026551006638j,-0.942025351320398 + 0.591146095095119j,1.04442277965729 + 0.432552229720484j,-0.206769393570358 - 1.87697097980386j,2.04756810882692 - 0.398672396551786j,0.800684481929693 + 0.667540735017372j,0.973075617757471 + 0.418758957975663j,-0.251778483840015 - 0.662117396830868j,0.0581324048722619 + 0.253864599440887j,-0.921232631801589 - 0.606748103064969j,-0.282769968422374 - 1.49972512907549j,-0.602257109371425 + 0.707729716025906j,0.602502777793144 + 0.210440425882518j,-0.0892210481265108 + 0.0145310030490470j,0.438898302467129 - 0.516290395748455j,0.136223858398825 + 0.859800182196991j,-0.0289190713046097 + 0.0242858954963999j,0.619344137379729 - 0.570556729631000j,-1.56069250236244 + 1.33902144047686j,1.25646003719736 - 0.0900056249713544j,-0.505866545136704 + 0.856351059890426j,-0.211481333281757 + 0.526988036655743j,-0.432624792703324 + 0.914198397797528j,0.431397711465342 + 0.979794721370632j,-0.301631952917661 + 0.737444715977679j,1.06627493995936 + 0.448676337161838j,1.04479284887460 - 0.0359872306531530j,0.107769548503538 + 0.665388027763594j,-0.0326178656117596 - 0.0423637908087508j,-0.596961661228293 - 0.183490972663444j,1.82269630862632 + 1.17675648581766j,-1.16189500386223 - 0.0645497224367903j,-0.135350376911107 + 0.876888299600215j,-0.302680599730997 - 0.369622849330337j,0.899191439768256 - 0.662299668282344j,-0.0527610798597340 - 0.343691566949449j,-0.157339631003058 + 0.0907763314196984j,-0.314525614250115 + 0.451004701618083j,-0.0606708572661167 + 0.368628090963809j,-0.531749493561358 + 0.548652600793198j,0.277336707379568 - 0.197497318388472j,0.680294727338405 + 0.169197732430656j,-0.154188877024120 + 0.777938207478971j,1.08820294396103 + 0.514464580269521j,-0.648817469437230 + 0.134912097495533j,-1.13482568115071 + 0.530995863163918j,-0.188777931817563 - 0.341670582934614j,-0.757639187789476 - 0.977004599441586j,-0.543561759639818 - 0.753583599701787j,-1.33051749243136 - 0.499685480379567j,-1.12181363493618 + 0.121557597409287j,1.18953540352305 - 0.636849201368608j,0.342035043760820 + 1.28047086964354j,-1.19753313884315 - 1.38320937200757j,0.697581513414668 - 0.606651076970611j,0.981180442635569 + 0.747655008981018j,-0.714567606146263 - 1.15536516284202j,-0.0417040206993263 + 0.0853756749151691j,-0.328791699006696 - 0.469945003166242j,-0.218570795197936 + 0.592664858130490j,0.894183265230141 + 0.557280569156384j,-0.660101719099791 + 0.741268909946939j,1.30868849207054 + 0.723807086205852j,-0.504087794948191 + 0.590327781300083j,-0.339662002959735 + 1.43033882527612j,-0.215899767158609 + 0.932086630025776j,1.01670763564059 - 1.22202097104918j,0.237246488756331 - 0.431752304698374j,0.803318875724037 + 0.554773186270362j,0.243476660113707 - 0.289353163725866j,-0.0747572929903563 + 1.34136410973730j,-0.529568386161836 - 1.52862724144746j,1.47129614748237 + 0.168154285085913j,-0.224297200641719 - 0.231005662778057j,-0.266859305852421 - 0.265173334671417j,-0.0531336504697338 - 1.48445178668303j,-0.0901351399171568 + 0.0286427811222678j,0.319388227243672 - 0.771970479482302j,-0.773032094168558 + 0.927379564575375j,-0.0327541631096403 + 0.896178909130706j,0.207292125553059 - 1.10231105708031j,0.0365724287472524 - 0.653852618657301j,0.643953237025385 + 1.39000768383374j,0.908965236982764 - 1.07913834467926j,-0.855290512903250 - 0.0889817176440556j,-1.15358057900492 - 1.24425149940274j,-0.834005075989827 + 0.203174828204451j,-0.0290443704918142 - 1.13074558865045j,-0.975528601859620 - 0.128400304941364j,0.121416514591441 - 0.980691807301827j,0.329097961328611 + 1.27291230367630j] \ No newline at end of file diff --git a/tests/test_nrTransformPrecode.py b/tests/test_nrTransformPrecode.py new file mode 100644 index 0000000..4b31dac --- /dev/null +++ b/tests/test_nrTransformPrecode.py @@ -0,0 +1,24 @@ +import sys +import numpy as np +import pytest + +from py3gpp.nrTransformPrecode import nrTransformPrecode +from py3gpp.nrSymbolModulate import nrSymbolModulate + +sys.path.append("test_data") + +from test_data.transformPrecode import cw, desired_result_2, desired_result_40 + +def test_run_nr_transform_precode_2(): + modSym = nrSymbolModulate(cw, 'QPSK') + result_2 = nrTransformPrecode(modSym, 2) + assert np.array_equal(np.round(result_2, 8), np.round(desired_result_2, 8)) + +def test_run_nr_transform_precode_40(): + modSym = nrSymbolModulate(cw, 'QPSK') + result_40 = nrTransformPrecode(modSym, 40) + assert np.array_equal(np.round(result_40, 8), np.round(desired_result_40, 8)) + +if __name__ == '__main__': + test_run_nr_transform_precode_2() + test_run_nr_transform_precode_40() \ No newline at end of file diff --git a/tests/test_nrTransformPrecode_nrTransformDeprecode.py b/tests/test_nrTransformPrecode_nrTransformDeprecode.py new file mode 100644 index 0000000..6939114 --- /dev/null +++ b/tests/test_nrTransformPrecode_nrTransformDeprecode.py @@ -0,0 +1,29 @@ +import sys +import numpy as np +import pytest + +from py3gpp.nrTransformPrecode import nrTransformPrecode +from py3gpp.nrTransformDeprecode import nrTransformDeprecode +from py3gpp.nrSymbolModulate import nrSymbolModulate + +sys.path.append("test_data") + +from test_data.transformPrecode import cw, desired_result_2, desired_result_40 + +def test_run_nrTransformPrecode_nrTransformDeprecode_2(): + modSym = nrSymbolModulate(cw, 'QPSK') + result = nrTransformPrecode(modSym, 2) + assert np.array_equal(np.round(result, 8), np.round(desired_result_2, 8)) + x = nrTransformDeprecode(result, 2) + assert np.array_equal(np.round(x, 8), np.round(modSym, 8)) + +def test_run_nrTransformPrecode_nrTransformDeprecode_40(): + modSym = nrSymbolModulate(cw, 'QPSK') + result = nrTransformPrecode(modSym, 40) + assert np.array_equal(np.round(result, 8), np.round(desired_result_40, 8)) + x = nrTransformDeprecode(result, 40) + assert np.array_equal(np.round(x, 8), np.round(modSym, 8)) + +if __name__ == '__main__': + test_run_nrTransformPrecode_nrTransformDeprecode_2() + test_run_nrTransformPrecode_nrTransformDeprecode_40() \ No newline at end of file