public void AddRemoveNodeRemoveApplyAndRevertWhenNodeToRemoveParent1Has3OutputsTest() { Node parent1 = new Node(NodeType.add, 0); Node parent2 = new Node(NodeType.compare, 0); Node child1 = new Node(NodeType.copy, 0); Node child3 = new Node(NodeType.copy, 0); Node nodeToBeRemoved = new Node(NodeType.inverse, 0); Node output = new Node(NodeType.log, 0); parent1.ConnectWithOutput(child1); parent1.ConnectWithOutput(nodeToBeRemoved); parent1.ConnectWithOutput(child3); parent2.ConnectWithOutput(nodeToBeRemoved); nodeToBeRemoved.ConnectWithOutput(output); dummyNetwork.Operations.Add(parent1); dummyNetwork.Operations.Add(parent2); dummyNetwork.Operations.Add(output); dummyNetwork.Operations.Add(nodeToBeRemoved); AddRemoveNode mutator = new AddRemoveNode( nodeChangeType: AddRemoveNode.NodeChangeType.Remove, node: nodeToBeRemoved, parent1: parent1, parent2: parent2, outputs: new List <Node>() { output }, network: dummyNetwork); mutator.Apply(); Assert.AreEqual(0, parent1.Inputs.Count); Assert.AreEqual(3, parent1.Outputs.Count); Assert.AreEqual(child1, parent1.Outputs.First.Value); Assert.IsNotNull(parent1.Outputs.Find(output)); Assert.AreEqual(child3, parent1.Outputs.Last.Value); Assert.AreEqual(0, parent2.Inputs.Count); Assert.AreEqual(0, parent2.Outputs.Count); Assert.AreEqual(0, nodeToBeRemoved.Inputs.Count); Assert.AreEqual(0, nodeToBeRemoved.Outputs.Count); Assert.AreEqual(1, output.Inputs.Count); Assert.IsNotNull(output.Inputs.Find(parent1)); Assert.AreEqual(0, output.Outputs.Count); Assert.AreEqual(1, child1.Inputs.Count); Assert.AreEqual(parent1, child1.Inputs.First.Value); Assert.AreEqual(0, child1.Outputs.Count); Assert.AreEqual(1, child3.Inputs.Count); Assert.AreEqual(parent1, child3.Inputs.First.Value); Assert.AreEqual(0, child3.Outputs.Count); dummyNetwork.UTTestingFoo(); }
private void CheckStress() { Console.WriteLine("SampleTriggerCount " + MySettings.SampleTriggerCount + ", VeryHighSampleTriggerCount " + MySettings.VeryHighSampleTriggerCount + ", maximumnodes " + MySettings.maximumnodes + ", minimumnodes " + MySettings.minimumnodes); Console.WriteLine("{0,-20}{1,-20}{2,-20}", "Nodepool Prefix", "quantity", "active nodes"); foreach (var nodepool in nodePools) { Console.WriteLine("{0,-20}{1,-20}{2,-20}", nodepool.hostnamePrefix, nodepool.quantity, nodepool.activequantity); if (nodepool.HighStressCount > MySettings.SampleTriggerCount && nodepool.quantity < MySettings.maximumnodes) { AddRemoveNode.AddNode(nodepool); Console.WriteLine(nodepool.hostnamePrefix + " adding node " + nodepool.HighStressCount); nodepool.HighStressCount = 0; } if (nodepool.VeryHighStressCount > MySettings.VeryHighSampleTriggerCount && nodepool.quantity < MySettings.maximumnodes) { AddRemoveNode.AddNode(nodepool); Console.WriteLine(nodepool.hostnamePrefix + " adding node " + nodepool.VeryHighStressCount); nodepool.VeryHighStressCount = 0; nodepool.HighStressCount = 0; } if (nodepool.LowStressCount > MySettings.SampleTriggerCount && nodepool.quantity > MySettings.minimumnodes) { AddRemoveNode.RemoveNode(nodepool); Console.WriteLine(nodepool.hostnamePrefix + " removeing node " + nodepool.LowStressCount); nodepool.LowStressCount = 0; } } }
public void AddRemoveNodeRemoveApplyAndRevertWhenSecondParentHas2AndNodeToRemoveIsLastOneChildrenTest() { Node parent1 = new Node(NodeType.add, 0); Node parent2 = new Node(NodeType.compare, 0); Node child1 = new Node(NodeType.copy, 0); Node nodeToBeRemoved = new Node(NodeType.inverse, 0); Node output = new Node(NodeType.log, 0); parent1.ConnectWithOutput(nodeToBeRemoved); parent2.ConnectWithOutput(child1); parent2.ConnectWithOutput(nodeToBeRemoved); nodeToBeRemoved.ConnectWithOutput(output); dummyNetwork.Operations.Add(parent1); dummyNetwork.Operations.Add(parent2); dummyNetwork.Operations.Add(output); dummyNetwork.Operations.Add(child1); dummyNetwork.Operations.Add(nodeToBeRemoved); AddRemoveNode mutator = new AddRemoveNode( nodeChangeType: AddRemoveNode.NodeChangeType.Remove, node: nodeToBeRemoved, parent1: parent1, parent2: parent2, outputs: new List <Node>(nodeToBeRemoved.Outputs), network: dummyNetwork); mutator.Apply(); mutator.Revert(); Assert.AreEqual(0, parent1.Inputs.Count); Assert.AreEqual(1, parent1.Outputs.Count); Assert.IsTrue(parent1.Outputs.Contains(nodeToBeRemoved)); Assert.AreEqual(2, nodeToBeRemoved.Inputs.Count); Assert.AreEqual(parent1, nodeToBeRemoved.Inputs.First.Value); Assert.AreEqual(parent2, nodeToBeRemoved.Inputs.Last.Value); Assert.AreEqual(1, nodeToBeRemoved.Outputs.Count); Assert.AreEqual(output, nodeToBeRemoved.Outputs.First.Value); Assert.AreEqual(0, parent2.Inputs.Count); Assert.AreEqual(2, parent2.Outputs.Count); Assert.AreEqual(child1, parent2.Outputs.First.Value); Assert.AreEqual(nodeToBeRemoved, parent2.Outputs.Last.Value); Assert.AreEqual(1, output.Inputs.Count); Assert.AreEqual(nodeToBeRemoved, output.Inputs.First.Value); Assert.AreEqual(0, output.Outputs.Count); Assert.AreEqual(1, child1.Inputs.Count); Assert.AreEqual(parent2, child1.Inputs.First.Value); Assert.AreEqual(0, child1.Outputs.Count); dummyNetwork.UTTestingFoo(); }
public void AddRemoveNodeApplyTest() { Node parent1 = new Node(NodeType.add, 0); Node parent2 = new Node(NodeType.add, 0); Node output = new Node(NodeType.add, 0); parent1.ConnectWithOutput(output); dummyNetwork.Operations.Add(parent1); dummyNetwork.Operations.Add(parent2); dummyNetwork.Operations.Add(output); Node nodeToBeAdded = new Node(NodeType.add, 0); AddRemoveNode mutator = new AddRemoveNode( nodeChangeType: AddRemoveNode.NodeChangeType.Add, node: nodeToBeAdded, parent1: parent1, parent2: parent2, outputs: new List <Node>() { output }, network: dummyNetwork); mutator.Apply(); Assert.AreEqual(0, parent1.Inputs.Count); Assert.AreEqual(1, parent1.Outputs.Count); Assert.IsNotNull(parent1.Outputs.Find(nodeToBeAdded)); Assert.AreEqual(0, parent2.Inputs.Count); Assert.AreEqual(1, parent2.Outputs.Count); Assert.IsNotNull(parent2.Outputs.Find(nodeToBeAdded)); Assert.AreEqual(2, nodeToBeAdded.Inputs.Count); Assert.IsNotNull(nodeToBeAdded.Inputs.Find(parent1)); Assert.IsNotNull(nodeToBeAdded.Inputs.Find(parent2)); Assert.AreEqual(1, nodeToBeAdded.Outputs.Count); Assert.IsNotNull(nodeToBeAdded.Outputs.Find(output)); Assert.AreEqual(1, output.Inputs.Count); Assert.IsNotNull(output.Inputs.Find(nodeToBeAdded)); Assert.AreEqual(0, output.Outputs.Count); }