Maraiah/tests/defl.rs

78 lines
1.8 KiB
Rust
Raw Normal View History

2019-06-13 18:09:07 -07:00
use maraiah::defl;
2019-03-09 14:07:18 -08:00
include!("data/rand.rs");
2019-03-12 13:28:08 -07:00
fn defl_gzip(inp: &[u8], out: &[u8])
2019-03-12 00:39:09 -07:00
{
2019-03-12 13:28:08 -07:00
let b = &inp[defl::load_gzip_header(inp).unwrap()..];
assert_eq!(defl::load_deflate(b).unwrap().1, out.to_vec());
}
2019-03-12 00:39:09 -07:00
2019-03-12 13:28:08 -07:00
fn defl_alice(inp: &[u8])
{
const OUTPUT: &[u8] = include_bytes!("data/defl/alice.out");
2019-03-12 00:39:09 -07:00
2019-03-12 13:28:08 -07:00
defl_gzip(inp, OUTPUT);
}
2019-03-12 00:39:09 -07:00
2019-03-12 13:28:08 -07:00
#[test]
fn defl_alice_1()
{
const INPUT: &[u8] = include_bytes!("data/defl/alice1.in");
defl_alice(INPUT);
}
#[test]
fn defl_alice_2()
{
const INPUT: &[u8] = include_bytes!("data/defl/alice2.in");
2019-03-12 00:39:09 -07:00
2019-03-12 13:28:08 -07:00
defl_alice(INPUT);
2019-03-12 00:39:09 -07:00
}
2019-03-12 03:21:42 -07:00
#[test]
2019-03-13 07:53:30 -07:00
#[ignore]
2019-03-12 03:21:42 -07:00
fn defl_shapes()
{
2019-03-12 13:28:08 -07:00
const INPUT: &[u8] = include_bytes!("data/defl/Shapes.in");
const OUTPUT: &[u8] = include_bytes!("data/m2/Shapes");
2019-03-12 03:21:42 -07:00
2019-03-12 13:28:08 -07:00
defl_gzip(INPUT, OUTPUT);
2019-03-12 03:21:42 -07:00
}
2019-03-09 14:07:18 -08:00
#[test]
2019-03-12 13:28:08 -07:00
fn defl_good_gzip_headers()
2019-03-09 14:07:18 -08:00
{
2019-03-12 13:28:08 -07:00
defl::load_gzip_header(include_bytes!("data/gz/ok1.in")).unwrap();
defl::load_gzip_header(include_bytes!("data/gz/ok2.in")).unwrap();
defl::load_gzip_header(include_bytes!("data/gz/ok3.in")).unwrap();
2019-03-09 14:07:18 -08:00
}
#[test]
2019-03-12 13:28:08 -07:00
fn defl_bad_gzip_headers()
2019-03-09 14:07:18 -08:00
{
for inp in &RANDOM {
assert!(defl::load_gzip_header(inp).is_err());
}
2019-03-12 13:28:08 -07:00
assert!(defl::load_gzip_header(include_bytes!("data/gz/bad1.in")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gz/bad2.in")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gz/bad3.in")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gz/bad4.in")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gz/bad5.in")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gz/bad6.in")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gz/bad7.in")).is_err());
2019-03-09 14:07:18 -08:00
}
#[test]
#[allow(unused_must_use)]
fn defl_must_not_panic()
{
for inp in &RANDOM {
defl::load_deflate(inp);
}
}
2019-03-09 14:07:18 -08:00
// EOF