summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/test/java/com/yahoo/tensor/functions
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-12-10 11:39:39 -0800
committerJon Bratseth <bratseth@verizonmedia.com>2019-12-10 11:39:39 -0800
commit4c46e1816d2cdfacd8435ad4d55e831929fc99ba (patch)
treed55a90aeeddcf9265a74e7f16129517e36f45375 /vespajlib/src/test/java/com/yahoo/tensor/functions
parentb8d2859a9fece15dac2b9260d71dea39f8ce19b3 (diff)
Tensor parsing improvements
- Mixed tensor format parsing (outside expressions) - Validate structure of dense tensor strings
Diffstat (limited to 'vespajlib/src/test/java/com/yahoo/tensor/functions')
-rw-r--r--vespajlib/src/test/java/com/yahoo/tensor/functions/DynamicTensorTestCase.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/vespajlib/src/test/java/com/yahoo/tensor/functions/DynamicTensorTestCase.java b/vespajlib/src/test/java/com/yahoo/tensor/functions/DynamicTensorTestCase.java
index e16b7b90a1d..7cddeab1641 100644
--- a/vespajlib/src/test/java/com/yahoo/tensor/functions/DynamicTensorTestCase.java
+++ b/vespajlib/src/test/java/com/yahoo/tensor/functions/DynamicTensorTestCase.java
@@ -9,6 +9,7 @@ import com.yahoo.tensor.evaluation.Name;
import org.junit.Test;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import static org.junit.Assert.assertEquals;
@@ -19,21 +20,36 @@ import static org.junit.Assert.assertEquals;
public class DynamicTensorTestCase {
@Test
- public void testDynamicTensorFunction() {
+ public void testDynamicIndexedRank1TensorFunction() {
TensorType dense = TensorType.fromSpec("tensor(x[3])");
DynamicTensor<Name> t1 = DynamicTensor.from(dense,
List.of(new Constant(1), new Constant(2), new Constant(3)));
assertEquals(Tensor.from(dense, "[1, 2, 3]"), t1.evaluate());
assertEquals("tensor(x[3]):{{x:0}:1.0,{x:1}:2.0,{x:2}:3.0}", t1.toString());
+ }
+ @Test
+ public void testDynamicMappedRank1TensorFunction() {
TensorType sparse = TensorType.fromSpec("tensor(x{})");
DynamicTensor<Name> t2 = DynamicTensor.from(sparse,
Collections.singletonMap(new TensorAddress.Builder(sparse).add("x", "a").build(),
- new Constant(5)));
+ new Constant(5)));
assertEquals(Tensor.from(sparse, "{{x:a}:5}"), t2.evaluate());
assertEquals("tensor(x{}):{{x:a}:5.0}", t2.toString());
}
+ @Test
+ public void testDynamicMappedRank2TensorFunction() {
+ TensorType sparse = TensorType.fromSpec("tensor(x{},y{})");
+ HashMap<TensorAddress, ScalarFunction<Name>> values = new HashMap<>();
+ values.put(new TensorAddress.Builder(sparse).add("x", "a").add("y", "b").build(),
+ new Constant(5));
+ values.put(new TensorAddress.Builder(sparse).add("x", "a").add("y", "c").build(),
+ new Constant(7));
+ DynamicTensor<Name> t2 = DynamicTensor.from(sparse, values);
+ assertEquals(Tensor.from(sparse, "{{x:a,y:b}:5, {x:a,y:c}:7}"), t2.evaluate());
+ }
+
private static class Constant implements ScalarFunction<Name> {
private final double value;