⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icllisttest.java

📁 SRI international 发布的OAA框架软件
💻 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 + -