@Test public void testUserItemFilter() throws Exception { Configuration conf = getConfiguration(); IDReader idReader = new IDReader(conf); Map<Long, FastIDSet> userItemFilter = Maps.newHashMap(); long user1 = 1; long user2 = 2; idReader.addUserAndItemIdToUserItemFilter(userItemFilter, user1, 100L); idReader.addUserAndItemIdToUserItemFilter(userItemFilter, user1, 200L); idReader.addUserAndItemIdToUserItemFilter(userItemFilter, user2, 300L); FastIDSet userIds = IDReader.extractAllUserIdsFromUserItemFilter(userItemFilter); assertEquals(2, userIds.size()); assertTrue(userIds.contains(user1)); assertTrue(userIds.contains(user1)); setField(idReader, USER_ITEM_FILTER_FIELD, userItemFilter); FastIDSet itemsForUser1 = idReader.getItemsToRecommendForUser(user1); assertEquals(2, itemsForUser1.size()); assertTrue(itemsForUser1.contains(100L)); assertTrue(itemsForUser1.contains(200L)); FastIDSet itemsForUser2 = idReader.getItemsToRecommendForUser(user2); assertEquals(1, itemsForUser2.size()); assertTrue(itemsForUser2.contains(300L)); FastIDSet itemsForNonExistingUser = idReader.getItemsToRecommendForUser(3L); assertTrue(itemsForNonExistingUser.isEmpty()); }