Skip to content

Commit fc7ec64

Browse files
author
Christoph Büscher
committed
Relaxing score comparisons for rank_eval tests (#68976)
The currently allowed delta in this tests is to strict to account for slight floating point differences across different platforms, e.g. ARM. Closes #68936
1 parent 931e149 commit fc7ec64

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

client/rest-high-level/src/test/java/org/elasticsearch/client/RankEvalIT.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717
import org.elasticsearch.index.rankeval.ExpectedReciprocalRank;
1818
import org.elasticsearch.index.rankeval.MeanReciprocalRank;
1919
import org.elasticsearch.index.rankeval.PrecisionAtK;
20-
import org.elasticsearch.index.rankeval.RecallAtK;
2120
import org.elasticsearch.index.rankeval.RankEvalRequest;
2221
import org.elasticsearch.index.rankeval.RankEvalResponse;
2322
import org.elasticsearch.index.rankeval.RankEvalSpec;
2423
import org.elasticsearch.index.rankeval.RatedDocument;
2524
import org.elasticsearch.index.rankeval.RatedRequest;
2625
import org.elasticsearch.index.rankeval.RatedSearchHit;
26+
import org.elasticsearch.index.rankeval.RecallAtK;
2727
import org.elasticsearch.search.builder.SearchSourceBuilder;
2828
import org.junit.Before;
2929

@@ -68,7 +68,7 @@ public void testRankEvalRequest() throws IOException {
6868
RankEvalResponse response = execute(rankEvalRequest, highLevelClient()::rankEval, highLevelClient()::rankEvalAsync);
6969
// the expected Prec@ for the first query is 5/7 and the expected Prec@ for the second is 1/7, divided by 2 to get the average
7070
double expectedPrecision = (1.0 / 7.0 + 5.0 / 7.0) / 2.0;
71-
assertEquals(expectedPrecision, response.getMetricScore(), Double.MIN_VALUE);
71+
assertEquals(expectedPrecision, response.getMetricScore(), 0.00000000001);
7272
Map<String, EvalQueryQuality> partialResults = response.getPartialResults();
7373
assertEquals(2, partialResults.size());
7474
EvalQueryQuality amsterdamQueryQuality = partialResults.get("amsterdam_query");
@@ -129,7 +129,7 @@ public void testMetrics() throws IOException {
129129

130130
RankEvalRequest rankEvalRequest = new RankEvalRequest(spec, new String[] { "index", "index2" });
131131
RankEvalResponse response = execute(rankEvalRequest, highLevelClient()::rankEval, highLevelClient()::rankEvalAsync);
132-
assertEquals(expectedScores[i], response.getMetricScore(), Double.MIN_VALUE);
132+
assertEquals(expectedScores[i], response.getMetricScore(), 0.00000000001);
133133
i++;
134134
}
135135
}

modules/rank-eval/src/internalClusterTest/java/org/elasticsearch/index/rankeval/RankEvalRequestIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public void testPrecisionAtRequest() {
116116
// the expected Prec@ for the first query is 4/6 and the expected Prec@ for the
117117
// second is 1/6, divided by 2 to get the average
118118
double expectedPrecision = (1.0 / 6.0 + 4.0 / 6.0) / 2.0;
119-
assertEquals(expectedPrecision, response.getMetricScore(), Double.MIN_VALUE);
119+
assertEquals(expectedPrecision, response.getMetricScore(), 0.0000000001);
120120
Set<Entry<String, EvalQueryQuality>> entrySet = response.getPartialResults().entrySet();
121121
assertEquals(2, entrySet.size());
122122
for (Entry<String, EvalQueryQuality> entry : entrySet) {
@@ -159,7 +159,7 @@ public void testPrecisionAtRequest() {
159159
// if we look only at top 3 documente, the expected P@3 for the first query is
160160
// 2/3 and the expected Prec@ for the second is 1/3, divided by 2 to get the average
161161
expectedPrecision = (1.0 / 3.0 + 2.0 / 3.0) / 2.0;
162-
assertEquals(expectedPrecision, response.getMetricScore(), Double.MIN_VALUE);
162+
assertEquals(expectedPrecision, response.getMetricScore(), 0.0000000001);
163163
}
164164

165165
/**

modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/RankEvalResponseTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public void testSerialization() throws IOException {
9393
randomResponse.writeTo(output);
9494
try (StreamInput in = output.bytes().streamInput()) {
9595
RankEvalResponse deserializedResponse = new RankEvalResponse(in);
96-
assertEquals(randomResponse.getMetricScore(), deserializedResponse.getMetricScore(), Double.MIN_VALUE);
96+
assertEquals(randomResponse.getMetricScore(), deserializedResponse.getMetricScore(), 0.0000000001);
9797
assertEquals(randomResponse.getPartialResults(), deserializedResponse.getPartialResults());
9898
assertEquals(randomResponse.getFailures().keySet(), deserializedResponse.getFailures().keySet());
9999
assertNotSame(randomResponse, deserializedResponse);

0 commit comments

Comments
 (0)