@Test public void testToUsersReducerMinPreferencesUserIgnored() throws Exception { Reducer<VarLongWritable,VarLongWritable,VarLongWritable,VectorWritable>.Context context = EasyMock.createMock(Reducer.Context.class); ToUserVectorsReducer reducer = new ToUserVectorsReducer(); setField(reducer, "minPreferences", 2); EasyMock.replay(context); reducer.reduce(new VarLongWritable(123), Collections.singletonList(new VarLongWritable(456)), context); EasyMock.verify(context); }
@Test public void testToUsersReducerMinPreferencesUserPasses() throws Exception { Reducer<VarLongWritable,VarLongWritable,VarLongWritable,VectorWritable>.Context context = EasyMock.createMock(Reducer.Context.class); Counter userCounters = EasyMock.createMock(Counter.class); ToUserVectorsReducer reducer = new ToUserVectorsReducer(); setField(reducer, "minPreferences", 2); EasyMock.expect(context.getCounter(ToUserVectorsReducer.Counters.USERS)).andReturn(userCounters); userCounters.increment(1); context.write(EasyMock.eq(new VarLongWritable(123)), MathHelper.vectorMatches( MathHelper.elem(TasteHadoopUtils.idToIndex(456L), 1.0), MathHelper.elem(TasteHadoopUtils.idToIndex(789L), 1.0))); EasyMock.replay(context, userCounters); reducer.reduce(new VarLongWritable(123), Arrays.asList(new VarLongWritable(456), new VarLongWritable(789)), context); EasyMock.verify(context, userCounters); }
/** * tests {@link ToUserVectorsReducer} */ @Test public void testToUserVectorReducer() throws Exception { Reducer<VarLongWritable,VarLongWritable,VarLongWritable,VectorWritable>.Context context = EasyMock.createMock(Reducer.Context.class); Counter userCounters = EasyMock.createMock(Counter.class); EasyMock.expect(context.getCounter(ToUserVectorsReducer.Counters.USERS)).andReturn(userCounters); userCounters.increment(1); context.write(EasyMock.eq(new VarLongWritable(12L)), MathHelper.vectorMatches( MathHelper.elem(TasteHadoopUtils.idToIndex(34L), 1.0), MathHelper.elem(TasteHadoopUtils.idToIndex(56L), 2.0))); EasyMock.replay(context, userCounters); Collection<VarLongWritable> varLongWritables = Lists.newLinkedList(); varLongWritables.add(new EntityPrefWritable(34L, 1.0f)); varLongWritables.add(new EntityPrefWritable(56L, 2.0f)); new ToUserVectorsReducer().reduce(new VarLongWritable(12L), varLongWritables, context); EasyMock.verify(context, userCounters); }
/** * tests {@link ToUserVectorsReducer} using boolean data */ @Test public void testToUserVectorReducerWithBooleanData() throws Exception { Reducer<VarLongWritable,VarLongWritable,VarLongWritable,VectorWritable>.Context context = EasyMock.createMock(Reducer.Context.class); Counter userCounters = EasyMock.createMock(Counter.class); EasyMock.expect(context.getCounter(ToUserVectorsReducer.Counters.USERS)).andReturn(userCounters); userCounters.increment(1); context.write(EasyMock.eq(new VarLongWritable(12L)), MathHelper.vectorMatches( MathHelper.elem(TasteHadoopUtils.idToIndex(34L), 1.0), MathHelper.elem(TasteHadoopUtils.idToIndex(56L), 1.0))); EasyMock.replay(context, userCounters); new ToUserVectorsReducer().reduce(new VarLongWritable(12L), Arrays.asList(new VarLongWritable(34L), new VarLongWritable(56L)), context); EasyMock.verify(context, userCounters); }