diff --git a/tests/Makefile.am b/tests/Makefile.am index 1d54857152349202d128048c7e2587dcd092923e..d5fb0439dd50645a96152cb524eae5618323d7f3 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,12 +1,15 @@ INCLUDES = -I$(top_srcdir)/libcelt METASOURCES = AUTO -TESTS = ectest cwrs32-test +TESTS = ectest cwrs32-test cwrs64-test -bin_PROGRAMS = ectest cwrs32-test +bin_PROGRAMS = ectest cwrs32-test cwrs64-test ectest_SOURCES = ectest.c ectest_LDADD = $(top_builddir)/libcelt/libcelt.la cwrs32_test_SOURCES = cwrs32-test.c cwrs32_test_LDADD = $(top_builddir)/libcelt/libcelt.la + +cwrs64_test_SOURCES = cwrs64-test.c +cwrs64_test_LDADD = $(top_builddir)/libcelt/libcelt.la diff --git a/tests/cwrs32-test.c b/tests/cwrs32-test.c index af9042bc44df3a28f5295cab82ba0990389b490a..629c5c4aecf3289b14d38b6e6d1dc8767d64849e 100644 --- a/tests/cwrs32-test.c +++ b/tests/cwrs32-test.c @@ -9,10 +9,14 @@ int main(int _argc,char **_argv){ for(n=0;n<=NMAX;n++){ int m; for(m=0;m<=MMAX;m++){ + unsigned inc; unsigned nc; unsigned i; nc=ncwrs(n,m); - for(i=0;i<nc;i++){ + inc = nc/10000; + if (inc<1) + inc = 1; + for(i=0;i<nc;i+=inc){ int x[MMAX]; int s[MMAX]; int x2[MMAX]; diff --git a/tests/cwrs64-test.c b/tests/cwrs64-test.c new file mode 100644 index 0000000000000000000000000000000000000000..eabf6e09a738f2cb488a3d73b2f0ce9c891ef024 --- /dev/null +++ b/tests/cwrs64-test.c @@ -0,0 +1,51 @@ +#include <stdio.h> +#include "cwrs.h" +#define NMAX (32) +#define MMAX (16) + +int main(int _argc,char **_argv){ + int n; + for(n=0;n<=NMAX;n+=3){ + int m; + for(m=0;m<=MMAX;m++){ + celt_uint64_t inc; + celt_uint64_t nc; + celt_uint64_t i; + nc=ncwrs64(n,m); + /* Testing all cases just wouldn't work! */ + inc = nc/1000; + if (inc<1) + inc = 1; + /*printf("%d/%d: %llu",n,m, nc);*/ + for(i=0;i<nc;i+=inc){ + int x[MMAX]; + int s[MMAX]; + int x2[MMAX]; + int s2[MMAX]; + int y[NMAX]; + int j; + int k; + cwrsi64(n,m,i,x,s); + /*printf("%llu of %llu:",i,nc); + for(k=0;k<m;k++){ + printf(" %c%i",k>0&&x[k]==x[k-1]?' ':s[k]?'-':'+',x[k]); + } + printf(" ->");*/ + if(icwrs64(n,m,x,s)!=i){ + fprintf(stderr,"Combination-index mismatch.\n"); + return 1; + } + comb2pulse(n,m,y,x,s); + /*for(j=0;j<n;j++)printf(" %c%i",y[j]?y[j]<0?'-':'+':' ',abs(y[j])); + printf("\n");*/ + pulse2comb(n,m,x2,s2,y); + for(k=0;k<m;k++)if(x[k]!=x2[k]||s[k]!=s2[k]){ + fprintf(stderr,"Pulse-combination mismatch.\n"); + return 1; + } + } + /*printf("\n");*/ + } + } + return 0; +} \ No newline at end of file