Exemplo n.º 1
0
        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.");
        }
Exemplo n.º 2
0
        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.");
        }
Exemplo n.º 3
0
        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]);
            }
        }