testRandomScoring
Tests scoring across a bunch of random terms/corpora/frequencies for each possible document length. It does the following checks:
scores are non-negative and finite.
score matches the explanation exactly.
internal explanations calculations are sane (e.g. sum of: and so on actually compute sums)
scores don't decrease as term frequencies increase: e.g. score(freq=N + 1) >= score(freq=N)
scores don't decrease as documents get shorter, e.g. score(len=M) >= score(len=M+1)
scores don't decrease as terms get rarer, e.g. score(term=N) >= score(term=N+1)
scoring works for floating point frequencies (e.g. sloppy phrase and span queries will work)
scoring works for reasonably large 64-bit statistic values (e.g. distributed search will work)
scoring works for reasonably large boost values (0 .. Integer.MAX_VALUE, e.g. query boosts will work)
scoring works for parameters randomized within valid ranges (see .getSimilarity)