public MutationLibrary(IConnectionProcessor connectionProcessor, INodeProcessor nodeProcessor, IInnovationController innovationController)
        {
            _connectionProcessor  = connectionProcessor;
            _nodeProcessor        = nodeProcessor;
            _innovationController = innovationController;

            if (Mutations.Count != 0)
            {
                return;
            }

            BuildLibrary();

            //_mutations = _mutations.OrderByDescending(m => m.GetWeight).ToList();
            _totalWeight = (int)Mutations.Sum(m => m.GetWeight);
        }
 public AddConnectionMutation(IConnectionProcessor connectionProcessor, IInnovationController innovationController)
 {
     _connectionProcessor  = connectionProcessor;
     _innovationController = innovationController;
 }
 public AddNodeMutation(INodeProcessor nodeProcessor, IInnovationController innovationController, IConnectionProcessor connectionProcessor)
 {
     _nodeProcessor        = nodeProcessor;
     _innovationController = innovationController;
     _connectionProcessor  = connectionProcessor;
 }