namespace HeuristicLab.BenchmarkSuite.Problems { using HeuristicLab.Problems.ProgramSynthesis.Base.Erc.Char; using HeuristicLab.Problems.ProgramSynthesis.Base.Erc.Integer; public class DoubleLetters : BenchmarkSuiteDataDescriptor { private const string name = "Double Letters - Hard"; private const string fileName = "DoubleLetters.csv"; private const string description = "Given a string, print the string, doubling every letter character, and tripling every exclamation point.All other non-alphabetic and non-exclamation characters should be printed a single time each"; protected override string FileName { get { return fileName; } } public override string Name { get { return name; } } public override string Description { get { return description; } } protected override int InputArgumentCount { get { return 1; } } protected override int OutputArgumentCount { get { return 1; } } public override ProblemData CreateProblemData() { return new ProblemData(ProblemType.DoubleLetters) { Name = Name, Description = Description, Examples = CloneExamples(), BestResult = 0, WorstResult = 100, InputArgumentTypes = new[] { ExampleArgumentType.String }, OutputArgumentTypes = new[] { ExampleArgumentType.Print }, TrainingCount = 100, TestCount = 1000, EnabledDataTypes = DataTypes.Exec | DataTypes.Integer | DataTypes.Boolean | DataTypes.String | DataTypes.Char | DataTypes.Print, MaxSize = 800, EvalLimit = 1600, ErcOptions = { ErcProbability = 0.02, CharErcOptions = new CharErcOptions( new IntegerConstantErc('!')) } }; } protected override Example ParseExample(string[] input, string[] output) { return new Example { InputArgs = input, OutputArgs = output, InputString = input, OutputPrint = output[0], }; } } }