public void AverageShouldBeNullIfAllGradesAreZeroTest() { var classScoreReport = new ClassScoreReport(); classScoreReport.IncludedStudents.Add(new Student() { Grade = 0 }); Assert.IsTrue(classScoreReport.RoundedClassAverage == null); }
public void RoundedClassAverageDoesNOTThrowWhenClassAverageIsNull() { var classScoreReport = new ClassScoreReport(); classScoreReport.IncludedStudents.Add(new Student() { Grade = null }); Assert.IsTrue(classScoreReport.RoundedClassAverage == null); }
public void ShouldRoundClassAverageTest() { var classScoreReport = new ClassScoreReport(); classScoreReport.IncludedStudents.Add(new Student() { Grade = 88.3342m }); //3. Student scores with a decimal should be truncated to the nearest whole number before calculating class average //4. All class averages should be rounded to one decimal place (because of 3. - this is meaningless) Assert.IsTrue(classScoreReport.RoundedClassAverage == 88.0m); }
public async Task <ClassScoreReport> GetClassScoreReportAsync(string dataFile) { var classScoreReport = new ClassScoreReport(); var studentGrades = await _csvDataFileService.GetStudentGradesFromCsvFileAsync(dataFile); _logger.LogInformation("GetScoreReport - Read {Count} Grades From File {dataFile}", studentGrades.Count, dataFile); //2. Student scores of 0 should be ignored during the calculation. - also assuming nulls should be excluded classScoreReport.IncludedStudents = studentGrades. Where(student => student.Grade.HasValue && student.Grade.Value > 0).ToList(); classScoreReport.TotalStudents = studentGrades.Count; classScoreReport.ClassName = Path.GetFileNameWithoutExtension(dataFile); classScoreReport.ExcludedStudents = studentGrades .Where(student => !student.Grade.HasValue || student.Grade.Value == 0).ToList(); return(classScoreReport); }
public void RoundedClassAverageIgnoresNullGradesTest() { var classScoreReport = new ClassScoreReport(); classScoreReport.IncludedStudents.Add(new Student() { Grade = 88.3342m }); classScoreReport.IncludedStudents.Add(new Student() { Grade = null }); //3. Student scores with a decimal should be truncated to the nearest whole number before calculating class average //4. All class averages should be rounded to one decimal place Assert.IsTrue(classScoreReport.RoundedClassAverage == 88.0m); }
public void AverageShouldBeNullIfNoStudentsTest() { var classScoreReport = new ClassScoreReport(); Assert.IsTrue(classScoreReport.RoundedClassAverage == null); }