using System; using System.Collections.Generic; namespace HeuristicLab.BenchmarkSuite { using HeuristicLab.BenchmarkSuite.Problems; using HeuristicLab.Problems.Instances; public class BenchmarkSuiteInstanceProvider : ProblemInstanceProvider { private const string name = "General Program Synthesis Benchmark Suite"; private const string referencePublication = "T. Helmuth and L. Spector, \"Detailed Problem Descriptions for General Program Synthesis Benchmark Suite\", Technical Report UM-CS-2015-006, School of Computer Science, University of Massachusetts Amherst, 2015."; private static readonly Uri webLink = new Uri("https://web.cs.umass.edu/publication/docs/2015/UM-CS-2015-006.pdf"); public override string Name { get { return name; } } public override string Description { get { return ""; } } public override Uri WebLink { get { return webLink; } } public override string ReferencePublication { get { return referencePublication; } } public override IEnumerable GetDataDescriptors() { yield return new Checksum(); yield return new CollatzNumbers(); yield return new CompareStringLengths(); yield return new CountOdds(); yield return new Digits(); yield return new DoubleLetters(); yield return new EvenSquares(); yield return new ForLoopIndex(); yield return new Grades(); yield return new LastIndexOfZero(); yield return new Median(); //yield return new MedianIntegerError(); yield return new MirrorImage(); yield return new NegativeToZero(); yield return new NumberIO(); yield return new PigLatin(); yield return new ReplaceSpaceWithNewline(); yield return new ScrabbleScore(); yield return new Smallest(); yield return new SmallOrLarge(); yield return new StringDifferences(); yield return new StringLengthsBackwards(); yield return new SumOfSquares(); yield return new SuperAnagrams(); yield return new Syllables(); yield return new VectorAverage(); yield return new VectorSummed(); yield return new WallisPi(); yield return new WordStats(); yield return new XWordLines(); } public override ProblemData LoadData(IDataDescriptor descriptor) { var benchmarkSuiteDataDescriptor = (IBenchmarkSuiteDataDescriptor)descriptor; return benchmarkSuiteDataDescriptor.CreateProblemData(); } } }