@@ -11,26 +11,49 @@ void test(std::vector<uint32_t> const& in) {
1111 }
1212 std::cout << std::endl;
1313
14- uint32_t n = in.size ();
14+ {
15+ uint32_t n = in.size ();
16+ encoder<typename BinaryCode::writer> enc;
17+ enc.encode (in.data (), n); // save n by feault
18+ std::vector<uint32_t > out (n);
19+ decoder<typename BinaryCode::reader> dec;
20+ uint32_t m = dec.decode (enc.bits ().data (), out.data ());
21+ assert (m == n);
1522
16- encoder<typename BinaryCode::writer> enc;
17- enc.encode (in.data (), n);
23+ std::cout << " decoded " << m << " values" << std::endl;
24+ std::cout << " total bits " << enc.num_bits () << std::endl;
25+ std::cout << static_cast <double >(enc.num_bits ()) / m << " bits x key"
26+ << std::endl;
1827
19- std::vector<uint32_t > out (n);
20- decoder<typename BinaryCode::reader> dec;
21- uint32_t m = dec.decode (enc.bits ().data (), out.data ());
22- assert (m == n);
28+ std::cout << " decoded:\n " ;
29+ for (auto x : out) {
30+ std::cout << x << " " ;
31+ }
32+ std::cout << std::endl;
33+ }
2334
24- std::cout << " decoded " << m << " values" << std::endl;
25- std::cout << " total bits " << enc.num_bits () << std::endl;
26- std::cout << static_cast <double >(enc.num_bits ()) / m << " bits x key"
27- << std::endl;
35+ {
36+ uint32_t n = in.size ();
37+ encoder<typename BinaryCode::writer> enc;
38+ enc.encode (in.data (), n,
39+ false // do not save n
40+ );
41+ std::vector<uint32_t > out (n);
42+ decoder<typename BinaryCode::reader> dec (enc.bits ().data ());
43+ uint32_t m = dec.decode (out.data (), n);
44+ assert (m == n);
2845
29- std::cout << " decoded:\n " ;
30- for (auto x : out) {
31- std::cout << x << " " ;
46+ std::cout << " decoded " << m << " values" << std::endl;
47+ std::cout << " total bits " << enc.num_bits () << std::endl;
48+ std::cout << static_cast <double >(enc.num_bits ()) / m << " bits x key"
49+ << std::endl;
50+
51+ std::cout << " decoded:\n " ;
52+ for (auto x : out) {
53+ std::cout << x << " " ;
54+ }
55+ std::cout << std::endl;
3256 }
33- std::cout << std::endl;
3457}
3558
3659int main (int argc, char ** argv) {
0 commit comments