diff options
author | Bjørn Christian Seime <bjorncs@vespa.ai> | 2024-06-06 09:59:53 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@vespa.ai> | 2024-06-06 11:36:21 +0200 |
commit | d6818209d90b407dc1a9bde5cae4269c071eea2d (patch) | |
tree | 7524e19e1dc9d8c359f4decf752032ad6b962307 /vespajlib/src | |
parent | a2981040c0f96842f40a5f4b245fb3f84b49f989 (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.java | 4 | ||||
-rw-r--r-- | vespajlib/src/test/java/ai/vespa/utils/BytesQuantityTest.java | 9 |
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()); |