/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package opennlp.tools.lemmatizer;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import org.junit.Assert;
import org.junit.Test;
public class LemmaSampleTest {
@Test(expected = IllegalArgumentException.class)
public void testParameterValidation() {
new LemmaSample(new String[] { "" }, new String[] { "" },
new String[] { "test", "one element to much" });
}
private static String[] createSentence() {
return new String[] { "Forecasts", "for", "the", "trade", "figures",
"range", "widely", "." };
}
private static String[] createTags() {
return new String[] { "NNS", "IN", "DT", "NN", "NNS", "VBP", "RB", "." };
}
private static String[] createLemmas() {
return new String[] { "Forecast", "for", "the", "trade", "figure", "range",
"widely", "." };
}
@Test
public void testRetrievingContent() {
LemmaSample sample = new LemmaSample(createSentence(), createTags(), createLemmas());
Assert.assertArrayEquals(createSentence(), sample.getTokens());
Assert.assertArrayEquals(createTags(), sample.getTags());
Assert.assertArrayEquals(createLemmas(), sample.getLemmas());
}
@Test
public void testToString() throws IOException {
LemmaSample sample = new LemmaSample(createSentence(), createTags(),
createLemmas());
String[] sentence = createSentence();
String[] tags = createTags();
String[] lemmas = createLemmas();
StringReader sr = new StringReader(sample.toString());
BufferedReader reader = new BufferedReader(sr);
for (int i = 0; i < sentence.length; i++) {
String line = reader.readLine();
String[] parts = line.split("\t");
Assert.assertEquals(3, parts.length);
Assert.assertEquals(sentence[i], parts[0]);
Assert.assertEquals(tags[i], parts[1]);
Assert.assertEquals(lemmas[i], parts[2]);
}
}
@Test
public void testEquals() {
Assert.assertFalse(createGoldSample() == createGoldSample());
Assert.assertTrue(createGoldSample().equals(createGoldSample()));
Assert.assertFalse(createPredSample().equals(createGoldSample()));
Assert.assertFalse(createPredSample().equals(new Object()));
}
public static LemmaSample createGoldSample() {
return new LemmaSample(createSentence(), createTags(), createLemmas());
}
public static LemmaSample createPredSample() {
String[] lemmas = createLemmas();
lemmas[5] = "figure";
return new LemmaSample(createSentence(), createTags(), lemmas);
}
}