public void WeightedAverageCalculationTest() { int[] input = new int[] { 1, 2, 11, 25, 88 }; int[] weights = new int[] { 10, 20, 15, 18, 22 }; var result = StatFunctions.CalculateWeightedAverage(input, weights); Assert.IsTrue(result == 30.6); }
/// <summary> /// return calculated weighted average for student /// </summary> /// <param name="student"></param> private double CalculateStudentWeightedAverage(Student student) { int[] weights = new int[_SubjectWeights.Count]; int[] values = new int[_SubjectWeights.Count]; for (int i = 0; i < _SubjectWeights.Count; i++) { weights[i] = _SubjectWeights[i].WeightPercentage; var subject = student.Subjects.FirstOrDefault(p => p.Name == _SubjectWeights[i].Name); int SubjectPercentage = 0; if (subject != null) { SubjectPercentage = subject.SucessRate; } values[i] = SubjectPercentage; } return(StatFunctions.CalculateWeightedAverage(values, weights)); }