From 57722f461ebd94a1208979961be0062e6f6118e4 Mon Sep 17 00:00:00 2001 From: Benjamin Trent <4357155+benwtrent@users.noreply.github.com> Date: Tue, 17 Jun 2025 16:49:52 -0400 Subject: [PATCH 1/2] Address when scores can be very large in osq score teset --- .../ES91OSQVectorScorerTests.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/libs/simdvec/src/test/java/org/elasticsearch/simdvec/internal/vectorization/ES91OSQVectorScorerTests.java b/libs/simdvec/src/test/java/org/elasticsearch/simdvec/internal/vectorization/ES91OSQVectorScorerTests.java index 5544c0686fa5f..d836f3fb7a8bb 100644 --- a/libs/simdvec/src/test/java/org/elasticsearch/simdvec/internal/vectorization/ES91OSQVectorScorerTests.java +++ b/libs/simdvec/src/test/java/org/elasticsearch/simdvec/internal/vectorization/ES91OSQVectorScorerTests.java @@ -107,12 +107,21 @@ public void testScore() throws Exception { defaultScorer.scoreBulk(query, result, similarityFunction, centroidDp, scores1); panamaScorer.scoreBulk(query, result, similarityFunction, centroidDp, scores2); for (int j = 0; j < ES91OSQVectorsScorer.BULK_SIZE; j++) { - if (scores1[j] > (maxDims * Short.MAX_VALUE)) { - int diff = (int) (scores1[j] - scores2[j]); - assertThat("defaultScores: " + scores1[j] + " bulkScores: " + scores2[j], Math.abs(diff), lessThan(65)); - } else if (scores1[j] > (maxDims * Byte.MAX_VALUE)) { - int diff = (int) (scores1[j] - scores2[j]); - assertThat("defaultScores: " + scores1[j] + " bulkScores: " + scores2[j], Math.abs(diff), lessThan(9)); + if (scores1[j] == scores2[j]) { + continue; + } + if (scores1[j] > (maxDims * Byte.MAX_VALUE)) { + float diff = scores1[j] - scores2[j]; + assertThat( + "defaultScores: " + scores1[j] + " bulkScores: " + scores2[j], + diff / scores1[j], + lessThan(1e-5f) + ); + assertThat( + "defaultScores: " + scores1[j] + " bulkScores: " + scores2[j], + diff / scores2[j], + lessThan(1e-5f) + ); } else { assertEquals(scores1[j], scores2[j], 1e-2f); } From 0498c2df12395a4d314d1a7435f4aa3afc2c6160 Mon Sep 17 00:00:00 2001 From: Benjamin Trent <4357155+benwtrent@users.noreply.github.com> Date: Wed, 18 Jun 2025 08:06:25 -0400 Subject: [PATCH 2/2] fixing abs diff --- .../internal/vectorization/ES91OSQVectorScorerTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/simdvec/src/test/java/org/elasticsearch/simdvec/internal/vectorization/ES91OSQVectorScorerTests.java b/libs/simdvec/src/test/java/org/elasticsearch/simdvec/internal/vectorization/ES91OSQVectorScorerTests.java index d836f3fb7a8bb..10f67a6367d96 100644 --- a/libs/simdvec/src/test/java/org/elasticsearch/simdvec/internal/vectorization/ES91OSQVectorScorerTests.java +++ b/libs/simdvec/src/test/java/org/elasticsearch/simdvec/internal/vectorization/ES91OSQVectorScorerTests.java @@ -111,7 +111,7 @@ public void testScore() throws Exception { continue; } if (scores1[j] > (maxDims * Byte.MAX_VALUE)) { - float diff = scores1[j] - scores2[j]; + float diff = Math.abs(scores1[j] - scores2[j]); assertThat( "defaultScores: " + scores1[j] + " bulkScores: " + scores2[j], diff / scores1[j],