You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2010/08/30 14:22:34 UTC
svn commit: r990781 -
/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestSort.java
Author: rmuir
Date: Mon Aug 30 12:22:34 2010
New Revision: 990781
URL: http://svn.apache.org/viewvc?rev=990781&view=rev
Log:
add basic tests for some untested TFC classes
Modified:
lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestSort.java
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestSort.java?rev=990781&r1=990780&r2=990781&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestSort.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestSort.java Mon Aug 30 12:22:34 2010
@@ -822,6 +822,27 @@ public class TestSort extends LuceneTest
}
}
+ // MultiComparatorScoringNoMaxScoreCollector
+ public void testSortWithScoreNoMaxScoreTrackingMulti() throws Exception {
+
+ // Two Sort criteria to instantiate the multi/single comparators.
+ Sort[] sort = new Sort[] {new Sort(SortField.FIELD_DOC, SortField.FIELD_SCORE) };
+ for (int i = 0; i < sort.length; i++) {
+ Query q = new MatchAllDocsQuery();
+ TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10, true, true,
+ false, true);
+
+ full.search(q, tdc);
+
+ TopDocs td = tdc.topDocs();
+ ScoreDoc[] sd = td.scoreDocs;
+ for (int j = 0; j < sd.length; j++) {
+ assertTrue(!Float.isNaN(sd[j].score));
+ }
+ assertTrue(Float.isNaN(td.getMaxScore()));
+ }
+ }
+
public void testSortWithScoreAndMaxScoreTracking() throws Exception {
// Two Sort criteria to instantiate the multi/single comparators.
@@ -890,6 +911,55 @@ public class TestSort extends LuceneTest
}
}
+ // OutOfOrderMulti*Collector
+ public void testOutOfOrderDocsScoringSortMulti() throws Exception {
+
+ // Two Sort criteria to instantiate the multi/single comparators.
+ Sort[] sort = new Sort[] {new Sort(SortField.FIELD_DOC, SortField.FIELD_SCORE) };
+ boolean[][] tfcOptions = new boolean[][] {
+ new boolean[] { false, false, false },
+ new boolean[] { false, false, true },
+ new boolean[] { false, true, false },
+ new boolean[] { false, true, true },
+ new boolean[] { true, false, false },
+ new boolean[] { true, false, true },
+ new boolean[] { true, true, false },
+ new boolean[] { true, true, true },
+ };
+ String[] actualTFCClasses = new String[] {
+ "OutOfOrderMultiComparatorNonScoringCollector",
+ "OutOfOrderMultiComparatorScoringMaxScoreCollector",
+ "OutOfOrderMultiComparatorScoringNoMaxScoreCollector",
+ "OutOfOrderMultiComparatorScoringMaxScoreCollector",
+ "OutOfOrderMultiComparatorNonScoringCollector",
+ "OutOfOrderMultiComparatorScoringMaxScoreCollector",
+ "OutOfOrderMultiComparatorScoringNoMaxScoreCollector",
+ "OutOfOrderMultiComparatorScoringMaxScoreCollector"
+ };
+
+ BooleanQuery bq = new BooleanQuery();
+ // Add a Query with SHOULD, since bw.scorer() returns BooleanScorer2
+ // which delegates to BS if there are no mandatory clauses.
+ bq.add(new MatchAllDocsQuery(), Occur.SHOULD);
+ // Set minNrShouldMatch to 1 so that BQ will not optimize rewrite to return
+ // the clause instead of BQ.
+ bq.setMinimumNumberShouldMatch(1);
+ for (int i = 0; i < sort.length; i++) {
+ for (int j = 0; j < tfcOptions.length; j++) {
+ TopDocsCollector<Entry> tdc = TopFieldCollector.create(sort[i], 10,
+ tfcOptions[j][0], tfcOptions[j][1], tfcOptions[j][2], false);
+
+ assertTrue(tdc.getClass().getName().endsWith("$"+actualTFCClasses[j]));
+
+ full.search(bq, tdc);
+
+ TopDocs td = tdc.topDocs();
+ ScoreDoc[] sd = td.scoreDocs;
+ assertEquals(10, sd.length);
+ }
+ }
+ }
+
public void testSortWithScoreAndMaxScoreTrackingNoResults() throws Exception {
// Two Sort criteria to instantiate the multi/single comparators.