extra::ebml: Add unit test for vuint_at()

This commit is contained in:
Carl-Anton Ingmarsson 2014-01-12 12:50:01 +01:00
parent e9b188a590
commit 1130886138

View file

@ -938,6 +938,54 @@ mod tests {
use std::io::mem::MemWriter;
use std::option::{None, Option, Some};
#[test]
fn test_vuint_at() {
let data = [
0x80,
0xff,
0x40, 0x00,
0x7f, 0xff,
0x20, 0x00, 0x00,
0x3f, 0xff, 0xff,
0x10, 0x00, 0x00, 0x00,
0x1f, 0xff, 0xff, 0xff
];
let mut res: reader::Res;
// Class A
res = reader::vuint_at(data, 0);
assert_eq!(res.val, 0);
assert_eq!(res.next, 1);
res = reader::vuint_at(data, res.next);
assert_eq!(res.val, (1 << 7) - 1);
assert_eq!(res.next, 2);
// Class B
res = reader::vuint_at(data, res.next);
assert_eq!(res.val, 0);
assert_eq!(res.next, 4);
res = reader::vuint_at(data, res.next);
assert_eq!(res.val, (1 << 14) - 1);
assert_eq!(res.next, 6);
// Class C
res = reader::vuint_at(data, res.next);
assert_eq!(res.val, 0);
assert_eq!(res.next, 9);
res = reader::vuint_at(data, res.next);
assert_eq!(res.val, (1 << 21) - 1);
assert_eq!(res.next, 12);
// Class D
res = reader::vuint_at(data, res.next);
assert_eq!(res.val, 0);
assert_eq!(res.next, 16);
res = reader::vuint_at(data, res.next);
assert_eq!(res.val, (1 << 28) - 1);
assert_eq!(res.next, 20);
}
#[test]
fn test_option_int() {
fn test_v(v: Option<int>) {