Removing the 64-bit part of the range coder.
[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[MMAX+2];
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[MMAX+2];
25         int           y[NMAX];
26         celt_uint32_t v;
27         memcpy(u,uu,(m+2)*sizeof(*u));
28         cwrsi32(n,m,i,y,u);
29         /*printf("%6u of %u:",i,nc);
30         for(k=0;k<n;k++)printf(" %+3i",y[k]);
31         printf(" ->");*/
32         if(icwrs32(n,m,&v,y,u)!=i){
33           fprintf(stderr,"Combination-index mismatch.\n");
34           return 1;
35         }
36         if(v!=nc){
37           fprintf(stderr,"Combination count mismatch.\n");
38           return 2;
39         }
40         /*printf(" %6u\n",i);*/
41       }
42       /*printf("\n");*/
43     }
44   }
45   return 0;
46 }