mirror of https://github.com/apache/lucene.git
LUCENE-6274: (tests-only). check approximations in equivalence tests
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1661362 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d21afb8ef3
commit
27eed40337
|
@ -31,6 +31,7 @@ import org.apache.lucene.document.TextField;
|
||||||
import org.apache.lucene.index.IndexReader;
|
import org.apache.lucene.index.IndexReader;
|
||||||
import org.apache.lucene.index.RandomIndexWriter;
|
import org.apache.lucene.index.RandomIndexWriter;
|
||||||
import org.apache.lucene.index.Term;
|
import org.apache.lucene.index.Term;
|
||||||
|
import org.apache.lucene.search.BooleanClause.Occur;
|
||||||
import org.apache.lucene.store.Directory;
|
import org.apache.lucene.store.Directory;
|
||||||
import org.apache.lucene.util.LuceneTestCase;
|
import org.apache.lucene.util.LuceneTestCase;
|
||||||
import org.apache.lucene.util.TestUtil;
|
import org.apache.lucene.util.TestUtil;
|
||||||
|
@ -171,11 +172,29 @@ public abstract class SearchEquivalenceTestBase extends LuceneTestCase {
|
||||||
* Both queries will be filtered by <code>filter</code>
|
* Both queries will be filtered by <code>filter</code>
|
||||||
*/
|
*/
|
||||||
protected void assertSubsetOf(Query q1, Query q2, Filter filter) throws Exception {
|
protected void assertSubsetOf(Query q1, Query q2, Filter filter) throws Exception {
|
||||||
// TRUNK ONLY: test both filter code paths
|
// TODO: remove this randomness and just explicitly test the query N times always?
|
||||||
if (filter != null && random().nextBoolean()) {
|
if (filter != null) {
|
||||||
q1 = new FilteredQuery(q1, filter, TestUtil.randomFilterStrategy(random()));
|
int res = random().nextInt(3);
|
||||||
q2 = new FilteredQuery(q2, filter, TestUtil.randomFilterStrategy(random()));
|
if (res == 0) {
|
||||||
filter = null;
|
// use FilteredQuery explicitly
|
||||||
|
q1 = new FilteredQuery(q1, filter, TestUtil.randomFilterStrategy(random()));
|
||||||
|
q2 = new FilteredQuery(q2, filter, TestUtil.randomFilterStrategy(random()));
|
||||||
|
filter = null;
|
||||||
|
} else if (res == 1) {
|
||||||
|
// use BooleanQuery FILTER clause
|
||||||
|
BooleanQuery bq1 = new BooleanQuery();
|
||||||
|
bq1.add(q1, Occur.MUST);
|
||||||
|
bq1.add(filter, Occur.FILTER);
|
||||||
|
q1 = bq1;
|
||||||
|
|
||||||
|
BooleanQuery bq2 = new BooleanQuery();
|
||||||
|
bq2.add(q2, Occur.MUST);
|
||||||
|
bq2.add(filter, Occur.FILTER);
|
||||||
|
q2 = bq2;
|
||||||
|
filter = null;
|
||||||
|
} else {
|
||||||
|
// do nothing, we use search(q, filter, int, ...) in this case.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// not efficient, but simple!
|
// not efficient, but simple!
|
||||||
|
@ -207,10 +226,28 @@ public abstract class SearchEquivalenceTestBase extends LuceneTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void assertSameScores(Query q1, Query q2, Filter filter) throws Exception {
|
protected void assertSameScores(Query q1, Query q2, Filter filter) throws Exception {
|
||||||
if (filter != null && random().nextBoolean()) {
|
if (filter != null) {
|
||||||
q1 = new FilteredQuery(q1, filter, TestUtil.randomFilterStrategy(random()));
|
int res = random().nextInt(3);
|
||||||
q2 = new FilteredQuery(q2, filter, TestUtil.randomFilterStrategy(random()));
|
if (res == 0) {
|
||||||
filter = null;
|
// use FilteredQuery explicitly
|
||||||
|
q1 = new FilteredQuery(q1, filter, TestUtil.randomFilterStrategy(random()));
|
||||||
|
q2 = new FilteredQuery(q2, filter, TestUtil.randomFilterStrategy(random()));
|
||||||
|
filter = null;
|
||||||
|
} else if (res == 1) {
|
||||||
|
// use BooleanQuery FILTER clause
|
||||||
|
BooleanQuery bq1 = new BooleanQuery();
|
||||||
|
bq1.add(q1, Occur.MUST);
|
||||||
|
bq1.add(filter, Occur.FILTER);
|
||||||
|
q1 = bq1;
|
||||||
|
|
||||||
|
BooleanQuery bq2 = new BooleanQuery();
|
||||||
|
bq2.add(q2, Occur.MUST);
|
||||||
|
bq2.add(filter, Occur.FILTER);
|
||||||
|
q2 = bq2;
|
||||||
|
filter = null;
|
||||||
|
} else {
|
||||||
|
// do nothing, we use search(q, filter, int) in this case.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// not efficient, but simple!
|
// not efficient, but simple!
|
||||||
|
|
Loading…
Reference in New Issue