namespace HeuristicLab.Problems.ProgramSynthesis { using HeuristicLab.Common; using HeuristicLab.Core; public interface IPushEvaluator : IDeepCloneable { EvaluationResult EvaluateTest(IReadOnlyPushConfiguration config, PushProgram program, IRandom random); EvaluationResult EvaluateTest(IPushInterpreter interpreter, PushProgram program); EvaluationResult EvaluateTest(PushInterpreterPool pool, PushProgram program, IRandom random); EvaluationResult EvaluateTraining(IReadOnlyPushConfiguration config, PushProgram program, IRandom random); EvaluationResult EvaluateTraining(IPushInterpreter interpreter, PushProgram program); EvaluationResult EvaluateTraining(PushInterpreterPool pool, PushProgram program, IRandom random); } }