コード例 #1
0
  /** Tests {@code recommend(long, SparseVector, int, Set, Set)}. */
  @Test
  public void testItemItemRecommender4() {
    List<ScoredId> recs = recommender.recommend(5, -1, null, null);
    assertThat(Lists.transform(recs, ScoredIds.idFunction()), containsInAnyOrder(6L, 7L, 9L));

    LongOpenHashSet candidates = new LongOpenHashSet();
    candidates.add(6);
    candidates.add(7);
    candidates.add(8);
    candidates.add(9);
    recs = recommender.recommend(5, -1, candidates, null);
    assertThat(Lists.transform(recs, ScoredIds.idFunction()), containsInAnyOrder(6L, 7L, 9L));

    candidates.remove(6);
    recs = recommender.recommend(5, -1, candidates, null);
    assertThat(Lists.transform(recs, ScoredIds.idFunction()), containsInAnyOrder(7L, 9L));

    candidates.remove(7);
    recs = recommender.recommend(5, -1, candidates, null);
    assertThat(Lists.transform(recs, ScoredIds.idFunction()), containsInAnyOrder(9L));

    candidates.remove(9);
    recs = recommender.recommend(5, -1, candidates, null);
    assertThat(recs, hasSize(0));

    candidates.add(9);
    candidates.add(7);
    recs = recommender.recommend(5, 1, candidates, null);
    assertThat(Lists.transform(recs, ScoredIds.idFunction()), anyOf(contains(9L), contains(7L)));

    LongOpenHashSet exclude = new LongOpenHashSet();
    exclude.add(7);
    recs = recommender.recommend(5, 2, candidates, exclude);
    assertThat(Lists.transform(recs, ScoredIds.idFunction()), containsInAnyOrder(9L));

    recs = recommender.recommend(5, 0, candidates, null);
    assertThat(recs, hasSize(0));

    candidates.clear();
    candidates.add(7);
    candidates.add(9);
    recs = recommender.recommend(5, -1, candidates, null);
    assertThat(Lists.transform(recs, ScoredIds.idFunction()), containsInAnyOrder(7L, 9L));

    candidates.add(6);
    exclude.clear();
    exclude.add(9);
    recs = recommender.recommend(5, -1, candidates, exclude);
    assertThat(Lists.transform(recs, ScoredIds.idFunction()), containsInAnyOrder(6L, 7L));

    exclude.add(7);
    recs = recommender.recommend(5, -1, candidates, exclude);
    assertThat(Lists.transform(recs, ScoredIds.idFunction()), containsInAnyOrder(6L));

    exclude.add(6);
    recs = recommender.recommend(5, -1, candidates, exclude);
    assertThat(recs, hasSize(0));
  }
コード例 #2
0
  /** Tests {@code recommend(long, SparseVector, Set)}. */
  @Test
  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));
  }