Refactors

- getNode method to handle invalid node index and improve error handling
- update parameter description in SimulationMultiple constructor
- enhance calcError method in StatisticsSummary for better clarity and functionality.
This commit is contained in:
2025-02-05 16:49:24 +01:00
parent af192c8bf3
commit 363b5ffee6
3 changed files with 35 additions and 18 deletions

View File

@@ -127,7 +127,8 @@ public final class Net implements Iterable<ServerNode> {
* @return the node
*/
public ServerNode getNode(String name) {
return this.servers.get(this.getNodeIndex(name));
var index = this.getNodeIndex(name);
return index < 0 ? null : this.servers.get(index);
}
/**

View File

@@ -18,7 +18,7 @@ public class SimulationMultiple {
/**
* Create a new object that can simulate the net in input multiple times
*
* @param net the net that sould be simulated
* @param net the net that should be simulated
*/
public SimulationMultiple(Net net) {
this.net = net;
@@ -85,5 +85,4 @@ public class SimulationMultiple {
return new ResultSummary(results);
}
}
}

View File

@@ -45,21 +45,6 @@ public class StatisticsSummary {
this.distr = new TDistribution(null, values.length - 1);
}
/**
* Calculates the error at the selected alpha level.
* This method computes the error for the average and standard deviation values,
* considering the sample size and the confidence level (alpha).
* The result is adjusted using a t-distribution to account for the variability
* in smaller sample sizes.
*
* @param alpha the alpha value
* @return the error of the values
*/
public double calcError(double alpha) {
var percentile = this.distr.inverseCumulativeProbability(alpha);
return percentile * (this.stdDev / Math.sqrt(this.values.length));
}
/**
* Get the frequency of the values in the array.
*
@@ -90,6 +75,38 @@ public class StatisticsSummary {
return this.values[index];
}
/**
* Calculates the error at the selected alpha level.
* This method computes the error for the average and standard deviation values,
* considering the sample size and the confidence level (alpha).
* The result is adjusted using a t-distribution to account for the variability
* in smaller sample sizes.
*
* @param alpha the alpha value
* @return the error of the values
*/
public double calcError(double alpha) {
return StatisticsSummary.calcError(this.distr, this.stdDev, alpha);
}
/**
* Calculates the error at the selected alpha level.
* This method computes the error for the average and standard deviation values,
* considering the sample size and the confidence level (alpha).
* The result is adjusted using a t-distribution to account for the variability
* in smaller sample sizes.
*
* @param distribution the t-distribution to use
* @param stdDev the standard deviation of the values
* @param alpha the alpha value
* @return the error of the values
*/
public static double calcError(TDistribution distribution, double stdDev, double alpha) {
var percentile = distribution.inverseCumulativeProbability(alpha);
var n = distribution.getDegreesOfFreedom() + 1;
return percentile * (stdDev / Math.sqrt(n));
}
/**
* Get a summary of the statistics.
*