NumberSetData.cs 942 B

123456789101112131415161718192021222324252627282930313233343536
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using UnityEngine;
  4. namespace DunGen.Analysis
  5. {
  6. public sealed class NumberSetData
  7. {
  8. public float Min { get; private set; }
  9. public float Max { get; private set; }
  10. public float Average { get; private set; }
  11. public float StandardDeviation { get; private set; }
  12. public NumberSetData(IEnumerable<float> values)
  13. {
  14. Min = values.Min();
  15. Max = values.Max();
  16. Average = values.Sum() / values.Count();
  17. // Calculate standard deviation
  18. float[] temp = new float[values.Count()];
  19. for (int i = 0; i < temp.Length; i++)
  20. temp[i] = Mathf.Pow(values.ElementAt(i) - Average, 2);
  21. StandardDeviation = Mathf.Sqrt(temp.Sum() / temp.Length);
  22. }
  23. public override string ToString()
  24. {
  25. return string.Format("[ Min: {0:N1}, Max: {1:N1}, Average: {2:N1}, Standard Deviation: {3:N2} ]", Min, Max, Average, StandardDeviation);
  26. }
  27. }
  28. }