aboutsummaryrefslogtreecommitdiffstats
path: root/vespajlib/src
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@vespa.ai>2024-06-06 09:59:53 +0200
committerBjørn Christian Seime <bjorncs@vespa.ai>2024-06-06 11:36:21 +0200
commitd6818209d90b407dc1a9bde5cae4269c071eea2d (patch)
tree7524e19e1dc9d8c359f4decf752032ad6b962307 /vespajlib/src
parenta2981040c0f96842f40a5f4b245fb3f84b49f989 (diff)
Add special handling for pretty printing 1 byte
Diffstat (limited to 'vespajlib/src')
-rw-r--r--vespajlib/src/main/java/ai/vespa/utils/BytesQuantity.java4
-rw-r--r--vespajlib/src/test/java/ai/vespa/utils/BytesQuantityTest.java9
2 files changed, 10 insertions, 3 deletions
diff --git a/vespajlib/src/main/java/ai/vespa/utils/BytesQuantity.java b/vespajlib/src/main/java/ai/vespa/utils/BytesQuantity.java
index b9d8426938e..f1e8a74a74a 100644
--- a/vespajlib/src/main/java/ai/vespa/utils/BytesQuantity.java
+++ b/vespajlib/src/main/java/ai/vespa/utils/BytesQuantity.java
@@ -36,7 +36,7 @@ public class BytesQuantity {
static Unit fromString(String s) {
return switch (s) {
- case "", "b", "B", "bytes" -> BYTES;
+ case "", "B", "bytes", "byte" -> BYTES;
case "kB", "k", "K", "KB" -> KB;
case "MB", "m", "M" -> MB;
case "GB", "g", "G" -> GB;
@@ -70,6 +70,8 @@ public class BytesQuantity {
}
public String asPrettyString() {
+ if (bytes == 0) return "0 bytes";
+ if (bytes == 1) return "1 byte";
long remaining = bytes;
int unit = 0;
for (; remaining % 1024 == 0 && unit < Unit.values().length - 1; unit++) remaining /= 1024;
diff --git a/vespajlib/src/test/java/ai/vespa/utils/BytesQuantityTest.java b/vespajlib/src/test/java/ai/vespa/utils/BytesQuantityTest.java
index ba888528b85..e8e5d6275a3 100644
--- a/vespajlib/src/test/java/ai/vespa/utils/BytesQuantityTest.java
+++ b/vespajlib/src/test/java/ai/vespa/utils/BytesQuantityTest.java
@@ -11,7 +11,9 @@ class BytesQuantityTest {
@Test
void from_string() {
- assertEquals(1L, BytesQuantity.fromString("1 bytes").toBytes());
+ assertEquals(0L, BytesQuantity.fromString("0 bytes").toBytes());
+ assertEquals(1L, BytesQuantity.fromString("1 byte").toBytes());
+ assertEquals(10L, BytesQuantity.fromString("10 bytes").toBytes());
assertEquals(1L, BytesQuantity.fromString("1 B").toBytes());
assertEquals(1L, BytesQuantity.fromString("1B").toBytes());
assertEquals(1L, BytesQuantity.fromString("1").toBytes());
@@ -29,7 +31,10 @@ class BytesQuantityTest {
@Test
void as_pretty_string() {
- assertEquals("1 bytes", BytesQuantity.ofBytes(1).asPrettyString());
+ assertEquals("0 bytes", BytesQuantity.ofBytes(0).asPrettyString());
+ assertEquals("1 byte", BytesQuantity.ofBytes(1).asPrettyString());
+ assertEquals("10 bytes", BytesQuantity.ofBytes(10).asPrettyString());
+ assertEquals("1 kB", BytesQuantity.ofBytes(1024).asPrettyString());
assertEquals("2 kB", BytesQuantity.ofKB(2).asPrettyString());
assertEquals("3 MB", BytesQuantity.ofMB(3).asPrettyString());
assertEquals("4 GB", BytesQuantity.ofGB(4).asPrettyString());