Example #1
0
        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));
            });
        }
Example #2
0
        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));
            });
        }