public void FourierNaiveIsReversible(FourierOptions options) { var dft = new DiscreteFourierTransform(); var samples = SignalGenerator.Random((u, v) => new Complex(u, v), GetUniform(1), 0x80); var work = new Complex[samples.Length]; samples.CopyTo(work, 0); work = dft.NaiveForward(work, options); Assert.IsFalse(work.ListAlmostEqual(samples, 6)); work = dft.NaiveInverse(work, options); AssertHelpers.ListAlmostEqual(samples, work, 12); }
public void FourierDefaultTransformIsReversible() { var samples = SignalGenerator.Random((u, v) => new Complex(u, v), GetUniform(1), 0x7FFF); 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); }