5 int main(int _argc
,char **_argv
){
17 /*Testing encoding of raw bit values.*/
18 ec_byte_writeinit(&buf
);
19 ec_enc_init(&enc
,&buf
);
20 for(ft
=0;ft
<1024;ft
++){
22 ec_enc_uint(&enc
,i
,ft
);
23 ec_enc_uint64(&enc
,(ec_uint64
)i
<<30|i
,(ec_uint64
)ft
<<30);
26 /*Testing encoding of raw bit values.*/
27 for(ftb
=0;ftb
<16;ftb
++){
28 for(i
=0;i
<(1<<ftb
);i
++){
29 ec_enc_bits(&enc
,i
,ftb
);
30 ec_enc_bits64(&enc
,(ec_uint64
)i
<<30|i
,ftb
+30);
33 for(sz
=1;sz
<256;sz
++){
34 ec_probmod_init_full(&mod
,sz
,1,sz
+(sz
>>1),NULL
);
36 s
=((unsigned)(i
*45678901+7))%sz
;
37 ec_probmod_write(&mod
,&enc
,s
);
39 ec_probmod_clear(&mod
);
41 for(sz
=11;sz
<256;sz
++){
42 ec_probmod_init_full(&mod
,sz
,1,sz
+(sz
>>1),NULL
);
44 s
=((unsigned)(i
*45678901+7))%sz
;
45 ec_probmod_write_range(&mod
,&enc
,s
,EC_MAXI(s
-5,0),EC_MINI(s
+6,sz
));
47 ec_probmod_clear(&mod
);
50 fprintf(stderr
,"Encoded to %li bytes.\n",(long)(buf
.ptr
-buf
.buf
));
51 ec_byte_readinit(&buf
,ec_byte_get_buffer(&buf
),ec_byte_bytes(&buf
));
52 ec_dec_init(&dec
,&buf
);
53 for(ft
=0;ft
<1024;ft
++){
55 sym
=ec_dec_uint(&dec
,ft
);
57 fprintf(stderr
,"Decoded %i instead of %i with ft of %i.\n",sym
,i
,ft
);
60 sym64
=ec_dec_uint64(&dec
,(ec_uint64
)ft
<<30);
61 if(sym64
!=((ec_uint64
)i
<<30|i
)){
62 fprintf(stderr
,"Decoded %lli instead of %lli with ft of %lli.\n",sym64
,
63 (ec_uint64
)i
<<30|i
,(ec_uint64
)ft
<<30);
67 for(ftb
=0;ftb
<16;ftb
++){
68 for(i
=0;i
<(1<<ftb
);i
++){
69 sym
=ec_dec_bits(&dec
,ftb
);
71 fprintf(stderr
,"Decoded %i instead of %i with ftb of %i.\n",sym
,i
,ftb
);
74 sym64
=ec_dec_bits64(&dec
,ftb
+30);
75 if(sym64
!=((ec_uint64
)i
<<30|i
)){
76 fprintf(stderr
,"Decoded %lli instead of %lli with ftb of %i.\n",
77 sym64
,(ec_uint64
)i
<<30|i
,ftb
+30);
81 for(sz
=1;sz
<256;sz
++){
82 ec_probmod_init_full(&mod
,sz
,1,sz
+(sz
>>1),NULL
);
84 s
=((unsigned)(i
*45678901+7))%sz
;
85 sym
=ec_probmod_read(&mod
,&dec
);
87 fprintf(stderr
,"Decoded %i instead of %i with sz of %i.\n",sym
,s
,sz
);
91 ec_probmod_clear(&mod
);
93 for(sz
=11;sz
<256;sz
++){
94 ec_probmod_init_full(&mod
,sz
,1,sz
+(sz
>>1),NULL
);
96 s
=((unsigned)(i
*45678901+7))%sz
;
97 sym
=ec_probmod_read_range(&mod
,&dec
,EC_MAXI(s
-5,0),EC_MINI(s
+6,sz
));
99 fprintf(stderr
,"Decoded %i instead of %i with sz of %i.\n",sym
,s
,sz
);
103 ec_probmod_clear(&mod
);
105 ec_byte_writeclear(&buf
);
106 fprintf(stderr
,"All tests passed.\n");