blob: 8028ef11641b09ea0faf4dd3cca8605b141ab563 [file] [log] [blame]
/*
* 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.
getCoveredAnnotations() contains code adapted from the UIMA Subiterator class.
*/
package org.apache.uima.fit.util;
import static java.util.Arrays.asList;
import static org.apache.commons.lang.ArrayUtils.toObject;
import static org.apache.uima.fit.util.FSCollectionFactory.create;
import static org.apache.uima.fit.util.FSCollectionFactory.createArrayFS;
import static org.apache.uima.fit.util.FSCollectionFactory.createBooleanArray;
import static org.apache.uima.fit.util.FSCollectionFactory.createByteArray;
import static org.apache.uima.fit.util.FSCollectionFactory.createDoubleArray;
import static org.apache.uima.fit.util.FSCollectionFactory.createFSArray;
import static org.apache.uima.fit.util.FSCollectionFactory.createFSList;
import static org.apache.uima.fit.util.FSCollectionFactory.createFloatArray;
import static org.apache.uima.fit.util.FSCollectionFactory.createFloatList;
import static org.apache.uima.fit.util.FSCollectionFactory.createIntArray;
import static org.apache.uima.fit.util.FSCollectionFactory.createIntegerList;
import static org.apache.uima.fit.util.FSCollectionFactory.createLongArray;
import static org.apache.uima.fit.util.FSCollectionFactory.createShortArray;
import static org.apache.uima.fit.util.FSCollectionFactory.createStringArray;
import static org.apache.uima.fit.util.FSCollectionFactory.createStringList;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.Collection;
import org.apache.uima.cas.FeatureStructure;
import org.apache.uima.fit.factory.JCasFactory;
import org.apache.uima.fit.type.Token;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.tcas.Annotation;
import org.junit.Before;
import org.junit.Test;
/**
*/
public class FSCollectionFactoryTest {
private JCas jcas;
private Collection<FeatureStructure> tokenFSs;
private Collection<Annotation> tokens;
@Before
public void init() throws Exception {
jcas = JCasFactory.createJCas();
tokenFSs = new ArrayList<FeatureStructure>();
tokens = new ArrayList<Annotation>();
Token t1 = new Token(jcas, 0, 1);
tokenFSs.add(t1);
tokens.add(t1);
t1.addToIndexes();
Token t2 = new Token(jcas, 2, 3);
tokenFSs.add(t2);
tokens.add(t2);
t2.addToIndexes();
}
@Test
public void testCreateFSList() {
assertEquals(tokens, create(createFSList(jcas, tokens)));
assertEquals(tokens, create(createFSList(jcas, tokens), Token.class));
}
@Test
public void testCreateFSArray() {
assertEquals(tokenFSs, create(createArrayFS(jcas.getCas(), tokenFSs)));
assertEquals(
tokenFSs,
create(createArrayFS(jcas.getCas(),
tokenFSs.toArray(new FeatureStructure[tokenFSs.size()]))));
assertEquals(tokens, create(createArrayFS(jcas.getCas(), tokens)));
assertEquals(tokens, create(createFSArray(jcas, tokens)));
assertEquals(tokens,
create(createArrayFS(jcas.getCas(), tokens.toArray(new Annotation[tokens.size()]))));
assertEquals(tokens, create(createFSArray(jcas, tokens.toArray(new Annotation[tokens.size()]))));
assertEquals(tokens,
create(createFSArray(jcas, tokens.toArray(new Annotation[tokens.size()])), Token.class));
}
@Test
public void testCreateBooleanArray() {
assertEquals(asList(true, false),
asList(toObject(createBooleanArray(jcas.getCas(), asList(true, false)).toArray())));
assertEquals(asList(true, false),
asList(toObject(createBooleanArray(jcas.getCas(), new boolean[] { true, false })
.toArray())));
assertEquals(asList(true, false), asList(toObject(createBooleanArray(jcas, asList(true, false))
.toArray())));
assertEquals(asList(true, false),
asList(toObject(createBooleanArray(jcas, new boolean[] { true, false }).toArray())));
}
@Test
public void testCreateByteArray() {
assertEquals(asList((byte) 0, (byte) 1),
asList(toObject(createByteArray(jcas.getCas(), asList((byte) 0, (byte) 1)).toArray())));
assertEquals(asList((byte) 0, (byte) 1),
asList(toObject(createByteArray(jcas.getCas(), new byte[] { 0, 1 }).toArray())));
assertEquals(asList((byte) 0, (byte) 1),
asList(toObject(createByteArray(jcas, asList((byte) 0, (byte) 1)).toArray())));
assertEquals(asList((byte) 0, (byte) 1),
asList(toObject(createByteArray(jcas, new byte[] { 0, 1 }).toArray())));
}
@Test
public void testCreateDoubleArray() {
assertEquals(asList(0.0, 1.0),
asList(toObject(createDoubleArray(jcas.getCas(), asList(0.0, 1.0)).toArray())));
assertEquals(asList(0.0, 1.0),
asList(toObject(createDoubleArray(jcas.getCas(), new double[] { 0.0, 1.0 }).toArray())));
assertEquals(asList(0.0, 1.0), asList(toObject(createDoubleArray(jcas, asList(0.0, 1.0))
.toArray())));
assertEquals(asList(0.0, 1.0),
asList(toObject(createDoubleArray(jcas, new double[] { 0.0, 1.0 }).toArray())));
}
@Test
public void testCreateFloatArray() {
assertEquals(asList(0.0f, 1.0f),
asList(toObject(createFloatArray(jcas.getCas(), asList(0.0f, 1.0f)).toArray())));
assertEquals(asList(0.0f, 1.0f),
asList(toObject(createFloatArray(jcas.getCas(), new float[] { 0.0f, 1.0f }).toArray())));
assertEquals(asList(0.0f, 1.0f), asList(toObject(createFloatArray(jcas, asList(0.0f, 1.0f))
.toArray())));
assertEquals(asList(0.0f, 1.0f),
asList(toObject(createFloatArray(jcas, new float[] { 0.0f, 1.0f }).toArray())));
}
@Test
public void testCreateFloatList() {
assertEquals(asList(0.0f, 1.0f), create(createFloatList(jcas, asList(0.0f, 1.0f))));
}
@Test
public void testCreateIntArray() {
assertEquals(asList(0, 1), asList(toObject(createIntArray(jcas.getCas(), asList(0, 1))
.toArray())));
assertEquals(asList(0, 1), asList(toObject(createIntArray(jcas.getCas(), new int[] { 0, 1 })
.toArray())));
assertEquals(asList(0, 1), asList(toObject(createIntArray(jcas, asList(0, 1)).toArray())));
assertEquals(asList(0, 1), asList(toObject(createIntArray(jcas, new int[] { 0, 1 }).toArray())));
}
@Test
public void testCreateIntegerList() {
assertEquals(asList(0, 1), create(createIntegerList(jcas, asList(0, 1))));
}
@Test
public void testCreateLongArray() {
assertEquals(asList(0l, 1l), asList(toObject(createLongArray(jcas.getCas(), asList(0l, 1l))
.toArray())));
assertEquals(asList(0l, 1l),
asList(toObject(createLongArray(jcas.getCas(), new long[] { 0l, 1l }).toArray())));
assertEquals(asList(0l, 1l), asList(toObject(createLongArray(jcas, asList(0l, 1l)).toArray())));
assertEquals(asList(0l, 1l), asList(toObject(createLongArray(jcas, new long[] { 0l, 1l })
.toArray())));
}
@Test
public void testCreateShortArray() {
assertEquals(
asList((short) 0, (short) 1),
asList(toObject(createShortArray(jcas.getCas(), asList((short) 0, (short) 1)).toArray())));
assertEquals(asList((short) 0, (short) 1),
asList(toObject(createShortArray(jcas.getCas(), new short[] { 0, 1 }).toArray())));
assertEquals(asList((short) 0, (short) 1),
asList(toObject(createShortArray(jcas, asList((short) 0, (short) 1)).toArray())));
assertEquals(asList((short) 0, (short) 1),
asList(toObject(createShortArray(jcas, new short[] { 0, 1 }).toArray())));
}
@Test
public void testCreateStringArray() {
assertEquals(asList("0", "1"), asList(createStringArray(jcas.getCas(), asList("0", "1"))
.toArray()));
assertEquals(asList("0", "1"),
asList(createStringArray(jcas.getCas(), new String[] { "0", "1" }).toArray()));
assertEquals(asList("0", "1"), asList(createStringArray(jcas, asList("0", "1")).toArray()));
assertEquals(asList("0", "1"), asList(createStringArray(jcas, new String[] { "0", "1" })
.toArray()));
}
@Test
public void testCreateStringList() {
assertEquals(asList("0", "1"), create(createStringList(jcas, asList("0", "1"))));
}
}