public void TestCurrentDirectory() { var block = new ConvolutionBlock(); Assert.AreEqual(Utils.AssemblyDirectory, block.CurrentDirectory); block.CurrentDirectory = "xxx"; Assert.AreEqual("xxx", block.CurrentDirectory); }
public void TestGetName() { var block = new ConvolutionBlock(); Assert.AreEqual(block.Name, BlockBase.GetName(block.GetType())); Assert.AreEqual("ConvolutionBlock", block.GetAssemblyClassName()); Assert.AreEqual("", BlockBase.GetName(typeof(Object))); Assert.AreEqual("", BlockBase.GetName(typeof(BlockBase))); Assert.AreEqual(true, block.HasParameters()); var block2 = new InvertBlock(); Assert.AreEqual(false, block2.HasParameters()); }
public void TestNodesConnection() { BlockBase root1 = new ConvolutionBlock(); BlockBase root2 = new ConvolutionBlock(); var in1 = new BlockInputNode(); var out1 = new BlockOutputNode(); Assert.IsNull(in1.ConnectingNode); Assert.IsNull(in1.Root); Assert.IsNull(out1.ConnectingNode); Assert.IsNull(out1.Root); Assert.IsNull(out1.Object); out1 = new BlockOutputNode(ref root1, "Out1", "O"); in1 = new BlockInputNode(ref root2, "In1", "I"); in1.ConnectTo(out1); Assert.AreSame(out1.ConnectingNode, in1); Assert.AreSame(in1.ConnectingNode, out1); out1.ConnectingNode = null; in1.ConnectingNode = null; in1.ConnectTo(ref out1); Assert.AreSame(out1.ConnectingNode, in1); Assert.AreSame(in1.ConnectingNode, out1); out1.ConnectingNode = null; in1.ConnectingNode = null; out1.ConnectTo(in1); Assert.AreSame(out1.ConnectingNode, in1); Assert.AreSame(in1.ConnectingNode, out1); out1.ConnectingNode = null; in1.ConnectingNode = null; out1.ConnectTo(ref in1); Assert.AreSame(out1.ConnectingNode, in1); Assert.AreSame(in1.ConnectingNode, out1); out1.ConnectingNode = null; in1.ConnectingNode = null; BlockNodeBase outBase = out1; BlockNodeBase inBase = in1; outBase.ConnectTo(ref inBase); Assert.AreSame(out1.ConnectingNode, in1); Assert.AreSame(in1.ConnectingNode, out1); }
public void TestBlockList() { var signalBlock1 = new GenerateSignalBlock { Cascade = false, Offset = 1, TemplateName = "Binary", Start = 0, Finish = 3, SamplingRate = 1 }; var signalBlock2 = new GenerateSignalBlock { Cascade = false, Offset = 2, TemplateName = "Binary", Start = 0, Finish = 3, SamplingRate = 1 }; var signalBlock3 = new GenerateSignalBlock { Offset = 3, TemplateName = "Binary", Start = 0, Finish = 3, SamplingRate = 1 }; var convolutionBlock1 = new ConvolutionBlock(); var convolutionBlock2 = new ConvolutionBlock(); var blockList = new BlockList { signalBlock1, signalBlock2, signalBlock3, convolutionBlock1, convolutionBlock2 }; signalBlock1.ConnectTo(convolutionBlock1); signalBlock2.ConnectTo(convolutionBlock1); convolutionBlock1.ConnectTo(convolutionBlock2); signalBlock2.ConnectTo(convolutionBlock2); blockList.ExecuteAll(); Assert.AreEqual("4 20 45 78 111 114 103 74 33 18", convolutionBlock2.OutputNodes[0].Object.ToString(0)); convolutionBlock1 = new ConvolutionBlock(); convolutionBlock1.InputNodes.Clear(); signalBlock1.ConnectTo(convolutionBlock1); signalBlock1.Execute(); Assert.AreEqual(0, convolutionBlock1.OutputNodes[0].Object.Count); convolutionBlock1 = new ConvolutionBlock(); signalBlock1 = new GenerateSignalBlock(); signalBlock2.OutputNodes.Clear(); signalBlock2.ConnectTo(convolutionBlock1); signalBlock1.ConnectTo(convolutionBlock1); signalBlock1.Execute(); Assert.AreEqual(0, convolutionBlock1.OutputNodes[0].Object.Count); }
public void TestConvolutionBlockExecute() { var signalBlock1 = new GenerateSignalBlock { Offset = 1.2, TemplateName = "Binary", Start = 0, Finish = 5, SamplingRate = 1, IgnoreLastSample = true }; var signalBlock2 = new GenerateSignalBlock { Offset = 2.3, TemplateName = "Binary", Start = 0, Finish = 5, SamplingRate = 1, IgnoreLastSample = true }; var convolutionBlock = new ConvolutionBlock { ReturnOnlyValid = true }; convolutionBlock.Execute(); signalBlock1.OutputNodes[0].ConnectTo(convolutionBlock.InputNodes[0]); signalBlock2.OutputNodes[0].ConnectTo(convolutionBlock.InputNodes[1]); Assert.IsNotNull(convolutionBlock.Name); Assert.IsNotNull(convolutionBlock.Description); Assert.IsNotNull(convolutionBlock.ProcessingType); signalBlock1.Execute(); Assert.AreEqual("1.2 2.2 1.2 2.2 1.2", convolutionBlock.Output[0].ToString(1)); signalBlock2.Execute(); Assert.IsNotNull(convolutionBlock.OutputNodes[0].Object); Assert.AreEqual("22.80", convolutionBlock.Output[0].ToString(2)); convolutionBlock.ReturnOnlyValid = false; signalBlock1.Execute(); Assert.AreEqual("2.76 9.02 12.78 18.04 22.80 18.04 12.78 9.02 2.76", convolutionBlock.Output[0].ToString(2)); var convolutionBlock2 = (ConvolutionBlock)convolutionBlock.Clone(); convolutionBlock.OutputNodes[0].ConnectTo(convolutionBlock2.InputNodes[0]); signalBlock2.OutputNodes[0].ConnectTo(convolutionBlock2.InputNodes[1]); signalBlock2.Execute(); Assert.AreEqual("6.348 29.854 65.508 113.520 177.480 221.144 230.292 221.144 177.480 113.520 65.508 29.854 6.348", convolutionBlock2.Output[0].ToString(3)); signalBlock1.OutputNodes[0].Object.Add(new Signal(new double[] { 1, 2, 3, 4 })); convolutionBlock.Execute(); Assert.AreEqual("2.300 7.900 15.800 27.000 29.000 23.700 20.100 0.000", convolutionBlock.Output[0, 1].ToString(3)); convolutionBlock2 = (ConvolutionBlock)convolutionBlock.Clone(); convolutionBlock.Cascade = false; convolutionBlock.OutputNodes[0].ConnectTo(convolutionBlock2.InputNodes[0]); convolutionBlock.Execute(); Assert.AreEqual(0, convolutionBlock2.OutputNodes[0].Object.Count); convolutionBlock.Cascade = true; convolutionBlock.OutputNodes[0].ConnectTo(convolutionBlock2.InputNodes[0]); signalBlock2.OutputNodes[0].ConnectTo(convolutionBlock2.InputNodes[1]); convolutionBlock.Execute(); Assert.IsNotNull(convolutionBlock2.OutputNodes[0].Object); convolutionBlock.Cascade = true; convolutionBlock2.OutputNodes[0].Object = null; convolutionBlock.OutputNodes[0].ConnectingNode = null; signalBlock2.OutputNodes[0].ConnectingNode = null; convolutionBlock.Execute(); Assert.IsNull(convolutionBlock2.OutputNodes[0].Object); }