You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2016/10/03 07:10:09 UTC

[2/2] lucene-solr:branch_6x: LUCENE-7469: Avoid TestBooleanRewrites test failures due to floating-point inaccuracy issues.

LUCENE-7469: Avoid TestBooleanRewrites test failures due to floating-point inaccuracy issues.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/c6f5abaa
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/c6f5abaa
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/c6f5abaa

Branch: refs/heads/branch_6x
Commit: c6f5abaaeb8679a7d8f991681b20a7fbbe2ea4d6
Parents: cbb39c3
Author: Adrien Grand <jp...@gmail.com>
Authored: Mon Oct 3 09:07:23 2016 +0200
Committer: Adrien Grand <jp...@gmail.com>
Committed: Mon Oct 3 09:08:55 2016 +0200

----------------------------------------------------------------------
 .../lucene/search/TestBooleanRewrites.java       | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c6f5abaa/lucene/core/src/test/org/apache/lucene/search/TestBooleanRewrites.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestBooleanRewrites.java b/lucene/core/src/test/org/apache/lucene/search/TestBooleanRewrites.java
index fd54640..da5bd16 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestBooleanRewrites.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestBooleanRewrites.java
@@ -18,6 +18,10 @@ package org.apache.lucene.search;
 
 
 import java.io.IOException;
+import java.util.Arrays;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -338,11 +342,16 @@ public class TestBooleanRewrites extends LuceneTestCase {
   private void assertEquals(TopDocs td1, TopDocs td2) {
     assertEquals(td1.totalHits, td2.totalHits);
     assertEquals(td1.scoreDocs.length, td2.scoreDocs.length);
-    for (int i = 0; i < td1.scoreDocs.length; ++i) {
-      ScoreDoc sd1 = td1.scoreDocs[i];
-      ScoreDoc sd2 = td2.scoreDocs[i];
-      assertEquals(sd1.doc, sd2.doc);
-      assertEquals(sd1.score, sd2.score, 0.01f);
+    Map<Integer, Float> expectedScores = Arrays.stream(td1.scoreDocs).collect(Collectors.toMap(sd -> sd.doc, sd -> sd.score));
+    Set<Integer> actualResultSet = Arrays.stream(td2.scoreDocs).map(sd -> sd.doc).collect(Collectors.toSet());
+
+    assertEquals("Set of matching documents differs",
+        expectedScores.keySet(), actualResultSet);
+
+    for (ScoreDoc scoreDoc : td2.scoreDocs) {
+      final float expectedScore = expectedScores.get(scoreDoc.doc);
+      final float actualScore = scoreDoc.score;
+      assertEquals(expectedScore, actualScore, 10e-5);
     }
   }
 }