### Question:
LuceneProxyNodeScorer extends Scorer { @Override public int advance(final int target) throws IOException { if (scorer.skipToCandidate(target)) { do { if (scorer.nextNode()) { return this.docID(); } } while (scorer.nextCandidateDocument()); } return NO_MORE_DOCS; } LuceneProxyNodeScorer(final NodeScorer scorer); @Override int docID(); @Override int advance(final int target); @Override int nextDoc(); @Override float score(); @Override int freq(); @Override Collection<ChildScorer> getChildren(); @Override long cost();  }### Answer:
@Test public void testAdvance() throws Exception { this.addDocuments( "{ \"baba\" : \"aaa ccc\" , \"ccc\" : \"bbb ccc\" }", "{ \"aaa\" : \"aaa bbb ddd\" }", "{ \"ddd\" : [ \"bobo\", \"bibi\" ] }" ); final Scorer scorer1 = this.getScorer( ntq("bobo").getLuceneProxyQuery() ); assertTrue(scorer1.advance(2) != DocIdSetIterator.NO_MORE_DOCS); assertEquals(2, scorer1.docID()); assertEquals(1, scorer1.freq(), 0); assertTrue(scorer1.nextDoc() == DocIdSetIterator.NO_MORE_DOCS); final Scorer scorer2 = this.getScorer( ntq("baba").getLuceneProxyQuery() ); assertTrue(scorer2.advance(2) == DocIdSetIterator.NO_MORE_DOCS); }