A stereo example.
[opus.git] / tests / cwrs64-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
9 #define NMAX (32)
10 #define MMAX (16)
11
12 int main(int _argc,char **_argv){
13   int n;
14   for(n=2;n<=NMAX;n+=3){
15     int m;
16     for(m=1;m<=MMAX;m++){
17       celt_uint64_t uu[MMAX+2];
18       celt_uint64_t inc;
19       celt_uint64_t nc;
20       celt_uint64_t i;
21       nc=ncwrs_u64(n,m,uu);
22       /*Testing all cases just wouldn't work!*/
23       inc=nc/1000;
24       if(inc<1)inc=1;
25       /*printf("%d/%d: %llu",n,m, nc);*/
26       for(i=0;i<nc;i+=inc){
27         celt_uint64_t u[MMAX+2];
28         int           y[NMAX];
29         celt_uint64_t v;
30         int           k;
31         memcpy(u,uu,(m+2)*sizeof(*u));
32         cwrsi64(n,m,i,y,u);
33         /*printf("%llu of %llu:",i,nc);
34         for(k=0;k<n;k++)printf(" %+3i",y[k]);
35         printf(" ->");*/
36         if(icwrs64(n,m,&v,y,u)!=i){
37           fprintf(stderr,"Combination-index mismatch.\n");
38           return 1;
39         }
40         if(v!=nc){
41           fprintf(stderr,"Combination count mismatch.\n");
42           return 2;
43         }
44         /*printf(" %6llu\n",i);*/
45       }
46       /*printf("\n");*/
47     }
48   }
49   return 0;
50 }