use hegel::{TestCase, generators as gs};
pub(crate) fn draw_related_bytes(tc: &TestCase) -> (Vec<u8>, Vec<u8>) {
let a = tc.draw(gs::binary());
let b = match tc.draw(gs::integers::<u8>().max_value(3)) {
0 => a.clone(),
1 => {
let mut b = a.clone();
b.extend(tc.draw(gs::binary()));
b
}
2 if !a.is_empty() => {
let mut b = a.clone();
let index = tc.draw(gs::integers::<usize>().max_value(a.len() - 1));
b[index] = b[index]
.wrapping_add(tc.draw(gs::integers::<u8>().min_value(1)));
b
}
_ => tc.draw(gs::binary()),
};
(a, b)
}