Ejemplo n.º 1
0
        public void GlobalTest10()
        {
            MainViewModel     mvm = MainViewModelTest.GetInstance();
            PipelineViewModel pvm = mvm.PipelineViewModel;

            // Step 1: The user clicks "New" to create a new pipeline
            mvm.Clear();
            Assert.Empty(mvm.Model.Graph.Nodes);
            var mock = new Mock <IDragEventInfo>();

            // Step 2: Create each type of node once by drag-and-drop
            VideoInputNode    vin = (VideoInputNode)AddNode <VideoInputNode>(pvm, mock, new Point(10, 30));
            AdditiveMergeNode amn = (AdditiveMergeNode)AddNode <AdditiveMergeNode>(pvm, mock, new Point(30, 30));
            BlurNode          bn  = (BlurNode)AddNode <BlurNode>(pvm, mock, new Point(50, 30));
            BrightnessContrastSaturationNode bcsn =
                (BrightnessContrastSaturationNode)AddNode <BrightnessContrastSaturationNode>(pvm, mock, new Point(70, 30));
            ColorInputNode            cin   = (ColorInputNode)AddNode <ColorInputNode>(pvm, mock, new Point(10, 50));
            DelayNode                 dln   = (DelayNode)AddNode <DelayNode>(pvm, mock, new Point(90, 30));
            DiagramNode               dgn   = (DiagramNode)AddNode <DiagramNode>(pvm, mock, new Point(110, 30));
            DifferenceNode            dfn   = (DifferenceNode)AddNode <DifferenceNode>(pvm, mock, new Point(30, 50));
            HistogramNode             hn    = (HistogramNode)AddNode <HistogramNode>(pvm, mock, new Point(50, 50));
            ImageInputNode            imin  = (ImageInputNode)AddNode <ImageInputNode>(pvm, mock, new Point(70, 50));
            InverterNode              invn  = (InverterNode)AddNode <InverterNode>(pvm, mock, new Point(90, 50));
            NoiseInputNode            nin   = (NoiseInputNode)AddNode <NoiseInputNode>(pvm, mock, new Point(110, 50));
            OverlayNode               on    = (OverlayNode)AddNode <OverlayNode>(pvm, mock, new Point(10, 70));
            RgbSplitNode              rgbsn = (RgbSplitNode)AddNode <RgbSplitNode>(pvm, mock, new Point(30, 70));
            WeightedAveragedMergeNode wamn  =
                (WeightedAveragedMergeNode)AddNode <WeightedAveragedMergeNode>(pvm, mock, new Point(50, 70));

            // Step 3: Create the edges
            mvm.Model.Graph.AddEdge(vin.Outputs[0], bn.Inputs[0]);
            Assert.Equal(vin.Outputs[0], bn.Inputs[0].Source);
            amn.Inputs.Add(new Node.Input());
            mvm.Model.Graph.AddEdge(vin.Outputs[0], amn.Inputs[0]);
            Assert.Equal(vin.Outputs[0], amn.Inputs[0].Source);
            mvm.Model.Graph.AddEdge(bn.Outputs[0], dln.Inputs[0]);
            Assert.Equal(bn.Outputs[0], dln.Inputs[0].Source);
            mvm.Model.Graph.AddEdge(dln.Outputs[0], dfn.Inputs[0]);
            Assert.Equal(dln.Outputs[0], dfn.Inputs[0].Source);
            mvm.Model.Graph.AddEdge(imin.Outputs[0], dfn.Inputs[1]);
            Assert.Equal(imin.Outputs[0], dfn.Inputs[1].Source);
            mvm.Model.Graph.AddEdge(dfn.Outputs[0], invn.Inputs[0]);
            Assert.Equal(dfn.Outputs[0], invn.Inputs[0].Source);
            mvm.Model.Graph.AddEdge(invn.Outputs[0], on.Inputs[0]);
            Assert.Equal(invn.Outputs[0], on.Inputs[0].Source);
            mvm.Model.Graph.AddEdge(vin.Outputs[0], on.Inputs[1]);
            Assert.Equal(vin.Outputs[0], on.Inputs[1].Source);
            mvm.Model.Graph.AddEdge(vin.Outputs[0], rgbsn.Inputs[0]);
            Assert.Equal(vin.Outputs[0], rgbsn.Inputs[0].Source);
            mvm.Model.Graph.AddEdge(rgbsn.Outputs[2], hn.Inputs[0]);
            Assert.Equal(rgbsn.Outputs[2], hn.Inputs[0].Source);
        }
