private IshiharaResultFlag EvaluatePlateAnswers(IshiharaPlateReadLimits limits)
        {
            var count = AnswerList.Count(CompareNormalPlateReadCountToLimits(limits));

            if (count >= limits.LowerLimitOfPass)
            {
                return(IshiharaResultFlag.NormalVision);
            }
            return(count <= limits.UpperLimitOfFail
                ? IshiharaResultFlag.ColorVisionDeficit
                : IshiharaResultFlag.IndeterminantResult);
        }
 private static Func <IshiharaPlateAnswer, bool> CompareNormalPlateReadCountToLimits(
     IshiharaPlateReadLimits ishiharaPlateReadLimits)
 {
     return(answer => answer.PlateRead == IshiharaAnswerResult.NormalVision &&
            answer.PlateNumber <= ishiharaPlateReadLimits.SlidesToEvaluate);
 }