use rand;
use rand::distributions::{Alphanumeric, Distribution, Uniform};
pub fn uniform() -> Uniform<u8> {
Uniform::new_inclusive(1u8, 255u8)
}
pub fn random_samples<D: Distribution<u8>>(dist: &mut D, n: usize, s: usize) -> Vec<Vec<u8>> {
(0..n)
.map(|_| dist.sample_iter(&mut rand::thread_rng()).take(s).collect())
.collect()
}
pub fn alphanumeric_samples(n: usize, s: usize) -> Vec<Vec<u8>> {
(0..n)
.map(|_| {
Alphanumeric
.sample_iter(&mut rand::thread_rng())
.take(s)
.map(|s| s as u8)
.collect()
})
.collect()
}
pub fn generated_samples(n: usize, s: usize) -> Vec<Vec<u8>> {
(0..n)
.map(|v| format!("a{:0width$}", v, width = s).as_bytes().to_vec())
.collect()
}
pub fn word_samples() -> Vec<Vec<u8>> {
use std::fs::File;
use std::io::prelude::*;
use std::io::BufReader;
let file = File::open("./data/words.txt").expect("cannot open words.txt");
return BufReader::new(file)
.lines()
.map(|l| l.expect("bad read"))
.map(|l| l.as_bytes().to_vec())
.collect();
}