public void ResetReferenceWithExistingGraphControls() { // Set the GraphTypes IoC.GetAllInstances = type => new IGraphType[] { new PixelDiff() }; // Get the parent PipelineVM and add DiagramNode var vm = MainViewModelTest.GetInstance().PipelineViewModel; var node = new NodeViewModel(new DiagramNode(), vm); vm.Nodes.Add(node); vm.Parent.Model.Graph.AddNode(node.Model); var DVM = new DiagramViewModel((DiagramNode)vm.Nodes.Single().Model); // Add Input Node for DiagramNode with 3 Outputs. var sourceNode = new AnonymousNode(AnonNodeHelper.SourceNode, 3); var inputs = sourceNode.Process(null, 0); // Add reference video to node. var reference = new Node.Input { Source = sourceNode.Outputs[0] }; DVM.NodeModel.Inputs.Add(reference); // Add other Outputs as Inputs to DiagramNode. var video = new Node.Input { Source = sourceNode.Outputs[1] }; DVM.NodeModel.Inputs.Add(video); var altRef = new Node.Input { Source = sourceNode.Outputs[2] }; DVM.NodeModel.Inputs.Add(altRef); DVM.Reference = DVM.Videos.ElementAt(0); DVM.ChosenVideo = DVM.Videos.ElementAt(1); DVM.AddGraph(); var dgvm = DVM.Graphs.Single(); // ChosenType = PixelDifference dgvm.CurrentType = dgvm.AvailableTypes.ElementAt(0); // porcess one frame with first reference DVM.NodeModel.ProcessCore(inputs, 0); DVM.Handle(null); DVM.Reference = DVM.Videos.ElementAt(2); // porcess one frame with second reference DVM.NodeModel.ProcessCore(inputs, 1); DVM.Handle(null); Assert.Equal(dgvm.AvailableTypes.ElementAt(0).Model.Process(inputs[1], inputs[0]), dgvm.Model.Data[0].Value); Assert.Equal(dgvm.AvailableTypes.ElementAt(0).Model.Process(inputs[1], inputs[2]), dgvm.Model.Data[1].Value); }
public void GetsData() { // Set the GraphTypes IoC.GetAllInstances = type => new IGraphType[] { new PixelDiff() }; // Get the parent PipelineVM and add DiagramNode var vm = MainViewModelTest.GetInstance().PipelineViewModel; var node = new NodeViewModel(new DiagramNode(), vm); vm.Nodes.Add(node); vm.Parent.Model.Graph.AddNode(node.Model); var DVM = new DiagramViewModel((DiagramNode)vm.Nodes.Single().Model); // Add Input Node for DiagramNode with 3 Outputs. var sourceNode = new AnonymousNode(AnonNodeHelper.SourceNode, 3); var inputs = sourceNode.Process(null, 0); // Add reference video to node. var reference = new Node.Input { Source = sourceNode.Outputs[0] }; DVM.NodeModel.Inputs.Add(reference); // Add other Outputs as Inputs to DiagramNode. var video = new Node.Input { Source = sourceNode.Outputs[1] }; DVM.NodeModel.Inputs.Add(video); DVM.Reference = DVM.Videos.ElementAt(0); DVM.ChosenVideo = DVM.Videos.ElementAt(1); DVM.AddGraph(); var dgvm = DVM.Graphs.Single(); // Set the ChosenType of the DiagramGraphViewModel to PixelDifference dgvm.CurrentType = dgvm.AvailableTypes.First(); DVM.NodeModel.ProcessCore(inputs, 0); var dataBefore = DVM.Lines.Single().DataSource; // data is drawn to the diagram by the DiagramVM DVM.Handle(null); Assert.NotEqual(DVM.Lines.Single().DataSource, dataBefore); }