@@ -11,26 +11,49 @@ void test(std::vector<uint32_t> const& in) {
11
11
}
12
12
std::cout << std::endl;
13
13
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);
15
22
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;
18
27
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
+ }
23
34
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);
28
45
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;
32
56
}
33
- std::cout << std::endl;
34
57
}
35
58
36
59
int main (int argc, char ** argv) {
0 commit comments