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); }
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)); }