void ILearningErrorReport.ReportError(ScriptBatchExecutionResult result)
 {
     if (!result.IsEmpty && result.Errors.Length == Batcher.BatchSize)
     {
         ErrorReportArrived(result);
     }
 }
 protected override void ErrorReportArrived(ScriptBatchExecutionResult result)
 {
     Contract.Requires(!result.IsEmpty && result.Errors.Length == Batcher.BatchSize);
 }
 protected abstract void ErrorReportArrived(ScriptBatchExecutionResult result);
 void ILearningErrorReport.ReportError(ScriptBatchExecutionResult result)
 {
     Contract.Requires(!result.IsEmpty);
 }