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