public void TestApplyDelayToSpectrum() { var x = new[] { 250, 500.0, 1000, 2000 }; var y = new[] { Complex.One, Complex.One, Complex.One, Complex.One }; Complex[] target = { Complex.ImaginaryOne, -Complex.One, Complex.One, Complex.One }; var output = Dsp.ApplyDelayToSpectrum(x, y, 0.001).ToReadOnlyList(); FilterAssert.ListsAreReasonablyClose(target, output); var y2 = new[] { 4.0 * Complex.One, 5, 6, 7 }; output = Dsp.ApplyDelayToSpectrum(x, y2, 2).ToReadOnlyList(); Assert.That(output.Count == x.Length); Assert.That(Dsp.ApplyDelayToSpectrum(new List <double>(), y, 1).ToReadOnlyList().Count == 0); Assert.Throws <ArgumentNullException>(() => Dsp.ApplyDelayToSpectrum(null, y, 2).ToReadOnlyList()); Assert.Throws <ArgumentNullException>(() => Dsp.ApplyDelayToSpectrum(x, null, 2).ToReadOnlyList()); }