p.setStartOffset(phOff); p.setEndOffset(phOff + STARS.length()); p.addMatch(phOff, p.getEndOffset(), new BytesRef(STARS),1);
@Test public void testOneWord() { final String WORD = "gravida"; int woff = DOC.indexOf(WORD); assertTrue(WORD, woff >= 0); Passage p = new Passage(); p.setStartOffset(woff); p.setEndOffset(woff + WORD.length()); p.addMatch(woff, p.getEndOffset(), new BytesRef(WORD),1); assertEquals("getNumMatches()", 1, p.getNumMatches()); PassageConverter cvt = getConverter((short)0); SortedMap<Integer, LineHighlight> linemap = cvt.convert(new Passage[] {p}, splitter); assertEquals("linemap size()", 1, linemap.size()); int lineno = linemap.firstKey(); assertEquals("lineno", 2, lineno); LineHighlight lhi = linemap.get(lineno); assertNotNull("get LineHighlight", lhi); assertEquals("getLelide()", 0, lhi.getLelide()); assertEquals("getRelide()", 0, lhi.getRelide()); assertEquals("countMarkups()", 1, lhi.countMarkups()); PhraseHighlight phi = lhi.getMarkup(0); assertNotNull("get PhraseHighlight", phi); assertEquals("getLineStart()", 32, phi.getLineStart()); assertEquals("getLineEnd()", 32 + WORD.length(), phi.getLineEnd()); }
@Test public void testLinesSpanningMatchFormatted() { Passage p = new Passage(); p.setStartOffset(0); p.setEndOffset(DOC2.length()); p.addMatch(0, p.getEndOffset(), new BytesRef(DOC2),1); assertEquals("getNumMatches()", 1, p.getNumMatches()); /** * We're using the entire document, but see how it behaves with * contextCount==1 */ ContextArgs args = new ContextArgs((short)1, (short)10); ContextFormatter fmt = new ContextFormatter(args); fmt.setUrl("http://example.com"); Object res = fmt.format(new Passage[] {p}, DOC2); assertNotNull("format() result", res); final String DOC2CTX = "<a class=\"s\" href=\"http://example.com#1\"><span class=\"l\">" + "1</span> <b>abc</b></a><br/>" + "<a class=\"s\" href=\"http://example.com#2\"><span class=\"l\">" + "2</span> <b>def</b></a><br/>" + "<a class=\"s\" href=\"http://example.com#3\"><span class=\"l\">" + "3</span> <b>ghi</b></a><br/>"; String ctx = res.toString(); assertLinesEqual("format().toString()", DOC2CTX, ctx); }
p.setStartOffset(woff1); p.setEndOffset(woff2 + WORD2.length()); p.addMatch(woff1, woff1 + WORD1.length(), new BytesRef(WORD1),1);
@Test public void testOneWordElided() { final String WORD = "dignissim"; int woff = DOC.indexOf(WORD); assertTrue(WORD, woff >= 0); Passage p = new Passage(); p.setStartOffset(woff); p.setEndOffset(woff + WORD.length()); p.addMatch(woff, p.getEndOffset(), new BytesRef(WORD),1); assertEquals("getNumMatches()", 1, p.getNumMatches()); PassageConverter cvt = getConverter((short)0); SortedMap<Integer, LineHighlight> linemap = cvt.convert(new Passage[] {p}, splitter); assertEquals("linemap size()", 1, linemap.size()); int lineno = linemap.firstKey(); assertEquals("lineno", 5, lineno); LineHighlight lhi = linemap.get(lineno); assertNotNull("get LineHighlight", lhi); assertEquals("getLelide()", 41, lhi.getLelide()); assertEquals("getRelide()", 139, lhi.getRelide()); assertEquals("context width minus 2", 139 - 41, cvt.getArgs().getContextWidth() - 2); assertEquals("countMarkups()", 1, lhi.countMarkups()); PhraseHighlight phi = lhi.getMarkup(0); assertNotNull("get PhraseHighlight", phi); assertEquals("getLineStart()", 113, phi.getLineStart()); assertEquals("getLineEnd()", 113 + WORD.length(), phi.getLineEnd()); }
p.setStartOffset(woff); p.setEndOffset(woff + WORD.length()); p.addMatch(woff, p.getEndOffset(), new BytesRef(WORD),1);
p.setStartOffset(poff); p.setEndOffset(poff + PHRASE.length()); p.addMatch(poff, p.getEndOffset(), new BytesRef(PHRASE),1);
p.setStartOffset(woff); p.setEndOffset(woff + WORD.length()); p.addMatch(woff, p.getEndOffset(), new BytesRef(WORD),1);
p.setStartOffset(woff); p.setEndOffset(woff + WORD.length()); p.addMatch(woff, p.getEndOffset(), new BytesRef(WORD),1);
p.setStartOffset(woff); p.setEndOffset(woff + WORD.length()); p.addMatch(woff, p.getEndOffset(), new BytesRef(WORD),1);
@Test public void testLinesSpanningMatch() { Passage p = new Passage(); p.setStartOffset(0); p.setEndOffset(DOC2.length()); p.addMatch(0, p.getEndOffset(), new BytesRef(DOC2),1);
passage.setStartOffset(pos); passage.setEndOffset(end); return new Passage[]{passage};
passage.setStartOffset(pos); passage.setEndOffset(end); return new Passage[]{passage};
passage.setStartOffset(pos); passage.setEndOffset(end); return new Passage[]{passage};
passage.setStartOffset(pos); passage.setEndOffset(end); return new Passage[]{passage};