Exemple #1
0
    private void SetPixelDiff(string[] lineComponents)
    {
        PixelDiff pixelDiff = new PixelDiff(lineComponents);
        int       index     = CoordsToIndex(pixelDiff.XPos, pixelDiff.YPos);

        colorData[index] = pixelDiff.ColorIndex;
    }
Exemple #2
0
        public void Test50()
        {
            // Some necessary initializations.
            MainViewModel mvm           = MainViewModelTest.GetInstance();
            var           windowManMock = new Mock <IWindowManagerEx>();
            var           vm            = MainViewModelTest.GetInstance(cont => cont.ComposeExportedValue <IWindowManagerEx>(windowManMock.Object));
            var           conductorMock = new Mock <IConductor>();


            // Step 1: Create simple pipeline.
            //
            //	[color]---[overlay]
            //		   \ /
            //			X
            //		   / \
            //  [noise]---[diagram]
            NoiseInputNode noise = new NoiseInputNode();

            mvm.Model.Graph.AddNode(noise);
            ColorInputNode color = new ColorInputNode();

            mvm.Model.Graph.AddNode(color);
            DiagramNode diagram = new DiagramNode();

            diagram.Inputs.Add(new Node.Input());
            diagram.Inputs.Add(new Node.Input());
            mvm.Model.Graph.AddNode(diagram);
            OverlayNode overlay = new OverlayNode();

            mvm.Model.Graph.AddNode(overlay);
            Assert.Contains(noise, mvm.Model.Graph.Nodes);
            Assert.Contains(color, mvm.Model.Graph.Nodes);
            Assert.Contains(diagram, mvm.Model.Graph.Nodes);
            Assert.Contains(overlay, mvm.Model.Graph.Nodes);

            mvm.Model.Graph.AddEdge(noise.Outputs[0], overlay.Inputs[0]);
            mvm.Model.Graph.AddEdge(noise.Outputs[0], diagram.Inputs[0]);
            mvm.Model.Graph.AddEdge(color.Outputs[0], overlay.Inputs[1]);
            mvm.Model.Graph.AddEdge(color.Outputs[0], diagram.Inputs[1]);
            Assert.Equal(noise.Outputs[0], overlay.Inputs[0].Source);
            Assert.Equal(noise.Outputs[0], diagram.Inputs[0].Source);
            Assert.Equal(color.Outputs[0], overlay.Inputs[1].Source);
            Assert.Equal(color.Outputs[0], diagram.Inputs[1].Source);

            // Step 2: Disable diagram node and open overlay node.
            diagram.IsEnabled = false;
            IGraphType pixelDiff = new PixelDiff();
            IGraphType psnr      = new PeakSignalNoiseRatio();

            IoC.GetAllInstances = type => new List <IGraphType> {
                pixelDiff, psnr
            };
            var overlayWindow = new OverlayViewModel(overlay)
            {
                Parent = conductorMock.Object
            };
            var diagramWindow = new DiagramViewModel(diagram)
            {
                Parent = conductorMock.Object
            };

            ((IActivate)overlayWindow).Activate();
            conductorMock.Setup(c => c.DeactivateItem(overlayWindow, true))
            .Callback(() => ((IDeactivate)overlayWindow).Deactivate(close: true))
            .Verifiable();

            mvm.OpenWindow(overlayWindow);
            Assert.Contains(overlayWindow, mvm.OpenWindows);

            // Step 3: Start pipeline and add an overlay in the overlay node.
            mvm.Model.Start(mvm.Model.Graph.Nodes);
            overlay.Type = new ArtifactsOverlay();

            // Step 4: Remove selected overlay.
            overlay.Type = new NoOverlay();

            // Step 5: Stop pipeline and close overlay node.
            mvm.Model.Stop();
            mvm.CloseWindows(overlay);
            Assert.DoesNotContain(overlayWindow, mvm.OpenWindows);

            // Step 6: Re-enable diagram node and open it.
            diagram.IsEnabled = true;
            mvm.OpenWindow(diagramWindow);
            Assert.Contains(diagramWindow, mvm.OpenWindows);

            // Step 7: Choose a reference video and add a diagram graph.
            diagramWindow.Reference   = new Tuple <string, Node.Input>(diagramWindow.GetVideoName(diagram.Inputs[0]), diagram.Inputs[0]);
            diagramWindow.ChosenVideo = new Tuple <string, Node.Input>(diagramWindow.GetVideoName(diagram.Inputs[1]), diagram.Inputs[1]);
            diagramWindow.AddGraph();
            diagramWindow.Graphs.ElementAt(0).CurrentType = new GraphTypeViewModel(pixelDiff);

            // Step 8: Start pipeline again and change diagram graph type.
            mvm.Model.Start(mvm.Model.Graph.Nodes);
            diagramWindow.Graphs.ElementAt(0).CurrentType = new GraphTypeViewModel(psnr);

            // Step 9: Remove the diagram graph.
            DiagramGraphViewModel dgvm = diagramWindow.Graphs.ElementAt(0);

            diagramWindow.DeleteGraph(dgvm);
            Assert.DoesNotContain(dgvm, diagramWindow.Graphs);
        }