aboutsummaryrefslogtreecommitdiffstats
path: root/indexinglanguage/src/test/java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2023-03-24 11:50:56 +0100
committerJon Bratseth <bratseth@gmail.com>2023-03-24 11:50:56 +0100
commit4fe77d7309056c81c713a2095339fd463ee604b4 (patch)
tree1b6c3e52d02856ffbf106412da4fc8c4c1b06c66 /indexinglanguage/src/test/java
parent6db94ff887b65b10b8c4a8ce10c0d2e195bc0c0a (diff)
Retrieve execution value explicitly by '_'
Diffstat (limited to 'indexinglanguage/src/test/java')
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java
index ce42f4e727f..98458dd965c 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java
@@ -276,6 +276,45 @@ public class ScriptTestCase {
}
@Test
+ public void testArrayEmbedWithConcatenation() throws ParseException {
+ Map<String, Embedder> embedders = Map.of("emb1", new MockEmbedder("myDocument.mySparseTensor"));
+
+ TensorType tensorType = TensorType.fromSpec("tensor(passage{}, d[4])");
+ var expression = Expression.fromString("input myTextArray | for_each { input title . \" \" . _ } | embed | attribute 'mySparseTensor'",
+ new SimpleLinguistics(),
+ embedders);
+
+ SimpleTestAdapter adapter = new SimpleTestAdapter();
+ adapter.createField(new Field("myTextArray", new ArrayDataType(DataType.STRING)));
+
+ var tensorField = new Field("mySparseTensor", new TensorDataType(tensorType));
+ adapter.createField(tensorField);
+
+ var array = new Array<StringFieldValue>(new ArrayDataType(DataType.STRING));
+ array.add(new StringFieldValue("first"));
+ array.add(new StringFieldValue("second"));
+ adapter.setValue("myTextArray", array);
+
+ var titleField = new Field("title", DataType.STRING);
+ adapter.createField(titleField);
+ adapter.setValue("title", new StringFieldValue("title1"));
+
+ expression.setStatementOutput(new DocumentType("myDocument"), tensorField);
+
+ // Necessary to resolve output type
+ VerificationContext verificationContext = new VerificationContext(adapter);
+ assertEquals(new TensorDataType(tensorType), expression.verify(verificationContext));
+
+ ExecutionContext context = new ExecutionContext(adapter);
+ context.setValue(array);
+ expression.execute(context);
+ assertTrue(adapter.values.containsKey("mySparseTensor"));
+ var sparseTensor = (TensorFieldValue)adapter.values.get("mySparseTensor");
+ assertEquals(Tensor.from(tensorType, "{ '0':[116.0, 105.0, 116.0, 108.0], 1:[116.0, 105.0, 116.0, 108.0]}"),
+ sparseTensor.getTensor().get());
+ }
+
+ @Test
public void testArrayEmbedToSparseTensor() throws ParseException {
Map<String, Embedder> embedders = Map.of("emb1", new MockEmbedder("myDocument.mySparseTensor"));