using System; using HeuristicLab.Common; using HeuristicLab.Core; using HeuristicLab.Data; using System.Collections.Generic; namespace HeuristicLab.Problems.MetaOptimization { public interface IRange : IItem, IStringConvertibleValue { object LowerBound { get; set; } object UpperBound { get; set; } object StepSize { get; set; } event EventHandler LowerBoundChanged; event EventHandler UpperBoundChanged; event EventHandler StepSizeChanged; IItem GetRandomValue(IRandom random); IEnumerable GetCombinations(); double CalculateSimilarity(IItem a, IItem b); } public interface IRange : IRange, IItem where T : class { new T LowerBound { get; set; } new T UpperBound { get; set; } new T StepSize { get; set; } new T GetRandomValue(IRandom random); new IEnumerable GetCombinations(); } }