summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-02-02 16:13:52 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2023-02-02 16:13:52 +0100
commit0c67b50e66685ca97f29a25546c6ab0ea1e3ec9f (patch)
tree9589a0562a244465d8f82932035e7c28b6b6b9de /vespajlib
parent69c515241adaeee6b2d2e44fe43ded074f3d67cc (diff)
Handle negative numeric labels.
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/TensorAddress.java2
-rw-r--r--vespajlib/src/test/java/com/yahoo/tensor/IndexedTensorTestCase.java10
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();