@Test public void testFallbackUser() { // score for user only known by secondary FallbackResult r = scorer.score(15, 30); assertThat(r, notNullValue()); assertThat(r.getScore(), equalTo(5.0)); assertThat(r.isFromPrimary(), equalTo(false)); }
@Test public void testFallbackItem() { // score for item only known by secondary FallbackResult r = scorer.score(42, 30); assertThat(r, notNullValue()); assertThat(r.getScore(), equalTo(4.0)); assertThat(r.isFromPrimary(), equalTo(false)); }
@Test public void testScoreItemPrimary() { // score known by the primary FallbackResult r = scorer.score(42, 39); assertThat(r, notNullValue()); assertThat(r.getScore(), equalTo(3.5)); assertThat(r.isFromPrimary(), equalTo(true)); }
@Test public void testMultipleDetails() { LongSet items = LongUtils.packedSet(10, 30, 39); ResultMap results = scorer.scoreWithDetails(42, items); assertThat(results.size(), equalTo(2)); assertThat(results.getScore(39), equalTo(3.5)); assertThat(results.getScore(30), equalTo(4.0)); assertThat(results.get(39L), instanceOf(FallbackResult.class)); FallbackResult r39 = (FallbackResult) results.get(39L); assertThat(r39.getScore(), equalTo(3.5)); assertThat(r39.isFromPrimary(), equalTo(true)); assertThat(r39.getInnerResult(), notNullValue()); assertThat(r39.getInnerResult().getScore(), equalTo(3.5)); assertThat(results.get(30L), instanceOf(FallbackResult.class)); FallbackResult r30 = (FallbackResult) results.get(30L); assertThat(r30.getScore(), equalTo(4.0)); assertThat(r30.isFromPrimary(), equalTo(false)); assertThat(r30.getInnerResult(), notNullValue()); assertThat(r30.getInnerResult().getScore(), equalTo(4.0)); assertThat(results.get(10L), nullValue()); } }