/*
* File: TermLengthFilterTest.java
* Authors: Justin Basilico
* Company: Sandia National Laboratories
* Project: Cognitive Foundry
*
* Copyright July 29, 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 org.junit.Test;
import static org.junit.Assert.*;
/**
* Unit tests for class TermLengthFilter.
*
* @author Justin Basilico
*/
public class TermLengthFilterTest
{
/**
* Creates a new test.
*/
public TermLengthFilterTest()
{
}
/**
* Test of constructors of class TermLengthFilter
*/
@Test
public void testConstructors()
{
Integer minimumLength = TermLengthFilter.DEFAULT_MINIMUM_LENGTH;
Integer maximumLength = TermLengthFilter.DEFAULT_MAXIMUM_LENGTH;
TermLengthFilter instance = new TermLengthFilter();
assertEquals(minimumLength, instance.getMinimumLength());
assertEquals(maximumLength, instance.getMaximumLength());
minimumLength++;
maximumLength--;
instance = new TermLengthFilter(minimumLength, maximumLength);
assertEquals(minimumLength, instance.getMinimumLength());
assertEquals(maximumLength, instance.getMaximumLength());
}
/**
* Test of filterTerm method, of class TermLengthFilter.
*/
@Test
public void testFilterTerm()
{
TermOccurrence one = new DefaultTermOccurrence(
new DefaultTerm("a"), 0, 0);
TermOccurrence two = new DefaultTermOccurrence(
new DefaultTerm("ab"), 0, 0);
TermOccurrence three = new DefaultTermOccurrence(
new DefaultTerm("abc"), 0, 0);
TermOccurrence four = new DefaultTermOccurrence(
new DefaultTerm("abcd"), 0, 0);
TermOccurrence five = new DefaultTermOccurrence(
new DefaultTerm("abcde"), 0, 0);
TermOccurrence six = new DefaultTermOccurrence(
new DefaultTerm("abcdef"), 0, 0);
TermLengthFilter instance = new TermLengthFilter(2, 5);
assertNull(instance.filterTerm(one));
assertSame(two, instance.filterTerm(two));
assertSame(three, instance.filterTerm(three));
assertSame(four, instance.filterTerm(four));
assertSame(five, instance.filterTerm(five));
assertNull(instance.filterTerm(six));
instance.setMaximumLength(null);
assertNull(instance.filterTerm(one));
assertSame(two, instance.filterTerm(two));
assertSame(three, instance.filterTerm(three));
assertSame(four, instance.filterTerm(four));
assertSame(five, instance.filterTerm(five));
assertSame(six, instance.filterTerm(six));
instance.setMinimumLength(null);
instance.setMaximumLength(4);
assertSame(one, instance.filterTerm(one));
assertSame(two, instance.filterTerm(two));
assertSame(three, instance.filterTerm(three));
assertSame(four, instance.filterTerm(four));
assertNull(instance.filterTerm(five));
assertNull(instance.filterTerm(six));
instance.setMaximumLength(null);
assertSame(one, instance.filterTerm(one));
assertSame(two, instance.filterTerm(two));
assertSame(three, instance.filterTerm(three));
assertSame(four, instance.filterTerm(four));
assertSame(five, instance.filterTerm(five));
assertSame(six, instance.filterTerm(six));
}
/**
* Test of getMinimumLength method, of class TermLengthFilter.
*/
@Test
public void testGetMinimumLength()
{
this.testSetMinimumLength();
}
/**
* Test of setMinimumLength method, of class TermLengthFilter.
*/
@Test
public void testSetMinimumLength()
{
Integer minimumLength = TermLengthFilter.DEFAULT_MINIMUM_LENGTH;
TermLengthFilter instance = new TermLengthFilter();
assertEquals(minimumLength, instance.getMinimumLength());
minimumLength = 4;
instance.setMinimumLength(minimumLength);
assertEquals(minimumLength, instance.getMinimumLength());
minimumLength = null;
instance.setMinimumLength(minimumLength);
assertEquals(minimumLength, instance.getMinimumLength());
minimumLength = 50;
instance.setMinimumLength(minimumLength);
assertEquals(minimumLength, instance.getMinimumLength());
minimumLength = 0;
instance.setMinimumLength(minimumLength);
assertEquals(minimumLength, instance.getMinimumLength());
minimumLength = 5;
instance.setMinimumLength(minimumLength);
assertEquals(minimumLength, instance.getMinimumLength());
boolean exceptionThrown = false;
try
{
instance.setMinimumLength(-1);
}
catch (IllegalArgumentException e)
{
exceptionThrown = true;
}
finally
{
assertTrue(exceptionThrown);
}
assertEquals(minimumLength, instance.getMinimumLength());
}
/**
* Test of getMaximumLength method, of class TermLengthFilter.
*/
@Test
public void testGetMaximumLength()
{
this.testSetMaximumLength();
}
/**
* Test of setMaximumLength method, of class TermLengthFilter.
*/
@Test
public void testSetMaximumLength()
{
Integer maximumLength = TermLengthFilter.DEFAULT_MAXIMUM_LENGTH;
TermLengthFilter instance = new TermLengthFilter();
assertEquals(maximumLength, instance.getMaximumLength());
maximumLength = 4;
instance.setMaximumLength(maximumLength);
assertEquals(maximumLength, instance.getMaximumLength());
maximumLength = null;
instance.setMaximumLength(maximumLength);
assertEquals(maximumLength, instance.getMaximumLength());
maximumLength = 1;
instance.setMaximumLength(maximumLength);
assertEquals(maximumLength, instance.getMaximumLength());
boolean exceptionThrown = false;
try
{
instance.setMaximumLength(0);
}
catch (IllegalArgumentException e)
{
exceptionThrown = true;
}
finally
{
assertTrue(exceptionThrown);
}
assertEquals(maximumLength, instance.getMaximumLength());
exceptionThrown = false;
try
{
instance.setMaximumLength(-1);
}
catch (IllegalArgumentException e)
{
exceptionThrown = true;
}
finally
{
assertTrue(exceptionThrown);
}
assertEquals(maximumLength, instance.getMaximumLength());
}
}