public void Test_SplitStackAction([Values] TestingMode mode) { GraphModel.CreateStack("stack0", Vector2.zero); GraphModel.CreateStack("stack1", Vector2.zero); GraphModel.CreateStack("stack2", Vector2.zero); var stack0 = GetStack(0); var stack1 = GetStack(1); var stack2 = GetStack(2); var nodeA = stack1.CreateStackedNode <Type0FakeNodeModel>("A"); var nodeB = stack1.CreateStackedNode <Type0FakeNodeModel>("B"); var nodeC = stack1.CreateStackedNode <Type0FakeNodeModel>("C"); GraphModel.CreateEdge(stack1.InputPorts[0], stack0.OutputPorts.First()); GraphModel.CreateEdge(stack2.InputPorts[0], stack1.OutputPorts.First()); TestPrereqActionPostreq(mode, () => { Assert.That(GetEdgeCount(), Is.EqualTo(2)); Assert.That(GetStackCount(), Is.EqualTo(3)); Assert.That(stack0, Is.ConnectedToStack(stack1)); Assert.That(stack1, Is.ConnectedToStack(stack2)); Assert.That(nodeA, Is.InsideStack(stack1)); Assert.That(nodeB, Is.InsideStack(stack1)); Assert.That(nodeC, Is.InsideStack(stack1)); Assert.That(stack0.NodeModels.Count, Is.EqualTo(0)); Assert.That(stack1.NodeModels.Count, Is.EqualTo(3)); Assert.That(stack2.NodeModels.Count, Is.EqualTo(0)); return(new SplitStackAction(stack1, 1)); }, () => { var stack3 = GetStack(3); Assert.That(GetEdgeCount(), Is.EqualTo(3)); Assert.That(GetStackCount(), Is.EqualTo(4)); Assert.That(stack0, Is.ConnectedToStack(stack1)); Assert.That(stack1, Is.ConnectedToStack(stack3)); Assert.That(stack3, Is.ConnectedToStack(stack2)); Assert.That(nodeA, Is.InsideStack(stack1)); Assert.That(nodeB, Is.InsideStack(stack3)); Assert.That(nodeC, Is.InsideStack(stack3)); Assert.That(stack0.NodeModels.Count, Is.EqualTo(0)); Assert.That(stack1.NodeModels.Count, Is.EqualTo(1)); Assert.That(stack2.NodeModels.Count, Is.EqualTo(0)); Assert.That(stack3.NodeModels.Count, Is.EqualTo(2)); }); }
public void Test_MergeStackAction([Values] TestingMode mode) { GraphModel.CreateStack("stack0", Vector2.zero); GraphModel.CreateStack("stack1", Vector2.zero); GraphModel.CreateStack("stack2", Vector2.zero); var nodeA = GetStack(0).CreateStackedNode <Type0FakeNodeModel>("A"); var nodeB = GetStack(0).CreateStackedNode <Type0FakeNodeModel>("B"); var nodeC = GetStack(1).CreateStackedNode <Type0FakeNodeModel>("C"); GraphModel.CreateEdge(GetStack(1).InputPorts[0], GetStack(0).OutputPorts.First()); GraphModel.CreateEdge(GetStack(2).InputPorts[0], GetStack(1).OutputPorts.First()); TestPrereqActionPostreq(mode, () => { Assert.That(GetEdgeCount(), Is.EqualTo(2)); Assert.That(GetStackCount(), Is.EqualTo(3)); Assert.That(GetStack(0), Is.ConnectedToStack(GetStack(1))); Assert.That(GetStack(1), Is.ConnectedToStack(GetStack(2))); Assert.That(nodeA, Is.InsideStack(GetStack(0))); Assert.That(nodeB, Is.InsideStack(GetStack(0))); Assert.That(nodeC, Is.InsideStack(GetStack(1))); Assert.That(GetStack(0).NodeModels.Count, Is.EqualTo(2)); Assert.That(GetStack(1).NodeModels.Count, Is.EqualTo(1)); Assert.That(GetStack(2).NodeModels.Count, Is.EqualTo(0)); return(new MergeStackAction(GetStack(0), GetStack(1))); }, () => { Assert.That(GetEdgeCount(), Is.EqualTo(1)); Assert.That(GetStackCount(), Is.EqualTo(2)); Assert.That(GetStack(0), Is.ConnectedToStack(GetStack(1))); Assert.That(nodeA, Is.InsideStack(GetStack(0))); Assert.That(nodeB, Is.InsideStack(GetStack(0))); Assert.That(nodeC, Is.InsideStack(GetStack(0))); Assert.That(GetStack(0).NodeModels.Count, Is.EqualTo(3)); Assert.That(GetStack(1).NodeModels.Count, Is.EqualTo(0)); }); }