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); }