public RandomExpressionGenerator(int maximumOperationCount, double injectConstantProbabilityValue,
                                         double constantLimit, ParameterExpression parameter, SecureRandom random)
            : base()
        {
            parameter.CheckParameterForNull("parameter");
            random.CheckParameterForNull("random");

            this.InjectConstantProbabilityValue = injectConstantProbabilityValue;
            this.ConstantLimit = constantLimit;
            this.Body          = parameter;
            this.Parameter     = parameter;
            this.Random        = random;
            this.GenerateBody(maximumOperationCount);
        }