Files
dioxus/packages/tui/tests/relayout.rs
T
2022-03-26 20:27:10 -05:00

65 lines
2.2 KiB
Rust

use stretch::style::Dimension;
use stretch2 as stretch;
#[test]
fn relayout() {
let mut stretch = stretch::Stretch::new();
let node1 = stretch
.new_node(
stretch::style::Style {
size: stretch::geometry::Size { width: Dimension::Points(8f32), height: Dimension::Points(80f32) },
..Default::default()
},
&[],
)
.unwrap();
let node0 = stretch
.new_node(
stretch::style::Style {
align_self: stretch::prelude::AlignSelf::Center,
size: stretch::geometry::Size { width: Dimension::Auto, height: Dimension::Auto },
// size: stretch::geometry::Size { width: Dimension::Percent(1.0), height: Dimension::Percent(1.0) },
..Default::default()
},
&[node1],
)
.unwrap();
let node = stretch
.new_node(
stretch::style::Style {
size: stretch::geometry::Size { width: Dimension::Percent(1f32), height: Dimension::Percent(1f32) },
..Default::default()
},
&[node0],
)
.unwrap();
println!("0:");
stretch
.compute_layout(
node,
stretch::geometry::Size {
width: stretch::prelude::Number::Defined(100f32),
height: stretch::prelude::Number::Defined(100f32),
},
)
.unwrap();
let initial = stretch.layout(node).unwrap().location;
let initial0 = stretch.layout(node0).unwrap().location;
let initial1 = stretch.layout(node1).unwrap().location;
for i in 1..10 {
println!("\n\n{i}:");
stretch
.compute_layout(
node,
stretch::geometry::Size {
width: stretch::prelude::Number::Defined(100f32),
height: stretch::prelude::Number::Defined(100f32),
},
)
.unwrap();
assert_eq!(stretch.layout(node).unwrap().location, initial);
assert_eq!(stretch.layout(node0).unwrap().location, initial0);
assert_eq!(stretch.layout(node1).unwrap().location, initial1);
}
}