1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Property tests for zigzag encoding.
//!
//! Invariants:
//! - `decode(encode(v)) == v` for every `i32` and `i64`.
//! - Zigzag preserves order in magnitude: `|v1| <= |v2|` implies
//! `encode(v1) <= encode(v2)` for non-pathological cases (this is the
//! property that makes zigzag worth pairing with varint).
//! - The mapping is a bijection: the encoded space is exactly the range of the
//! unsigned target type.
use *;
use zigzag;
proptest!