- simulation result handling to use builder pattern
- result to use only arrays instead of maps
- updated references to other classes
This commit is contained in:
2025-02-12 14:33:32 +01:00
parent e232df7c5a
commit ffdb3021fd
6 changed files with 210 additions and 85 deletions

View File

@@ -1,11 +1,10 @@
package net.berack.upo.valpre.sim;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import org.junit.Test;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
@@ -78,8 +77,8 @@ public class TestSaveExamplesNet {
assertEquals(Rng.DEFAULT, res.seed);
assertEquals(time, res.simulationTime, maxErr);
testNode(res.nodes.get("Source"), 10000, time, 1.0, 4.5, 0.0, 0.0);
testNode(res.nodes.get("Queue"), 10000, time, 2.6, 7.2, 4.0, 0.0);
testNode(res.getStat("Source"), 10000, time, 1.0, 4.5, 0.0, 0.0);
testNode(res.getStat("Queue"), 10000, time, 2.6, 7.2, 4.0, 0.0);
}
@Test
@@ -91,9 +90,9 @@ public class TestSaveExamplesNet {
assertEquals(Rng.DEFAULT, res.seed);
assertEquals(time, res.simulationTime, maxErr);
testNode(res.nodes.get("Source"), 10000, time, 1.0, 4.5, 0.0, 0.0);
testNode(res.nodes.get("Queue"), 10000, time, 2.6, 7.2, 4.0, 0.0);
testNode(res.nodes.get("Queue Wait"), 10000, time, 5.8, 22.3, 19.1, 8497.7);
testNode(res.getStat("Source"), 10000, time, 1.0, 4.5, 0.0, 0.0);
testNode(res.getStat("Queue"), 10000, time, 2.6, 7.2, 4.0, 0.0);
testNode(res.getStat("Queue Wait"), 10000, time, 5.8, 22.3, 19.1, 8497.7);
}
@Test
@@ -105,9 +104,9 @@ public class TestSaveExamplesNet {
assertEquals(Rng.DEFAULT, res.seed);
assertEquals(time, res.simulationTime, maxErr);
testNode(res.nodes.get("Source"), 10000, time, 1.0, 0.6, 0.0, 0.0);
testNode(res.nodes.get("Service1"), 10000, time, 3.5, 1.7, 1.2, 0.0);
testNode(res.nodes.get("Service2"), 10000, time, 1.7, 0.5, 0.22, 102.2);
testNode(res.getStat("Source"), 10000, time, 1.0, 0.6, 0.0, 0.0);
testNode(res.getStat("Service1"), 10000, time, 3.5, 1.7, 1.2, 0.0);
testNode(res.getStat("Service2"), 10000, time, 1.7, 0.5, 0.22, 102.2);
}
private void testNode(NodeStats stat, double numClients, double time, double avgQueue,
@@ -140,11 +139,11 @@ public class TestSaveExamplesNet {
var list = new CsvResult(csv1).loadResults();
var seeds = new HashSet<Long>();
for (var element : list) {
assertEquals(Set.of("Source", "Queue"), element.nodes.keySet());
assertEquals(10000, element.nodes.get("Source").numArrivals, 0.1);
assertEquals(10000, element.nodes.get("Queue").numArrivals, 0.1);
assertEquals(0.22, element.nodes.get("Source").throughput, 0.1);
assertEquals(0.22, element.nodes.get("Queue").throughput, 0.1);
assertArrayEquals(new String[] { "Source", "Queue" }, element.nodes);
assertEquals(10000, element.getStat("Source").numArrivals, 0.1);
assertEquals(10000, element.getStat("Queue").numArrivals, 0.1);
assertEquals(0.22, element.getStat("Source").throughput, 0.1);
assertEquals(0.22, element.getStat("Queue").throughput, 0.1);
seeds.add(element.seed);
}

View File

@@ -495,11 +495,11 @@ public class TestSimulation {
assertEquals(2.0, result.simulationTime, DELTA);
assertEquals(sim.seed, result.seed);
assertEquals(elapsed * 1e-6, result.timeElapsedMS, diff);
assertEquals(2, result.nodes.size());
assertEquals(1, result.nodes.get(node0.name).numArrivals, DELTA);
assertEquals(1, result.nodes.get(node0.name).numDepartures, DELTA);
assertEquals(1, result.nodes.get(node1.name).numArrivals, DELTA);
assertEquals(1, result.nodes.get(node1.name).numDepartures, DELTA);
assertEquals(2, result.stats.length);
assertEquals(1, result.stats[0].numArrivals, DELTA);
assertEquals(1, result.stats[0].numDepartures, DELTA);
assertEquals(1, result.stats[1].numArrivals, DELTA);
assertEquals(1, result.stats[1].numDepartures, DELTA);
}
@Test
@@ -520,10 +520,10 @@ public class TestSimulation {
assertTrue(sim.hasEnded());
var res = sim.endSimulation();
assertEquals(6, res.nodes.get(node0.name).numArrivals, DELTA);
assertEquals(5, res.nodes.get(node0.name).numDepartures, DELTA);
assertEquals(4, res.nodes.get(node1.name).numArrivals, DELTA);
assertEquals(3, res.nodes.get(node1.name).numDepartures, DELTA);
assertEquals(6, res.stats[0].numArrivals, DELTA);
assertEquals(5, res.stats[0].numDepartures, DELTA);
assertEquals(4, res.stats[1].numArrivals, DELTA);
assertEquals(3, res.stats[1].numDepartures, DELTA);
}
@Test
@@ -533,7 +533,7 @@ public class TestSimulation {
var sim = new Simulation(net, rigged);
var result = sim.run();
var nodeStat = result.nodes.get("Source");
var nodeStat = result.getStat("Source");
assertEquals(50, nodeStat.numArrivals, DELTA);
assertEquals(50, nodeStat.numDepartures, DELTA);
assertEquals(1.0, nodeStat.avgQueueLength, DELTA);
@@ -551,7 +551,7 @@ public class TestSimulation {
sim = new Simulation(net, rigged);
result = sim.run();
nodeStat = result.nodes.get("Source");
nodeStat = result.getStat("Source");
assertEquals(50, nodeStat.numArrivals, DELTA);
assertEquals(50, nodeStat.numDepartures, DELTA);
assertEquals(1.0, nodeStat.avgQueueLength, DELTA);
@@ -563,7 +563,7 @@ public class TestSimulation {
assertEquals(1.0, nodeStat.throughput, DELTA);
assertEquals(1.0, nodeStat.utilization, DELTA);
assertEquals(0.0, nodeStat.unavailable, DELTA);
nodeStat = result.nodes.get("Queue");
nodeStat = result.getStat("Queue");
assertEquals(50, nodeStat.numArrivals, DELTA);
assertEquals(50, nodeStat.numDepartures, DELTA);
assertEquals(1.0, nodeStat.avgQueueLength, DELTA);
@@ -588,7 +588,7 @@ public class TestSimulation {
var sim = new Simulation(net, rigged);
var result = sim.run();
var nodeStat = result.nodes.get("Source");
var nodeStat = result.getStat("Source");
assertEquals(50, nodeStat.numArrivals, DELTA);
assertEquals(50, nodeStat.numDepartures, DELTA);
assertEquals(1.0, nodeStat.avgQueueLength, DELTA);
@@ -601,7 +601,7 @@ public class TestSimulation {
assertEquals(1.0, nodeStat.utilization, DELTA);
assertEquals(0.0, nodeStat.unavailable, DELTA);
nodeStat = result.nodes.get("Queue");
nodeStat = result.getStat("Queue");
assertEquals(44, nodeStat.numArrivals, DELTA);
assertEquals(44, nodeStat.numDepartures, DELTA);
assertEquals(20.0, nodeStat.maxQueueLength, DELTA);