/* * File: DefaultTermNGramTest.java * Authors: Justin Basilico * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright May 01, 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; import java.util.List; import org.junit.Test; import static org.junit.Assert.*; /** * Unit tests for class DefaultTermNGram. * * @author Justin Basilico * @since 3.0 */ public class DefaultTermNGramTest { /** * Creates a new test. */ public DefaultTermNGramTest() { } /** * Test of constructors of class DefaultTermNGram. */ @Test public void testConstructors() { DefaultTermNGram instance = new DefaultTermNGram(); assertEquals(0, instance.getTerms().length); Term[] terms = new Term[4]; terms[0] = new DefaultTerm("a"); instance = new DefaultTermNGram(terms); assertSame(terms, instance.getTerms()); } /** * Test of clone method, of class DefaultTermNGram. */ @Test public void testClone() { DefaultTermNGram instance = new DefaultTermNGram(); DefaultTermNGram clone = instance.clone(); assertNotNull(clone); assertNotSame(instance, clone); assertNotSame(instance.getTerms(), clone.getTerms()); assertEquals(instance.getTermCount(), clone.getTermCount()); instance.setTerms(new DefaultTerm("a"), null, new DefaultTerm("foo")); clone = instance.clone(); assertNotNull(clone); assertNotSame(instance, clone); assertNotSame(instance.getTerms(), clone.getTerms()); assertEquals(instance.getTermCount(), clone.getTermCount()); assertSame(instance.getTerm(0), clone.getTerm(0)); assertSame(instance.getTerm(1), clone.getTerm(1)); assertSame(instance.getTerm(2), clone.getTerm(2)); } /** * Test of getName method, of class DefaultTermNGram. */ @Test public void testGetName() { DefaultTermNGram instance = new DefaultTermNGram(); assertEquals("[0-gram:]", instance.getName()); instance.setTerms((Term) null); assertEquals("[1-gram:]", instance.getName()); instance.setTerms(null, null); assertEquals("[2-gram:,]", instance.getName()); instance.setTerms(new DefaultTerm("foo")); assertEquals("[1-gram: foo]", instance.getName()); instance.setTerms(new DefaultTerm("foo"), new DefaultTerm("bar")); assertEquals("[2-gram: foo, bar]", instance.getName()); instance.setTerms(new DefaultTerm("foo"), new DefaultTerm("bar"), new DefaultTerm("baz")); assertEquals("[3-gram: foo, bar, baz]", instance.getName()); instance.setTerms(null, new DefaultTerm("bar"), new DefaultTerm("baz")); assertEquals("[3-gram:, bar, baz]", instance.getName()); instance.setTerms(new DefaultTerm("foo"), null, new DefaultTerm("baz")); assertEquals("[3-gram: foo,, baz]", instance.getName()); instance.setTerms(new DefaultTerm("foo"), new DefaultTerm("bar"), null); assertEquals("[3-gram: foo, bar,]", instance.getName()); } /** * Test of getTermCount method, of class DefaultTermNGram. */ @Test public void testGetTermCount() { DefaultTermNGram instance = new DefaultTermNGram(); assertEquals(0, instance.getTermCount()); instance.setTerms(new DefaultTerm("foo")); assertEquals(1, instance.getTermCount()); instance.setTerms(new DefaultTerm("foo"), new DefaultTerm("bar")); assertEquals(2, instance.getTermCount()); instance.setTerms(new DefaultTerm("foo"), new DefaultTerm("bar"), new DefaultTerm("baz")); assertEquals(3, instance.getTermCount()); instance.setTerms((Term) null); assertEquals(1, instance.getTermCount()); instance.setTerms(null, null); assertEquals(2, instance.getTermCount()); } /** * Test of getTerm method, of class DefaultTermNGram. */ @Test public void testGetTerm() { DefaultTermNGram instance = new DefaultTermNGram(); Term a = new DefaultTerm("a"); Term foo = new DefaultTerm("foo"); Term[] terms = new Term[] { a, foo, null}; instance.setTerms(terms); assertSame(a, instance.getTerm(0)); assertSame(foo, instance.getTerm(1)); assertNull(instance.getTerm(2)); boolean exceptionThrown = false; try { instance.getTerm(3); } catch (Exception e) { exceptionThrown = true; } finally { assertTrue(exceptionThrown); } exceptionThrown = false; try { instance.getTerm(-1); } catch (Exception e) { exceptionThrown = true; } finally { assertTrue(exceptionThrown); } } /** * Test of getTermList method, of class DefaultTermNGram. */ @Test public void testGetTermList() { DefaultTermNGram instance = new DefaultTermNGram(); List<Term> result = instance.getTermList(); assertTrue(result.isEmpty()); Term a = new DefaultTerm("a"); Term foo = new DefaultTerm("foo"); instance.setTerms(a, null, foo); result = instance.getTermList(); assertEquals(3, result.size()); assertSame(a, result.get(0)); assertNull(result.get(1)); assertSame(foo, result.get(2)); result = instance.getTermList(); assertEquals(3, result.size()); assertSame(a, result.get(0)); assertNull(result.get(1)); assertSame(foo, result.get(2)); } /** * Test of getTerms method, of class DefaultTermNGram. */ @Test public void testGetTerms() { this.testSetTerms(); } /** * Test of setTerms method, of class DefaultTermNGram. */ @Test public void testSetTerms() { DefaultTermNGram instance = new DefaultTermNGram(); assertEquals(0, instance.getTerms().length); Term a = new DefaultTerm("a"); Term foo = new DefaultTerm("foo"); Term[] terms = new Term[] { a, foo, null}; instance.setTerms(terms); assertSame(terms, instance.getTerms()); assertSame(a, instance.getTerms()[0]); assertSame(foo, instance.getTerms()[1]); assertNull(instance.getTerms()[2]); } }