using MathNet.Numerics; using MathNet.Numerics.IntegralTransforms; using System.Security.Cryptography; namespace KLHZ.Trader.Core.Tests { public class FFTTests { [Test] public static void Test() { var da = new List(); for (int i = 0; i < 100; i++) { da.Add((float)System.Math.Sin(0.5 * i) + (float)(RandomNumberGenerator.GetInt32(0, 100)) / 300); } var start = da.ToArray(); var arrv = da.Select(d => new Complex32(d, 0)).ToArray(); Fourier.Forward(arrv); Fourier.Inverse(arrv); var res = arrv.Select(a => a.Real).ToArray(); for (int i = 0; i < 1000; i++) { var d = res[i] - start[i]; } } } }