blob: 101fad7d5461577bed25308d366e9ff03c5c547f [file] [log] [blame]
Jean-Marc Valin9caa3342008-02-20 15:00:26 +11001#ifdef HAVE_CONFIG_H
2#include "config.h"
3#endif
4
5#include <stdio.h>
6#include <stdlib.h>
7#include "laplace.h"
8
9int main()
10{
11 int i;
Jean-Marc Valin3df6e272008-02-20 15:08:08 +110012 int ret = 0;
Jean-Marc Valin9caa3342008-02-20 15:00:26 +110013 ec_enc enc;
14 ec_dec dec;
15 ec_byte_buffer buf;
16 int val[10000], decay[10000];
17 ec_byte_writeinit(&buf);
18 ec_enc_init(&enc,&buf);
19
20 for (i=0;i<10000;i++)
21 {
22 val[i] = rand()%15-7;
23 decay[i] = rand()%11000+5000;
24 ec_laplace_encode(&enc, val[i], decay[i]);
25 }
26
27 ec_enc_done(&enc);
28
29 ec_byte_readinit(&buf,ec_byte_get_buffer(&buf),ec_byte_bytes(&buf));
30 ec_dec_init(&dec,&buf);
31
32 for (i=0;i<10000;i++)
33 {
34 int d = ec_laplace_decode(&dec, decay[i]);
35 if (d != val[i])
Jean-Marc Valin3df6e272008-02-20 15:08:08 +110036 {
Jean-Marc Valin9caa3342008-02-20 15:00:26 +110037 fprintf (stderr, "Got %d instead of %d\n", d, val[i]);
Jean-Marc Valin3df6e272008-02-20 15:08:08 +110038 ret = 1;
39 }
Jean-Marc Valin9caa3342008-02-20 15:00:26 +110040 }
41
42 ec_byte_writeclear(&buf);
Jean-Marc Valin3df6e272008-02-20 15:08:08 +110043 return ret;
Jean-Marc Valin9caa3342008-02-20 15:00:26 +110044}