Exemplo n.º 1
0
        public void TestMuxBlockExecute2()
        {
            var signal1 = new ImportFromTextBlock {
                Text = "1, 2, 3, 4"
            };
            var signal2 = new ImportFromTextBlock {
                Text = "5, 6, 7, 8"
            };
            var signal3 = new ImportFromTextBlock {
                Text = "9, 2, 4, 3"
            };
            var muxBlock = new MuxBlock {
                InputCount = 3
            };

            signal1.ConnectTo(muxBlock);
            signal2.ConnectTo(muxBlock);
            signal3.ConnectTo(muxBlock);

            signal1.Execute();
            signal2.Execute();
            signal3.Execute();

            Console.WriteLine(muxBlock.OutputNodes[0].Object.Count);
            Console.WriteLine(muxBlock.OutputNodes[0].Object[0].ToString(0));
            Console.WriteLine(muxBlock.OutputNodes[0].Object[1].ToString(0));
            Console.WriteLine(muxBlock.OutputNodes[0].Object[2].ToString(0));
            //Output:
            //3
            //1 2 3 4
            //5 6 7 8
            //9 2 4 3

            Assert.AreEqual(3, muxBlock.OutputNodes[0].Object.Count);
            Assert.AreEqual("1 2 3 4", muxBlock.OutputNodes[0].Object[0].ToString(0));
            Assert.AreEqual("5 6 7 8", muxBlock.OutputNodes[0].Object[1].ToString(0));
            Assert.AreEqual("9 2 4 3", muxBlock.OutputNodes[0].Object[2].ToString(0));
        }
Exemplo n.º 2
0
        public void TestMuxBlockExecute()
        {
            var signalBlock1 = new ImportFromTextBlock {
                ColumnSeparator = " ", SignalStart = 3, SamplingInterval = 1
            };
            var signalBlock2 = new ImportFromTextBlock {
                ColumnSeparator = " ", SignalStart = 3, SamplingInterval = 1
            };
            var signalBlock3 = new ImportFromTextBlock {
                ColumnSeparator = " ", SignalStart = 3, SamplingInterval = 1
            };
            var signalBlock4 = new ImportFromTextBlock {
                ColumnSeparator = " ", SignalStart = 3, SamplingInterval = 1
            };
            var block = new MuxBlock {
                InputCount = 4
            };

            block.Execute();

            signalBlock1.ConnectTo(block);
            signalBlock1.Text = "1 1 1 1";
            signalBlock1.Execute();

            Assert.AreEqual((uint)4, block.InputCount);
            Assert.AreEqual("1 1 1 1", block.OutputNodes[0].Object[0].ToString(0));
            Assert.AreEqual(1, block.OutputNodes[0].Object.Count);

            block.SignalNames = "S1\r\nS2\r\nS3\r\nS4";

            signalBlock2.ConnectTo(block);
            signalBlock2.Text = "2 2 2 2";
            signalBlock2.Execute();
            signalBlock3.ConnectTo(block);
            signalBlock3.Text = "3 3 3 3";
            signalBlock3.Execute();
            signalBlock4.ConnectTo(block);
            signalBlock4.Text = "4 4 4 4";
            signalBlock4.Execute();

            Assert.AreEqual("1 1 1 1", block.OutputNodes[0].Object[0].ToString(0));
            Assert.AreEqual("2 2 2 2", block.OutputNodes[0].Object[1].ToString(0));
            Assert.AreEqual("3 3 3 3", block.OutputNodes[0].Object[2].ToString(0));
            Assert.AreEqual("4 4 4 4", block.OutputNodes[0].Object[3].ToString(0));
            Assert.AreEqual("S1", block.OutputNodes[0].Object[0].Name);
            Assert.AreEqual("S2", block.OutputNodes[0].Object[1].Name);
            Assert.AreEqual("S3", block.OutputNodes[0].Object[2].Name);
            Assert.AreEqual("S4", block.OutputNodes[0].Object[3].Name);
            Assert.AreEqual(4, block.OutputNodes[0].Object.Count);

            var block2 = (MuxBlock)block.Clone();

            block.ConnectTo(block2);
            signalBlock4.Execute();
            Assert.AreEqual(4, block2.OutputNodes[0].Object.Count);

            block.Cascade = false;
            block2        = (MuxBlock)block.Clone();
            block.ConnectTo(block2);
            signalBlock4.Execute();
            Assert.AreEqual("", block2.OutputNodes[0].Object.ToString(0, " "));
            Assert.AreEqual(0, block2.OutputNodes[0].Object.Count);
        }