diff options
Diffstat (limited to 'config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java')
-rw-r--r-- | config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java index 71d20e5bbd2..65ec070d744 100644 --- a/config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java +++ b/config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java @@ -1,22 +1,27 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.provision; +import com.yahoo.config.provision.NodeResources.Architecture; +import com.yahoo.config.provision.NodeResources.DiskSpeed; +import com.yahoo.config.provision.NodeResources.GpuResources; +import com.yahoo.config.provision.NodeResources.StorageType; import org.junit.jupiter.api.Test; import java.util.function.Supplier; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; /** * @author bratseth */ -public class NodeResourcesTest { +class NodeResourcesTest { @Test - public void testCost() { + void testCost() { assertEquals(5.408, new NodeResources(32, 128, 1200, 1).cost(), 0.0001); } @@ -81,7 +86,40 @@ public class NodeResourcesTest { } @Test - public void testJoiningResources() { + void testSpecifyFully() { + NodeResources empty = new NodeResources(0, 0, 0, 0).with(DiskSpeed.any); + + assertEquals(0, empty.withUnspecifiedFieldsFrom(empty).vcpu()); + assertEquals(3, empty.withUnspecifiedFieldsFrom(empty.withVcpu(3)).vcpu()); + assertEquals(2, empty.withVcpu(2).withUnspecifiedFieldsFrom(empty.withVcpu(3)).vcpu()); + + assertEquals(0, empty.withUnspecifiedFieldsFrom(empty).memoryGb()); + assertEquals(3, empty.withUnspecifiedFieldsFrom(empty.withMemoryGb(3)).memoryGb()); + assertEquals(2, empty.withMemoryGb(2).withUnspecifiedFieldsFrom(empty.withMemoryGb(3)).memoryGb()); + + assertEquals(0, empty.withUnspecifiedFieldsFrom(empty).diskGb()); + assertEquals(3, empty.withUnspecifiedFieldsFrom(empty.withDiskGb(3)).diskGb()); + assertEquals(2, empty.withDiskGb(2).withUnspecifiedFieldsFrom(empty.withDiskGb(3)).diskGb()); + + assertEquals(0, empty.withUnspecifiedFieldsFrom(empty).bandwidthGbps()); + assertEquals(3, empty.withUnspecifiedFieldsFrom(empty.withBandwidthGbps(3)).bandwidthGbps()); + assertEquals(2, empty.withBandwidthGbps(2).withUnspecifiedFieldsFrom(empty.withBandwidthGbps(3)).bandwidthGbps()); + + assertEquals(Architecture.any, empty.withUnspecifiedFieldsFrom(empty).architecture()); + assertEquals(Architecture.arm64, empty.withUnspecifiedFieldsFrom(empty.with(Architecture.arm64)).architecture()); + assertEquals(Architecture.x86_64, empty.with(Architecture.x86_64).withUnspecifiedFieldsFrom(empty.with(Architecture.arm64)).architecture()); + + assertEquals(DiskSpeed.any, empty.withUnspecifiedFieldsFrom(empty).diskSpeed()); + assertEquals(DiskSpeed.fast, empty.withUnspecifiedFieldsFrom(empty.with(DiskSpeed.fast)).diskSpeed()); + assertEquals(DiskSpeed.slow, empty.with(DiskSpeed.slow).withUnspecifiedFieldsFrom(empty.with(DiskSpeed.fast)).diskSpeed()); + + assertEquals(StorageType.any, empty.withUnspecifiedFieldsFrom(empty).storageType()); + assertEquals(StorageType.local, empty.withUnspecifiedFieldsFrom(empty.with(StorageType.local)).storageType()); + assertEquals(StorageType.remote, empty.with(StorageType.remote).withUnspecifiedFieldsFrom(empty.with(StorageType.local)).storageType()); + } + + @Test + void testJoiningResources() { var resources = new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.fast, NodeResources.StorageType.local, |