random testing

This commit is contained in:
nora 2022-02-13 21:44:52 +01:00
parent 2455e95d45
commit c0bfcb4089
7 changed files with 1649 additions and 1247 deletions

View file

@ -3,6 +3,8 @@ use std::collections::HashMap;
mod generated;
mod parse_helper;
#[cfg(test)]
mod tests;
mod write_helper;
pub type TableFieldName = String;
@ -46,31 +48,3 @@ pub fn parse_method(payload: &[u8]) -> Result<generated::Class, TransError> {
Err(nom::Err::Failure(err) | nom::Err::Error(err)) => Err(err),
}
}
#[cfg(test)]
mod tests {
#[test]
fn pack_few_bits() {
let bits = [true, false, true];
let mut buffer = [0u8; 2];
super::write_helper::bit(&bits, &mut buffer.as_mut_slice()).unwrap();
let (_, parsed_bits) = super::parse_helper::bit(&buffer, 3).unwrap();
assert_eq!(bits.as_slice(), parsed_bits.as_slice());
}
#[test]
fn pack_many_bits() {
let bits = [
/* first 8 */
true, true, true, true, false, false, false, false, /* second 4 */
true, false, true, true,
];
let mut buffer = [0u8; 2];
super::write_helper::bit(&bits, &mut buffer.as_mut_slice()).unwrap();
let (_, parsed_bits) = super::parse_helper::bit(&buffer, 12).unwrap();
assert_eq!(bits.as_slice(), parsed_bits.as_slice());
}
}