public static Gene Generate(GeneConfiguration config, bool isActual)
        {
            if (config.Fibonacci && RandomizationProvider.Current.GetType() != typeof(FibonacciRandomization))
            {
                RandomizationProvider.Current = _fibonacci;
            }
            else
            {
                RandomizationProvider.Current = _basic;
            }

            if (isActual && config.ActualInt.HasValue)
            {
                return(new Gene(new KeyValuePair <string, object>(config.Key, config.ActualInt)));
            }
            else if (isActual && config.ActualDecimal.HasValue)
            {
                return(new Gene(new KeyValuePair <string, object>(config.Key, config.ActualDecimal)));
            }
            else if (config.MinDecimal.HasValue && config.MaxDecimal.HasValue)
            {
                return(new Gene(new KeyValuePair <string, object>(config.Key, GeneFactory.RandomBetween(config.MinDecimal.Value, config.MaxDecimal.Value, config.Precision))));
            }

            return(new Gene(new KeyValuePair <string, object>(config.Key, GeneFactory.RandomBetween(config.MinInt.Value, config.MaxInt.Value))));
        }
Beispiel #2
0
        public static Gene Generate(GeneConfiguration config, bool isActual)
        {
            if (isActual && config.ActualInt.HasValue)
            {
                return(new Gene(new KeyValuePair <string, object>(config.Key, config.ActualInt)));
            }
            else if (isActual && config.ActualDecimal.HasValue)
            {
                return(new Gene(new KeyValuePair <string, object>(config.Key, config.ActualDecimal)));
            }
            else if (config.MinDecimal.HasValue && config.MaxDecimal.HasValue)
            {
                return(new Gene(new KeyValuePair <string, object>(config.Key, GeneFactory.RandomBetween(config.MinDecimal.Value, config.MaxDecimal.Value, config.Precision))));
            }

            return(new Gene(new KeyValuePair <string, object>(config.Key, GeneFactory.RandomBetween(config.MinInt.Value, config.MaxInt.Value))));
        }