123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package holeg.utility.math.decimal;
- import java.util.HashMap;
- import java.util.stream.Collectors;
- //To sample floats and get basic statistical values;
- public class Sampler {
- public HashMap<String, SampleInfo> logMap = new HashMap<String, SampleInfo>();
- public void addSample(String parameterName, float sample) {
- //Puts the sample in the right LogInfo container or create a new container if not exist jet
- if (logMap.containsKey(parameterName)) {
- SampleInfo info = logMap.get(parameterName);
- info.addSample(sample);
- } else {
- SampleInfo info = new SampleInfo();
- info.parameterName = parameterName;
- info.addSample(sample);
- logMap.put(parameterName, info);
- }
- }
- public String toString() {
- return logMap.values().stream().map(Object::toString).collect(Collectors.joining("\n"));
- }
- public void clear() {
- logMap.clear();
- }
- public class SampleInfo {
- public String parameterName;
- public int sampleSize = 0;
- public float min = Float.MAX_VALUE;
- public float max = Float.MIN_VALUE;
- private float sum = 0;
- public float getAvg() {
- if (sampleSize > 0) {
- return sum / (float) sampleSize;
- }
- return 0;
- }
- public void addSample(float sample) {
- if (sample < min) {
- min = sample;
- }
- if (sample > max) {
- max = sample;
- }
- sum += sample;
- sampleSize++;
- }
- public String toString() {
- return "[" + parameterName + " in Range(" + min + ", " + max + ") with a Average of "
- + getAvg() + " from " + sampleSize + " Smaples]";
- }
- }
- }
|