64-bit test for cwrs
[opus.git] / tests / cwrs32-test.c
1 #include <stdio.h>
2 #include "cwrs.h"
3
4 #define NMAX (10)
5 #define MMAX (9)
6
7 int main(int _argc,char **_argv){
8   int n;
9   for(n=0;n<=NMAX;n++){
10     int m;
11     for(m=0;m<=MMAX;m++){
12       unsigned inc;
13       unsigned nc;
14       unsigned i;
15       nc=ncwrs(n,m);
16       inc = nc/10000;
17       if (inc<1)
18         inc = 1;
19       for(i=0;i<nc;i+=inc){
20         int x[MMAX];
21         int s[MMAX];
22         int x2[MMAX];
23         int s2[MMAX];
24         int y[NMAX];
25         int j;
26         int k;
27         cwrsi(n,m,i,x,s);
28         /*printf("%6u of %u:",i,nc);*/
29         /*for(k=0;k<m;k++){
30           printf(" %c%i",k>0&&x[k]==x[k-1]?' ':s[k]?'-':'+',x[k]);
31         }
32         printf(" ->");*/
33         if(icwrs(n,m,x,s)!=i){
34           fprintf(stderr,"Combination-index mismatch.\n");
35           return 1;
36         }
37         comb2pulse(n,m,y,x,s);
38         /*for(j=0;j<n;j++)printf(" %c%i",y[j]?y[j]<0?'-':'+':' ',abs(y[j]));
39         printf("\n");*/
40         pulse2comb(n,m,x2,s2,y);
41         for(k=0;k<m;k++)if(x[k]!=x2[k]||s[k]!=s2[k]){
42           fprintf(stderr,"Pulse-combination mismatch.\n");
43           return 1;
44         }
45       }
46       /*printf("\n");*/
47     }
48   }
49   return 0;
50 }