in src/components/splitting.rs [417:467]
fn test_many_sized() {
let splitter = Split::new(
vec![
Box::new(Echo::<Echo1>::new(false)),
Box::new(Echo::<Echo2>::new(false)),
Box::new(Echo::<Echo3>::new(false)),
],
Direction::Vertical,
SplitKind::Sized(vec![0.25, 0.5, 0.25]),
);
let msg1 = Echo1(vec![
vec!["line1"].try_into().unwrap(),
vec!["line2"].try_into().unwrap(),
vec!["line3"].try_into().unwrap(),
vec!["line4"].try_into().unwrap(),
vec!["line5"].try_into().unwrap(),
vec!["line6"].try_into().unwrap(),
]);
let msg2 = Echo2(vec![vec!["line7"].try_into().unwrap()]);
let msg3 = Echo3(vec![vec!["line8"].try_into().unwrap()]);
let state = crate::state!(&msg1, &msg2, &msg3);
let output = splitter
.draw(&state, Dimensions::new(20, 20), DrawMode::Normal)
.unwrap();
let expected = vec![
vec!["line1"].try_into().unwrap(),
vec!["line2"].try_into().unwrap(),
vec!["line3"].try_into().unwrap(),
vec!["line4"].try_into().unwrap(),
vec!["line5"].try_into().unwrap(),
vec!["line7"].try_into().unwrap(),
Line::default(),
Line::default(),
Line::default(),
Line::default(),
Line::default(),
Line::default(),
Line::default(),
Line::default(),
Line::default(),
vec!["line8"].try_into().unwrap(),
Line::default(),
Line::default(),
Line::default(),
Line::default(),
];
assert_eq!(output, expected);
}