public void SourceConverter_RiseAndFall()
        {
            var nextFrame = new VisualizationDataFrame(
                testFrame.Time.Value.Add(testFrame.Duration),
                testFrame.Duration,
                ScalarData.Create(Enumerable.Repeat <float>(1.0f, (int)expectedChannelCount).ToArray()),
                ScalarData.Create(Enumerable.Repeat <float>(2.0f, (int)expectedChannelCount).ToArray()),
                SpectrumData.Create(
                    Enumerable.Repeat <float>(1.0f, (int)(expectedChannelCount * expectedFrequencyCount)).ToArray(), expectedChannelCount, ScaleType.Linear, ScaleType.Linear, expectedMinFrequency, expectedMaxFrequency)
                );

            sut.SpectrumRiseTime = TimeSpan.FromMilliseconds(100);
            sut.SpectrumFallTime = TimeSpan.FromMilliseconds(50);
            sut.RmsRiseTime      = TimeSpan.FromMilliseconds(80);
            sut.RmsFallTime      = TimeSpan.FromMilliseconds(40);
            sut.PeakRiseTime     = TimeSpan.FromMilliseconds(20);
            sut.PeakFallTime     = TimeSpan.FromMilliseconds(200);

            var data = sut.GetData();

            testSource.Frame = nextFrame;
            data             = sut.GetData();
            Assert.IsNotNull(data.RMS);
            Assert.IsNotNull(data.Peak);
            Assert.IsNotNull(data.Spectrum);
        }
Ejemplo n.º 2
0
        public void ScalarData_CombineChannels()
        {
            var data   = ScalarData.Create(new float[] { 1, 2, 3 });
            var result = data.CombineChannels(new float[] { 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f });

            Assert.AreEqual(2, result.Count);
            float[] expectedResult = { 1.4f, 3.2f };
            AssertFloatCollectionsAreEqual(expectedResult, result.ToArray(), 0.0001f, "Calculation incorrect");
        }
Ejemplo n.º 3
0
 public void ScalarData_RiseAndFall_WithDifferentSizeArgThrows()
 {
     Assert.ThrowsException <ArgumentException>(
         () =>
     {
         ScalarData.CreateEmpty(2).ApplyRiseAndFall(ScalarData.CreateEmpty(1), TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1));
     }
         );
 }
Ejemplo n.º 4
0
 public void ScalarData_RiseAndFallToEmpty_WithPreviousNullThrows()
 {
     Assert.ThrowsException <ArgumentException>(
         () =>
     {
         var result = ScalarData.ApplyRiseAndFallToEmpty(null, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(4));
     }
         );
 }
Ejemplo n.º 5
0
 public void ScalarData_CombineChannelsWithNullMapThrows()
 {
     Assert.ThrowsException <NullReferenceException>(
         () =>
     {
         ScalarData.CreateEmpty(2).CombineChannels(null);
     }
         );
 }
Ejemplo n.º 6
0
 public void ScalarData_CombineChannelsWithMapSizeLTChannelsThrows()
 {
     Assert.ThrowsException <ArgumentException>(
         () =>
     {
         ScalarData.CreateEmpty(2).CombineChannels(new float[] { 0.5f });
     }
         );
 }
Ejemplo n.º 7
0
        public void ScalarData_CreateEmpty()
        {
            var data = ScalarData.CreateEmpty(2);

            Assert.AreEqual(ScaleType.Linear, data.AmplitudeScale);
            Assert.AreEqual(0.0f, data[0]);
            Assert.AreEqual(0.0f, data[1]);
            CollectionAssert.AreEqual(new float[] { 0.0f, 0.0f }, data.AsEnumerable().ToArray());
        }
Ejemplo n.º 8
0
 public RobustDesignVariable(ScalarData data, double lowerBound, double upperBound, double probability, IRoustOptimizationDistribution distribution)
     : base(data)
 {
     (double lower, double upper) = distribution.GetBoundExtensions(probability);
     LowerBound   = lowerBound + lower;
     UpperBound   = upperBound + upper;
     Probability  = probability;
     Distribution = distribution;
 }
Ejemplo n.º 9
0
 public void ScalarData_RiseAndFall_WithLogScaleArgThrows()
 {
     Assert.ThrowsException <ArgumentException>(
         () =>
     {
         ScalarData.CreateEmpty(2).ConvertToDecibels(-100, 20).ApplyRiseAndFall(null, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1));
     }
         );
 }
Ejemplo n.º 10
0
        public void ScalarData_ConvertToDecibels()
        {
            float[] testValues = new float [] { 0.0f, 0.1f, 1.0f, 1e-6f, 1e6f, -1 };
            var     data       = ScalarData.Create(testValues);
            var     logData    = data.ConvertToDecibels(-100, 0);

            CollectionAssert.AreEqual(new float[] { -100.0f, -20.0f, 0.0f, -100.0f, 0.0f, -100.0f }, logData.ToArray());
            Assert.ThrowsException <Exception>(() => { var d2 = logData.ConvertToDecibels(-100, 0); });
            Assert.ThrowsException <ArgumentException>(() => { var d3 = data.ConvertToDecibels(0, 0); });
        }
