import junit.framework.TestCase;
/**
* Tesiing the IList hierarchy.
* @author DXN
* @since 01/25/04
*/
public class Test_List extends TestCase {
private IList _e0 = new EmptyList();
private IList _e1 = new NEList("one", _e0);
private IList _e2 = new NEList("two", _e1);
/**
* _e0 = ()
* _e1 = ("one")
* _e2 = ("two" "one")
* We test toString first and use it to test the other methods.
*/
public void test_toString() {
assertEquals("_e0: ", "()", _e0.toString());
assertEquals("_e1: ", "(one)", _e1.toString());
assertEquals("_e2: ", "(two one)", _e2.toString());
}
public void test_getLength() {
assertEquals("_e0: ", 0, _e0.getLength());
assertEquals("_e1: ", 1, _e1.getLength());
assertEquals("_e2: ", 2, _e2.getLength());
}
public void test_concatenate() {
assertEquals("_e0 + _e0: ", "()", _e0.concatenate(_e0).toString());
assertEquals("_e0 + _e1: ", "(one)", _e0.concatenate(_e1).toString());
assertEquals("_e1 + _e0: ", "(one)", _e1.concatenate(_e0).toString());
assertEquals("_e0 + _e2: ", "(two one)", _e0.concatenate(_e2).toString());
assertEquals("_e2 + _e0: ", "(two one)", _e2.concatenate(_e0).toString());
assertEquals("_e1 + _e1: ", "(one one)", _e1.concatenate(_e1).toString());
assertEquals("_e1 + _e2: ", "(one two one)", _e1.concatenate(_e2).toString());
assertEquals("_e1 + _e2: ", "(one two one)", _e1.concatenate(_e2).toString());
assertEquals("_e2 + _e2: ", "(two one two one)", _e2.concatenate(_e2).toString());
assertEquals("_e2 + _e1: ", "(two one one)", _e2.concatenate(_e1).toString());
}
}