@Override public long getItemId() { return itemIndex.getKey(getItemIndex()); }
@Test public void testSingleton() { KeyIndex idx = new FrozenHashKeyIndex(LongLists.singleton(42)); assertThat(idx.getKeyList(), hasSize(1)); assertThat(idx.getKeyList(), contains(42L)); assertThat(idx.containsKey(30), equalTo(false)); assertThat(idx.containsKey(42), equalTo(true)); assertThat(idx.tryGetIndex(30), equalTo(-1)); assertThat(idx.tryGetIndex(42), equalTo(0)); assertThat(idx.getIndex(42), equalTo(0)); assertThat(idx.getKey(0), equalTo(42L)); try { idx.getIndex(30); fail("getting absent index should fail"); } catch (IllegalArgumentException ex) { /* expected */ } }
@Override public long getUserId() { return userIndex.getKey(getUserIndex()); }
@Test public void testUserIndex() { KeyIndex ind = snap.userIndex(); assertEquals(6, ind.size()); assertTrue(ind.getKeyList().contains(1)); assertTrue(ind.getKeyList().contains(3)); assertTrue(ind.getKeyList().contains(4)); assertTrue(ind.getKeyList().contains(5)); assertTrue(ind.getKeyList().contains(6)); assertTrue(ind.getKeyList().contains(7)); assertEquals(0, ind.getIndex(1)); assertEquals(1, ind.getIndex(3)); assertEquals(2, ind.getIndex(4)); assertEquals(3, ind.getIndex(5)); assertEquals(4, ind.getIndex(6)); assertEquals(5, ind.getIndex(7)); assertEquals(1, ind.getKey(0)); assertEquals(3, ind.getKey(1)); assertEquals(4, ind.getKey(2)); assertEquals(5, ind.getKey(3)); assertEquals(6, ind.getKey(4)); assertEquals(7, ind.getKey(5)); }
@Test public void testImmutableCopy() { HashKeyIndex idx = new HashKeyIndex(); assertThat(idx.internId(42), equalTo(0)); assertThat(idx.internId(39), equalTo(1)); KeyIndex imm = idx.frozenCopy(); assertThat(imm.getKey(0), equalTo(42L)); assertThat(imm.getKey(1), equalTo(39L)); assertThat(imm.getIndex(42), equalTo(0)); } }
int user = re.getUserIndex(); int item = re.getItemIndex(); long userId = userIndex.getKey(user); long itemId = itemIndex.getKey(item); assertThat(user, equalTo(snapshotUserIndex.tryGetIndex(userId))); assertThat(item, equalTo(snapshotItemIndex.tryGetIndex(itemId))); assertThat(snapshotUserIndex.getKey(i), equalTo(userIndex.getKey(i))); assertThat(snapshotItemIndex.getKey(i), equalTo(itemIndex.getKey(i)));
@Test public void testGetRatings() throws Exception { RandomDataSplitStrategyProvider splitData = new RandomDataSplitStrategyProvider(snapshot, new Random(), 0, 0.2); DataSplitStrategy splitStrategy = splitData.get(); KeyIndex userIndex = splitStrategy.getUserIndex(); KeyIndex itemIndex = splitStrategy.getItemIndex(); List<RatingMatrixEntry> validations = splitStrategy.getValidationRatings(); List<RatingMatrixEntry> trainingRatings = splitStrategy.getTrainRatings(); for (RatingMatrixEntry re : trainingRatings) { int user = re.getUserIndex(); int item = re.getItemIndex(); long userId = userIndex.getKey(user); long itemId = itemIndex.getKey(item); double rating = re.getValue(); assertThat(rating, equalTo(snapshot.getUserRatingVector(userId).get(itemId))); assertThat(rating, equalTo(data.get(itemId).get(userId))); } for (RatingMatrixEntry re : validations) { long userId = re.getUserId(); long itemId = re.getItemId(); double rating = re.getValue(); assertThat(rating, equalTo(snapshot.getUserRatingVector(userId).get(itemId))); assertThat(rating, equalTo(data.get(itemId).get(userId))); } }
@Override public long getUserId() { return userIndex.getKey(getUserIndex()); }
@Override public long getItemId() { return itemIndex.getKey(getItemIndex()); }