001/*
002 * $Id: TermOrderOptimizationTest.java 3789 2011-10-01 18:54:43Z kredel $
003 */
004
005package edu.jas.poly;
006
007import java.util.List;
008import java.util.ArrayList;
009
010import junit.framework.Test;
011import junit.framework.TestCase;
012import junit.framework.TestSuite;
013
014import org.apache.log4j.BasicConfigurator;
015
016/**
017 * TermOrderOptimization tests with JUnit.
018 * @author Heinz Kredel
019 */
020
021public class TermOrderOptimizationTest extends TestCase {
022
023
024    /**
025     * main.
026     */
027    public static void main (String[] args) {
028        BasicConfigurator.configure();
029        junit.textui.TestRunner.run( suite() );
030    }
031
032
033    /**
034     * Constructs a <CODE>TermOrderOptimizationTest</CODE> object.
035     * @param name String.
036     */
037    public TermOrderOptimizationTest(String name) {
038        super(name);
039    }
040
041
042    /**
043     * suite.
044     */ 
045    public static Test suite() {
046        TestSuite suite= new TestSuite(TermOrderOptimizationTest.class);
047        return suite;
048    }
049
050
051    protected void setUp() {
052    }
053
054
055    protected void tearDown() {
056    }
057
058
059    /**
060     * Test permutations.
061     */
062    public void testPermutation() {
063
064        List<Integer> P = new ArrayList<Integer>(); 
065        P.add(2);
066        P.add(1);
067        P.add(4);
068        P.add(0);
069        P.add(3);
070        //System.out.println("P = " + P);
071
072        List<Integer> S = TermOrderOptimization.inversePermutation(P); 
073        //System.out.println("S = " + S);
074        assertFalse("P != id", TermOrderOptimization.isIdentityPermutation(P));
075        assertFalse("S != id", TermOrderOptimization.isIdentityPermutation(S));
076
077        List<Integer> T = TermOrderOptimization.multiplyPermutation(P,S); 
078        //System.out.println("T = " + T);
079        List<Integer> U = TermOrderOptimization.multiplyPermutation(S,P); 
080        //System.out.println("U = " + U);
081
082        assertTrue("T == id", TermOrderOptimization.isIdentityPermutation(T));
083        assertTrue("U == id", TermOrderOptimization.isIdentityPermutation(U));
084    }
085
086}