use crate::{Save, Load};
#[test]
fn usage_on_readme() {
use crate::{Save, Load};
let vec_to_save: Vec<i32> = vec![1, 2, 3, 4, 5];
let mut buffer = Vec::new();
vec_to_save.save_to(&mut buffer).unwrap();
assert_eq!(vec_to_save.to_be_saved_size(), buffer.len());
let vec_loaded = Vec::<i32>::load_from(
std::io::Cursor::new(buffer)
).unwrap();
assert_eq!(vec_to_save, vec_loaded);
}
#[test]
fn are_equal_saved_and_loaded_for_all_vector() {
use rand::Rng;
let mut rng = rand::thread_rng();
let vec_len_list: Vec<usize> = (0..10).map(|v| 2_i32.pow(v) as usize).collect();
let n = 100;
for len in vec_len_list {
for _ in 0..n {
{
let vec: Vec<u8> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<u16> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<u32> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<u64> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<u128> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<usize> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<i8> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<i16> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<i32> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<i64> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<i128> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
{
let vec: Vec<isize> = (0..len).map(|_| { rng.gen() }).collect();
let mut buffer = Vec::new();
vec.save_to(&mut buffer).unwrap();
let loaded = Vec::load_from(std::io::Cursor::new(buffer)).unwrap();
assert_eq!(vec, loaded);
}
}
}
}
#[test]
fn is_accurate_to_be_saved_size() {
for n in 1..30 {
{
let mut buffer: Vec<u8> = Vec::new();
let u8_vec = vec![0_u8; n];
u8_vec.save_to(&mut buffer).unwrap();
assert_eq!(u8_vec.to_be_saved_size(), buffer.len());
}
{
let mut buffer: Vec<u8> = Vec::new();
let u16_vec = vec![0_u16; n];
u16_vec.save_to(&mut buffer).unwrap();
assert_eq!(u16_vec.to_be_saved_size(), buffer.len());
}
{
let mut buffer: Vec<u8> = Vec::new();
let u32_vec = vec![0_u32; n];
u32_vec.save_to(&mut buffer).unwrap();
assert_eq!(u32_vec.to_be_saved_size(), buffer.len());
}
{
let mut buffer: Vec<u8> = Vec::new();
let u64_vec = vec![0_u64; n];
u64_vec.save_to(&mut buffer).unwrap();
assert_eq!(u64_vec.to_be_saved_size(), buffer.len());
}
{
let mut buffer: Vec<u8> = Vec::new();
let usize_vec = vec![0_usize; n];
usize_vec.save_to(&mut buffer).unwrap();
assert_eq!(usize_vec.to_be_saved_size(), buffer.len());
}
{
let mut buffer: Vec<u8> = Vec::new();
let i16_vec = vec![0_i16; n];
i16_vec.save_to(&mut buffer).unwrap();
assert_eq!(i16_vec.to_be_saved_size(), buffer.len());
}
{
let mut buffer: Vec<u8> = Vec::new();
let i32_vec = vec![0_i32; n];
i32_vec.save_to(&mut buffer).unwrap();
assert_eq!(i32_vec.to_be_saved_size(), buffer.len());
}
{
let mut buffer: Vec<u8> = Vec::new();
let i64_vec = vec![0_i64; n];
i64_vec.save_to(&mut buffer).unwrap();
assert_eq!(i64_vec.to_be_saved_size(), buffer.len());
}
{
let mut buffer: Vec<u8> = Vec::new();
let isize_vec = vec![0_isize; n];
isize_vec.save_to(&mut buffer).unwrap();
assert_eq!(isize_vec.to_be_saved_size(), buffer.len());
}
}
}