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