public static CheckEqual ( |
||
query | ||
hits1 | Lucene.Net.Search.ScoreDoc | |
hits2 | Lucene.Net.Search.ScoreDoc | |
Résultat | void |
public static void CheckEqual(Query query, ScoreDoc[] hits1, ScoreDoc[] hits2)
{
const float scoreTolerance = 1.0e-6f;
if (hits1.Length != hits2.Length)
{
Assert.Fail("Unequal lengths: hits1=" + hits1.Length + ",hits2=" + hits2.Length);
}
for (int i = 0; i < hits1.Length; i++)
{
if (hits1[i].Doc != hits2[i].Doc)
{
Assert.Fail("Hit " + i + " docnumbers don't match\n" + Hits2str(hits1, hits2, 0, 0) + "for query:" + query.ToString());
}
if ((hits1[i].Doc != hits2[i].Doc) || Math.Abs(hits1[i].Score - hits2[i].Score) > scoreTolerance)
{
Assert.Fail("Hit " + i + ", doc nrs " + hits1[i].Doc + " and " + hits2[i].Doc + "\nunequal : " + hits1[i].Score + "\n and: " + hits2[i].Score + "\nfor query:" + query.ToString());
}
}
}
/// <summary> /// check that the # of hits is the same as from a very /// simple prefixquery implementation. /// </summary> private void AssertSame(string prefix) { PrefixQuery smart = new PrefixQuery(new Term("field", prefix)); DumbPrefixQuery dumb = new DumbPrefixQuery(this, new Term("field", prefix)); TopDocs smartDocs = Searcher.Search(smart, 25); TopDocs dumbDocs = Searcher.Search(dumb, 25); CheckHits.CheckEqual(smart, smartDocs.ScoreDocs, dumbDocs.ScoreDocs); }