001    /*
002     * $Id: PolynomialListTest.java 551 2006-01-29 13:02:07Z kredel $
003     */
004    
005    package edu.jas.poly;
006    
007    import java.util.ArrayList;
008    import java.util.List;
009    
010    import junit.framework.Test;
011    import junit.framework.TestCase;
012    import junit.framework.TestSuite;
013    import edu.jas.arith.BigRational;
014    
015    
016    /**
017     * PolynomialList Test using JUnit.
018     * @author Heinz Kredel
019     */
020    
021    public class PolynomialListTest extends TestCase {
022    
023    /**
024     * main.
025     */
026       public static void main (String[] args) {
027              junit.textui.TestRunner.run( suite() );
028       }
029    
030    /**
031     * Constructs a <CODE>PolynomialListTest</CODE> object.
032     * @param name String.
033     */
034       public PolynomialListTest(String name) {
035              super(name);
036       }
037    
038    /**
039     */ 
040     public static Test suite() {
041         TestSuite suite= new TestSuite(PolynomialListTest.class);
042         return suite;
043       }
044    
045       //private final static int bitlen = 100;
046    
047       GenPolynomialRing<BigRational> fac;
048    
049       PolynomialList<BigRational> m;
050       PolynomialList<BigRational> p;
051    
052       GenPolynomial<BigRational> a;
053       GenPolynomial<BigRational> b;
054       GenPolynomial<BigRational> c;
055       GenPolynomial<BigRational> d;
056       GenPolynomial<BigRational> e;
057    
058       int rl = 4; 
059       int kl = 4;
060       int ll = 4;
061       int el = 5;
062       float q = 0.5f;
063    
064       protected void setUp() {
065           a = b = c = d = e = null;
066           m = null;
067           p = null;
068           BigRational coeff = new BigRational(9);
069           fac = new GenPolynomialRing<BigRational>(coeff,rl);
070       }
071    
072       protected void tearDown() {
073           a = b = c = d = e = null;
074           m = null;
075           p = null;
076       }
077    
078    
079    /**
080     * Test constructor and toString.
081     * 
082     */
083     public void testConstructor() {
084         p = new PolynomialList<BigRational>(fac,(List<GenPolynomial<BigRational>>)null);
085         assertTrue("p = 0", p.list == null);
086    
087         m = new PolynomialList<BigRational>(fac,
088                               new ArrayList<GenPolynomial<BigRational>>());
089         assertTrue("m = 0", m.list != null);
090         assertTrue("m.size() == 0", m.list.size() == 0 );
091     }
092    
093    
094    /**
095     * Test polynomial list.
096     * 
097     */
098     public void testPolynomialList() {
099         List<GenPolynomial<BigRational>> l = new ArrayList<GenPolynomial<BigRational>>();
100         for (int i = 0; i < 7; i++) {
101             a = fac.random(ll+i); // rl, el, q );
102             assertTrue("length( a"+i+" ) <> 0", a.length() >= 0);
103             assertTrue(" not isZERO( a"+i+" )", !a.isZERO() );
104             assertTrue(" not isONE( a"+i+" )", !a.isONE() );
105             l.add( a );
106         }
107         p = new PolynomialList<BigRational>(fac,l);
108         //System.out.println("p = "+p);
109    
110         assertTrue("p == p", p.equals(p) );
111         assertEquals("p.length", 7, p.list.size() );
112     }
113    
114    
115    /**
116     * Test ordered polynomial list.
117     * 
118     */
119     public void testOrderedPolynomialList() {
120         List<GenPolynomial<BigRational>> l = new ArrayList<GenPolynomial<BigRational>>();
121         for (int i = 0; i < 7; i++) {
122             a = fac.random(ll+i); // rl, el, q );
123             assertTrue("length( a"+i+" ) <> 0", a.length() >= 0);
124             assertTrue(" not isZERO( a"+i+" )", !a.isZERO() );
125             assertTrue(" not isONE( a"+i+" )", !a.isONE() );
126             l.add( a );
127         }
128         p = new PolynomialList<BigRational>(fac,l);
129         //System.out.println("p = "+p);
130    
131         m = new OrderedPolynomialList<BigRational>(fac,p.list);
132         //System.out.println("m = "+m);
133     
134         assertTrue("p == m", p.equals(m) );
135         assertTrue("m != p", !m.equals(p) );
136         assertEquals("p.length", 7, p.list.size() );
137         assertEquals("m.length", 7, m.list.size() );
138     }
139    
140    
141    
142    }