summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-09-16 16:51:43 +0200
committerGitHub <noreply@github.com>2019-09-16 16:51:43 +0200
commit10a7fd163b55c9d501fec44eceaa3b36cebd7861 (patch)
tree808facc2b3976bfc953e1ef67e798727b3962f71 /container-search/src/test/java
parentc9babe83512093d584ae73b98c2df91a28d13343 (diff)
Revert "Revert "Use a LeanHit until merging is done." MERGEOK"
Diffstat (limited to 'container-search/src/test/java')
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/LeanHitTest.java42
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/MockInvoker.java16
2 files changed, 54 insertions, 4 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/LeanHitTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/LeanHitTest.java
new file mode 100644
index 00000000000..3478038e427
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/LeanHitTest.java
@@ -0,0 +1,42 @@
+package com.yahoo.search.dispatch;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class LeanHitTest {
+ byte [] gidA = {'a'};
+ byte [] gidB = {'b'};
+ byte [] gidC = {'c'};
+ private void verifyTransitiveOrdering(LeanHit a, LeanHit b, LeanHit c) {
+ assertTrue(a.compareTo(b) < 0);
+ assertTrue(b.compareTo(c) < 0);
+ assertTrue(a.compareTo(c) < 0);
+ assertTrue(b.compareTo(a) > 0);
+ assertTrue(c.compareTo(b) > 0);
+ assertTrue(c.compareTo(a) > 0);
+ }
+ @Test
+ public void testOrderingByRelevance() {
+ assertEquals(0, new LeanHit(gidA, 0, 0, 1).compareTo(new LeanHit(gidA, 0, 0, 1)));
+ verifyTransitiveOrdering(new LeanHit(gidA, 0, 0, 1),
+ new LeanHit(gidA, 0, 0, 0),
+ new LeanHit(gidA, 0, 0, -1));
+ }
+ @Test
+ public void testOrderingByGid() {
+ assertEquals(0, new LeanHit(gidA, 0, 0, 1).compareTo(new LeanHit(gidA, 0, 0, 1)));
+
+ verifyTransitiveOrdering(new LeanHit(gidA, 0, 0, 1),
+ new LeanHit(gidB, 0, 0, 1),
+ new LeanHit(gidC, 0, 0, 1));
+ }
+ @Test
+ public void testOrderingBySortData() {
+ assertEquals(0, new LeanHit(gidA, 0, 0, gidA).compareTo(new LeanHit(gidA, 0, 0, gidA)));
+ verifyTransitiveOrdering(new LeanHit(gidA, 0, 0, gidA),
+ new LeanHit(gidA, 0, 0, gidB),
+ new LeanHit(gidA, 0, 0, gidC));
+ }
+}
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/MockInvoker.java b/container-search/src/test/java/com/yahoo/search/dispatch/MockInvoker.java
index 4b2f63d6b89..2fe434d6f3f 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/MockInvoker.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/MockInvoker.java
@@ -1,6 +1,7 @@
// Copyright 2019 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.search.dispatch;
+import com.yahoo.prelude.fastsearch.FastHit;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
import com.yahoo.search.dispatch.searchcluster.Node;
@@ -37,13 +38,20 @@ class MockInvoker extends SearchInvoker {
}
@Override
- protected Result getSearchResult(Execution execution) throws IOException {
- Result ret = new Result(query);
+ protected InvokerResult getSearchResult(Execution execution) throws IOException {
+ InvokerResult ret = new InvokerResult(query, 10);
if (coverage != null) {
- ret.setCoverage(coverage);
+ ret.getResult().setCoverage(coverage);
}
if (hits != null) {
- ret.hits().addAll(hits);
+ for (Hit h : hits) {
+ if (h instanceof FastHit) {
+ FastHit fh = (FastHit) h;
+ ret.getLeanHits().add(new LeanHit(fh.getRawGlobalId(), fh.getPartId(), fh.getDistributionKey(), fh.getRelevance().getScore()));
+ } else {
+ ret.getResult().hits().add(h);
+ }
+ }
}
return ret;
}