@Override public String toString() { if (isEmpty()) { return "[]"; } StringBuilder result = new StringBuilder(); result.append('['); for (long key : keys) { if (key != NULL && key != REMOVED) { result.append(key).append(','); } } result.setCharAt(result.length() - 1, ']'); return result.toString(); }
@Override public String toString() { if (isEmpty()) { return "[]"; } StringBuilder result = new StringBuilder(); result.append('['); for (long key : keys) { if (key != NULL && key != REMOVED) { result.append(key).append(','); } } result.setCharAt(result.length() - 1, ']'); return result.toString(); }
@Override public String toString() { if (isEmpty()) { return "[]"; } StringBuilder result = new StringBuilder(); result.append('['); for (long key : keys) { if (key != NULL && key != REMOVED) { result.append(key).append(','); } } result.setCharAt(result.length() - 1, ']'); return result.toString(); }
@Test public void testVersusHashSet() { FastIDSet actual = new FastIDSet(1); Collection<Integer> expected = Sets.newHashSetWithExpectedSize(1000000); Random r = RandomUtils.getRandom(); for (int i = 0; i < 1000000; i++) { double d = r.nextDouble(); Integer key = r.nextInt(100); if (d < 0.4) { assertEquals(expected.contains(key), actual.contains(key)); } else { if (d < 0.7) { assertEquals(expected.add(key), actual.add(key)); } else { assertEquals(expected.remove(key), actual.remove(key)); } assertEquals(expected.size(), actual.size()); assertEquals(expected.isEmpty(), actual.isEmpty()); } } }
public static DataModel getBooleanDataModel(long[] userIDs, boolean[][] prefs) { FastByIDMap<FastIDSet> result = new FastByIDMap<FastIDSet>(); for (int i = 0; i < userIDs.length; i++) { FastIDSet prefsSet = new FastIDSet(); for (int j = 0; j < prefs[i].length; j++) { if (prefs[i][j]) { prefsSet.add(j); } } if (!prefsSet.isEmpty()) { result.put(userIDs[i], prefsSet); } } return new GenericBooleanPrefDataModel(result); }
@Test public void testRemove() { FastIDSet set = new FastIDSet(); set.add(1); set.remove(1); assertEquals(0, set.size()); assertTrue(set.isEmpty()); assertFalse(set.contains(1)); }
@Test public void testClear() { FastIDSet set = new FastIDSet(); set.add(1); set.clear(); assertEquals(0, set.size()); assertTrue(set.isEmpty()); assertFalse(set.contains(1)); }
@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()); }