public void testItemItemRecommender3() {
List<ScoredId> recs = recommender.recommend(1, null);
assertTrue(recs.isEmpty());
LongOpenHashSet candidates = new LongOpenHashSet();
candidates.add(6);
candidates.add(7);
candidates.add(8);
candidates.add(9);
recs = recommender.recommend(1, candidates);
assertThat(recs, hasSize(0));
recs = recommender.recommend(2, null);
assertThat(Lists.transform(recs, ScoredIds.idFunction()),
contains(9L));
candidates.clear();
candidates.add(7);
candidates.add(8);
candidates.add(9);
recs = recommender.recommend(2, candidates);
assertThat(Lists.transform(recs, ScoredIds.idFunction()),
contains(9L));
candidates.add(6);
candidates.remove(9);
recs = recommender.recommend(2, candidates);
assertThat(recs, hasSize(0));
recs = recommender.recommend(5, null);
assertThat(Lists.transform(recs, ScoredIds.idFunction()),
containsInAnyOrder(9L, 7L, 6L));
candidates.clear();
candidates.add(6);
candidates.add(7);
recs = recommender.recommend(5, candidates);
assertThat(Lists.transform(recs, ScoredIds.idFunction()),
containsInAnyOrder(6L, 7L));
candidates.clear();
candidates.add(6);
candidates.add(9);
recs = recommender.recommend(5, candidates);
assertThat(Lists.transform(recs, ScoredIds.idFunction()),
containsInAnyOrder(6L, 9L));
}