public void TestIDWTBlockExecute() { const string signal1 = "1 2 3 4 5 6 7 8 7 6 16 5 4 3 2 1"; const string signal2 = "7 6 16 5 4 3 2 1 1 2 3 4 5 6 7 8"; const string signal = "Signal1 " + signal1 + "\r\nSignal2 " + signal2; var signalBlock = new ImportFromTextBlock { Text = signal, ColumnSeparator = " " }; var dwtBlock = new DWTBlock { WaveletName = "db4", Level = 2, ExtensionMode = SignalExtension.ExtensionMode.SymmetricHalfPoint }; var idwtBlock = new IDWTBlock { WaveletName = "db4|Daubechies 4", Level = 2 }; idwtBlock.Execute(); Assert.IsTrue(idwtBlock.WaveletNameList.Count > 0); Assert.AreEqual("db4|Daubechies 4", idwtBlock.WaveletName); signalBlock.OutputNodes[0].ConnectTo(dwtBlock.InputNodes[0]); dwtBlock.OutputNodes[0].ConnectTo(idwtBlock.InputNodes[0]); dwtBlock.OutputNodes[1].ConnectTo(idwtBlock.InputNodes[1]); Assert.IsNotNull(idwtBlock.Name); Assert.IsNotNull(idwtBlock.Description); Assert.IsNotNull(idwtBlock.ProcessingType); signalBlock.Execute(); Assert.AreEqual(signal1, idwtBlock.OutputNodes[0].Object[0].ToString(0)); Assert.AreEqual(signal2, idwtBlock.OutputNodes[0].Object[1].ToString(0)); var block2 = (IDWTBlock)idwtBlock.Clone(); block2.WaveletName = "db4"; signalBlock.OutputNodes[0].ConnectTo(block2.InputNodes[0]); idwtBlock.OutputNodes[0].ConnectTo(block2.InputNodes[1]); signalBlock.Execute(); idwtBlock.Execute(); Assert.AreEqual("3.2 1.8 4.6 1.8 6.0 1.8 7.4 1.8 8.8 1.8 9.8 0.4 9.5 -1.3 12.0 5.7 15.6 0.7 5.2 -7.5 14.2 -4.2 5.3 -1.8 3.9 -1.8", block2.OutputNodes[0].Object[0].ToString(1)); idwtBlock.Cascade = false; block2 = (IDWTBlock)idwtBlock.Clone(); idwtBlock.OutputNodes[0].ConnectTo(block2.InputNodes[0]); signalBlock.Execute(); idwtBlock.Execute(); Assert.AreEqual(0, block2.OutputNodes[0].Object.Count); try { idwtBlock.WaveletName = "nonono"; Assert.Fail("Exception not thrown!"); } catch (Exception) { Assert.IsTrue(true, "Exception thrown! Yeay!"); } }
public double Run(double[] data, int detailLevel) { var sb = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sb.Append(data[i]); if (i < data.Length - 1) { sb.Append(","); } } string datastring = sb.ToString(); var textBlock = new ImportFromTextBlock { Text = datastring, ColumnSeparator = ",", SignalStart = 0, SignalNameInFirstColumn = false }; var dwtBlock = new DWTBlock { WaveletName = "db10", Level = detailLevel, ExtensionMode = SignalExtension.ExtensionMode.ZeroPadding }; var b = new BlockList(); b.Add(textBlock); b.Add(dwtBlock); textBlock.ConnectTo(dwtBlock); b.ExecuteAll(); int length = dwtBlock.OutputNodes[dwtBlock.OutputNodes.Count - 1].Object[detailLevel - 1].Samples.Length; double val = dwtBlock.OutputNodes[dwtBlock.OutputNodes.Count - 1].Object[detailLevel - 1].Samples[length - 1]; return(val); }
public double Run(double[] data, int detailLevel) { var sb = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sb.Append(data[i]); if (i < data.Length - 1) sb.Append(","); } string datastring = sb.ToString(); var textBlock = new ImportFromTextBlock { Text = datastring, ColumnSeparator = ",", SignalStart = 0, SignalNameInFirstColumn = false }; var dwtBlock = new DWTBlock { WaveletName = "db10", Level = detailLevel, ExtensionMode = SignalExtension.ExtensionMode.ZeroPadding }; var b = new BlockList(); b.Add(textBlock); b.Add(dwtBlock); textBlock.ConnectTo(dwtBlock); b.ExecuteAll(); int length = dwtBlock.OutputNodes[dwtBlock.OutputNodes.Count-1].Object[detailLevel - 1].Samples.Length; double val = dwtBlock.OutputNodes[dwtBlock.OutputNodes.Count-1].Object[detailLevel - 1].Samples[length - 1]; return val; }
public void TestIDWTBlockExecute2() { var signalBlock = new ImportFromTextBlock { Text = "2.1,3.2,-1,-1.3,-100,-2,15,22" }; var dwtBlock = new DWTBlock { WaveletName = "DB4", Level = 2 }; var idwtBlock = new IDWTBlock { WaveletName = "DB4", Level = 2 }; signalBlock.ConnectTo(dwtBlock); //Connect approximation dwtBlock.OutputNodes[0].ConnectTo(idwtBlock.InputNodes[0]); //Connect details dwtBlock.OutputNodes[1].ConnectTo(idwtBlock.InputNodes[1]); signalBlock.Execute(); Console.WriteLine(idwtBlock.OutputNodes[0].Object.ToString(1)); Assert.AreEqual("2.1 3.2 -1.0 -1.3 -100.0 -2.0 15.0 22.0", idwtBlock.OutputNodes[0].Object.ToString(1)); }
public void TestGlobalizedPropertyDescriptor() { var block = new DWTBlock { WaveletName = "sym2" }; var baseProps = TypeDescriptor.GetProperties(block, new Attribute[] { }, true); var waveletNameProperty = baseProps.Cast <PropertyDescriptor>().FirstOrDefault(baseProp => baseProp.Name == "WaveletName"); var descriptor = new GlobalizedPropertyDescriptor(waveletNameProperty); Assert.AreEqual(false, descriptor.CanResetValue(block)); Assert.AreEqual(block.GetType(), descriptor.ComponentType); Assert.AreEqual("sym2", descriptor.GetValue(block)); Assert.AreEqual(Resources.WaveletName, descriptor.DisplayName); Assert.AreEqual(Resources.WaveletNameDescription, descriptor.Description); Assert.AreEqual(false, descriptor.IsReadOnly); Assert.AreEqual("WaveletName", descriptor.Name); Assert.AreEqual(typeof(string), descriptor.PropertyType); Assert.AreEqual(true, descriptor.ShouldSerializeValue(block)); descriptor.SetValue(block, "db4"); Assert.AreEqual("db4", descriptor.GetValue(block)); descriptor.ResetValue(block); Assert.AreEqual("db4", descriptor.GetValue(block)); }
public void TestGlobalizedObject() { var block = new DWTBlock(); Assert.AreEqual(typeof(DWTBlock).FullName, block.GetClassName()); Assert.IsTrue(block.GetAttributes().Count > 0); Assert.IsNull(block.GetComponentName()); Assert.IsNotNull(block.GetConverter()); Assert.IsNull(block.GetDefaultEvent()); Assert.IsNull(block.GetDefaultProperty()); Assert.IsNull(block.GetEditor(typeof(DWTBlock))); Assert.AreEqual(0, block.GetEvents().Count); Assert.IsTrue(block.GetProperties().Count > 0); Assert.IsFalse(block.CausesRefresh); Assert.AreEqual(block, block.GetPropertyOwner(new PropertyDescriptorMock("WaveletName", new Attribute[] { }))); block = new DWTBlock(); Assert.AreEqual(0, block.GetEvents(new Attribute[] {}).Count); Assert.IsTrue(block.GetProperties(new Attribute[] { }).Count > 0); var block2 = new ScalarOperationBlock(); Assert.IsTrue(block2.CausesRefresh); }
public void TestWaveletBlockExecute() { var signalBlock = new GenerateSignalBlock { TemplateName = "Binary", Start = 0, Finish = 10, SamplingRate = 1, IgnoreLastSample = true }; var waveletBlock = new DWTBlock { WaveletName = "db4|Daubechies 4", Level = 2, ExtensionMode = SignalExtension.ExtensionMode.SymmetricHalfPoint }; waveletBlock.Execute(); Assert.IsTrue(waveletBlock.WaveletNameList.Count > 0); Assert.AreEqual("db4|Daubechies 4", waveletBlock.WaveletName); signalBlock.OutputNodes[0].ConnectTo(waveletBlock.InputNodes[0]); Assert.IsNotNull(waveletBlock.Name); Assert.IsNotNull(waveletBlock.Description); Assert.IsNotNull(waveletBlock.ProcessingType); signalBlock.Execute(); Assert.AreEqual("0.7 0.9 0.2 0.7 0.7 0.8 0.5 1.2", waveletBlock.OutputNodes[0].Object[0].ToString(1)); Assert.AreEqual("1.0 0.8 1.1 0.8 1.0 0.8 1.6", waveletBlock.OutputNodes[0].Object[1].ToString(1)); Assert.AreEqual("-0.2 -0.8 -0.7 -0.7 -0.7 0.2 0.8 0.7", waveletBlock.OutputNodes[1].Object[0].ToString(1)); Assert.AreEqual("-0.1 -0.4 0.0 -0.3 0.1 0.2 0.1", waveletBlock.OutputNodes[1].Object[1].ToString(1)); Assert.AreEqual(signalBlock.OutputNodes[0].Object.ToString(1), waveletBlock.OutputNodes[2].Object[0].ToString(1)); Assert.AreEqual(5, waveletBlock.OutputNodes[3].Object.Count); Assert.AreEqual("0.7 0.9 0.2 0.7 0.7 0.8 0.5 1.2", waveletBlock.OutputNodes[3].Object[0].ToString(1)); Assert.AreEqual("-0.2 -0.8 -0.7 -0.7 -0.7 0.2 0.8 0.7", waveletBlock.OutputNodes[3].Object[1].ToString(1)); Assert.AreEqual("1.0 0.8 1.1 0.8 1.0 0.8 1.6", waveletBlock.OutputNodes[3].Object[2].ToString(1)); Assert.AreEqual("-0.1 -0.4 0.0 -0.3 0.1 0.2 0.1", waveletBlock.OutputNodes[3].Object[3].ToString(1)); Assert.AreEqual(signalBlock.OutputNodes[0].Object.ToString(1), waveletBlock.OutputNodes[3].Object[4].ToString(1)); var block2 = (DWTBlock)waveletBlock.Clone(); block2.WaveletName = "db4"; signalBlock.OutputNodes[0].ConnectTo(block2.InputNodes[0]); signalBlock.Execute(); Assert.AreEqual("0.7 0.9 0.2 0.7 0.7 0.8 0.5 1.2", block2.OutputNodes[0].Object[0].ToString(1)); waveletBlock.Cascade = false; block2 = (DWTBlock)waveletBlock.Clone(); waveletBlock.OutputNodes[0].ConnectTo(block2.InputNodes[0]); signalBlock.Execute(); Assert.AreEqual(0, block2.OutputNodes[0].Object.Count); waveletBlock.Cascade = true; signalBlock.ConnectTo(waveletBlock); waveletBlock.ConnectTo(block2); waveletBlock.Execute(); Assert.AreEqual(4, block2.OutputNodes[0].Object.Count); try { waveletBlock.WaveletName = "nonono"; Assert.Fail("Exception not thrown!"); } catch (Exception) { Assert.IsTrue(true, "Exception thrown! Yeay!"); } }
private List<double> processOneSeries(List<double> serie) { //Declaring the blocks var inputSeriesBlock = new InputSeriesBlock(); inputSeriesBlock.SetSeries(serie); var dWTBlock = new DWTBlock { WaveletName = "Daubechies 10 (db10)", Level = 1, Rescale = false, ExtensionMode = WaveletStudio.SignalExtension.ExtensionMode.AntisymmetricWholePoint }; var outputSeriesBlock = new OutputSeriesBlock(); //Connecting the blocks inputSeriesBlock.OutputNodes[0].ConnectTo(dWTBlock.InputNodes[0]); dWTBlock.OutputNodes[1].ConnectTo(outputSeriesBlock.InputNodes[0]); //Appending the blocks to a block list and execute all var blockList = new BlockList(); blockList.Add(inputSeriesBlock); blockList.Add(dWTBlock); blockList.Add(outputSeriesBlock); blockList.ExecuteAll(); return outputSeriesBlock.GetSeries(); }
public static List<double> WaveletTransform(List<double> serie) { //Declaring the blocks var inputSeriesBlock = new InputSeriesBlock(); inputSeriesBlock.SetSeries(serie); var dWTBlock = new DWTBlock { WaveletName = "coif4", Level = 1, Rescale = false, ExtensionMode = SignalExtension.ExtensionMode.AntisymmetricWholePoint }; var outputSeriesBlock = new OutputSeriesBlock(); //Connecting the blocks inputSeriesBlock.OutputNodes[0].ConnectTo(dWTBlock.InputNodes[0]); // dWTBlock.OutputNodes[1].ConnectTo(dWTBlock2.InputNodes[0]); dWTBlock.OutputNodes[1].ConnectTo(outputSeriesBlock.InputNodes[0]); //Appending the blocks to a block list and execute all var blockList = new BlockList(); blockList.Add(inputSeriesBlock); blockList.Add(dWTBlock); //blockList.Add(dWTBlock2); blockList.Add(outputSeriesBlock); blockList.ExecuteAll(); return outputSeriesBlock.GetSeries(); }