}
SparseVector ratings = user.getTestRatings();
LongList ideal = ratings.keysByValue(true);
if (ideal.size() > listSize) {
ideal = ideal.subList(0, listSize);
}
double idealGain = computeDCG(ideal, ratings);
LongList actual = new LongArrayList(recommendations.size());
for (ScoredId id: recommendations) {