Browse Source

Fix KnnSearchBuilderTests#testEqualsAndHashcode failures

The KnnSearchBuilder constructor validates that k is always less than num_cands.
But the mutateInstance method could increase k past num_cands. Now we construct
the instance with a larger num_cands to make sure this never happens.

Closes #88734.
Julie Tibshirani 3 years ago
parent
commit
c3e5daaf9b

+ 1 - 1
server/src/test/java/org/elasticsearch/search/vectors/KnnSearchBuilderTests.java

@@ -65,7 +65,7 @@ public class KnnSearchBuilderTests extends AbstractSerializingTestCase<KnnSearch
         int dim = randomIntBetween(2, 30);
         int dim = randomIntBetween(2, 30);
         float[] vector = randomVector(dim);
         float[] vector = randomVector(dim);
         int k = randomIntBetween(1, 100);
         int k = randomIntBetween(1, 100);
-        int numCands = randomIntBetween(k, 1000);
+        int numCands = randomIntBetween(k + 20, 1000);
 
 
         KnnSearchBuilder builder = new KnnSearchBuilder(field, vector, k, numCands);
         KnnSearchBuilder builder = new KnnSearchBuilder(field, vector, k, numCands);
         if (randomBoolean()) {
         if (randomBoolean()) {