FloatLog.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package utility;
  2. import java.util.HashMap;
  3. import java.util.stream.Collectors;
  4. //To sample floats and get basic statistical values;
  5. public class FloatLog {
  6. public class LogInfo{
  7. public String parameterName;
  8. public int sampleSize = 0;
  9. public float min = Float.MAX_VALUE;
  10. public float max = Float.MIN_VALUE;
  11. private float sum = 0;
  12. public float getAvg() {
  13. if(sampleSize > 0)
  14. return sum / (float)sampleSize;
  15. return 0;
  16. }
  17. public void addSample(float sample) {
  18. if(sample < min) min = sample;
  19. if(sample > max) max = sample;
  20. sum += sample;
  21. sampleSize++;
  22. }
  23. public String toString() {
  24. return "[" + parameterName + " in Range(" + min + ", " + max + ") with a Average of " + getAvg() + " from "+ sampleSize + " Smaples]";
  25. }
  26. }
  27. public HashMap<String, LogInfo> logMap = new HashMap<String, LogInfo>();
  28. public void addSample(String parameterName, float sample) {
  29. //Puts the sample in the right LogInfo container or create a new container if not exist jet
  30. if(logMap.containsKey(parameterName)) {
  31. LogInfo info = logMap.get(parameterName);
  32. info.addSample(sample);
  33. }else {
  34. LogInfo info = new LogInfo();
  35. info.parameterName = parameterName;
  36. info.addSample(sample);
  37. logMap.put(parameterName, info);
  38. }
  39. }
  40. public String toString() {
  41. return logMap.values().stream().map(Object::toString).collect(Collectors.joining("\n"));
  42. }
  43. public void clear() {
  44. logMap.clear();
  45. }
  46. }