b9ea1a8e72c46d1634fcd3243118198ec76d92a1
[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 #include <string.h>
8 #define NMAX (10)
9 #define MMAX (9)
10
11 int main(int _argc,char **_argv){
12   int n;
13   for(n=2;n<=NMAX;n++){
14     int m;
15     for(m=1;m<=MMAX;m++){
16       celt_uint32_t uu[NMAX];
17       celt_uint32_t inc;
18       celt_uint32_t nc;
19       celt_uint32_t i;
20       nc=ncwrs_u32(n,m,uu);
21       inc=nc/10000;
22       if(inc<1)inc=1;
23       for(i=0;i<nc;i+=inc){
24         celt_uint32_t u[NMAX];
25         int           x[MMAX];
26         int           s[MMAX];
27         int           x2[MMAX];
28         int           s2[MMAX];
29         int           y[NMAX];
30         int           k;
31         memcpy(u,uu,n*sizeof(*u));
32         cwrsi32(n,m,i,x,s,u);
33         /*printf("%6u of %u:",i,nc);*/
34         /*for(k=0;k<m;k++){
35           printf(" %c%i",k>0&&x[k]==x[k-1]?' ':s[k]?'-':'+',x[k]);
36         }
37         printf(" ->");*/
38         memcpy(u,uu,n*sizeof(*u));
39         if(icwrs32(n,m,x,s,u)!=i){
40           fprintf(stderr,"Combination-index mismatch.\n");
41           return 1;
42         }
43         comb2pulse(n,m,y,x,s);
44         /*for(j=0;j<n;j++)printf(" %c%i",y[j]?y[j]<0?'-':'+':' ',abs(y[j]));
45         printf("\n");*/
46         pulse2comb(n,m,x2,s2,y);
47         for(k=0;k<m;k++)if(x[k]!=x2[k]||s[k]!=s2[k]){
48           fprintf(stderr,"Pulse-combination mismatch.\n");
49           return 1;
50         }
51       }
52       /*printf("\n");*/
53     }
54   }
55   return 0;
56 }