source: git/coeffs/test.cc @ 9306a01

spielwiese
Last change on this file since 9306a01 was 9306a01, checked in by Martin Lee <martinlee84@…>, 14 years ago
included integers into test
  • Property mode set to 100644
File size: 3.3 KB
Line 
1#include "config.h"
2
3#include <auxiliary.h>
4
5#include <coeffs.h>
6#include <numbers.h>
7#include <reporter.h>
8#include <omalloc.h>
9
10#include <longrat.h>
11#include <gnumpfl.h>
12#include <gnumpc.h>
13#include <shortfl.h>
14#include <ffields.h>
15#include <modulop.h>
16#include <rmodulon.h>
17#include <rmodulo2m.h>
18#include <rintegers.h>
19
20#include <iostream>
21using namespace std;
22
23
24bool Test(const coeffs r)
25{
26  number a = n_Init(666, r); 
27  n_Test(a,r);
28 
29  number b = n_Add(a, a, r);
30  n_Test(b,r);
31
32  StringSetS("a: "); n_Write(a, r);PrintS(StringAppend("\n"));
33  StringSetS("b: "); n_Write(b, r);PrintS(StringAppend("\n"));
34
35  n_Delete(&a, r);
36  n_Delete(&b, r);
37
38  return false;
39}
40
41
42
43bool Test(const n_coeffType type, void* p = NULL)
44{
45
46  cout  << endl << "----------------------- Testing coeffs: [" << type <<
47                "]: -----------------------" << endl;
48
49  const coeffs r = nInitChar( type, p );
50
51  assume( r != NULL );
52
53  nSetChar( r );
54
55  assume( getCoeffType(r) == type );
56
57  assume( r->cfInit != NULL );
58  assume( r->cfWrite != NULL );
59  assume( r->cfAdd != NULL );
60  assume( r->cfDelete != NULL );
61
62
63  if( type == n_Q )
64  {
65    assume( r->cfInit == nlInit );
66    assume( r->cfWrite == nlWrite );
67    assume( r->cfAdd == nlAdd );
68    assume( r->cfDelete == nlDelete );   
69  }
70  else if( type == n_long_R )
71  {
72    assume( r->cfInit == ngfInit );
73    assume( r->cfWrite == ngfWrite );
74    assume( r->cfAdd == ngfAdd );
75    assume( r->cfDelete == ngfDelete );
76  }
77  else if( type == n_long_C )
78  {
79    assume( r->cfInit == ngcInit );
80    assume( r->cfWrite == ngcWrite );
81    assume( r->cfAdd == ngcAdd );
82    assume( r->cfDelete == ngcDelete );   
83  }
84  else if( type == n_R )
85  {
86    assume( r->cfInit == nrInit );
87    assume( r->cfWrite == nrWrite );
88    assume( r->cfAdd == nrAdd );
89//    assume( r->cfDelete == nrDelete ); // No?
90  }
91#ifdef HAVE_RINGS
92  else if( type == n_Z2m )
93  {
94    assume( r->cfInit == nr2mInit );
95    assume( r->cfWrite == nr2mWrite );
96    assume( r->cfAdd == nr2mAdd );
97    assume( r->cfDelete == ndDelete );
98  }
99  else if( type == n_Zn )
100  {
101    assume( r->cfInit == nrnInit );
102    assume( r->cfWrite == nrnWrite );
103    assume( r->cfAdd == nrnAdd );
104    assume( r->cfDelete == nrnDelete );
105  }
106#endif 
107  else
108  {
109    // ...
110  }
111
112  bool ret = Test( r );
113
114  nKillChar( r );
115
116  return ret;
117}
118
119
120
121
122int main()
123{
124  int c = 0;
125 
126  n_coeffType type;
127
128  // rings needed for: n_Zp_a, n_Q_a ?
129 
130  type = nRegister( n_Q, nlInitChar); assume( type == n_Q );
131  if( Test(type) )
132    c ++;
133
134  type = nRegister( n_long_R, ngfInitChar); assume( type == n_long_R );
135  if( Test(type) )
136    c ++;
137
138  type = nRegister( n_long_C, ngcInitChar); assume( type == n_long_C );
139  if( Test(type) )
140    c ++;
141 
142  type = nRegister( n_R, nrInitChar); assume( type == n_R );
143  if( Test(type) )
144    c ++;
145
146  type = nRegister( n_Zp, npInitChar); assume( type == n_Zp );
147  if( Test(type) )
148    c ++;
149
150#ifdef HAVE_RINGS
151  type = nRegister( n_Z2m, nr2mInitChar); assume( type == n_Z2m );
152  if( Test(type, (void*) 2) )
153    c ++;
154
155  type = nRegister( n_Zn, nrnInitChar); assume( type == n_Zn );
156  if( Test(type, (void*) 3) )
157    c ++;
158
159#endif
160
161  /*type = nRegister( n_GF, nfInitChar); assume( type == n_GF );
162  if( Test(type) )
163    c ++;*/
164
165  type = nRegister( n_Z, nrzInitChar); assume( type == n_Z );
166  if( Test(type) )
167    c ++;
168
169  return c;
170
171}
Note: See TracBrowser for help on using the repository browser.