Skip to content

Commit 45b1c46

Browse files
author
Christoph Büscher
authored
Relaxing score comparisons for rank_eval tests (elastic#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 elastic#68936
1 parent f09a2b9 commit 45b1c46

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
@@ -104,7 +104,7 @@ public void testPrecisionAtRequest() {
104104
// the expected Prec@ for the first query is 4/6 and the expected Prec@ for the
105105
// second is 1/6, divided by 2 to get the average
106106
double expectedPrecision = (1.0 / 6.0 + 4.0 / 6.0) / 2.0;
107-
assertEquals(expectedPrecision, response.getMetricScore(), Double.MIN_VALUE);
107+
assertEquals(expectedPrecision, response.getMetricScore(), 0.0000000001);
108108
Set<Entry<String, EvalQueryQuality>> entrySet = response.getPartialResults().entrySet();
109109
assertEquals(2, entrySet.size());
110110
for (Entry<String, EvalQueryQuality> entry : entrySet) {
@@ -147,7 +147,7 @@ public void testPrecisionAtRequest() {
147147
// if we look only at top 3 documente, the expected P@3 for the first query is
148148
// 2/3 and the expected Prec@ for the second is 1/3, divided by 2 to get the average
149149
expectedPrecision = (1.0 / 3.0 + 2.0 / 3.0) / 2.0;
150-
assertEquals(expectedPrecision, response.getMetricScore(), Double.MIN_VALUE);
150+
assertEquals(expectedPrecision, response.getMetricScore(), 0.0000000001);
151151
}
152152

153153
/**

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
@@ -91,7 +91,7 @@ public void testSerialization() throws IOException {
9191
randomResponse.writeTo(output);
9292
try (StreamInput in = output.bytes().streamInput()) {
9393
RankEvalResponse deserializedResponse = new RankEvalResponse(in);
94-
assertEquals(randomResponse.getMetricScore(), deserializedResponse.getMetricScore(), Double.MIN_VALUE);
94+
assertEquals(randomResponse.getMetricScore(), deserializedResponse.getMetricScore(), 0.0000000001);
9595
assertEquals(randomResponse.getPartialResults(), deserializedResponse.getPartialResults());
9696
assertEquals(randomResponse.getFailures().keySet(), deserializedResponse.getFailures().keySet());
9797
assertNotSame(randomResponse, deserializedResponse);

0 commit comments

Comments
 (0)