Ejemplo n.º 11
0
        public void ScalarData_CombineChannelsWithLogScaleThrows()
        {
#if DEBUG
            Assert.ThrowsException <COMException>(
#else
            Assert.ThrowsException <Exception>(
#endif
                () =>
            {
                ScalarData.CreateEmpty(2).ConvertToDecibels(-100, 0).CombineChannels(new float[] { 0.5f, 0.5f });
            }
                );
        }
Ejemplo n.º 12
0
        public void ScalarData_CreateWithValues()
        {
            var initData = new float[] { 0.0f, 0.1f, 0.2f, 0.3f, 0.4f };
            var data     = ScalarData.Create(initData);

            Assert.AreEqual(5, data.Count());
            Assert.AreEqual(5, data.Count);
            Assert.AreEqual(ScaleType.Linear, data.AmplitudeScale);
            for (int i = 0; i < 5; i++)
            {
                Assert.AreEqual(initData[i], data[i]);
            }
        }
Ejemplo n.º 13
0
        public void VisualizationDataFrame_ctor()
        {
            var rms      = ScalarData.CreateEmpty(2);
            var peak     = ScalarData.CreateEmpty(2);
            var spectrum = SpectrumData.CreateEmpty(2, 100, ScaleType.Linear, ScaleType.Linear, 0, 20000.0f);
            var frame    = new VisualizationDataFrame(TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1.0 / 60.0), rms, peak, spectrum);

            Assert.IsNotNull(frame);
            Assert.AreEqual(TimeSpan.FromSeconds(1), frame.Time);
            Assert.AreEqual(TimeSpan.FromSeconds(1.0 / 60.0), frame.Duration);
            Assert.AreSame(rms, frame.RMS);
            Assert.AreSame(peak, frame.Peak);
            Assert.AreSame(spectrum, frame.Spectrum);
        }
Ejemplo n.º 14
0
        public void ScalarData_RiseAndFall_WithZeroRiseAndFallTime()
        {
            var previous = ScalarData.Create(new float[] { 2.0f, 1.0f, 1.5f });
            var data     = ScalarData.Create(new float[] { 1.0f, 2.0f, 1.5f }); // First falling, second rising, 3rd same
            var result1  = data.ApplyRiseAndFall(previous,
                                                 TimeSpan.Zero,
                                                 TimeSpan.Zero,
                                                 TimeSpan.FromMilliseconds(400)
                                                 );

            AssertFloatCollectionsAreEqual(
                data.ToArray(),
                result1.ToArray(), 0.001f, "Calculation results incorrect"
                );
        }
Ejemplo n.º 15
0
        public void ScalarData_RiseAndFallToEmpty()
        {
            var data           = ScalarData.Create(new float[] { 1.0f, 0.0f, -1.0f });
            var result         = ScalarData.ApplyRiseAndFallToEmpty(data, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(4));
            var expectedResult = new float[] {
                RiseFallTime(0, data[0], 0.25f, 0.5f),
                RiseFallTime(0, data[1], 0.25f, 0.5f),
                RiseFallTime(0, data[2], 0.25f, 0.5f)
            };

            AssertFloatCollectionsAreEqual(
                expectedResult,
                result.ToArray(), 0.001f, "Calculation results incorrect"
                );
        }
        public void TestInit()
        {
            sut        = new SourceConverter();
            testSource = new FakeVisualizationSource();
            testSource.ExpectedChannels = expectedChannelCount;
            sut.Source = testSource;

            testFrame = new VisualizationDataFrame(
                TimeSpan.Zero,
                TimeSpan.FromMilliseconds(16.7),
                ScalarData.CreateEmpty(expectedChannelCount),
                ScalarData.CreateEmpty(expectedChannelCount),
                SpectrumData.CreateEmpty(expectedChannelCount, 10, ScaleType.Linear, ScaleType.Linear, 0, 10000));


            testSource.Frame = testFrame;
        }
Ejemplo n.º 17
0
        public void ScalarData_RiseAndFall_WithPreviousNullArg()
        {
            var data = ScalarData.Create(new float[] { 1.0f, -1.0f, 0.0f }); // First falling, second rising, 3rd same

            var result = data.ApplyRiseAndFall(null,
                                               TimeSpan.FromMilliseconds(100),
                                               TimeSpan.FromMilliseconds(200),
                                               TimeSpan.FromMilliseconds(400));
            var expectedResult = new float[] {
                RiseFallTime(data[0], 0, 0.25f, 0.5f),
                RiseFallTime(data[1], 0, 0.25f, 0.5f),
                RiseFallTime(data[2], 0, 0.25f, 0.5f)
            };

            AssertFloatCollectionsAreEqual(
                expectedResult,
                result.ToArray(), 0.001f, "Calculation results incorrect"
                );
        }
