/** * {@inheritDoc} * * This implementation delegates to {@link #recommendRelatedItems(Set, int)}. */ @Override public List<Long> recommendRelatedItems(long reference, int n) { return recommendRelatedItems(LongSets.singleton(reference), n); }
@Override public LongSet keySet() { if (keys == null) keys = LongSets.unmodifiable(map.keySet()); return keys; } @Override
@Override public LongSet keySet() { synchronized (sync) { if (keys == null) keys = LongSets.synchronize(map.keySet(), sync); return keys; } } @Override
@Override public LongSet keySet() { if (keys == null) keys = LongSets.unmodifiable(map.keySet()); return keys; } @Override
@Override public LongSet keySet() { synchronized (sync) { if (keys == null) keys = LongSets.synchronize(map.keySet(), sync); return keys; } } @Override
/** * {@inheritDoc} * * This implementation delegates to {@link #scoreRelatedItemsWithDetails(Collection, Collection)}. */ @Override public Result scoreRelatedItem(@Nonnull Collection<Long> basket, long item) { return scoreRelatedItemsWithDetails(basket, LongSets.singleton(item)).get(item); } }
@Override public LongSet keySet() { if (keys == null) keys = LongSets.unmodifiable(map.keySet()); return keys; } @Override
@Override public LongSet keySet() { synchronized (sync) { if (keys == null) keys = LongSets.synchronize(map.keySet(), sync); return keys; } } @Override
/** * {@inheritDoc} * * This implementation delegates to {@link #scoreWithDetails(long, Collection)}. */ @Override public Result score(long user, long item) { ResultMap results = scoreWithDetails(user, LongSets.singleton(item)); return results.get(item); }
@Override public LongSet keySet() { if (keys == null) keys = LongSets.unmodifiable(map.keySet()); return keys; } @Override
@Override public LongSet keySet() { synchronized (sync) { if (keys == null) keys = LongSets.synchronize(map.keySet(), sync); return keys; } } @Override
/** * {@inheritDoc} * * This implementation delegates to {@link #predictWithDetails(long, Collection)}. */ @Override public Result predict(long user, long item) { ResultMap results = predictWithDetails(user, LongSets.singleton(item)); return results.get(item); }
@Override public LongSet keySet() { if (keys == null) keys = LongSets.unmodifiable(map.keySet()); return keys; } @Override
@Override public LongSet keySet() { synchronized (sync) { if (keys == null) keys = LongSets.synchronize(map.keySet(), sync); return keys; } } @Override
/** * Tests {@code recommendRelatedItems()(long, int)}. */ @Test public void testGlobalItemItemRecommender2() { List<Long> recs = gRecommender.recommendRelatedItems(LongSets.singleton(1), 2); assertThat(recs, hasSize(2)); recs = gRecommender.recommendRelatedItems(LongSets.singleton(2), 1); assertThat(recs, empty()); recs = gRecommender.recommendRelatedItems(LongSets.singleton(5), 3); assertThat(recs, hasSize(3)); }
@Override public LongSet keySet() { if (keys == null) keys = LongSets.unmodifiable(map.keySet()); return keys; } @Override
@Override public LongSet keySet() { synchronized (sync) { if (keys == null) keys = LongSets.synchronize(map.keySet(), sync); return keys; } } @Override
/** * Tests {@code globalRecommend(long)}. */ // FIXME Give the test methods for global item-item meaningful names @Test public void testGlobalItemItemRecommender1() { List<Long> recs = gRecommender.recommendRelatedItems(LongSets.singleton(1)); assertThat(recs.size(), notNullValue()); recs = gRecommender.recommendRelatedItems(LongSets.singleton(2)); assertThat(recs, empty()); recs = gRecommender.recommendRelatedItems(LongSets.singleton(5)); assertThat(recs.size(), notNullValue()); recs = gRecommender.recommendRelatedItems(LongSets.singleton(1)); assertThat(recs.size(), notNullValue()); recs = gRecommender.recommendRelatedItems(LongSets.singleton(10)); assertThat(recs.size(), notNullValue()); }
@Override public LongSet keySet() { if (keys == null) keys = LongSets.unmodifiable(map.keySet()); return keys; } @Override
@Override public LongSet keySet() { synchronized (sync) { if (keys == null) keys = LongSets.synchronize(map.keySet(), sync); return keys; } } @Override