Net creation #2
@@ -248,6 +248,48 @@ public final class Net implements Iterable<ServerNode> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
var builder = new StringBuilder();
|
||||||
|
try {
|
||||||
|
for (var node : this.servers) {
|
||||||
|
var dist = node.service.getClass();
|
||||||
|
|
||||||
|
builder.append(node.name)
|
||||||
|
.append("[servers:")
|
||||||
|
.append(node.maxServers)
|
||||||
|
.append(", queue:")
|
||||||
|
.append(node.maxQueue)
|
||||||
|
.append(", spawn:")
|
||||||
|
.append(node.spawnArrivals)
|
||||||
|
.append(", ")
|
||||||
|
.append(dist.getSimpleName())
|
||||||
|
.append("(");
|
||||||
|
|
||||||
|
for (var param : dist.getFields())
|
||||||
|
builder.append(param.get(node.service)).append(", ");
|
||||||
|
builder.delete(builder.length() - 2, builder.length())
|
||||||
|
.append(")] -> ");
|
||||||
|
|
||||||
|
for (var child : this.getChildren(this.indices.get(node))) {
|
||||||
|
var childNode = this.servers.get(child.index);
|
||||||
|
builder.append(childNode.name)
|
||||||
|
.append("(")
|
||||||
|
.append(child.weight)
|
||||||
|
.append("), ");
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.delete(builder.length() - 2, builder.length())
|
||||||
|
.append("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return builder.toString();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Static inner class used to represent the connection of a node
|
* A Static inner class used to represent the connection of a node
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package net.berack.upo.valpre.sim;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import net.berack.upo.valpre.rand.Distribution;
|
||||||
|
|
||||||
|
public class TestInteractions {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void netToString() {
|
||||||
|
var net = new Net();
|
||||||
|
assertEquals("", net.toString());
|
||||||
|
|
||||||
|
net.addNode(new ServerNode.Builder("Source", new Distribution.Exponential(1)).build());
|
||||||
|
assertEquals("Source[servers:1, queue:100, spawn:0, Exponential(1.0)] -\n", net.toString());
|
||||||
|
|
||||||
|
net.addNode(new ServerNode.Builder("Server", new Distribution.Normal(3.2, 0.6)).build());
|
||||||
|
assertEquals("Source[servers:1, queue:100, spawn:0, Exponential(1.0)] -\n"
|
||||||
|
+ "Server[servers:1, queue:100, spawn:0, Normal(3.2, 0.6)] -\n", net.toString());
|
||||||
|
|
||||||
|
net.addConnection(0, 1, 1.0);
|
||||||
|
assertEquals("Source[servers:1, queue:100, spawn:0, Exponential(1.0)] -> Server(1.0)\n"
|
||||||
|
+ "Server[servers:1, queue:100, spawn:0, Normal(3.2, 0.6)] -\n", net.toString());
|
||||||
|
|
||||||
|
net.addNode(new ServerNode.Builder("Server2", new Distribution.Normal(4.1, 0.1)).build());
|
||||||
|
assertEquals("Source[servers:1, queue:100, spawn:0, Exponential(1.0)] -> Server(1.0)\n"
|
||||||
|
+ "Server[servers:1, queue:100, spawn:0, Normal(3.2, 0.6)] -\n"
|
||||||
|
+ "Server2[servers:1, queue:100, spawn:0, Normal(4.1, 0.1)] -\n", net.toString());
|
||||||
|
|
||||||
|
net.addConnection(0, 2, 1.0);
|
||||||
|
net.normalizeWeights();
|
||||||
|
assertEquals("Source[servers:1, queue:100, spawn:0, Exponential(1.0)] -> Server(0.5), Server2(0.5)\n"
|
||||||
|
+ "Server[servers:1, queue:100, spawn:0, Normal(3.2, 0.6)] -\n"
|
||||||
|
+ "Server2[servers:1, queue:100, spawn:0, Normal(4.1, 0.1)] -\n", net.toString());
|
||||||
|
|
||||||
|
net.addConnection(1, 2, 1.0);
|
||||||
|
assertEquals("Source[servers:1, queue:100, spawn:0, Exponential(1.0)] -> Server(0.5), Server2(0.5)\n"
|
||||||
|
+ "Server[servers:1, queue:100, spawn:0, Normal(3.2, 0.6)] -> Server2(1.0)\n"
|
||||||
|
+ "Server2[servers:1, queue:100, spawn:0, Normal(4.1, 0.1)] -\n", net.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user