package edu.uncc.cs.watsonsim.nlp;
import static org.junit.Assert.*;
import java.util.Iterator;
import org.junit.Test;
public class StringStackTest {
@Test
public void testSize() {
assertEquals(0, new StringStack().size());
assertEquals(1, new StringStack("moo").size());
assertEquals(2, new StringStack("foo", "bar").size());
}
@Test
public void testIsEmpty() {
assertTrue(new StringStack().isEmpty());
assertFalse(new StringStack("moo").isEmpty());
}
@Test
public void testContains() {
assertFalse(new StringStack().contains("moo"));
assertTrue(new StringStack("moo").contains("moo"));
assertFalse(new StringStack("moo").contains("foobar"));
assertTrue(new StringStack("foo", "moo").contains("foo"));
}
@Test
public void testAdd() {
StringStack ss = new StringStack();
assertEquals(0, ss.size());
ss.add("moo");
assertEquals(1, ss.size());
assertFalse(ss.contains("erk"));
assertTrue(ss.contains("moo"));
ss.add("moo");
assertEquals(2, ss.size());
ss.add("erk");
assertEquals(3, ss.size());
assertTrue(ss.contains("erk"));
assertTrue(ss.contains("moo"));
}
@Test
public void testClear() {
StringStack ss = new StringStack("moo");
ss.clear();
assertEquals(0, ss.size());
assertFalse(ss.contains("moo"));
}
@Test
public void testGet() {
StringStack ss = new StringStack("moo", "far");
assertEquals(null, ss.get(-1));
assertEquals("moo", ss.get(0));
assertEquals("far", ss.get(1));
assertEquals(null, ss.get(2));
}
@Test
public void testIndexOf() {
StringStack ss = new StringStack("moo", "far");
assertEquals(0, ss.indexOf("moo"));
assertEquals(1, ss.indexOf("far"));
assertEquals(-1, ss.indexOf("erk"));
assertEquals(-1, ss.indexOf(null));
}
@Test
public void testIterator() {
StringStack ss = new StringStack("moo", "far");
Iterator<String> iters = ss.iterator();
assertTrue(iters.hasNext());
assertEquals("moo", iters.next());
assertTrue(iters.hasNext());
assertEquals("far", iters.next());
assertFalse(iters.hasNext());
// Check that it's repeatable
iters = ss.iterator();
assertTrue(iters.hasNext());
assertEquals("moo", iters.next());
assertTrue(iters.hasNext());
assertEquals("far", iters.next());
assertFalse(iters.hasNext());
}
}