@Override public Result get(long l) { return delegate.get(l); }
@Override @Nullable public Entity lookup(long id) { return store.get(id); }
@Override public double getScore(long id) { Result r = delegate.get(id); if (r == null) { return Double.NaN; } else { return r.getScore(); } }
@Nonnull public List<Entity> getEntities(long key) { IdBox<ImmutableList<Entity>> box = entityLists.get(key); if (box == null) { return Collections.emptyList(); } else { return box.getValue(); } }
@Override public Result score(long user, long item) { KeyedObjectMap<Result> ur = userData.get(user); return ur != null ? ur.get(item) : null; }
public int getCoratings(long item1, long item2) { if (item1 == item2) { return 0; } else if (item1 < item2) { ModelRow row = matrix.get(item1); if (row == null) { return 0; } else { return row.getCoratings(item2); } } else { ModelRow row = matrix.get(item2); if (row == null) { return 0; } else { return row.getCoratings(item1); } } }
public double getDeviation(long item1, long item2) { if (item1 == item2) { return 0; } else if (item1 < item2) { ModelRow row = matrix.get(item1); if (row == null) { return Double.NaN; } else { return row.getDeviation(item2); } } else { ModelRow row = matrix.get(item2); if (row == null) { return Double.NaN; } else { return -row.getDeviation(item1); } } }
@Nonnull @Override public ResultMap scoreWithDetails(long user, @Nonnull Collection<Long> items) { List<Result> rs = new ArrayList<>(items.size()); KeyedObjectMap<Result> userResults = userData.get(user); if (userResults != null) { LongIterator iter = LongIterators.asLongIterator(items.iterator()); while (iter.hasNext()) { long item = iter.nextLong(); Result r = userResults.get(item); if (r != null) { rs.add(r); } } } return Results.newResultMap(rs); }
@Test public void testHeadMap() { KeyedObjectMap<String> m = createMap("37", "59", "42", "67"); KeyedObjectMap<String> m2 = m.headMap(59L); assertThat(m2.size(), equalTo(2)); assertThat(m2.keySet(), contains(37L, 42L)); assertThat(m2.values(), contains("37", "42")); assertThat(m2.get(59L), nullValue()); assertThat(m2.get(42L), equalTo("42")); }
@Test public void testSubMap() { KeyedObjectMap<String> m = createMap("37", "59", "42", "67"); KeyedObjectMap<String> m2 = m.subMap(42L, 66L); assertThat(m2.size(), equalTo(2)); assertThat(m2.keySet(), contains(42L, 59L)); assertThat(m2.values(), contains("42", "59")); assertThat(m2.get(42L), equalTo("42")); assertThat(m2.get(37L), nullValue()); }
@Test public void testTailMap() { KeyedObjectMap<String> m = createMap("37", "59", "42", "67"); KeyedObjectMap<String> m2 = m.tailMap(59L); assertThat(m2.size(), equalTo(2)); assertThat(m2.keySet(), contains(59L, 67L)); assertThat(m2.values(), contains("59", "67")); assertThat(m2.get(59L), equalTo("59")); assertThat(m2.get(42L), nullValue()); }
@Test public void testSomeItems() { KeyedObjectMap<String> m = createMap("37", "59", "42", "67"); assertThat(m.size(), equalTo(4)); assertThat(m.keySet(), hasSize(4)); assertThat(m.values(), hasSize(4)); assertThat(m.entrySet(), hasSize(4)); assertThat(m.get(42L), equalTo("42")); assertThat(m.get(37L), equalTo("37")); assertThat(m.get(59L), equalTo("59")); assertThat(m.get(67L), equalTo("67")); assertThat(m.containsKey(42L), equalTo(true)); assertThat(m.containsKey(2L), equalTo(false)); assertThat(m.containsKey(45L), equalTo(false)); assertThat(m.get(45L), nullValue()); assertThat(m.keySet(), contains(37L, 42L, 59L, 67L)); assertThat(m.values(), contains("37", "42", "59", "67")); }
@Test public void testSingletonMap() { KeyedObjectMap<String> m = createMap("42"); assertThat(m.size(), equalTo(1)); assertThat(m.isEmpty(), equalTo(false)); assertThat(m.get(42L), equalTo("42")); assertThat(m.get(39L), nullValue()); assertThat(m.firstLongKey(), equalTo(42L)); assertThat(m.lastLongKey(), equalTo(42L)); assertThat(m.keySet(), hasSize(1)); assertThat(m.values(), hasSize(1)); assertThat(m.entrySet(), hasSize(1)); assertThat(m.keySet(), contains(42L)); assertThat(m.values(), contains("42")); }
@Override public Result get(long l) { return delegate.get(l); }
@Override @Nullable public Entity lookup(long id) { return store.get(id); }
@Test public void testEmptyMap() { KeyedObjectMap<String> m = createMap(); assertThat(m.size(), equalTo(0)); assertThat(m.isEmpty(), equalTo(true)); assertThat(m.get(42L), nullValue()); assertThat(m.keySet(), hasSize(0)); assertThat(m.values(), hasSize(0)); assertThat(m.entrySet(), hasSize(0)); try { m.firstLongKey(); fail("firstLongKey should fail on empty map"); } catch (NoSuchElementException e) { /* expected */ } try { m.lastLongKey(); fail("lastLongKey should fail on empty map"); } catch (NoSuchElementException e) { /* expected */ } }
@Nonnull public List<Entity> getEntities(long key) { IdBox<ImmutableList<Entity>> box = entityLists.get(key); if (box == null) { return Collections.emptyList(); } else { return box.getValue(); } }
@Override public double getScore(long id) { Result r = delegate.get(id); if (r == null) { return Double.NaN; } else { return r.getScore(); } }
@Override public Result score(long user, long item) { KeyedObjectMap<Result> ur = userData.get(user); return ur != null ? ur.get(item) : null; }
@Nonnull @Override public ResultMap scoreWithDetails(long user, @Nonnull Collection<Long> items) { List<Result> rs = new ArrayList<>(items.size()); KeyedObjectMap<Result> userResults = userData.get(user); if (userResults != null) { LongIterator iter = LongIterators.asLongIterator(items.iterator()); while (iter.hasNext()) { long item = iter.nextLong(); Result r = userResults.get(item); if (r != null) { rs.add(r); } } } return Results.newResultMap(rs); }