Ejemplo n.º 18
0
        public void ScalarData_RiseAndFall_WithZeroTimeDelta()
        {
            var previous = ScalarData.Create(new float[] { 2.0f, 1.0f, 1.5f });
            var data     = ScalarData.Create(new float[] { 1.0f, 2.0f, 1.5f }); // First falling, second rising, 3rd same
            var result1  = data.ApplyRiseAndFall(previous,
                                                 TimeSpan.FromMilliseconds(100),
                                                 TimeSpan.FromMilliseconds(200),
                                                 TimeSpan.Zero
                                                 );
            var expectedResult1 = new float[] {
                RiseFallTime(data[0], previous[0], 0.25f, 0.5f),
                RiseFallTime(data[1], previous[1], 0.25f, 0.5f),
                RiseFallTime(data[2], previous[2], 0.25f, 0.5f)
            };

            AssertFloatCollectionsAreEqual(
                previous.ToArray(),
                result1.ToArray(), 0.001f, "Calculation results incorrect"
                );
        }
Ejemplo n.º 19
0
        public void ScalarData_RiseAndFall()
        {
            var data     = ScalarData.Create(new float[] { 1.0f, 2.0f, 1.5f }); // First falling, second rising, 3rd same
            var previous = ScalarData.Create(new float[] { 2.0f, 1.0f, 1.5f });
            var result   = data.ApplyRiseAndFall(previous,
                                                 TimeSpan.FromMilliseconds(100),
                                                 TimeSpan.FromMilliseconds(200),
                                                 TimeSpan.FromMilliseconds(400)
                                                 );

            CollectionAssert.AreEqual(
                new float[] { 1.135336f, 1.98168433f, 1.5f }, result.ToArray());

            var result2 = data.ApplyRiseAndFall(null,
                                                TimeSpan.FromMilliseconds(100),
                                                TimeSpan.FromMilliseconds(200),
                                                TimeSpan.FromMilliseconds(400));

            CollectionAssert.AreEqual(
                new float[] { 0.9816843f, 1.96336865f, 1.47252655f }, result2.ToArray());

            Assert.ThrowsException <ArgumentException>(
                () => {
                data.ConvertToDecibels(-100, 20).ApplyRiseAndFall(previous, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1));
            }
                );
            Assert.ThrowsException <ArgumentException>(
                () => {
                data.ApplyRiseAndFall(previous, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1), TimeSpan.Zero);
            }
                );
            var data2 = ScalarData.CreateEmpty(2);  // Different size

            Assert.ThrowsException <ArgumentException>(
                () =>
            {
                data2.ApplyRiseAndFall(previous, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1));
            }
                );
        }
        public void TestInit()
        {
            sut        = new SourceConverter();
            testSource = new FakeVisualizationSource();
            sut.Source = testSource;

            testFrame = new VisualizationDataFrame(
                expectedTime,
                expectedDuration,
                ScalarData.CreateEmpty(expectedChannelCount),
                ScalarData.CreateEmpty(expectedChannelCount),
                SpectrumData.CreateEmpty(expectedChannelCount, expectedFrequencyCount, ScaleType.Linear, ScaleType.Linear, expectedMinFrequency, expectedMaxFrequency)
                );
            otherFrame = new VisualizationDataFrame(
                expectedTime.Add(expectedDuration),
                expectedDuration,
                ScalarData.CreateEmpty(expectedChannelCount),
                ScalarData.CreateEmpty(expectedChannelCount),
                SpectrumData.CreateEmpty(expectedChannelCount, expectedFrequencyCount, ScaleType.Linear, ScaleType.Linear, expectedMinFrequency, expectedMaxFrequency)
                );

            testSource.Frame = testFrame;
        }
Ejemplo n.º 21
0
        public void Sql_Scalar_InsertDeleteTest()
        {
            ArrayList list = _sql.SelectAll(typeof(ScalarData));
            Hashtable tbl  = new Hashtable();

            foreach (ScalarData d in list)
            {
                tbl[d.ID] = d;
            }

            ScalarData data = (ScalarData)TypeAccessor.CreateInstance(typeof(ScalarData));

            _sql.Insert(data);

            list = _sql.SelectAll(typeof(ScalarData));

            foreach (ScalarData d in list)
            {
                if (tbl.ContainsKey(d.ID) == false)
                {
                    _sql.Delete(d);
                }
            }
        }
Ejemplo n.º 22
0
 public abstract void   Insert([Direction.Output("@DataTypeID")] ScalarData data);
        public void SourceConverter_CombineChannels_WithMap(uint inputChannels, uint outChannels, float [] map, float[] expectedRms)
        {
            float[] input = new float[inputChannels];
            float   value = 1.0f;

            for (int index = 0; index < inputChannels; index++, value *= 2.0f)
            {
                input[index] = value;
            }

            var inputFrame = new VisualizationDataFrame(TimeSpan.Zero, TimeSpan.FromMilliseconds(16), ScalarData.Create(input), null, null);

                                                        testSource.ExpectedChannels = inputChannels;
                                                        testSource.Frame = inputFrame;
                                                        sut.ChannelCount = outChannels;
                                                        sut.ChannelMapping = map;

                                                        var outFrame = sut.GetData();

                                                                                   CollectionAssert.AreEqual(expectedRms, outFrame.RMS.ToArray());
        }
Ejemplo n.º 24
0
 public void TestInit()
 {
     sut = ScalarData.CreateEmpty(2);
 }