Tests for axis split
This commit is contained in:
parent
334dd09817
commit
9079014974
@ -54,3 +54,90 @@ impl Axis {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn split_horizontal() {
|
||||
let a = Axis::Horizontal;
|
||||
// rectangle height, spacing, top height, bottom y, bottom height
|
||||
let cases = vec![
|
||||
// Even height, even spacing
|
||||
(10.0, 2.0, 4.0, 6.0, 4.0),
|
||||
// Odd height, even spacing
|
||||
(9.0, 2.0, 4.0, 6.0, 3.0),
|
||||
// Even height, odd spacing
|
||||
(10.0, 1.0, 5.0, 6.0, 4.0),
|
||||
// Odd height, odd spacing
|
||||
(9.0, 1.0, 4.0, 5.0, 4.0),
|
||||
];
|
||||
for case in cases {
|
||||
let (h0, spacing, h1_top, y_bottom, h1_bottom) = case;
|
||||
let r = Rectangle {
|
||||
x: 0.0,
|
||||
y: 0.0,
|
||||
width: 10.0,
|
||||
height: h0,
|
||||
};
|
||||
let (top, bottom) = a.split(&r, 0.5, spacing);
|
||||
assert_eq!(
|
||||
top,
|
||||
Rectangle {
|
||||
height: h1_top,
|
||||
..r
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
bottom,
|
||||
Rectangle {
|
||||
y: y_bottom,
|
||||
height: h1_bottom,
|
||||
..r
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn split_vertical() {
|
||||
let a = Axis::Vertical;
|
||||
// rectangle width, spacing, left width, right x, right width
|
||||
let cases = vec![
|
||||
// Even width, even spacing
|
||||
(10.0, 2.0, 4.0, 6.0, 4.0),
|
||||
// Odd width, even spacing
|
||||
(9.0, 2.0, 4.0, 6.0, 3.0),
|
||||
// Even width, odd spacing
|
||||
(10.0, 1.0, 5.0, 6.0, 4.0),
|
||||
// Odd width, odd spacing
|
||||
(9.0, 1.0, 4.0, 5.0, 4.0),
|
||||
];
|
||||
for case in cases {
|
||||
let (w0, spacing, w1_left, x_right, w1_right) = case;
|
||||
let r = Rectangle {
|
||||
x: 0.0,
|
||||
y: 0.0,
|
||||
width: w0,
|
||||
height: 10.0,
|
||||
};
|
||||
let (left, right) = a.split(&r, 0.5, spacing);
|
||||
assert_eq!(
|
||||
left,
|
||||
Rectangle {
|
||||
width: w1_left,
|
||||
..r
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
right,
|
||||
Rectangle {
|
||||
x: x_right,
|
||||
width: w1_right,
|
||||
..r
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user