public void GeneratesDc() { const int samplingRate = 10; const double offset = 10, amplitude = 1; var generator = new WaveGenerator(new WaveformDescription { Waveform = Waveform.Dc, SamplingRate = samplingRate, Amplitude = amplitude, Offset = offset, }); double[] samples = generator.Next(samplingRate); Assert.AreEqual(samplingRate, samples.Length, "Expected one second of generated data."); Assert.IsTrue(samples.All(x => Math.Abs(x - (offset + amplitude)) <= Double.Epsilon), "Samples must have expected value."); }
public void GeneratesSine() { const int samplingRate = 10; const double offset = 10, frequency = 1, amplitude = 1; var generator = new WaveGenerator(new WaveformDescription { Waveform = Waveform.Sine, SamplingRate = samplingRate, Frequency = frequency, Amplitude = amplitude, Offset = offset, Phase = 0, }); double[] samples = generator.Next(samplingRate); Assert.AreEqual(samplingRate, samples.Length, "Expected one second of generated data."); Assert.AreEqual(offset, samples.Average(), "Mean value must be equal to offset."); Assert.IsTrue(samples.All(x => x >= offset - amplitude && x <= offset + amplitude), "Samples must be within expected range."); }
public void GeneratesImpulse() { const int samplingRate = 10; const double offset = 10, amplitude = 1; var generator = new WaveGenerator(new WaveformDescription { Waveform = Waveform.Impulse, SamplingRate = samplingRate, Amplitude = amplitude, Offset = offset, Phase = WaveformDescription.Phase180 }); double[] samples = generator.Next(samplingRate); Assert.AreEqual(samplingRate, samples.Length, "Expected one second of generated data."); for (int i = 0; i < samples.Length; ++i) { Assert.AreEqual(i == samplingRate / 2 ? amplitude + offset : offset, samples[i]); } }