001/* 002 * $Id: ModuleListTest.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 014//import edu.jas.structure.RingElem; 015 016import edu.jas.arith.BigRational; 017 018 019 020 021/** 022 * ModuleList tests with JUnit. 023 * @author Heinz Kredel 024 */ 025 026public class ModuleListTest extends TestCase { 027 028/** 029 * main. 030 */ 031 public static void main (String[] args) { 032 junit.textui.TestRunner.run( suite() ); 033 } 034 035/** 036 * Constructs a <CODE>ModuleListTest</CODE> object. 037 * @param name String. 038 */ 039 public ModuleListTest(String name) { 040 super(name); 041 } 042 043/** 044 * suite. 045 * @return a test suite. 046 */ 047public static Test suite() { 048 TestSuite suite= new TestSuite(ModuleListTest.class); 049 return suite; 050 } 051 052 //private final static int bitlen = 100; 053 054 ModuleList<BigRational> m; 055 PolynomialList<BigRational> p; 056 057 GenPolynomial<BigRational> a; 058 GenPolynomial<BigRational> b; 059 GenPolynomial<BigRational> c; 060 GenPolynomial<BigRational> d; 061 GenPolynomial<BigRational> e; 062 063 BigRational cfac; 064 GenPolynomialRing<BigRational> pfac; 065 066 int rl = 4; 067 int kl = 4; 068 int ll = 4; 069 int el = 5; 070 float q = 0.5f; 071 072 protected void setUp() { 073 a = b = c = d = e = null; 074 cfac = new BigRational(1); 075 TermOrder tord = new TermOrder(); 076 pfac = new GenPolynomialRing<BigRational>(cfac,rl,tord); 077 m = null; 078 p = null; 079 } 080 081 protected void tearDown() { 082 a = b = c = d = e = null; 083 m = null; 084 p = null; 085 } 086 087 088/** 089 * Test constructor and toString. 090 * 091 */ 092 public void testConstructor() { 093 p = new PolynomialList<BigRational>(pfac,(List<GenPolynomial<BigRational>>)null); 094 assertTrue("p = 0", p.list == null); 095 096 m = new ModuleList<BigRational>(pfac,(List<List<GenPolynomial<BigRational>>>)null); 097 assertTrue("m = 0", m.list == null); 098 } 099 100 101/** 102 * Test polynomial list. 103 * 104 */ 105 public void testPolynomialList() { 106 List<GenPolynomial<BigRational>> l 107 = new ArrayList<GenPolynomial<BigRational>>(); 108 for (int i = 0; i < 7; i++) { 109 a = pfac.random(kl, ll+i, el, q ); 110 if ( a.isZERO() || a.isONE() ) { 111 continue; 112 } 113 assertTrue("length( a"+i+" ) <> 0", a.length() >= 0); 114 assertTrue(" not isZERO( a"+i+" )", !a.isZERO() ); 115 assertTrue(" not isONE( a"+i+" )", !a.isONE() ); 116 l.add( a ); 117 } 118 p = new PolynomialList<BigRational>(pfac,l); 119 //System.out.println("p = "+p); 120 121 assertTrue("p == p", p.equals(p) ); 122 assertEquals("p.length", 7, p.list.size() ); 123 } 124 125 126/** 127 * Test module list. 128 * 129 */ 130 public void testModuleList() { 131 List<List<GenPolynomial<BigRational>>> l 132 = new ArrayList<List<GenPolynomial<BigRational>>>(); 133 for (int i = 0; i < 4; i++) { 134 List<GenPolynomial<BigRational>> r 135 = new ArrayList<GenPolynomial<BigRational>>(); 136 for ( int j = 0; j < 3; j++ ) { 137 a = pfac.random(kl, ll, el, q ); 138 if ( a.isZERO() || a.isONE() ) { 139 continue; 140 } 141 assertTrue("length( a"+i+" ) <> 0", a.length() >= 0); 142 assertTrue(" not isZERO( a"+i+" )", !a.isZERO() ); 143 assertTrue(" not isONE( a"+i+" )", !a.isONE() ); 144 r.add( a ); 145 } 146 l.add( r ); 147 } 148 m = new ModuleList<BigRational>(pfac,l); 149 //System.out.println("m = "+m); 150 assertTrue("m == m", m.equals(m) ); 151 assertEquals("m.length", 4, m.list.size() ); 152 } 153 154 155/** 156 * Test module and polynomial list. 157 * 158 */ 159 public void testModulePolynomialList() { 160 List<List<GenPolynomial<BigRational>>> l 161 = new ArrayList<List<GenPolynomial<BigRational>>>(); 162 for (int i = 0; i < 4; i++) { 163 List<GenPolynomial<BigRational>> r 164 = new ArrayList<GenPolynomial<BigRational>>(); 165 for ( int j = 0; j < 3; j++ ) { 166 a = pfac.random(kl, ll, el, q ); 167 if ( a.isZERO() || a.isONE() ) { 168 continue; 169 } 170 assertTrue("length( a"+i+" ) <> 0", a.length() >= 0); 171 assertTrue(" not isZERO( a"+i+" )", !a.isZERO() ); 172 assertTrue(" not isONE( a"+i+" )", !a.isONE() ); 173 r.add( a ); 174 } 175 l.add( r ); 176 } 177 m = new ModuleList<BigRational>(pfac,l); 178 //System.out.println("m = "+m); 179 assertTrue("m == m", m.equals(m) ); 180 assertEquals("m.length", 4, m.list.size() ); 181 182 p = m.getPolynomialList(); 183 //System.out.println("p = "+p); 184 assertTrue("p == p", p.equals(p) ); 185 assertEquals("p.length", 4, p.list.size() ); 186 } 187 188 189/** 190 * Test module and polynomial and module list. 191 * 192 */ 193 public void testModulePolynomialModuleList() { 194 List<List<GenPolynomial<BigRational>>> l 195 = new ArrayList<List<GenPolynomial<BigRational>>>(); 196 for (int i = 0; i < 4; i++) { 197 List<GenPolynomial<BigRational>> r 198 = new ArrayList<GenPolynomial<BigRational>>(); 199 for ( int j = 0; j < 3; j++ ) { 200 a = pfac.random(kl, ll, el, q ); 201 if ( a.isZERO() || a.isONE() ) { 202 continue; 203 } 204 assertTrue("length( a"+i+" ) <> 0", a.length() >= 0); 205 assertTrue(" not isZERO( a"+i+" )", !a.isZERO() ); 206 assertTrue(" not isONE( a"+i+" )", !a.isONE() ); 207 r.add( a ); 208 } 209 l.add( r ); 210 } 211 m = new ModuleList<BigRational>(pfac,l); 212 //System.out.println("m = "+m); 213 assertTrue("m == m", m.equals(m) ); 214 assertEquals("m.length", 4, m.list.size() ); 215 216 p = m.getPolynomialList(); 217 //System.out.println("p = "+p); 218 assertTrue("p == p", p.equals(p) ); 219 assertEquals("p.length", 4, p.list.size() ); 220 221 ModuleList<BigRational> m2 = null; 222 m2 = p.getModuleList( 3 ); 223 //System.out.println("m2 = "+m2); 224 assertTrue("m2 == m2", m2.equals(m2) ); 225 assertEquals("m2.length", 4, m2.list.size() ); 226 227 assertTrue("m == m2", m.equals(m2) ); 228 } 229 230 231/** 232 * Test module and polynomial and module and polynomial list. 233 * 234 */ 235 public void testModulePolynomialModuleListPolynomial() { 236 List<List<GenPolynomial<BigRational>>> l 237 = new ArrayList<List<GenPolynomial<BigRational>>>(); 238 for (int i = 0; i < 4; i++) { 239 List<GenPolynomial<BigRational>> r 240 = new ArrayList<GenPolynomial<BigRational>>(); 241 for ( int j = 0; j < 3; j++ ) { 242 a = pfac.random(kl, ll, el, q ); 243 if ( a.isZERO() || a.isONE() ) { 244 continue; 245 } 246 assertTrue("length( a"+i+" ) <> 0", a.length() >= 0); 247 assertTrue(" not isZERO( a"+i+" )", !a.isZERO() ); 248 assertTrue(" not isONE( a"+i+" )", !a.isONE() ); 249 r.add( a ); 250 } 251 l.add( r ); 252 } 253 m = new ModuleList<BigRational>(pfac,l); 254 //System.out.println("m = "+m); 255 assertTrue("m == m", m.equals(m) ); 256 assertEquals("m.length", 4, m.list.size() ); 257 258 p = m.getPolynomialList(); 259 //System.out.println("p = "+p); 260 assertTrue("p == p", p.equals(p) ); 261 assertEquals("p.length", 4, p.list.size() ); 262 263 ModuleList<BigRational> m2 = null; 264 m2 = p.getModuleList( 3 ); 265 //System.out.println("m2 = "+m2); 266 assertTrue("m2 == m2", m2.equals(m2) ); 267 assertEquals("m2.length", 4, m2.list.size() ); 268 269 assertTrue("m == m2", m.equals(m2) ); 270 271 PolynomialList<BigRational> p2 = null; 272 p2 = m2.getPolynomialList(); 273 //System.out.println("p2 = "+p2); 274 assertTrue("p2 == p2", p2.equals(p2) ); 275 assertEquals("p2.length", 4, p2.list.size() ); 276 277 assertTrue("p == p2", p.list.equals(p2.list) ); 278 } 279 280}