@Test public void testSkipToCandidate() throws Exception { final ArrayList<String> docs = new ArrayList<String>(); for (int i = 0; i < 32; i++) { docs.add("<http://renaud.delbru.fr/> . "); } this.addDocuments(docs); final NodePhraseScorer scorer = (NodePhraseScorer) this.getScorer(npq("renaud", "delbru")); assertTrue(scorer.skipToCandidate(16)); assertEquals(16, scorer.doc()); assertTrue(scorer.nextNode()); assertEquals(node(0,0), scorer.node()); }
@Test public void testSkipToCandidateNext() throws Exception { final ArrayList<String> docs = new ArrayList<String>(); for (int i = 0; i < 32; i++) docs.add("<http://renaud.delbru.fr/> . "); this.addDocuments(docs); final NodePhraseScorer scorer = (NodePhraseScorer) this.getScorer(npq("renaud", "delbru")); assertTrue(scorer.nextCandidateDocument()); assertTrue(scorer.skipToCandidate(16)); assertEquals(16, scorer.doc()); assertTrue(scorer.nextNode()); assertEquals(node(0,0), scorer.node()); assertTrue(scorer.nextCandidateDocument()); assertEquals(17, scorer.doc()); assertTrue(scorer.nextNode()); assertEquals(node(0,0), scorer.node()); }
@Test public void testMultipleOccurrences() throws Exception { this.addDocument("<http://renaud.delbru.fr/> \"renaud delbru delbru renaud renaud delbru\" . "); NodeQuery q = npq("renaud", "delbru").getNodeQuery(); NodePhraseScorer scorer = (NodePhraseScorer) this.getScorer(q); assertTrue(scorer.nextCandidateDocument()); assertEquals(0, scorer.doc()); assertTrue(scorer.nextNode()); assertEquals(node(0,0), scorer.node()); assertEquals(1.0f, scorer.freqInNode(), 0); assertTrue(scorer.nextNode()); assertEquals(node(0,1), scorer.node()); assertEquals(2.0f, scorer.freqInNode(), 0); assertFalse(scorer.nextNode()); assertFalse(scorer.nextCandidateDocument()); q = npq("renaud", "", "delbru").getNodeQuery(); scorer = (NodePhraseScorer) this.getScorer(q); assertTrue(scorer.nextCandidateDocument()); assertEquals(0, scorer.doc()); assertTrue(scorer.nextNode()); assertEquals(node(0,1), scorer.node()); assertEquals(2.0f, scorer.freqInNode(), 0); assertFalse(scorer.nextNode()); assertFalse(scorer.nextCandidateDocument()); }