Ejemplo n.º 2
0
		public void FilePathPropertyViewModelTest()
		{
			// Since this property viewmodel commits its change as soon as the change is made, the commitChange method
			// is executed, which requires a working IoC
			IoC.GetInstance = IoCAggregator;

			FilePathPropertyViewModel en = new FilePathPropertyViewModel();
			ImageInputNode image = new ImageInputNode();
			image.FileName = new YuvKA.Pipeline.FilePath(null);
			PropertyDescriptor pd = TypeDescriptor.GetProperties(image).Find("filename", true);
			en.Initialize(image, pd);

			Assert.Equal("Choose File...", en.ShortPath);
			image.FileName = new YuvKA.Pipeline.FilePath("lol");
			Assert.Equal("lol", en.ShortPath);
			en.Value = new YuvKA.Pipeline.FilePath("rofl");
			Assert.Equal("rofl", image.FileName.Path);
		}
Ejemplo n.º 3
0
        public void FilePathPropertyViewModelTest()
        {
            // Since this property viewmodel commits its change as soon as the change is made, the commitChange method
            // is executed, which requires a working IoC
            IoC.GetInstance = IoCAggregator;

            FilePathPropertyViewModel en    = new FilePathPropertyViewModel();
            ImageInputNode            image = new ImageInputNode();

            image.FileName = new YuvKA.Pipeline.FilePath(null);
            PropertyDescriptor pd = TypeDescriptor.GetProperties(image).Find("filename", true);

            en.Initialize(image, pd);

            Assert.Equal("Choose File...", en.ShortPath);
            image.FileName = new YuvKA.Pipeline.FilePath("lol");
            Assert.Equal("lol", en.ShortPath);
            en.Value = new YuvKA.Pipeline.FilePath("rofl");
            Assert.Equal("rofl", image.FileName.Path);
        }
Ejemplo n.º 4
0
        public void ImageInputTest()
        {
            ImageInputNode inputNode = new ImageInputNode();
            Frame          outputFrame;
            Bitmap         outputImage;

            inputNode.FileName = new YuvKA.Pipeline.FilePath("..\\..\\..\\..\\resources\\papagei.png");

            // Reduce the image
            inputNode.Size = new YuvKA.VideoModel.Size(100, 80);
            CopyFrameToOutputImage(inputNode, out outputFrame, out outputImage, 0);
            outputImage.Save("..\\..\\..\\..\\output\\papagei-resized-" +
                             inputNode.Size.Width + "-" + inputNode.Size.Height + ".png");

            // Enlarge the image
            inputNode.Size = new YuvKA.VideoModel.Size(200, 400);
            CopyFrameToOutputImage(inputNode, out outputFrame, out outputImage, 0);
            outputImage.Save("..\\..\\..\\..\\output\\papagei-resized-" +
                             inputNode.Size.Width + "-" + inputNode.Size.Height + ".png");

            // Change path and size
            inputNode.Size     = new YuvKA.VideoModel.Size(400, 50);
            inputNode.FileName = new YuvKA.Pipeline.FilePath("..\\..\\..\\..\\resources\\sample.png");
            CopyFrameToOutputImage(inputNode, out outputFrame, out outputImage, 0);
            outputImage.Save("..\\..\\..\\..\\output\\sample-resized-" +
                             inputNode.Size.Width + "-" + inputNode.Size.Height + ".png");

            // Change size only
            inputNode.Size = new YuvKA.VideoModel.Size(352, 200);
            CopyFrameToOutputImage(inputNode, out outputFrame, out outputImage, 0);
            outputImage.Save("..\\..\\..\\..\\output\\sample-resized-" +
                             inputNode.Size.Width + "-" + inputNode.Size.Height + ".png");

            inputNode.Size = new YuvKA.VideoModel.Size(420, 315);
            inputNode.OutputFrame(0);
        }