summaryrefslogtreecommitdiff
path: root/opendc-simulator/opendc-simulator-compute/src/test
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2024-04-22 14:32:53 +0200
committerGitHub <noreply@github.com>2024-04-22 14:32:53 +0200
commit7ffa97502d2725c1fe0a84677a654a5ea12cb454 (patch)
tree7f08b88a8e5bd1d39585b9cfcb530bd43f1a4733 /opendc-simulator/opendc-simulator-compute/src/test
parentd4c1d8468a17eb7adf8bf20949c2fdc4b2f93fec (diff)
Updated the power models and added tests (#222)
* Updated the power models and added tests * Updated test topologies
Diffstat (limited to 'opendc-simulator/opendc-simulator-compute/src/test')
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt84
1 files changed, 84 insertions, 0 deletions
diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt
index e85758ae..e3bea821 100644
--- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt
+++ b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt
@@ -78,6 +78,90 @@ internal class PowerModelTest {
)
}
+ @Test
+ fun `test linear model`() {
+ val powerModel = CpuPowerModels.linear(400.0, 200.0)
+
+ assertAll(
+ { assertEquals(200.0, powerModel.computePower(-0.1)) },
+ { assertEquals(200.0, powerModel.computePower(0.0)) },
+ { assertEquals(220.0, powerModel.computePower(0.1)) },
+ { assertEquals(240.0, powerModel.computePower(0.2)) },
+ { assertEquals(260.0, powerModel.computePower(0.3)) },
+ { assertEquals(280.0, powerModel.computePower(0.4)) },
+ { assertEquals(300.0, powerModel.computePower(0.5)) },
+ { assertEquals(320.0, powerModel.computePower(0.6)) },
+ { assertEquals(340.0, powerModel.computePower(0.7)) },
+ { assertEquals(360.0, powerModel.computePower(0.8)) },
+ { assertEquals(380.0, powerModel.computePower(0.9)) },
+ { assertEquals(400.0, powerModel.computePower(1.0)) },
+ { assertEquals(400.0, powerModel.computePower(1.1)) },
+ )
+ }
+
+ @Test
+ fun `test sqrt model`() {
+ val powerModel = CpuPowerModels.sqrt(400.0, 200.0)
+
+ assertAll(
+ { assertEquals(200.0, powerModel.computePower(-1.0), 1.0) },
+ { assertEquals(200.0, powerModel.computePower(0.0), 1.0) },
+ { assertEquals(263.0, powerModel.computePower(0.1), 1.0) },
+ { assertEquals(289.0, powerModel.computePower(0.2), 1.0) },
+ { assertEquals(309.0, powerModel.computePower(0.3), 1.0) },
+ { assertEquals(326.0, powerModel.computePower(0.4), 1.0) },
+ { assertEquals(341.0, powerModel.computePower(0.5), 1.0) },
+ { assertEquals(354.0, powerModel.computePower(0.6), 1.0) },
+ { assertEquals(367.0, powerModel.computePower(0.7), 1.0) },
+ { assertEquals(378.0, powerModel.computePower(0.8), 1.0) },
+ { assertEquals(389.0, powerModel.computePower(0.9), 1.0) },
+ { assertEquals(400.0, powerModel.computePower(1.0), 1.0) },
+ { assertEquals(400.0, powerModel.computePower(1.1), 1.0) },
+ )
+ }
+
+ @Test
+ fun `test square model`() {
+ val powerModel = CpuPowerModels.square(400.0, 200.0)
+
+ assertAll(
+ { assertEquals(200.0, powerModel.computePower(-1.0), 1.0) },
+ { assertEquals(200.0, powerModel.computePower(0.0), 1.0) },
+ { assertEquals(202.0, powerModel.computePower(0.1), 1.0) },
+ { assertEquals(208.0, powerModel.computePower(0.2), 1.0) },
+ { assertEquals(218.0, powerModel.computePower(0.3), 1.0) },
+ { assertEquals(232.0, powerModel.computePower(0.4), 1.0) },
+ { assertEquals(250.0, powerModel.computePower(0.5), 1.0) },
+ { assertEquals(272.0, powerModel.computePower(0.6), 1.0) },
+ { assertEquals(298.0, powerModel.computePower(0.7), 1.0) },
+ { assertEquals(328.0, powerModel.computePower(0.8), 1.0) },
+ { assertEquals(362.0, powerModel.computePower(0.9), 1.0) },
+ { assertEquals(400.0, powerModel.computePower(1.0), 1.0) },
+ { assertEquals(400.0, powerModel.computePower(1.1), 1.0) },
+ )
+ }
+
+ @Test
+ fun `test cubic model`() {
+ val powerModel = CpuPowerModels.cubic(400.0, 200.0)
+
+ assertAll(
+ { assertEquals(200.0, powerModel.computePower(-1.0), 1.0) },
+ { assertEquals(200.0, powerModel.computePower(0.0), 1.0) },
+ { assertEquals(200.0, powerModel.computePower(0.1), 1.0) },
+ { assertEquals(201.0, powerModel.computePower(0.2), 1.0) },
+ { assertEquals(205.0, powerModel.computePower(0.3), 1.0) },
+ { assertEquals(212.0, powerModel.computePower(0.4), 1.0) },
+ { assertEquals(225.0, powerModel.computePower(0.5), 1.0) },
+ { assertEquals(243.0, powerModel.computePower(0.6), 1.0) },
+ { assertEquals(268.0, powerModel.computePower(0.7), 1.0) },
+ { assertEquals(302.0, powerModel.computePower(0.8), 1.0) },
+ { assertEquals(345.0, powerModel.computePower(0.9), 1.0) },
+ { assertEquals(400.0, powerModel.computePower(1.0), 1.0) },
+ { assertEquals(400.0, powerModel.computePower(1.1), 1.0) },
+ )
+ }
+
@Suppress("unused")
private companion object {
@JvmStatic