diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-02-02 16:13:52 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-02-02 16:13:52 +0100 |
commit | 0c67b50e66685ca97f29a25546c6ab0ea1e3ec9f (patch) | |
tree | 9589a0562a244465d8f82932035e7c28b6b6b9de /vespajlib | |
parent | 69c515241adaeee6b2d2e44fe43ded074f3d67cc (diff) |
Handle negative numeric labels.
Diffstat (limited to 'vespajlib')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/TensorAddress.java | 2 | ||||
-rw-r--r-- | vespajlib/src/test/java/com/yahoo/tensor/IndexedTensorTestCase.java | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/TensorAddress.java b/vespajlib/src/main/java/com/yahoo/tensor/TensorAddress.java index d5c3b1340f1..6ac769d9840 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/TensorAddress.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/TensorAddress.java @@ -110,7 +110,7 @@ public abstract class TensorAddress implements Comparable<TensorAddress> { } private static String asString(long index) { - return (index < SMALL_INDEXES.length) ? SMALL_INDEXES[(int)index] : String.valueOf(index); + return ((index >= 0) && (index < SMALL_INDEXES.length)) ? SMALL_INDEXES[(int)index] : String.valueOf(index); } private static final class StringTensorAddress extends TensorAddress { diff --git a/vespajlib/src/test/java/com/yahoo/tensor/IndexedTensorTestCase.java b/vespajlib/src/test/java/com/yahoo/tensor/IndexedTensorTestCase.java index c71240541cf..18ffe28271e 100644 --- a/vespajlib/src/test/java/com/yahoo/tensor/IndexedTensorTestCase.java +++ b/vespajlib/src/test/java/com/yahoo/tensor/IndexedTensorTestCase.java @@ -43,6 +43,16 @@ public class IndexedTensorTestCase { assertEquals(singleValue, singleValueFromString); } + @Test + public void testNegativeLabels() { + TensorAddress numeric = TensorAddress.of(-1, 0, 1, 1234567, -1234567); + assertEquals("-1", numeric.label(0)); + assertEquals("0", numeric.label(1)); + assertEquals("1", numeric.label(2)); + assertEquals("1234567", numeric.label(3)); + assertEquals("-1234567", numeric.label(4)); + } + private void verifyFloat(String spec) { float [] floats = {1.0f, 2.0f, 3.0f}; Tensor tensor = IndexedTensor.Builder.of(TensorType.fromSpec(spec), floats).build(); |