/*
* File: AbstractSingleTermFilterTest.java
* Authors: Justin Basilico
* Company: Sandia National Laboratories
* Project: Cognitive Foundry
*
* Copyright March 09, 2009, Sandia Corporation.
* Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
* license for use of this work by or on behalf of the U.S. Government. Export
* of this program may require a license from the United States Government.
* See CopyrightHistory.txt for complete details.
*
*/
package gov.sandia.cognition.text.term.filter;
import gov.sandia.cognition.text.term.DefaultTerm;
import gov.sandia.cognition.text.term.DefaultTermOccurrence;
import gov.sandia.cognition.text.term.TermOccurrence;
import java.util.Iterator;
import java.util.LinkedList;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Unit tests for class AbstractSingleTermFilter.
*
* @author Justin Basilico
* @since 3.0
*/
public class AbstractSingleTermFilterTest
{
/**
* Creates a new test.
*/
public AbstractSingleTermFilterTest()
{
}
@BeforeClass
public static void setUpClass()
throws Exception
{
}
@AfterClass
public static void tearDownClass()
throws Exception
{
}
/**
* Test of filterTerms method, of class AbstractSingleTermFilter.
*/
@Test
public void testFilterTerms()
{
DummySingleTermFilter instance = new DummySingleTermFilter();
TermOccurrence accept = new DefaultTermOccurrence(new DefaultTerm("accept"), 1, 1);
TermOccurrence replace = new DefaultTermOccurrence(new DefaultTerm("replace"), 2, 2);
TermOccurrence reject = new DefaultTermOccurrence(new DefaultTerm("reject"), 3, 3);
LinkedList<TermOccurrence> terms = new LinkedList<TermOccurrence>();
terms.add(accept);
terms.add(replace);
terms.add(reject);
Iterable<TermOccurrence> result = instance.filterTerms(terms);
Iterator<TermOccurrence> it = result.iterator();
assertTrue(it.hasNext());
TermOccurrence result1 = it.next();
assertSame(accept, result1);
assertEquals("accept", result1.getTerm().getName());
assertTrue(it.hasNext());
TermOccurrence result2 = it.next();
assertNotSame(replace, result2);
assertEquals("replaced", result2.getTerm().getName());
assertFalse(it.hasNext());
}
public class DummySingleTermFilter
extends AbstractSingleTermFilter
{
public TermOccurrence filterTerm(
final TermOccurrence occurrence)
{
final String text = occurrence.asTerm().getName();
if (text.equals("reject"))
{
return null;
}
else if (text.equals("replace"))
{
return new DefaultTermOccurrence(new DefaultTerm("replaced"),
occurrence.getStart() + 1,
occurrence.getLength() + 1);
}
else
{
return occurrence;
}
}
}
}