public void FourierNaiveIsReversible(FourierOptions options) { var samples = Generate.RandomComplex(0x80, GetUniform(1)); var work = new Complex[samples.Length]; samples.CopyTo(work, 0); work = Fourier.NaiveForward(work, options); Assert.IsFalse(work.ListAlmostEqual(samples, 6)); work = Fourier.NaiveInverse(work, options); AssertHelpers.AlmostEqual(samples, work, 12); }
public void FourierBluesteinIsReversible(FourierOptions options) { var samples = Generate.RandomComplex(0x7FFF, GetUniform(1)); var work = new Complex[samples.Length]; samples.CopyTo(work, 0); Fourier.BluesteinForward(work, options); Assert.IsFalse(work.ListAlmostEqual(samples, 6)); Fourier.BluesteinInverse(work, options); AssertHelpers.AlmostEqual(samples, work, 10); }
public void FourierDefaultTransformIsReversible() { var samples = Generate.RandomComplex(0x7FFF, GetUniform(1)); var work = new Complex[samples.Length]; samples.CopyTo(work, 0); Transform.FourierForward(work); Assert.IsFalse(work.ListAlmostEqual(samples, 6)); Transform.FourierInverse(work); AssertHelpers.ListAlmostEqual(samples, work, 10); Transform.FourierInverse(work, FourierOptions.Default); Assert.IsFalse(work.ListAlmostEqual(samples, 6)); Transform.FourierForward(work, FourierOptions.Default); AssertHelpers.ListAlmostEqual(samples, work, 10); }
public void FourierRadix2IsReversible(FourierOptions options) { var dft = new DiscreteFourierTransform(); var samples = Generate.RandomComplex(0x8000, GetUniform(1)); var work = new Complex[samples.Length]; samples.CopyTo(work, 0); dft.Radix2Forward(work, options); Assert.IsFalse(work.ListAlmostEqual(samples, 6)); dft.Radix2Inverse(work, options); AssertHelpers.ListAlmostEqual(samples, work, 12); }