示例#1
0
        PredicateValue BuildOperatorValue(List <Value> availableValues, Random random, double operatorChance)
        {
            ValueProvider valueProvider = new ValueProvider();

            OperatorValue operatorValue = _operators [random.Next() % _operators.Count].CreateNew();

            operatorValue.Push(valueProvider.GetValue(availableValues, random, operatorChance));
            operatorValue.Push(valueProvider.GetValue(availableValues, random, operatorChance));

            return(operatorValue);
        }
示例#2
0
        public PredicateValue GetValue(Random random)
        {
            List <Value> available = new List <Value> (_constantValues);

            available.AddRange(_transientValues);

            if (available.Count == 0)
            {
                throw new InvalidOperationException("No values are available");
            }

            ValueProvider provider = new ValueProvider();

            return(provider.GetValue(available, random, OperatorChance));
        }