📄 icllisttest.java
字号:
package com.sri.oaa2.test.icl;
import com.sri.oaa2.icl.IclList;
import com.sri.oaa2.icl.IclTerm;
import junit.framework.Assert;
import junit.framework.TestCase;
import java.util.LinkedList;
/**
* Author: Chris Brigham (cbrigham)
* Date: Jun 29, 2004
* Time: 4:22:14 PM
* Description:
*/
public class IclListTest extends TestCase {
private IclList list;
private IclTerm varterm;
private IclTerm structterm;
private IclTerm strterm;
private IclTerm listterm;
private IclTerm dataqterm;
private IclTerm intterm;
private IclTerm floatterm;
private LinkedList linkedlist;
public IclListTest(String arg) {
super(arg);
}
public void setUp() {
list = new IclList();
varterm = IclTerm.fromString(true, "_");
structterm = IclTerm.fromString(true, "x(3,4)");
strterm = IclTerm.fromString(true, "'icl string'");
listterm = IclTerm.fromString(true, "[x,4,G,santa]");
dataqterm = IclTerm.fromString(true, "icldataq(\"binarydata\")");
intterm = IclTerm.fromString(true, "346");
floatterm = IclTerm.fromString(true, "3.14159");
linkedlist = new LinkedList();
linkedlist.add(varterm);
linkedlist.add(structterm);
linkedlist.add(strterm);
linkedlist.add(listterm);
linkedlist.add(dataqterm);
}
public void testGetTerm() {
list = new IclList(linkedlist);
Assert.assertEquals(list.getTerm(0), varterm);
Assert.assertEquals(list.getTerm(1), structterm);
Assert.assertEquals(list.getTerm(2), strterm);
Assert.assertEquals(list.getTerm(3), listterm);
Assert.assertEquals(list.getTerm(4), dataqterm);
}
public void testAdd() {
list.add(varterm);
Assert.assertEquals(list, new IclList(varterm));
list.add(structterm);
Assert.assertEquals(list, new IclList(varterm, structterm));
list.add(strterm);
Assert.assertEquals(list, new IclList(varterm, structterm, strterm));
list.add(listterm);
Assert.assertEquals(list, new IclList(varterm, structterm, strterm, listterm));
list.add(dataqterm);
Assert.assertEquals(list, new IclList(linkedlist));
list.add(intterm);
linkedlist.add(intterm);
Assert.assertEquals(list, new IclList(linkedlist));
list.add(floatterm);
linkedlist.add(floatterm);
Assert.assertEquals(list, new IclList(linkedlist));
}
public void testAddInto() {
list.add(varterm);
list.add(0, structterm);
list.add(0, listterm);
list.add(2, dataqterm);
Assert.assertEquals(list.getTerm(0), listterm);
Assert.assertEquals(list.getTerm(1), structterm);
Assert.assertEquals(list.getTerm(2), dataqterm);
Assert.assertEquals(list.getTerm(3), varterm);
try {
list.add(10, listterm);
// this should fail
Assert.assertTrue(false);
} catch (IndexOutOfBoundsException e) {
Assert.assertTrue(true);
}
}
public void testAddAll(){
list.addAll(structterm);
Assert.assertEquals(list.getTerm(0), IclTerm.fromString(true,"3"));
Assert.assertEquals(list.getTerm(1), IclTerm.fromString(true,"4"));
}
public void testAddList(){
list.addList(listterm);
Assert.assertEquals(list.getTerm(0), IclTerm.fromString(true,"x"));
Assert.assertEquals(list.getTerm(1), IclTerm.fromString(true,"4"));
Assert.assertEquals(list.getTerm(2), IclTerm.fromString(true,"G"));
Assert.assertEquals(list.getTerm(3), IclTerm.fromString(true,"santa"));
list.addList(varterm);
Assert.assertEquals(4, list.size());
}
public void testRemoveElement() {
list = new IclList(linkedlist);
list.removeElement(2);
Assert.assertEquals(list.getTerm(0), varterm);
Assert.assertEquals(list.getTerm(1), structterm);
Assert.assertEquals(list.getTerm(2), listterm);
Assert.assertEquals(list.getTerm(3), dataqterm);
list.removeElement(0);
Assert.assertEquals(list.getTerm(0), structterm);
Assert.assertEquals(list.getTerm(1), listterm);
Assert.assertEquals(list.getTerm(2), dataqterm);
list.removeElement(list.size() - 1);
Assert.assertEquals(list.getTerm(0), structterm);
Assert.assertEquals(list.getTerm(1), listterm);
}
public void testRemoveUnifying() {
IclTerm removed;
list = new IclList(linkedlist);
removed = list.removeUnifying(IclTerm.fromString(true, "7"));
Assert.assertEquals(removed, varterm);
}
public void testRemoveAllUnifying() {
IclTerm term1 = IclTerm.fromString(true, "x(3,6)");
IclTerm term2 = IclTerm.fromString(true, "x(4,24)");
list = new IclList(linkedlist);
list.add(term1);
list.add(term2);
list.removeAllUnifying(IclTerm.fromString(true, "x(3,Y)"));
Assert.assertEquals(list.size(), 4);
Assert.assertEquals(list.getTerm(0), strterm);
Assert.assertEquals(list.getTerm(1), listterm);
Assert.assertEquals(list.getTerm(2), dataqterm);
Assert.assertEquals(list.getTerm(3), term2);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -