summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-09-17 22:39:26 +0200
committerGitHub <noreply@github.com>2019-09-17 22:39:26 +0200
commita573985d1127835f0ecb5047694ffe23e8baefe7 (patch)
tree463ab5145edf4a26243cc4a92d04bfb82a3c1580 /container-search/src/test/java/com/yahoo/search
parentddb9cd0a539b57c41587ccdec1040b48169d3cec (diff)
Revert "Balder/no more fs4 dispatching from fastsearcher"
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search')
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java5
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/HitConverterTestCase.java14
-rw-r--r--container-search/src/test/java/com/yahoo/search/query/test/RankFeaturesTestCase.java140
3 files changed, 19 insertions, 140 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java b/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java
index 7ee62ae9978..42a22f6f86b 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java
@@ -89,6 +89,11 @@ public class MockSearchCluster extends SearchCluster {
}
@Override
+ public ImmutableMultimap<String, Node> nodesByHost() {
+ return nodesByHost;
+ }
+
+ @Override
public Optional<Node> directDispatchTarget() {
return Optional.empty();
}
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/HitConverterTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/HitConverterTestCase.java
index 7bdf1916d85..6ed8a209cc5 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/HitConverterTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/HitConverterTestCase.java
@@ -3,6 +3,7 @@ package com.yahoo.search.grouping.vespa;
import com.yahoo.document.DocumentId;
import com.yahoo.document.GlobalId;
+import com.yahoo.fs4.QueryPacketData;
import com.yahoo.net.URI;
import com.yahoo.prelude.fastsearch.GroupingListHit;
import com.yahoo.prelude.fastsearch.DocsumDefinitionSet;
@@ -61,6 +62,19 @@ public class HitConverterTestCase {
}
@Test
+ public void requireThatHitTagIsCopiedFromGroupingListContext() {
+ QueryPacketData ctxTag = new QueryPacketData();
+ GroupingListHit ctxHit = context();
+ ctxHit.setQueryPacketData(ctxTag);
+
+ HitConverter converter = new HitConverter(new MySearcher(), new Query());
+ Hit hit = converter.toSearchHit("default", new FS4Hit(1, createGlobalId(2), 3).setContext(ctxHit));
+ assertNotNull(hit);
+ assertTrue(hit instanceof FastHit);
+ assertSame(ctxTag, ((FastHit)hit).getQueryPacketData());
+ }
+
+ @Test
public void requireThatSummaryClassIsSet() {
Searcher searcher = new MySearcher();
HitConverter converter = new HitConverter(searcher, new Query());
diff --git a/container-search/src/test/java/com/yahoo/search/query/test/RankFeaturesTestCase.java b/container-search/src/test/java/com/yahoo/search/query/test/RankFeaturesTestCase.java
deleted file mode 100644
index 8aff81a90db..00000000000
--- a/container-search/src/test/java/com/yahoo/search/query/test/RankFeaturesTestCase.java
+++ /dev/null
@@ -1,140 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.search.query.test;
-
-import com.yahoo.io.GrowableByteBuffer;
-import com.yahoo.search.query.ranking.RankFeatures;
-import com.yahoo.search.query.ranking.RankProperties;
-import com.yahoo.tensor.Tensor;
-import com.yahoo.tensor.TensorType;
-import com.yahoo.tensor.serialization.TypedBinaryFormat;
-import com.yahoo.text.Utf8;
-import org.junit.Test;
-
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- * @author geirst
- */
-public class RankFeaturesTestCase {
-
- @Test
- public void requireThatRankPropertiesTakesBothStringAndObject() {
- RankProperties p = new RankProperties();
- p.put("string", "b");
- p.put("object", 7);
- assertEquals("7", p.get("object").get(0));
- assertEquals("b", p.get("string").get(0));
- }
-
- @Test
- public void requireThatRankFeaturesUsingDoubleAndDoubleToStringEncodeTheSameWay() {
- RankFeatures withDouble = new RankFeatures();
- withDouble.put("query(myDouble)", 3.8);
- assertEquals(3.8, withDouble.getDouble("query(myDouble)").getAsDouble(), 0.000001);
-
- RankFeatures withString = new RankFeatures();
- withString.put("query(myDouble)", String.valueOf(3.8));
-
- RankProperties withDoubleP = new RankProperties();
- withDouble.prepare(withDoubleP);
- RankProperties withStringP = new RankProperties();
- withString.prepare(withStringP);
-
- byte[] withDoubleEncoded = encode(withDoubleP);
- byte[] withStringEncoded = encode(withStringP);
- assertEquals(Arrays.toString(withStringEncoded), Arrays.toString(withDoubleEncoded));
- }
-
- @Test
- public void requireThatSingleTensorIsBinaryEncoded() {
- TensorType type = new TensorType.Builder().mapped("x").mapped("y").mapped("z").build();
- Tensor tensor = Tensor.from(type, "{ {x:a, y:b, z:c}:2.0, {x:a, y:b, z:c2}:3.0 }");
- assertTensorEncodingAndDecoding(type, "query(my_tensor)", "my_tensor", tensor);
- assertTensorEncodingAndDecoding(type, "$my_tensor", "my_tensor", tensor);
- }
-
- @Test
- public void requireThatMultipleTensorsAreBinaryEncoded() {
- TensorType type = new TensorType.Builder().mapped("x").mapped("y").mapped("z").build();
- Tensor tensor1 = Tensor.from(type, "{ {x:a, y:b, z:c}:2.0, {x:a, y:b, z:c2}:3.0 }");
- Tensor tensor2 = Tensor.from(type, "{ {x:a, y:b, z:c}:5.0 }");
- assertTensorEncodingAndDecoding(type, Arrays.asList(
- new Entry("query(tensor1)", "tensor1", tensor1),
- new Entry("$tensor2", "tensor2", tensor2)));
- }
-
- private static class Entry {
- final String key;
- final String normalizedKey;
- final Tensor tensor;
- Entry(String key, String normalizedKey, Tensor tensor) {
- this.key = key;
- this.normalizedKey = normalizedKey;
- this.tensor = tensor;
- }
- }
-
- private static void assertTensorEncodingAndDecoding(TensorType type, List<Entry> entries) {
- RankProperties properties = createRankPropertiesWithTensors(entries);
- assertEquals(entries.size(), properties.asMap().size());
-
- Map<String, Object> decodedProperties = decode(type, encode(properties));
- assertEquals(entries.size(), properties.asMap().size());
- assertEquals(entries.size(), decodedProperties.size());
- for (Entry entry : entries) {
- assertEquals(entry.tensor, decodedProperties.get(entry.normalizedKey));
- }
- }
-
- private static void assertTensorEncodingAndDecoding(TensorType type, String key, String normalizedKey, Tensor tensor) {
- assertTensorEncodingAndDecoding(type, Arrays.asList(new Entry(key, normalizedKey, tensor)));
- }
-
- private static RankProperties createRankPropertiesWithTensors(List<Entry> entries) {
- RankFeatures features = new RankFeatures();
- for (Entry entry : entries) {
- features.put(entry.key, entry.tensor);
- }
- RankProperties properties = new RankProperties();
- features.prepare(properties);
- return properties;
- }
-
- private static byte[] encode(RankProperties properties) {
- ByteBuffer buffer = ByteBuffer.allocate(512);
- properties.encode(buffer, true);
- byte[] result = new byte[buffer.position()];
- buffer.rewind();
- buffer.get(result);
- return result;
- }
-
- private static Map<String, Object> decode(TensorType type, byte[] encodedProperties) {
- GrowableByteBuffer buffer = GrowableByteBuffer.wrap(encodedProperties);
- byte[] mapNameBytes = new byte[buffer.getInt()];
- buffer.get(mapNameBytes);
- int numEntries = buffer.getInt();
- Map<String, Object> result = new HashMap<>();
- for (int i = 0; i < numEntries; ++i) {
- byte[] keyBytes = new byte[buffer.getInt()];
- buffer.get(keyBytes);
- String key = Utf8.toString(keyBytes);
- byte[] value = new byte[buffer.getInt()];
- buffer.get(value);
- if (key.contains(".type")) {
- result.put(key, Utf8.toString(value));
- } else {
- result.put(key, TypedBinaryFormat.decode(Optional.of(type), GrowableByteBuffer.wrap(value)));
- }
- }
- return result;
- }
-
-}