extern crate debt64;
use std::env;
use std::str::FromStr;
use std::time::{Duration, Instant};
fn duration() -> Duration {
match env::var("TEST_DURATION").map(|s| u8::from_str(&s)) {
Ok(Ok(duration)) => Duration::from_secs(duration.max(1) as u64),
_ => Duration::from_secs(10),
}
}
#[test]
#[ignore]
fn encode() {
let duration = duration();
let start_time = Instant::now();
let bytes = debt64::ID.as_bytes();
let mut count: usize = 0;
loop {
let standard = debt64::encode_standard(&bytes);
let imap = debt64::encode_imap(&standard.as_bytes()[..bytes.len()]);
let mime = debt64::encode_mime(&imap.as_bytes()[..bytes.len()]);
let url = debt64::encode_url(&mime.as_bytes()[..bytes.len()]);
assert!(debt64::encode_freenet_url(&url.as_bytes()[..bytes.len()]).is_empty() == false);
match Instant::now().duration_since(start_time) <= duration {
true => count = match count.checked_add(5) {
Some(count) => count,
None => break,
},
false => break,
};
}
println!("{:?}, count: {} >>> {} << encoded/second >>", duration, count, count as f64 / duration.as_secs() as f64);
}
#[test]
#[ignore]
fn decode() {
let bytes = debt64::ID.as_bytes();
let standard = debt64::encode_standard(bytes);
let imap = debt64::encode_imap(bytes);
let mime = debt64::encode_mime(bytes);
let url = debt64::encode_url(bytes);
let freenet_url = debt64::encode_freenet_url(bytes);
let duration = duration();
let start_time = Instant::now();
let mut count: usize = 0;
loop {
debt64::decode_standard(&standard).unwrap();
debt64::decode_imap(&imap).unwrap();
debt64::decode_mime(&mime).unwrap();
debt64::decode_url(&url).unwrap();
debt64::decode_freenet_url(&freenet_url).unwrap();
match Instant::now().duration_since(start_time) <= duration {
true => count = match count.checked_add(5) {
Some(count) => count,
None => break,
},
false => break,
};
}
println!("{:?}, count: {} --> {} [[ decoded/second ]]", duration, count, count as f64 / duration.as_secs() as f64);
}