public void NetworkMutatorShouldThrowOnDoubleApply()
        {
            DummyMutator mutator = new DummyMutator();

            mutator.Apply();
            mutator.Apply();
        }
        public void NetworkMutatorOkCaseTest()
        {
            DummyMutator mutator = new DummyMutator();

            Assert.AreEqual(0, mutator.appliesCounter);
            Assert.AreEqual(0, mutator.revertsCounter);

            mutator.Apply();
            Assert.AreEqual(1, mutator.appliesCounter);
            Assert.AreEqual(0, mutator.revertsCounter);

            mutator.Revert();
            Assert.AreEqual(1, mutator.appliesCounter);
            Assert.AreEqual(1, mutator.revertsCounter);
        }
 Node parent2 = new Node(NodeType.compare, 0);
 Node child2 = new Node(NodeType.copy, 0);
 Node nodeToBeRemoved = new Node(NodeType.inverse, 0);
 Node output = new Node(NodeType.log, 0);
 ///           |
 ///           /
 ///  parent2 /
 ///   ||
 /// on graph like:
 /// 
 /// parent1 ---> _nodeToBeRemoved -> output
 ///              /| 
        public void NetworkMutatorShouldThrowOnRevertWOApply()
        {
            DummyMutator mutator = new DummyMutator();

            mutator.Revert();
        }