diff options
Diffstat (limited to 'container-search/src/test')
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/dispatch/LeanHitTest.java | 42 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/dispatch/MockInvoker.java | 16 |
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; } |