public void CalculateScore_Normal() { testSubmission.Answers = new List <TestSubmissionAnswer> { new TestSubmissionAnswer() { Question = availableQuestions[1], Points = 1 }, new TestSubmissionAnswer() { Question = availableQuestions[3], Points = 1 }, new TestSubmissionAnswer() { Question = availableQuestions[5], Points = 0 }, new TestSubmissionAnswer() { Question = availableQuestions[6], Points = 4 }, }; double score = TestScoreCalculator.CalculateScore(testSubmission); Assert.Equal(0.75, score, decimalDigitPrecision); }
public IEnumerable <TestSubmissionWithUserInfoVM> GetAllSubmissions(string testId) { var testSubmissions = testSubmissionService.GetAllSubmissionsOfTest(testId); return(testSubmissions.Select(ts => new TestSubmissionWithUserInfoVM(ts.Student.User.Email, ts.Id.ToString(), TestScoreCalculator.CalculateScore(ts), ts.SubmittedDateTime, ts.IsReviewed))); }
public void CalculateScore_ZeroPoints() { testSubmission.Answers = new List <TestSubmissionAnswer> { new TestSubmissionAnswer() { Question = availableQuestions[1], Points = 0 }, new TestSubmissionAnswer() { Question = availableQuestions[2], Points = 0 }, new TestSubmissionAnswer() { Question = availableQuestions[4], Points = 0 }, new TestSubmissionAnswer() { Question = availableQuestions[6], Points = 0 } }; double score = TestScoreCalculator.CalculateScore(testSubmission); Assert.Equal(0, score, decimalDigitPrecision); }
public IEnumerable <TestSubmissionInfoVM> GetTestSubmissions(string memberId) { var userSubmissions = testSubmissionService.GetAllGraded(memberId); return(userSubmissions.Select(ts => new TestSubmissionInfoVM(ts.Id.ToString(), ts.Test.Topic, ts.Test.Weight, TestScoreCalculator.CalculateScore(ts), ts.SubmittedDateTime, ts.IsReviewed))); }
public void CalculateScore_SingleQuestion() { testSubmission.Answers = new List <TestSubmissionAnswer> { new TestSubmissionAnswer() { Question = availableQuestions[1], Points = 1 } }; double score = TestScoreCalculator.CalculateScore(testSubmission); Assert.Equal(1, score, decimalDigitPrecision); }
public void CalculateScore_Over100Percent() { testSubmission.Answers = new List <TestSubmissionAnswer> { new TestSubmissionAnswer() { Question = availableQuestions[2], Points = 6 }, new TestSubmissionAnswer() { Question = availableQuestions[6], Points = 4 }, new TestSubmissionAnswer() { Question = availableQuestions[7], Points = 1 } }; double score = TestScoreCalculator.CalculateScore(testSubmission); Assert.Equal(1.1, score, decimalDigitPrecision); }
public WrapperVM <double> GetAverageScore(string memberId) { var mappedGrades = courseMemberService.GetGradesOf(memberId) .Select(grade => new ScoreWithWeightDto(grade.Weight, grade.PercentualValue)); var mappedTestSubmissions = testSubmissionService.GetAllGraded(memberId) .Select(ts => new ScoreWithWeightDto(ts.Test.Weight, TestScoreCalculator.CalculateScore(ts))); var scoresWithWeights = new List <ScoreWithWeightDto>(); scoresWithWeights.AddRange(mappedGrades); scoresWithWeights.AddRange(mappedTestSubmissions); double averageScore = AverageScoreCalculator.GetScore(scoresWithWeights); return(new WrapperVM <double>(averageScore)); }