mirror of https://github.com/apache/lucene.git
strengthen analysis tests: extend Lucene's base testcase
git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/branches/newtrunk@925682 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
733aabd082
commit
db59c17a36
|
@ -17,142 +17,17 @@
|
||||||
|
|
||||||
package org.apache.solr.analysis;
|
package org.apache.solr.analysis;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.StringReader;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import org.apache.lucene.analysis.BaseTokenStreamTestCase;
|
||||||
|
|
||||||
import org.apache.lucene.analysis.Analyzer;
|
|
||||||
import org.apache.lucene.analysis.TokenStream;
|
|
||||||
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
|
|
||||||
import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
|
|
||||||
import org.apache.lucene.analysis.tokenattributes.TermAttribute;
|
|
||||||
import org.apache.lucene.analysis.tokenattributes.TypeAttribute;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* General token testing helper functions
|
* General token testing helper functions
|
||||||
*/
|
*/
|
||||||
public abstract class BaseTokenTestCase extends TestCase
|
public abstract class BaseTokenTestCase extends BaseTokenStreamTestCase
|
||||||
{
|
{
|
||||||
protected static final Map<String,String> DEFAULT_VERSION_PARAM =
|
protected static final Map<String,String> DEFAULT_VERSION_PARAM =
|
||||||
Collections.singletonMap("luceneMatchVersion", System.getProperty("tests.luceneMatchVersion", "LUCENE_CURRENT"));
|
Collections.singletonMap("luceneMatchVersion", System.getProperty("tests.luceneMatchVersion", "LUCENE_CURRENT"));
|
||||||
|
|
||||||
// some helpers to test Analyzers and TokenStreams:
|
|
||||||
// these are taken from Lucene's BaseTokenStreamTestCase
|
|
||||||
|
|
||||||
public static void assertTokenStreamContents(TokenStream ts, String[] output,
|
|
||||||
int startOffsets[], int endOffsets[], String types[], int posIncrements[])
|
|
||||||
throws IOException {
|
|
||||||
assertNotNull(output);
|
|
||||||
assertTrue("has TermAttribute", ts.hasAttribute(TermAttribute.class));
|
|
||||||
TermAttribute termAtt = (TermAttribute) ts
|
|
||||||
.getAttribute(TermAttribute.class);
|
|
||||||
|
|
||||||
OffsetAttribute offsetAtt = null;
|
|
||||||
if (startOffsets != null || endOffsets != null) {
|
|
||||||
assertTrue("has OffsetAttribute", ts.hasAttribute(OffsetAttribute.class));
|
|
||||||
offsetAtt = (OffsetAttribute) ts.getAttribute(OffsetAttribute.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
TypeAttribute typeAtt = null;
|
|
||||||
if (types != null) {
|
|
||||||
assertTrue("has TypeAttribute", ts.hasAttribute(TypeAttribute.class));
|
|
||||||
typeAtt = (TypeAttribute) ts.getAttribute(TypeAttribute.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
PositionIncrementAttribute posIncrAtt = null;
|
|
||||||
if (posIncrements != null) {
|
|
||||||
assertTrue("has PositionIncrementAttribute", ts
|
|
||||||
.hasAttribute(PositionIncrementAttribute.class));
|
|
||||||
posIncrAtt = (PositionIncrementAttribute) ts
|
|
||||||
.getAttribute(PositionIncrementAttribute.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
ts.reset();
|
|
||||||
for (int i = 0; i < output.length; i++) {
|
|
||||||
// extra safety to enforce, that the state is not preserved and also
|
|
||||||
// assign bogus values
|
|
||||||
ts.clearAttributes();
|
|
||||||
termAtt.setTermBuffer("bogusTerm");
|
|
||||||
if (offsetAtt != null) offsetAtt.setOffset(14584724, 24683243);
|
|
||||||
if (typeAtt != null) typeAtt.setType("bogusType");
|
|
||||||
if (posIncrAtt != null) posIncrAtt.setPositionIncrement(45987657);
|
|
||||||
|
|
||||||
assertTrue("token " + i + " exists", ts.incrementToken());
|
|
||||||
assertEquals("term " + i, output[i], termAtt.term());
|
|
||||||
if (startOffsets != null) assertEquals("startOffset " + i,
|
|
||||||
startOffsets[i], offsetAtt.startOffset());
|
|
||||||
if (endOffsets != null) assertEquals("endOffset " + i, endOffsets[i],
|
|
||||||
offsetAtt.endOffset());
|
|
||||||
if (types != null) assertEquals("type " + i, types[i], typeAtt.type());
|
|
||||||
if (posIncrements != null) assertEquals("posIncrement " + i,
|
|
||||||
posIncrements[i], posIncrAtt.getPositionIncrement());
|
|
||||||
}
|
|
||||||
assertFalse("end of stream", ts.incrementToken());
|
|
||||||
ts.end();
|
|
||||||
ts.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertTokenStreamContents(TokenStream ts, String[] output)
|
|
||||||
throws IOException {
|
|
||||||
assertTokenStreamContents(ts, output, null, null, null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertTokenStreamContents(TokenStream ts, String[] output,
|
|
||||||
String[] types) throws IOException {
|
|
||||||
assertTokenStreamContents(ts, output, null, null, types, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertTokenStreamContents(TokenStream ts, String[] output,
|
|
||||||
int[] posIncrements) throws IOException {
|
|
||||||
assertTokenStreamContents(ts, output, null, null, null, posIncrements);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertTokenStreamContents(TokenStream ts, String[] output,
|
|
||||||
int startOffsets[], int endOffsets[]) throws IOException {
|
|
||||||
assertTokenStreamContents(ts, output, startOffsets, endOffsets, null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertTokenStreamContents(TokenStream ts, String[] output,
|
|
||||||
int startOffsets[], int endOffsets[], int[] posIncrements)
|
|
||||||
throws IOException {
|
|
||||||
assertTokenStreamContents(ts, output, startOffsets, endOffsets, null,
|
|
||||||
posIncrements);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertAnalyzesTo(Analyzer a, String input,
|
|
||||||
String[] output, int startOffsets[], int endOffsets[], String types[],
|
|
||||||
int posIncrements[]) throws IOException {
|
|
||||||
assertTokenStreamContents(a.tokenStream("dummy", new StringReader(input)),
|
|
||||||
output, startOffsets, endOffsets, types, posIncrements);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertAnalyzesTo(Analyzer a, String input, String[] output)
|
|
||||||
throws IOException {
|
|
||||||
assertAnalyzesTo(a, input, output, null, null, null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertAnalyzesTo(Analyzer a, String input,
|
|
||||||
String[] output, String[] types) throws IOException {
|
|
||||||
assertAnalyzesTo(a, input, output, null, null, types, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertAnalyzesTo(Analyzer a, String input,
|
|
||||||
String[] output, int[] posIncrements) throws IOException {
|
|
||||||
assertAnalyzesTo(a, input, output, null, null, null, posIncrements);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertAnalyzesTo(Analyzer a, String input,
|
|
||||||
String[] output, int startOffsets[], int endOffsets[]) throws IOException {
|
|
||||||
assertAnalyzesTo(a, input, output, startOffsets, endOffsets, null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void assertAnalyzesTo(Analyzer a, String input,
|
|
||||||
String[] output, int startOffsets[], int endOffsets[], int[] posIncrements)
|
|
||||||
throws IOException {
|
|
||||||
assertAnalyzesTo(a, input, output, startOffsets, endOffsets, null,
|
|
||||||
posIncrements);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue