add parent size to compute function
Semántico sayk'uy · 259
examples/basic.rs
- ukhunpi t'ikrakurqan fn main
scripts/gentest/src/main.rs
- ukhunpi t'ikrakurqan fn generate_test
src/algo.rs
- silq'uyninpi t'ikrakurqan fn compute pub
src/geometry.rs
- musuq fn undefined pub
tests/generated.rs
- ukhunpi t'ikrakurqan fn absolute_layout_align_items_and_justify_content_center
- ukhunpi t'ikrakurqan fn absolute_layout_align_items_and_justify_content_center_and_bottom_position
- ukhunpi t'ikrakurqan fn absolute_layout_align_items_and_justify_content_center_and_left_position
- ukhunpi t'ikrakurqan fn absolute_layout_align_items_and_justify_content_center_and_right_position
- ukhunpi t'ikrakurqan fn absolute_layout_align_items_and_justify_content_center_and_top_position
- ukhunpi t'ikrakurqan fn absolute_layout_align_items_and_justify_content_flex_end
- ukhunpi t'ikrakurqan fn absolute_layout_align_items_center
- ukhunpi t'ikrakurqan fn absolute_layout_align_items_center_on_child_only
- ukhunpi t'ikrakurqan fn absolute_layout_child_order
- ukhunpi t'ikrakurqan fn absolute_layout_in_wrap_reverse_column_container
- ukhunpi t'ikrakurqan fn absolute_layout_in_wrap_reverse_column_container_flex_end
- ukhunpi t'ikrakurqan fn absolute_layout_in_wrap_reverse_row_container
- ukhunpi t'ikrakurqan fn absolute_layout_in_wrap_reverse_row_container_flex_end
- ukhunpi t'ikrakurqan fn absolute_layout_justify_content_center
- ukhunpi t'ikrakurqan fn absolute_layout_no_size
- ukhunpi t'ikrakurqan fn absolute_layout_percentage_bottom_based_on_parent_height
- ukhunpi t'ikrakurqan fn absolute_layout_start_top_end_bottom
- ukhunpi t'ikrakurqan fn absolute_layout_width_height_end_bottom
- ukhunpi t'ikrakurqan fn absolute_layout_width_height_start_top
- ukhunpi t'ikrakurqan fn absolute_layout_width_height_start_top_end_bottom
- ukhunpi t'ikrakurqan fn absolute_layout_within_border
- ukhunpi t'ikrakurqan fn align_baseline
- ukhunpi t'ikrakurqan fn align_baseline_child_multiline
- ukhunpi t'ikrakurqan fn align_baseline_nested_child
- ukhunpi t'ikrakurqan fn align_center_should_size_based_on_content
- ukhunpi t'ikrakurqan fn align_flex_start_with_shrinking_children
- ukhunpi t'ikrakurqan fn align_flex_start_with_shrinking_children_with_stretch
- ukhunpi t'ikrakurqan fn align_flex_start_with_stretching_children
- ukhunpi t'ikrakurqan fn align_items_center
- ukhunpi t'ikrakurqan fn align_items_center_child_with_margin_bigger_than_parent
- ukhunpi t'ikrakurqan fn align_items_center_child_without_margin_bigger_than_parent
- ukhunpi t'ikrakurqan fn align_items_center_with_child_margin
- ukhunpi t'ikrakurqan fn align_items_center_with_child_top
- ukhunpi t'ikrakurqan fn align_items_flex_end
- ukhunpi t'ikrakurqan fn align_items_flex_end_child_with_margin_bigger_than_parent
- ukhunpi t'ikrakurqan fn align_items_flex_end_child_without_margin_bigger_than_parent
- ukhunpi t'ikrakurqan fn align_items_flex_start
- ukhunpi t'ikrakurqan fn align_items_min_max
- ukhunpi t'ikrakurqan fn align_items_stretch
- ukhunpi t'ikrakurqan fn align_self_baseline
- ukhunpi t'ikrakurqan fn align_self_center
- ukhunpi t'ikrakurqan fn align_self_flex_end
- ukhunpi t'ikrakurqan fn align_self_flex_end_override_flex_start
- ukhunpi t'ikrakurqan fn align_self_flex_start
- ukhunpi t'ikrakurqan fn align_strech_should_size_based_on_parent
- ukhunpi t'ikrakurqan fn border_center_child
- ukhunpi t'ikrakurqan fn border_flex_child
- ukhunpi t'ikrakurqan fn border_no_child
- ukhunpi t'ikrakurqan fn border_stretch_child
- ukhunpi t'ikrakurqan fn child_min_max_width_flexing
- ukhunpi t'ikrakurqan fn container_with_unsized_child
- ukhunpi t'ikrakurqan fn display_none
- ukhunpi t'ikrakurqan fn display_none_fixed_size
- ukhunpi t'ikrakurqan fn display_none_with_child
- ukhunpi t'ikrakurqan fn display_none_with_margin
- ukhunpi t'ikrakurqan fn display_none_with_position
- ukhunpi t'ikrakurqan fn flex_basis_and_main_dimen_set_when_flexing
- ukhunpi t'ikrakurqan fn flex_basis_flex_grow_column
- ukhunpi t'ikrakurqan fn flex_basis_flex_grow_row
- ukhunpi t'ikrakurqan fn flex_basis_flex_shrink_column
- ukhunpi t'ikrakurqan fn flex_basis_flex_shrink_row
- ukhunpi t'ikrakurqan fn flex_basis_larger_than_content_column
- ukhunpi t'ikrakurqan fn flex_basis_larger_than_content_row
- ukhunpi t'ikrakurqan fn flex_basis_overrides_main_size
- ukhunpi t'ikrakurqan fn flex_basis_slightly_smaller_then_content_with_flex_grow_large_size
- ukhunpi t'ikrakurqan fn flex_basis_smaller_than_content_column
- ukhunpi t'ikrakurqan fn flex_basis_smaller_than_content_row
- ukhunpi t'ikrakurqan fn flex_basis_smaller_than_main_dimen_column
- ukhunpi t'ikrakurqan fn flex_basis_smaller_than_main_dimen_row
- ukhunpi t'ikrakurqan fn flex_basis_smaller_then_content_with_flex_grow_large_size
- ukhunpi t'ikrakurqan fn flex_basis_smaller_then_content_with_flex_grow_small_size
- ukhunpi t'ikrakurqan fn flex_basis_smaller_then_content_with_flex_grow_unconstraint_size
- ukhunpi t'ikrakurqan fn flex_basis_smaller_then_content_with_flex_grow_very_large_size
- ukhunpi t'ikrakurqan fn flex_basis_unconstraint_column
- ukhunpi t'ikrakurqan fn flex_basis_unconstraint_row
- ukhunpi t'ikrakurqan fn flex_direction_column
- ukhunpi t'ikrakurqan fn flex_direction_column_no_height
- ukhunpi t'ikrakurqan fn flex_direction_column_reverse
- ukhunpi t'ikrakurqan fn flex_direction_row
- ukhunpi t'ikrakurqan fn flex_direction_row_no_width
- ukhunpi t'ikrakurqan fn flex_direction_row_reverse
- ukhunpi t'ikrakurqan fn flex_grow_child
- ukhunpi t'ikrakurqan fn flex_grow_flex_basis_percent_min_max
- ukhunpi t'ikrakurqan fn flex_grow_height_maximized
- ukhunpi t'ikrakurqan fn flex_grow_in_at_most_container
- ukhunpi t'ikrakurqan fn flex_grow_less_than_factor_one
- ukhunpi t'ikrakurqan fn flex_grow_root_minimized
- ukhunpi t'ikrakurqan fn flex_grow_shrink_at_most
- ukhunpi t'ikrakurqan fn flex_grow_to_min
- ukhunpi t'ikrakurqan fn flex_grow_within_constrained_max_column
- ukhunpi t'ikrakurqan fn flex_grow_within_constrained_max_row
- ukhunpi t'ikrakurqan fn flex_grow_within_constrained_max_width
- ukhunpi t'ikrakurqan fn flex_grow_within_constrained_min_column
- ukhunpi t'ikrakurqan fn flex_grow_within_constrained_min_max_column
- ukhunpi t'ikrakurqan fn flex_grow_within_constrained_min_row
- ukhunpi t'ikrakurqan fn flex_grow_within_max_width
- ukhunpi t'ikrakurqan fn flex_root_ignored
- ukhunpi t'ikrakurqan fn flex_shrink_by_outer_margin_with_max_size
- ukhunpi t'ikrakurqan fn flex_shrink_flex_grow_child_flex_shrink_other_child
- ukhunpi t'ikrakurqan fn flex_shrink_flex_grow_row
- ukhunpi t'ikrakurqan fn flex_shrink_to_zero
- ukhunpi t'ikrakurqan fn flex_wrap_align_stretch_fits_one_row
- ukhunpi t'ikrakurqan fn flex_wrap_children_with_min_main_overriding_flex_basis
- ukhunpi t'ikrakurqan fn flex_wrap_wrap_to_child_height
- ukhunpi t'ikrakurqan fn justify_content_column_center
- ukhunpi t'ikrakurqan fn justify_content_column_flex_end
- ukhunpi t'ikrakurqan fn justify_content_column_flex_start
- ukhunpi t'ikrakurqan fn justify_content_column_min_height_and_margin_bottom
- ukhunpi t'ikrakurqan fn justify_content_column_min_height_and_margin_top
- ukhunpi t'ikrakurqan fn justify_content_column_space_around
- ukhunpi t'ikrakurqan fn justify_content_column_space_between
- ukhunpi t'ikrakurqan fn justify_content_column_space_evenly
- ukhunpi t'ikrakurqan fn justify_content_min_max
- ukhunpi t'ikrakurqan fn justify_content_min_width_with_padding_child_width_greater_than_parent
- ukhunpi t'ikrakurqan fn justify_content_min_width_with_padding_child_width_lower_than_parent
- ukhunpi t'ikrakurqan fn justify_content_overflow_min_max
- ukhunpi t'ikrakurqan fn justify_content_row_center
- ukhunpi t'ikrakurqan fn justify_content_row_flex_end
- ukhunpi t'ikrakurqan fn justify_content_row_flex_start
- ukhunpi t'ikrakurqan fn justify_content_row_max_width_and_margin
- ukhunpi t'ikrakurqan fn justify_content_row_min_width_and_margin
- ukhunpi t'ikrakurqan fn justify_content_row_space_around
- ukhunpi t'ikrakurqan fn justify_content_row_space_between
- ukhunpi t'ikrakurqan fn justify_content_row_space_evenly
- ukhunpi t'ikrakurqan fn margin_and_flex_column
- ukhunpi t'ikrakurqan fn margin_and_flex_row
- ukhunpi t'ikrakurqan fn margin_and_stretch_column
- ukhunpi t'ikrakurqan fn margin_and_stretch_row
- ukhunpi t'ikrakurqan fn margin_auto_bottom
- ukhunpi t'ikrakurqan fn margin_auto_bottom_and_top
- ukhunpi t'ikrakurqan fn margin_auto_bottom_and_top_justify_center
- ukhunpi t'ikrakurqan fn margin_auto_left
- ukhunpi t'ikrakurqan fn margin_auto_left_and_right
- ukhunpi t'ikrakurqan fn margin_auto_left_and_right_column
- ukhunpi t'ikrakurqan fn margin_auto_left_and_right_column_and_center
- ukhunpi t'ikrakurqan fn margin_auto_left_and_right_strech
- ukhunpi t'ikrakurqan fn margin_auto_left_child_bigger_than_parent
- ukhunpi t'ikrakurqan fn margin_auto_left_fix_right_child_bigger_than_parent
- ukhunpi t'ikrakurqan fn margin_auto_left_right_child_bigger_than_parent
- ukhunpi t'ikrakurqan fn margin_auto_left_stretching_child
- ukhunpi t'ikrakurqan fn margin_auto_mutiple_children_column
- ukhunpi t'ikrakurqan fn margin_auto_mutiple_children_row
- ukhunpi t'ikrakurqan fn margin_auto_right
- ukhunpi t'ikrakurqan fn margin_auto_top
- ukhunpi t'ikrakurqan fn margin_auto_top_and_bottom_strech
- ukhunpi t'ikrakurqan fn margin_auto_top_stretching_child
- ukhunpi t'ikrakurqan fn margin_bottom
- ukhunpi t'ikrakurqan fn margin_fix_left_auto_right_child_bigger_than_parent
- ukhunpi t'ikrakurqan fn margin_left
- ukhunpi t'ikrakurqan fn margin_right
- ukhunpi t'ikrakurqan fn margin_should_not_be_part_of_max_height
- ukhunpi t'ikrakurqan fn margin_should_not_be_part_of_max_width
- ukhunpi t'ikrakurqan fn margin_top
- ukhunpi t'ikrakurqan fn margin_with_sibling_column
- ukhunpi t'ikrakurqan fn margin_with_sibling_row
- ukhunpi t'ikrakurqan fn max_height
- ukhunpi t'ikrakurqan fn max_height_overrides_height
- ukhunpi t'ikrakurqan fn max_height_overrides_height_on_root
- ukhunpi t'ikrakurqan fn max_width
- ukhunpi t'ikrakurqan fn max_width_overrides_width
- ukhunpi t'ikrakurqan fn max_width_overrides_width_on_root
- ukhunpi t'ikrakurqan fn min_height
- ukhunpi t'ikrakurqan fn min_height_overrides_height
- ukhunpi t'ikrakurqan fn min_height_overrides_height_on_root
- ukhunpi t'ikrakurqan fn min_max_percent_no_width_height
- ukhunpi t'ikrakurqan fn min_width
- ukhunpi t'ikrakurqan fn min_width_overrides_width
- ukhunpi t'ikrakurqan fn min_width_overrides_width_on_root
- ukhunpi t'ikrakurqan fn nested_overflowing_child
- ukhunpi t'ikrakurqan fn nested_overflowing_child_in_constraint_parent
- ukhunpi t'ikrakurqan fn overflow_cross_axis
- ukhunpi t'ikrakurqan fn overflow_main_axis
- ukhunpi t'ikrakurqan fn padding_align_end_child
- ukhunpi t'ikrakurqan fn padding_center_child
- ukhunpi t'ikrakurqan fn padding_flex_child
- ukhunpi t'ikrakurqan fn padding_no_child
- ukhunpi t'ikrakurqan fn padding_stretch_child
- ukhunpi t'ikrakurqan fn parent_wrap_child_size_overflowing_parent
- ukhunpi t'ikrakurqan fn percent_absolute_position
- ukhunpi t'ikrakurqan fn percent_within_flex_grow
- ukhunpi t'ikrakurqan fn percentage_absolute_position
- ukhunpi t'ikrakurqan fn percentage_container_in_wrapping_container
- ukhunpi t'ikrakurqan fn percentage_flex_basis
- ukhunpi t'ikrakurqan fn percentage_flex_basis_cross
- ukhunpi t'ikrakurqan fn percentage_flex_basis_cross_max_height
- ukhunpi t'ikrakurqan fn percentage_flex_basis_cross_max_width
- ukhunpi t'ikrakurqan fn percentage_flex_basis_cross_min_height
- ukhunpi t'ikrakurqan fn percentage_flex_basis_cross_min_width
- ukhunpi t'ikrakurqan fn percentage_flex_basis_main_max_height
- ukhunpi t'ikrakurqan fn percentage_flex_basis_main_max_width
- ukhunpi t'ikrakurqan fn percentage_flex_basis_main_min_width
- ukhunpi t'ikrakurqan fn percentage_margin_should_calculate_based_only_on_width
- ukhunpi t'ikrakurqan fn percentage_multiple_nested_with_padding_margin_and_percentage_values
- ukhunpi t'ikrakurqan fn percentage_padding_should_calculate_based_only_on_width
- ukhunpi t'ikrakurqan fn percentage_position_bottom_right
- ukhunpi t'ikrakurqan fn percentage_position_left_top
- ukhunpi t'ikrakurqan fn percentage_size_based_on_parent_inner_size
- ukhunpi t'ikrakurqan fn percentage_size_of_flex_basis
- ukhunpi t'ikrakurqan fn percentage_width_height
- ukhunpi t'ikrakurqan fn percentage_width_height_undefined_parent_size
- ukhunpi t'ikrakurqan fn relative_position_should_not_nudge_siblings
- ukhunpi t'ikrakurqan fn rounding_flex_basis_flex_grow_row_prime_number_width
- ukhunpi t'ikrakurqan fn rounding_flex_basis_flex_grow_row_width_of_100
- ukhunpi t'ikrakurqan fn rounding_flex_basis_flex_shrink_row
- ukhunpi t'ikrakurqan fn rounding_flex_basis_overrides_main_size
- ukhunpi t'ikrakurqan fn rounding_fractial_input_1
- ukhunpi t'ikrakurqan fn rounding_fractial_input_2
- ukhunpi t'ikrakurqan fn rounding_fractial_input_3
- ukhunpi t'ikrakurqan fn rounding_fractial_input_4
- ukhunpi t'ikrakurqan fn rounding_total_fractial
- ukhunpi t'ikrakurqan fn rounding_total_fractial_nested
- ukhunpi t'ikrakurqan fn size_defined_by_child
- ukhunpi t'ikrakurqan fn size_defined_by_child_with_border
- ukhunpi t'ikrakurqan fn size_defined_by_child_with_padding
- ukhunpi t'ikrakurqan fn size_defined_by_grand_child
- ukhunpi t'ikrakurqan fn width_smaller_then_content_with_flex_grow_large_size
- ukhunpi t'ikrakurqan fn width_smaller_then_content_with_flex_grow_small_size
- ukhunpi t'ikrakurqan fn width_smaller_then_content_with_flex_grow_unconstraint_size
- ukhunpi t'ikrakurqan fn width_smaller_then_content_with_flex_grow_very_large_size
- ukhunpi t'ikrakurqan fn wrap_column
- ukhunpi t'ikrakurqan fn wrap_nodes_with_content_sizing_margin_cross
- ukhunpi t'ikrakurqan fn wrap_nodes_with_content_sizing_overflowing_margin
- ukhunpi t'ikrakurqan fn wrap_reverse_column
- ukhunpi t'ikrakurqan fn wrap_reverse_column_fixed_size
- ukhunpi t'ikrakurqan fn wrap_reverse_row
- ukhunpi t'ikrakurqan fn wrap_reverse_row_align_content_center
- ukhunpi t'ikrakurqan fn wrap_reverse_row_align_content_flex_start
- ukhunpi t'ikrakurqan fn wrap_reverse_row_align_content_space_around
- ukhunpi t'ikrakurqan fn wrap_reverse_row_align_content_stretch
- ukhunpi t'ikrakurqan fn wrap_reverse_row_single_line_different_size
- ukhunpi t'ikrakurqan fn wrap_row
- ukhunpi t'ikrakurqan fn wrap_row_align_items_center
- ukhunpi t'ikrakurqan fn wrap_row_align_items_flex_end
- ukhunpi t'ikrakurqan fn wrapped_column_max_height
- ukhunpi t'ikrakurqan fn wrapped_column_max_height_flex
- ukhunpi t'ikrakurqan fn wrapped_row_within_align_items_center
- ukhunpi t'ikrakurqan fn wrapped_row_within_align_items_flex_end
- ukhunpi t'ikrakurqan fn wrapped_row_within_align_items_flex_start
tests/measure.rs
- ukhunpi t'ikrakurqan fn flex_basis_overrides_measure
- ukhunpi t'ikrakurqan fn height_overrides_measure
- ukhunpi t'ikrakurqan fn measure_absolute_child
- ukhunpi t'ikrakurqan fn measure_child
- ukhunpi t'ikrakurqan fn measure_child_constraint
- ukhunpi t'ikrakurqan fn measure_child_constraint_padding_parent
- ukhunpi t'ikrakurqan fn measure_child_with_flex_grow
- ukhunpi t'ikrakurqan fn measure_child_with_flex_shrink
- ukhunpi t'ikrakurqan fn measure_root
- ukhunpi t'ikrakurqan fn remeasure_child_after_growing
- ukhunpi t'ikrakurqan fn remeasure_child_after_shrinking
- ukhunpi t'ikrakurqan fn stretch_overrides_measure
- ukhunpi t'ikrakurqan fn width_overrides_measure
tests/root_constraints.rs
- musuq mod root_constraints
- musuq fn root_with_larger_size
- musuq fn root_with_no_size
- musuq fn root_with_percentage_size
8 qillqakuna · +6348 −5354
- Cargo.toml +0 −1
- examples/basic.rs +13 −10
- scripts/gentest/src/main.rs +1 −1
- src/algo.rs +10 −10
- src/geometry.rs +10 −0
- tests/generated.rs +6014 −5137
- tests/measure.rs +240 −195
- tests/root_constraints.rs +60 −0
diff --git a/Cargo.toml b/Cargo.toml
index 42a76d584..7772e0c27 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -9,7 +9,6 @@ repository = "https://github.com/vislyhq/stretch"
readme = "README.md"
keywords = ["ios", "android", "cross-platform", "layout", "flexbox"]
categories = ["gui"]
-license = "MIT"
license-file = "LICENSE"
[badges]
diff --git a/examples/basic.rs b/examples/basic.rs
index 239734919..3fb41089e 100644
--- a/examples/basic.rs
+++ b/examples/basic.rs
@@ -1,15 +1,18 @@
+use stretch::geometry::Size;
+use stretch::style::*;
+
fn main() {
- let node = stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0),
- height: stretch::style::Dimension::Points(100.0),
+ let node = Node {
+ size: Size {
+ width: Dimension::Points(100.0),
+ height: Dimension::Points(100.0),
},
- justify_content: stretch::style::JustifyContent::Center,
+ justify_content: JustifyContent::Center,
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.5),
- height: stretch::style::Dimension::Auto,
+ children: vec![Node {
+ size: Size {
+ width: Dimension::Percent(0.5),
+ height: Dimension::Auto,
},
..Default::default()
}],
@@ -17,7 +20,7 @@ fn main() {
..Default::default()
};
- let layout = stretch::compute(&node);
+ let layout = stretch::compute(&node, Size::undefined());
println!("{:#?}", layout);
}
diff --git a/scripts/gentest/src/main.rs b/scripts/gentest/src/main.rs
index 8e2d526c8..54bd74e2f 100644
--- a/scripts/gentest/src/main.rs
+++ b/scripts/gentest/src/main.rs
@@ -73,7 +73,7 @@ fn generate_test(name: &str, root: Element) -> String {
src.push_str("let layout = stretch::compute(\n");
src.push_str(&format!("&{}", &generate_node(&description)));
- src.push_str(");\n\n");
+ src.push_str(", stretch::geometry::Size::undefined());\n\n");
src.push_str(&generate_assertions("layout".to_string(), &description));
src.push_str("}\n");
diff --git a/src/algo.rs b/src/algo.rs
index d7010b2e3..ffd03dec9 100644
--- a/src/algo.rs
+++ b/src/algo.rs
@@ -54,14 +54,14 @@ struct FlexLine<'a> {
offset_cross: f32,
}
-pub fn compute(root: &style::Node) -> layout::Node {
+pub fn compute(root: &style::Node, size: Size<Number>) -> layout::Node {
// TODO - Don't do two passes here just to handle min/max.
// Probably want to pass min/max down as top level paramerer instead.
let first_pass = compute_internal(
root,
- Size { width: root.size.width.resolve(Undefined), height: root.size.height.resolve(Undefined) },
- Size { width: Undefined, height: Undefined },
- Undefined,
+ Size { width: root.size.width.resolve(size.width), height: root.size.height.resolve(size.width) },
+ size,
+ size.width,
);
let result = compute_internal(
@@ -70,18 +70,18 @@ pub fn compute(root: &style::Node) -> layout::Node {
width: first_pass
.size
.width
- .maybe_max(root.min_size.width.resolve(Undefined))
- .maybe_min(root.max_size.width.resolve(Undefined))
+ .maybe_max(root.min_size.width.resolve(size.width))
+ .maybe_min(root.max_size.width.resolve(size.width))
.to_number(),
height: first_pass
.size
.height
- .maybe_max(root.min_size.height.resolve(Undefined))
- .maybe_min(root.max_size.height.resolve(Undefined))
+ .maybe_max(root.min_size.height.resolve(size.width))
+ .maybe_min(root.max_size.height.resolve(size.width))
.to_number(),
},
- Size { width: Undefined, height: Undefined },
- Undefined,
+ size,
+ size.width,
);
let mut layout = layout::Node {
diff --git a/src/geometry.rs b/src/geometry.rs
index 91de4cc80..3b2c0ee59 100644
--- a/src/geometry.rs
+++ b/src/geometry.rs
@@ -1,5 +1,6 @@
use std::ops::Add;
+use crate::number::Number;
use crate::style;
#[derive(Debug, Copy, Clone, PartialEq)]
@@ -85,6 +86,15 @@ pub struct Size<T> {
pub height: T,
}
+impl Size<()> {
+ pub fn undefined() -> Size<Number> {
+ Size {
+ width: Number::Undefined,
+ height: Number::Undefined,
+ }
+ }
+}
+
impl<T> Size<T> {
pub(crate) fn map<R, F>(self, f: F) -> Size<R>
where
diff --git a/tests/generated.rs b/tests/generated.rs
index 03a18ea25..6d3cc77f1 100644
--- a/tests/generated.rs
+++ b/tests/generated.rs
@@ -2,38 +2,41 @@
mod generated {
#[test]
fn justify_content_row_space_around() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::SpaceAround,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::SpaceAround,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -58,23 +61,26 @@ mod generated {
#[test]
fn align_items_center() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -89,24 +95,27 @@ mod generated {
#[test]
fn absolute_layout_justify_content_center() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(110.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(60.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ width: stretch::style::Dimension::Points(110.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(60.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -121,38 +130,41 @@ mod generated {
#[test]
fn margin_auto_bottom_and_top() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect {
- top: stretch::style::Dimension::Auto,
- bottom: stretch::style::Dimension::Auto,
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Auto,
+ bottom: stretch::style::Dimension::Auto,
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -172,37 +184,40 @@ mod generated {
#[test]
fn margin_auto_left_and_right_strech() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Auto,
- end: stretch::style::Dimension::Auto,
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Auto,
+ end: stretch::style::Dimension::Auto,
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -222,42 +237,45 @@ mod generated {
#[test]
fn rounding_flex_basis_overrides_main_size() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(113.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(50.0000),
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(20.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(113.0000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(50.0000),
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 113.0000);
@@ -282,26 +300,29 @@ mod generated {
#[test]
fn percentage_flex_basis() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.5000),
- ..Default::default()
- },
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.2500),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- ],
- ..Default::default()
- });
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.5000),
+ ..Default::default()
+ },
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.2500),
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -321,42 +342,45 @@ mod generated {
#[test]
fn rounding_fractial_input_3() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(113.4000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(50.0000),
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(20.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(113.4000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(50.0000),
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 113.0000);
@@ -381,24 +405,27 @@ mod generated {
#[test]
fn margin_and_stretch_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- flex_grow: 1.0000,
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ flex_grow: 1.0000,
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -413,62 +440,65 @@ mod generated {
#[test]
fn wrapped_column_max_height_flex() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_wrap: stretch::style::FlexWrap::Wrap,
- align_items: stretch::style::AlignItems::Center,
- align_content: stretch::style::AlignContent::Center,
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(700.0000),
- height: stretch::style::Dimension::Points(500.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_shrink: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.0000),
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(500.0000),
- ..Default::default()
- },
- max_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_wrap: stretch::style::FlexWrap::Wrap,
+ align_items: stretch::style::AlignItems::Center,
+ align_content: stretch::style::AlignContent::Center,
+ justify_content: stretch::style::JustifyContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(700.0000),
+ height: stretch::style::Dimension::Points(500.0000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_shrink: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.0000),
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_shrink: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.0000),
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(500.0000),
+ ..Default::default()
+ },
+ max_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
..Default::default()
},
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(20.0000),
- end: stretch::style::Dimension::Points(20.0000),
- top: stretch::style::Dimension::Points(20.0000),
- bottom: stretch::style::Dimension::Points(20.0000),
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_shrink: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.0000),
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(20.0000),
+ end: stretch::style::Dimension::Points(20.0000),
+ top: stretch::style::Dimension::Points(20.0000),
+ bottom: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 700.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -493,42 +523,45 @@ mod generated {
#[test]
fn align_baseline_nested_child() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Baseline,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Baseline,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
..Default::default()
},
- children: vec![stretch::style::Node {
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
size: stretch::geometry::Size {
width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(20.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -553,14 +586,20 @@ mod generated {
#[test]
fn max_height_overrides_height_on_root() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { height: stretch::style::Dimension::Points(200.0000), ..Default::default() },
- max_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(100.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ max_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- });
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -570,31 +609,34 @@ mod generated {
#[test]
fn padding_center_child() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- padding: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(20.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(20.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ justify_content: stretch::style::JustifyContent::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ padding: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(20.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -609,27 +651,30 @@ mod generated {
#[test]
fn align_flex_start_with_stretching_children() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(500.0000),
- height: stretch::style::Dimension::Points(500.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(500.0000),
+ height: stretch::style::Dimension::Points(500.0000),
+ ..Default::default()
+ },
children: vec![stretch::style::Node {
- flex_grow: 1.0000,
- flex_shrink: 1.0000,
children: vec![stretch::style::Node {
flex_grow: 1.0000,
flex_shrink: 1.0000,
+ children: vec![stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_shrink: 1.0000,
+ ..Default::default()
+ }],
..Default::default()
}],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -654,20 +699,23 @@ mod generated {
#[test]
fn min_width_overrides_width() {
- let layout = stretch::compute(&stretch::style::Node {
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- min_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ min_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 0.0000);
@@ -682,31 +730,34 @@ mod generated {
#[test]
fn flex_wrap_align_stretch_fits_one_row() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::Wrap,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(150.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::Wrap,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(150.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 150.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -726,38 +777,41 @@ mod generated {
#[test]
fn justify_content_row_space_evenly() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::SpaceEvenly,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::SpaceEvenly,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -782,43 +836,46 @@ mod generated {
#[test]
fn absolute_layout_child_order() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(110.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(60.0000),
- height: stretch::style::Dimension::Points(40.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ justify_content: stretch::style::JustifyContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(110.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(60.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(60.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(60.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(60.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(60.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -843,55 +900,58 @@ mod generated {
#[test]
fn absolute_layout_percentage_bottom_based_on_parent_height() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- position: stretch::geometry::Rect {
- top: stretch::style::Dimension::Percent(0.5000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- position: stretch::geometry::Rect {
- bottom: stretch::style::Dimension::Percent(0.5000),
+ children: vec![
+ stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Percent(0.5000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ bottom: stretch::style::Dimension::Percent(0.5000),
+ ..Default::default()
+ },
..Default::default()
},
- position: stretch::geometry::Rect {
- top: stretch::style::Dimension::Percent(0.1000),
- bottom: stretch::style::Dimension::Percent(0.1000),
+ stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Percent(0.1000),
+ bottom: stretch::style::Dimension::Percent(0.1000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -916,25 +976,28 @@ mod generated {
#[test]
fn absolute_layout_align_items_and_justify_content_flex_end() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::FlexEnd,
- justify_content: stretch::style::JustifyContent::FlexEnd,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(110.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::FlexEnd,
+ justify_content: stretch::style::JustifyContent::FlexEnd,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(60.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ width: stretch::style::Dimension::Points(110.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(60.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -949,25 +1012,28 @@ mod generated {
#[test]
fn nested_overflowing_child() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -987,37 +1053,40 @@ mod generated {
#[test]
fn flex_direction_row() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1042,36 +1111,39 @@ mod generated {
#[test]
fn child_min_max_width_flexing() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(120.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_shrink: 0.0000,
- flex_basis: stretch::style::Dimension::Points(0.0000),
- min_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(60.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(120.0000),
+ height: stretch::style::Dimension::Points(50.0000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_shrink: 0.0000,
- flex_basis: stretch::style::Dimension::Percent(0.5000),
- max_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_shrink: 0.0000,
+ flex_basis: stretch::style::Dimension::Points(0.0000),
+ min_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(60.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_shrink: 0.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.5000),
+ max_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 120.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -1091,25 +1163,28 @@ mod generated {
#[test]
fn absolute_layout_in_wrap_reverse_row_container_flex_end() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- align_self: stretch::style::AlignSelf::FlexEnd,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ align_self: stretch::style::AlignSelf::FlexEnd,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1124,24 +1199,27 @@ mod generated {
#[test]
fn margin_and_flex_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- flex_grow: 1.0000,
- margin: stretch::geometry::Rect {
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ flex_grow: 1.0000,
+ margin: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1156,18 +1234,27 @@ mod generated {
#[test]
fn flex_basis_flex_shrink_row() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ children: vec![
+ stretch::style::Node {
+ flex_basis: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ stretch::style::Node {
+ flex_basis: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ],
..Default::default()
},
- children: vec![
- stretch::style::Node { flex_basis: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- stretch::style::Node { flex_basis: stretch::style::Dimension::Points(50.0000), ..Default::default() },
- ],
- ..Default::default()
- });
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1187,27 +1274,30 @@ mod generated {
#[test]
fn justify_content_column_min_height_and_margin_top() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- justify_content: stretch::style::JustifyContent::Center,
- min_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ justify_content: stretch::style::JustifyContent::Center,
+ min_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(50.0000),
..Default::default()
},
- margin: stretch::geometry::Rect {
- top: stretch::style::Dimension::Points(10.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 20.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -1222,48 +1312,51 @@ mod generated {
#[test]
fn justify_content_overflow_min_max() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- justify_content: stretch::style::JustifyContent::Center,
- min_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- max_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(110.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_shrink: 0.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ justify_content: stretch::style::JustifyContent::Center,
+ min_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- flex_shrink: 0.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ max_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(110.0000),
..Default::default()
},
- stretch::style::Node {
- flex_shrink: 0.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_shrink: 0.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_shrink: 0.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ stretch::style::Node {
+ flex_shrink: 0.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 110.0000);
@@ -1288,59 +1381,62 @@ mod generated {
#[test]
fn wrap_reverse_column_fixed_size() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
+ align_items: stretch::style::AlignItems::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(30.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1375,26 +1471,29 @@ mod generated {
#[test]
fn max_width() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- max_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ max_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1409,38 +1508,41 @@ mod generated {
#[test]
fn justify_content_row_center() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1465,20 +1567,13 @@ mod generated {
#[test]
fn flex_grow_root_minimized() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- min_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- max_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(500.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
min_size: stretch::geometry::Size {
height: stretch::style::Dimension::Points(100.0000),
..Default::default()
@@ -1487,24 +1582,37 @@ mod generated {
height: stretch::style::Dimension::Points(500.0000),
..Default::default()
},
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(200.0000),
+ children: vec![stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
+ min_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
+ max_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(500.0000),
..Default::default()
},
- ],
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 300.0000);
@@ -1529,15 +1637,18 @@ mod generated {
#[test]
fn container_with_unsized_child() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ children: vec![stretch::style::Node { ..Default::default() }],
..Default::default()
},
- children: vec![stretch::style::Node { ..Default::default() }],
- ..Default::default()
- });
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1552,24 +1663,30 @@ mod generated {
#[test]
fn flex_grow_within_constrained_min_row() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { height: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- min_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ min_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- ],
- ..Default::default()
- });
+ children: vec![
+ stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1589,27 +1706,33 @@ mod generated {
#[test]
fn flex_shrink_by_outer_margin_with_max_size() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size { height: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- max_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(80.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- margin: stretch::geometry::Rect {
- top: stretch::style::Dimension::Points(100.0000),
+ max_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(80.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 20.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -1624,30 +1747,33 @@ mod generated {
#[test]
fn absolute_layout_width_height_start_top_end_bottom() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- position: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- ..Default::default()
- }],
- ..Default::default()
- });
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1662,22 +1788,25 @@ mod generated {
#[test]
fn overflow_main_axis() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- flex_shrink: 0.0000,
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ flex_shrink: 0.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1692,29 +1821,35 @@ mod generated {
#[test]
fn flex_grow_to_min() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- min_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- max_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(500.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node { flex_grow: 1.0000, flex_shrink: 1.0000, ..Default::default() },
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ min_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ max_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(500.0000),
..Default::default()
},
- ],
- ..Default::default()
- });
+ children: vec![
+ stretch::style::Node { flex_grow: 1.0000, flex_shrink: 1.0000, ..Default::default() },
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1734,29 +1869,32 @@ mod generated {
#[test]
fn absolute_layout_align_items_and_justify_content_center_and_top_position() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(110.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ justify_content: stretch::style::JustifyContent::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(60.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ width: stretch::style::Dimension::Points(110.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- position: stretch::geometry::Rect {
- top: stretch::style::Dimension::Points(10.0000),
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(60.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1771,26 +1909,29 @@ mod generated {
#[test]
fn min_height() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- min_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(60.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
- ],
- ..Default::default()
- });
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ min_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(60.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1810,38 +1951,41 @@ mod generated {
#[test]
fn justify_content_column_flex_start() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1866,25 +2010,28 @@ mod generated {
#[test]
fn absolute_layout_in_wrap_reverse_column_container() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1899,30 +2046,33 @@ mod generated {
#[test]
fn margin_should_not_be_part_of_max_width() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(250.0000),
- height: stretch::style::Dimension::Points(250.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- max_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
+ width: stretch::style::Dimension::Points(250.0000),
+ height: stretch::style::Dimension::Points(250.0000),
..Default::default()
},
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(20.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ max_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 250.0000);
assert_eq!(layout.size.height, 250.0000);
@@ -1937,18 +2087,21 @@ mod generated {
#[test]
fn absolute_layout_no_size() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ ..Default::default()
+ }],
..Default::default()
},
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- ..Default::default()
- }],
- ..Default::default()
- });
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1963,29 +2116,32 @@ mod generated {
#[test]
fn border_flex_child() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- border: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- flex_grow: 1.0000,
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ border: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ children: vec![stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2000,45 +2156,51 @@ mod generated {
#[test]
fn wrap_reverse_row() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(31.0000),
- height: stretch::style::Dimension::Points(30.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(32.0000),
- height: stretch::style::Dimension::Points(30.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(31.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(33.0000),
- height: stretch::style::Dimension::Points(30.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(32.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(34.0000),
- height: stretch::style::Dimension::Points(30.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(33.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(34.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 60.0000);
@@ -2068,26 +2230,29 @@ mod generated {
#[test]
fn margin_right() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::FlexEnd,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::FlexEnd,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- margin: stretch::geometry::Rect {
- end: stretch::style::Dimension::Points(10.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ end: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2102,46 +2267,49 @@ mod generated {
#[test]
fn display_none_with_child() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_shrink: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- display: stretch::style::Display::None,
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- flex_shrink: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.0000),
- children: vec![stretch::style::Node {
+ children: vec![
+ stretch::style::Node {
flex_grow: 1.0000,
flex_shrink: 1.0000,
flex_basis: stretch::style::Dimension::Percent(0.0000),
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ stretch::style::Node {
+ display: stretch::style::Display::None,
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
+ flex_shrink: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.0000),
+ children: vec![stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_shrink: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.0000),
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_shrink: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.0000),
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ },
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_shrink: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.0000),
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2171,28 +2339,31 @@ mod generated {
#[test]
fn align_flex_start_with_shrinking_children_with_stretch() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(500.0000),
- height: stretch::style::Dimension::Points(500.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- align_items: stretch::style::AlignItems::FlexStart,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(500.0000),
+ height: stretch::style::Dimension::Points(500.0000),
+ ..Default::default()
+ },
children: vec![stretch::style::Node {
- flex_grow: 1.0000,
- flex_shrink: 1.0000,
+ align_items: stretch::style::AlignItems::FlexStart,
children: vec![stretch::style::Node {
flex_grow: 1.0000,
flex_shrink: 1.0000,
+ children: vec![stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_shrink: 1.0000,
+ ..Default::default()
+ }],
..Default::default()
}],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -2217,40 +2388,46 @@ mod generated {
#[test]
fn flex_basis_smaller_then_content_with_flex_grow_large_size() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(0.0000),
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(70.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- ..Default::default()
- }],
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(0.0000),
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(0.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(70.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ },
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(0.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2280,21 +2457,24 @@ mod generated {
#[test]
fn align_items_stretch() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2309,29 +2489,32 @@ mod generated {
#[test]
fn parent_wrap_child_size_overflowing_parent() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
children: vec![stretch::style::Node {
size: stretch::geometry::Size {
width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2351,28 +2534,31 @@ mod generated {
#[test]
fn padding_stretch_child() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- padding: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ padding: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2387,53 +2573,56 @@ mod generated {
#[test]
fn wrap_nodes_with_content_sizing_overflowing_margin() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(500.0000),
- height: stretch::style::Dimension::Points(500.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::Wrap,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(85.0000),
+ width: stretch::style::Dimension::Points(500.0000),
+ height: stretch::style::Dimension::Points(500.0000),
..Default::default()
},
- children: vec![
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(40.0000),
- height: stretch::style::Dimension::Points(40.0000),
- ..Default::default()
- },
- ..Default::default()
- }],
+ children: vec![stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::Wrap,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(85.0000),
..Default::default()
},
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- margin: stretch::geometry::Rect {
- end: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(40.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
},
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(40.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ margin: stretch::geometry::Rect {
+ end: stretch::style::Dimension::Points(10.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(40.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- ],
+ },
+ ],
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -2468,36 +2657,39 @@ mod generated {
#[test]
fn flex_shrink_flex_grow_row() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(500.0000),
- height: stretch::style::Dimension::Points(500.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 0.0000,
- flex_shrink: 1.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(500.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(500.0000),
+ height: stretch::style::Dimension::Points(500.0000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 0.0000,
- flex_shrink: 1.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(500.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 0.0000,
+ flex_shrink: 1.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(500.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 0.0000,
+ flex_shrink: 1.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(500.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -2517,31 +2709,40 @@ mod generated {
#[test]
fn flex_basis_flex_shrink_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node { flex_basis: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- stretch::style::Node { flex_basis: stretch::style::Dimension::Points(50.0000), ..Default::default() },
- ],
- ..Default::default()
- });
-
- assert_eq!(layout.size.width, 100.0000);
- assert_eq!(layout.size.height, 100.0000);
- assert_eq!(layout.location.x, 0.0000);
- assert_eq!(layout.location.y, 0.0000);
-
- assert_eq!(layout.children[0].size.width, 100.0000);
- assert_eq!(layout.children[0].size.height, 67.0000);
- assert_eq!(layout.children[0].location.x, 0.0000);
- assert_eq!(layout.children[0].location.y, 0.0000);
-
- assert_eq!(layout.children[1].size.width, 100.0000);
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ children: vec![
+ stretch::style::Node {
+ flex_basis: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ stretch::style::Node {
+ flex_basis: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
+
+ assert_eq!(layout.size.width, 100.0000);
+ assert_eq!(layout.size.height, 100.0000);
+ assert_eq!(layout.location.x, 0.0000);
+ assert_eq!(layout.location.y, 0.0000);
+
+ assert_eq!(layout.children[0].size.width, 100.0000);
+ assert_eq!(layout.children[0].size.height, 67.0000);
+ assert_eq!(layout.children[0].location.x, 0.0000);
+ assert_eq!(layout.children[0].location.y, 0.0000);
+
+ assert_eq!(layout.children[1].size.width, 100.0000);
assert_eq!(layout.children[1].size.height, 33.0000);
assert_eq!(layout.children[1].location.x, 0.0000);
assert_eq!(layout.children[1].location.y, 67.0000);
@@ -2549,28 +2750,34 @@ mod generated {
#[test]
fn align_items_min_max() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size { height: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- min_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- max_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ align_items: stretch::style::AlignItems::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(60.0000),
- height: stretch::style::Dimension::Points(60.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ min_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ max_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(60.0000),
+ height: stretch::style::Dimension::Points(60.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2585,39 +2792,42 @@ mod generated {
#[test]
fn flex_basis_smaller_then_content_with_flex_grow_unconstraint_size() {
- let layout = stretch::compute(&stretch::style::Node {
- children: vec![
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(0.0000),
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(70.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ children: vec![
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(0.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(70.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(0.0000),
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ },
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(0.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 90.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2647,26 +2857,29 @@ mod generated {
#[test]
fn justify_content_row_min_width_and_margin() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- min_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::Center,
+ min_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
..Default::default()
},
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 20.0000);
@@ -2681,23 +2894,26 @@ mod generated {
#[test]
fn align_self_flex_start() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- align_self: stretch::style::AlignSelf::FlexStart,
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ align_self: stretch::style::AlignSelf::FlexStart,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2712,27 +2928,30 @@ mod generated {
#[test]
fn percentage_position_left_top() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(400.0000),
- height: stretch::style::Dimension::Points(400.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.4500),
- height: stretch::style::Dimension::Percent(0.5500),
+ width: stretch::style::Dimension::Points(400.0000),
+ height: stretch::style::Dimension::Points(400.0000),
..Default::default()
},
- position: stretch::geometry::Rect {
- start: stretch::style::Dimension::Percent(0.1000),
- top: stretch::style::Dimension::Percent(0.2000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(0.4500),
+ height: stretch::style::Dimension::Percent(0.5500),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Percent(0.1000),
+ top: stretch::style::Dimension::Percent(0.2000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 400.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -2747,28 +2966,31 @@ mod generated {
#[test]
fn border_stretch_child() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- border: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ border: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2783,42 +3005,45 @@ mod generated {
#[test]
fn rounding_fractial_input_2() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(113.6000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(50.0000),
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(20.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(113.6000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(50.0000),
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 114.0000);
@@ -2843,34 +3068,37 @@ mod generated {
#[test]
fn percentage_flex_basis_main_max_width() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.1500),
- max_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.6000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 4.0000,
- flex_basis: stretch::style::Dimension::Percent(0.1000),
- max_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.2000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.1500),
+ max_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(0.6000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 4.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.1000),
+ max_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(0.2000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -2890,38 +3118,41 @@ mod generated {
#[test]
fn margin_auto_top_and_bottom_strech() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect {
- top: stretch::style::Dimension::Auto,
- bottom: stretch::style::Dimension::Auto,
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Auto,
+ bottom: stretch::style::Dimension::Auto,
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -2941,40 +3172,21 @@ mod generated {
#[test]
fn percentage_multiple_nested_with_padding_margin_and_percentage_values() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.1000),
- min_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.6000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(5.0000),
- end: stretch::style::Dimension::Points(5.0000),
- top: stretch::style::Dimension::Points(5.0000),
- bottom: stretch::style::Dimension::Points(5.0000),
- ..Default::default()
- },
- padding: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(3.0000),
- end: stretch::style::Dimension::Points(3.0000),
- top: stretch::style::Dimension::Points(3.0000),
- bottom: stretch::style::Dimension::Points(3.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ children: vec![
+ stretch::style::Node {
flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.5000),
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.1000),
+ min_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(0.6000),
..Default::default()
},
margin: stretch::geometry::Rect {
@@ -2985,49 +3197,71 @@ mod generated {
..Default::default()
},
padding: stretch::geometry::Rect {
- start: stretch::style::Dimension::Percent(0.0300),
- end: stretch::style::Dimension::Percent(0.0300),
- top: stretch::style::Dimension::Percent(0.0300),
- bottom: stretch::style::Dimension::Percent(0.0300),
+ start: stretch::style::Dimension::Points(3.0000),
+ end: stretch::style::Dimension::Points(3.0000),
+ top: stretch::style::Dimension::Points(3.0000),
+ bottom: stretch::style::Dimension::Points(3.0000),
..Default::default()
},
children: vec![stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.4500),
+ width: stretch::style::Dimension::Percent(0.5000),
..Default::default()
},
margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Percent(0.0500),
- end: stretch::style::Dimension::Percent(0.0500),
- top: stretch::style::Dimension::Percent(0.0500),
- bottom: stretch::style::Dimension::Percent(0.0500),
+ start: stretch::style::Dimension::Points(5.0000),
+ end: stretch::style::Dimension::Points(5.0000),
+ top: stretch::style::Dimension::Points(5.0000),
+ bottom: stretch::style::Dimension::Points(5.0000),
..Default::default()
},
padding: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(3.0000),
- end: stretch::style::Dimension::Points(3.0000),
- top: stretch::style::Dimension::Points(3.0000),
- bottom: stretch::style::Dimension::Points(3.0000),
+ start: stretch::style::Dimension::Percent(0.0300),
+ end: stretch::style::Dimension::Percent(0.0300),
+ top: stretch::style::Dimension::Percent(0.0300),
+ bottom: stretch::style::Dimension::Percent(0.0300),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(0.4500),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Percent(0.0500),
+ end: stretch::style::Dimension::Percent(0.0500),
+ top: stretch::style::Dimension::Percent(0.0500),
+ bottom: stretch::style::Dimension::Percent(0.0500),
+ ..Default::default()
+ },
+ padding: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(3.0000),
+ end: stretch::style::Dimension::Points(3.0000),
+ top: stretch::style::Dimension::Points(3.0000),
+ bottom: stretch::style::Dimension::Points(3.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- },
- stretch::style::Node {
- flex_grow: 4.0000,
- flex_basis: stretch::style::Dimension::Percent(0.1500),
- min_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.2000),
+ },
+ stretch::style::Node {
+ flex_grow: 4.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.1500),
+ min_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(0.2000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3057,24 +3291,27 @@ mod generated {
#[test]
fn flex_grow_within_constrained_min_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- min_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ min_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- ],
- ..Default::default()
- });
+ children: vec![
+ stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3094,23 +3331,26 @@ mod generated {
#[test]
fn flex_grow_in_at_most_container() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::FlexStart,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::FlexStart,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
children: vec![stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(0.0000),
+ children: vec![stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(0.0000),
+ ..Default::default()
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3130,34 +3370,40 @@ mod generated {
#[test]
fn margin_auto_left() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect { start: stretch::style::Dimension::Auto, ..Default::default() },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Auto,
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3177,27 +3423,30 @@ mod generated {
#[test]
fn percentage_flex_basis_cross() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.5000),
- ..Default::default()
- },
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.2500),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- ],
- ..Default::default()
- });
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.5000),
+ ..Default::default()
+ },
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.2500),
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3217,29 +3466,32 @@ mod generated {
#[test]
fn percentage_absolute_position() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- position: stretch::geometry::Rect {
- start: stretch::style::Dimension::Percent(0.3000),
- top: stretch::style::Dimension::Percent(0.1000),
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Percent(0.3000),
+ top: stretch::style::Dimension::Percent(0.1000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3254,22 +3506,25 @@ mod generated {
#[test]
fn flex_basis_flex_grow_row() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(50.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
- ],
- ..Default::default()
- });
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3289,26 +3544,29 @@ mod generated {
#[test]
fn absolute_layout_in_wrap_reverse_column_container_flex_end() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- align_self: stretch::style::AlignSelf::FlexEnd,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ align_self: stretch::style::AlignSelf::FlexEnd,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3323,37 +3581,40 @@ mod generated {
#[test]
fn justify_content_row_flex_start() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3378,28 +3639,31 @@ mod generated {
#[test]
fn margin_auto_left_right_child_bigger_than_parent() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(52.0000),
- height: stretch::style::Dimension::Points(52.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(72.0000),
- height: stretch::style::Dimension::Points(72.0000),
+ width: stretch::style::Dimension::Points(52.0000),
+ height: stretch::style::Dimension::Points(52.0000),
..Default::default()
},
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Auto,
- end: stretch::style::Dimension::Auto,
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(72.0000),
+ height: stretch::style::Dimension::Points(72.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Auto,
+ end: stretch::style::Dimension::Auto,
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 52.0000);
assert_eq!(layout.size.height, 52.0000);
@@ -3414,24 +3678,30 @@ mod generated {
#[test]
fn flex_basis_larger_than_content_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size { height: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
flex_direction: stretch::style::FlexDirection::Column,
- flex_basis: stretch::style::Dimension::Points(50.0000),
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ children: vec![stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_basis: stretch::style::Dimension::Points(50.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3451,28 +3721,31 @@ mod generated {
#[test]
fn margin_fix_left_auto_right_child_bigger_than_parent() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(52.0000),
- height: stretch::style::Dimension::Points(52.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(72.0000),
- height: stretch::style::Dimension::Points(72.0000),
+ width: stretch::style::Dimension::Points(52.0000),
+ height: stretch::style::Dimension::Points(52.0000),
..Default::default()
},
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Auto,
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(72.0000),
+ height: stretch::style::Dimension::Points(72.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Auto,
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 52.0000);
assert_eq!(layout.size.height, 52.0000);
@@ -3487,47 +3760,50 @@ mod generated {
#[test]
fn percentage_container_in_wrapping_container() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- align_items: stretch::style::AlignItems::Center,
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
flex_direction: stretch::style::FlexDirection::Column,
+ align_items: stretch::style::AlignItems::Center,
+ justify_content: stretch::style::JustifyContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
children: vec![stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(1.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ flex_direction: stretch::style::FlexDirection::Column,
+ children: vec![stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(1.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3557,32 +3833,38 @@ mod generated {
#[test]
fn margin_auto_left_stretching_child() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_shrink: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.0000),
- margin: stretch::geometry::Rect { start: stretch::style::Dimension::Auto, ..Default::default() },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_shrink: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.0000),
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Auto,
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3602,40 +3884,46 @@ mod generated {
#[test]
fn flex_basis_smaller_then_content_with_flex_grow_small_size() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(10.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(0.0000),
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(70.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- ..Default::default()
- }],
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
..Default::default()
},
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(0.0000),
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(0.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(70.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ },
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(0.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 10.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3665,35 +3953,38 @@ mod generated {
#[test]
fn percentage_flex_basis_cross_max_width() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Percent(0.1000),
- max_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.6000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 4.0000,
- flex_basis: stretch::style::Dimension::Percent(0.1500),
- max_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.2000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.1000),
+ max_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(0.6000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 4.0000,
+ flex_basis: stretch::style::Dimension::Percent(0.1500),
+ max_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(0.2000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3713,28 +4004,31 @@ mod generated {
#[test]
fn align_items_flex_end_child_without_margin_bigger_than_parent() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- align_items: stretch::style::AlignItems::FlexEnd,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ justify_content: stretch::style::JustifyContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(70.0000),
- height: stretch::style::Dimension::Points(70.0000),
+ align_items: stretch::style::AlignItems::FlexEnd,
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(70.0000),
+ height: stretch::style::Dimension::Points(70.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -3754,46 +4048,52 @@ mod generated {
#[test]
fn width_smaller_then_content_with_flex_grow_very_large_size() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(200.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(0.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ children: vec![
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(70.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ width: stretch::style::Dimension::Points(0.0000),
..Default::default()
},
- ..Default::default()
- }],
- ..Default::default()
- },
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(0.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(70.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
},
- children: vec![stretch::style::Node {
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ width: stretch::style::Dimension::Points(0.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3823,24 +4123,27 @@ mod generated {
#[test]
fn size_defined_by_child_with_padding() {
- let layout = stretch::compute(&stretch::style::Node {
- padding: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ padding: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 30.0000);
assert_eq!(layout.size.height, 30.0000);
@@ -3855,100 +4158,103 @@ mod generated {
#[test]
fn absolute_layout_within_border() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- padding: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- border: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- position: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(0.0000),
- top: stretch::style::Dimension::Points(0.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- position: stretch::geometry::Rect {
- end: stretch::style::Dimension::Points(0.0000),
- bottom: stretch::style::Dimension::Points(0.0000),
- ..Default::default()
- },
+ padding: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
..Default::default()
},
- stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- position: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(0.0000),
- top: stretch::style::Dimension::Points(0.0000),
- ..Default::default()
- },
+ border: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
..Default::default()
},
- stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(0.0000),
+ top: stretch::style::Dimension::Points(0.0000),
+ ..Default::default()
+ },
..Default::default()
},
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ end: stretch::style::Dimension::Points(0.0000),
+ bottom: stretch::style::Dimension::Points(0.0000),
+ ..Default::default()
+ },
..Default::default()
},
- position: stretch::geometry::Rect {
- end: stretch::style::Dimension::Points(0.0000),
- bottom: stretch::style::Dimension::Points(0.0000),
+ stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(0.0000),
+ top: stretch::style::Dimension::Points(0.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ position: stretch::geometry::Rect {
+ end: stretch::style::Dimension::Points(0.0000),
+ bottom: stretch::style::Dimension::Points(0.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3978,28 +4284,31 @@ mod generated {
#[test]
fn margin_auto_left_fix_right_child_bigger_than_parent() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(52.0000),
- height: stretch::style::Dimension::Points(52.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(72.0000),
- height: stretch::style::Dimension::Points(72.0000),
+ width: stretch::style::Dimension::Points(52.0000),
+ height: stretch::style::Dimension::Points(52.0000),
..Default::default()
},
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Auto,
- end: stretch::style::Dimension::Points(10.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(72.0000),
+ height: stretch::style::Dimension::Points(72.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Auto,
+ end: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 52.0000);
assert_eq!(layout.size.height, 52.0000);
@@ -4014,38 +4323,41 @@ mod generated {
#[test]
fn justify_content_row_flex_end() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::FlexEnd,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::FlexEnd,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4070,27 +4382,30 @@ mod generated {
#[test]
fn margin_bottom() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- justify_content: stretch::style::JustifyContent::FlexEnd,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ justify_content: stretch::style::JustifyContent::FlexEnd,
size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- margin: stretch::geometry::Rect {
- bottom: stretch::style::Dimension::Points(10.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ bottom: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4105,30 +4420,33 @@ mod generated {
#[test]
fn margin_should_not_be_part_of_max_height() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(250.0000),
- height: stretch::style::Dimension::Points(250.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ width: stretch::style::Dimension::Points(250.0000),
+ height: stretch::style::Dimension::Points(250.0000),
..Default::default()
},
- max_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect {
- top: stretch::style::Dimension::Points(20.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ max_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 250.0000);
assert_eq!(layout.size.height, 250.0000);
@@ -4143,19 +4461,25 @@ mod generated {
#[test]
fn flex_basis_smaller_than_main_dimen_row() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![stretch::style::Node {
- flex_basis: stretch::style::Dimension::Points(10.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ flex_basis: stretch::style::Dimension::Points(10.0000),
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -4170,33 +4494,36 @@ mod generated {
#[test]
fn percentage_flex_basis_cross_min_height() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- min_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Percent(0.6000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 2.0000,
- min_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Percent(0.1000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ min_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Percent(0.6000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 2.0000,
+ min_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Percent(0.1000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -4216,13 +4543,8 @@ mod generated {
#[test]
fn nested_overflowing_child_in_constraint_parent() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
width: stretch::style::Dimension::Points(100.0000),
height: stretch::style::Dimension::Points(100.0000),
@@ -4230,16 +4552,24 @@ mod generated {
},
children: vec![stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4259,38 +4589,41 @@ mod generated {
#[test]
fn wrapped_row_within_align_items_center() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::Wrap,
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(150.0000),
- height: stretch::style::Dimension::Points(80.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ align_items: stretch::style::AlignItems::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ children: vec![stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::Wrap,
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(150.0000),
+ height: stretch::style::Dimension::Points(80.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(80.0000),
- height: stretch::style::Dimension::Points(80.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(80.0000),
+ height: stretch::style::Dimension::Points(80.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
+ ],
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -4315,39 +4648,42 @@ mod generated {
#[test]
fn justify_content_column_center() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ justify_content: stretch::style::JustifyContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4372,33 +4708,36 @@ mod generated {
#[test]
fn align_items_center_child_with_margin_bigger_than_parent() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
align_items: stretch::style::AlignItems::Center,
+ justify_content: stretch::style::JustifyContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
+ align_items: stretch::style::AlignItems::Center,
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -4418,22 +4757,25 @@ mod generated {
#[test]
fn percentage_width_height() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.3000),
- height: stretch::style::Dimension::Percent(0.3000),
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(0.3000),
+ height: stretch::style::Dimension::Percent(0.3000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -4448,44 +4790,47 @@ mod generated {
#[test]
fn margin_auto_mutiple_children_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect { top: stretch::style::Dimension::Auto, ..Default::default() },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ align_items: stretch::style::AlignItems::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect { top: stretch::style::Dimension::Auto, ..Default::default() },
..Default::default()
},
- margin: stretch::geometry::Rect { top: stretch::style::Dimension::Auto, ..Default::default() },
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect { top: stretch::style::Dimension::Auto, ..Default::default() },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -4510,14 +4855,20 @@ mod generated {
#[test]
fn min_width_overrides_width_on_root() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(50.0000), ..Default::default() },
- min_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ min_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- });
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 0.0000);
@@ -4527,41 +4878,44 @@ mod generated {
#[test]
fn flex_wrap_wrap_to_child_height() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- children: vec![
- stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::Wrap,
- align_items: stretch::style::AlignItems::FlexStart,
- children: vec![stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ children: vec![
+ stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::Wrap,
+ align_items: stretch::style::AlignItems::FlexStart,
children: vec![stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
size: stretch::geometry::Size {
width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ },
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -4589,55 +4943,58 @@ mod generated {
assert_eq!(layout.children[1].location.y, 100.0000);
}
- #[test]
- fn wrap_nodes_with_content_sizing_margin_cross() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(500.0000),
- height: stretch::style::Dimension::Points(500.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::Wrap,
+ #[test]
+ fn wrap_nodes_with_content_sizing_margin_cross() {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(70.0000),
+ width: stretch::style::Dimension::Points(500.0000),
+ height: stretch::style::Dimension::Points(500.0000),
..Default::default()
},
- children: vec![
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(40.0000),
- height: stretch::style::Dimension::Points(40.0000),
- ..Default::default()
- },
- ..Default::default()
- }],
+ children: vec![stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::Wrap,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(70.0000),
..Default::default()
},
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- margin: stretch::geometry::Rect {
- top: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(40.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
},
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(40.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ margin: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Points(10.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(40.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- ],
+ },
+ ],
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -4672,33 +5029,36 @@ mod generated {
#[test]
fn align_baseline() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Baseline,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Baseline,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4718,25 +5078,28 @@ mod generated {
#[test]
fn margin_with_sibling_row() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- margin: stretch::geometry::Rect {
- end: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
- ],
- ..Default::default()
- });
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ margin: stretch::geometry::Rect {
+ end: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4756,54 +5119,60 @@ mod generated {
#[test]
fn wrap_reverse_row_align_content_space_around() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- align_content: stretch::style::AlignContent::SpaceAround,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
+ align_content: stretch::style::AlignContent::SpaceAround,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(30.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -4838,50 +5207,53 @@ mod generated {
#[test]
fn wrap_reverse_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(31.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(32.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(31.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(33.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(32.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(34.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(33.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(34.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4911,27 +5283,30 @@ mod generated {
#[test]
fn align_items_center_with_child_margin() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- margin: stretch::geometry::Rect {
- top: stretch::style::Dimension::Points(10.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4946,38 +5321,41 @@ mod generated {
#[test]
fn flex_direction_column_reverse() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::ColumnReverse,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::ColumnReverse,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5002,38 +5380,41 @@ mod generated {
#[test]
fn flex_direction_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5058,28 +5439,31 @@ mod generated {
#[test]
fn align_items_center_child_without_margin_bigger_than_parent() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
align_items: stretch::style::AlignItems::Center,
+ justify_content: stretch::style::JustifyContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(70.0000),
- height: stretch::style::Dimension::Points(70.0000),
+ align_items: stretch::style::AlignItems::Center,
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(70.0000),
+ height: stretch::style::Dimension::Points(70.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -5099,24 +5483,27 @@ mod generated {
#[test]
fn align_self_flex_end_override_flex_start() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::FlexStart,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- align_self: stretch::style::AlignSelf::FlexEnd,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::FlexStart,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ align_self: stretch::style::AlignSelf::FlexEnd,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5131,42 +5518,45 @@ mod generated {
#[test]
fn rounding_total_fractial() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(87.4000),
- height: stretch::style::Dimension::Points(113.4000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 0.7000,
- flex_basis: stretch::style::Dimension::Points(50.3000),
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(20.3000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(87.4000),
+ height: stretch::style::Dimension::Points(113.4000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 1.6000,
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 0.7000,
+ flex_basis: stretch::style::Dimension::Points(50.3000),
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(20.3000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- flex_grow: 1.1000,
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.7000),
+ stretch::style::Node {
+ flex_grow: 1.6000,
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 1.1000,
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.7000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 87.0000);
assert_eq!(layout.size.height, 113.0000);
@@ -5191,63 +5581,69 @@ mod generated {
#[test]
fn align_baseline_child_multiline() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Baseline,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(60.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Baseline,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::Wrap,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(60.0000),
+ ..Default::default()
+ },
..Default::default()
},
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(25.0000),
- height: stretch::style::Dimension::Points(20.0000),
- ..Default::default()
- },
+ stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::Wrap,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(25.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(25.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(25.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(25.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(25.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(25.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(25.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -5287,24 +5683,27 @@ mod generated {
#[test]
fn absolute_layout_align_items_center_on_child_only() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(110.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
- align_self: stretch::style::AlignSelf::Center,
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(60.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ width: stretch::style::Dimension::Points(110.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ align_self: stretch::style::AlignSelf::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(60.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5319,54 +5718,60 @@ mod generated {
#[test]
fn wrap_reverse_row_single_line_different_size() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- align_content: stretch::style::AlignContent::FlexStart,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(300.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
+ align_content: stretch::style::AlignContent::FlexStart,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(300.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(30.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 300.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -5401,42 +5806,45 @@ mod generated {
#[test]
fn rounding_fractial_input_4() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(113.4000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(50.0000),
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(20.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(113.4000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(50.0000),
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 113.0000);
@@ -5457,49 +5865,52 @@ mod generated {
assert_eq!(layout.children[2].size.height, 24.0000);
assert_eq!(layout.children[2].location.x, 0.0000);
assert_eq!(layout.children[2].location.y, 89.0000);
- }
-
- #[test]
- fn width_smaller_then_content_with_flex_grow_unconstraint_size() {
- let layout = stretch::compute(&stretch::style::Node {
- children: vec![
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(0.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ }
+
+ #[test]
+ fn width_smaller_then_content_with_flex_grow_unconstraint_size() {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ children: vec![
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(70.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ width: stretch::style::Dimension::Points(0.0000),
..Default::default()
},
- ..Default::default()
- }],
- ..Default::default()
- },
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(0.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(70.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
},
- children: vec![stretch::style::Node {
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ width: stretch::style::Dimension::Points(0.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5529,29 +5940,32 @@ mod generated {
#[test]
fn padding_flex_child() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- padding: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- flex_grow: 1.0000,
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ padding: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5566,38 +5980,41 @@ mod generated {
#[test]
fn flex_direction_row_reverse() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::RowReverse,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::RowReverse,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5622,30 +6039,33 @@ mod generated {
#[test]
fn percentage_size_based_on_parent_inner_size() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- padding: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(20.0000),
- end: stretch::style::Dimension::Points(20.0000),
- top: stretch::style::Dimension::Points(20.0000),
- bottom: stretch::style::Dimension::Points(20.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Percent(0.5000),
- height: stretch::style::Dimension::Percent(0.5000),
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ padding: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(20.0000),
+ end: stretch::style::Dimension::Points(20.0000),
+ top: stretch::style::Dimension::Points(20.0000),
+ bottom: stretch::style::Dimension::Points(20.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Percent(0.5000),
+ height: stretch::style::Dimension::Percent(0.5000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -5660,53 +6080,59 @@ mod generated {
#[test]
fn wrap_reverse_row_align_content_stretch() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(30.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -5741,34 +6167,37 @@ mod generated {
#[test]
fn margin_auto_top() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect { top: stretch::style::Dimension::Auto, ..Default::default() },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect { top: stretch::style::Dimension::Auto, ..Default::default() },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -5788,36 +6217,42 @@ mod generated {
#[test]
fn flex_grow_within_constrained_max_row() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(200.0000), ..Default::default() },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- max_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
+ width: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- children: vec![
- stretch::style::Node {
- flex_shrink: 1.0000,
- flex_basis: stretch::style::Dimension::Points(100.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ max_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- ],
+ children: vec![
+ stretch::style::Node {
+ flex_shrink: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5842,25 +6277,28 @@ mod generated {
#[test]
fn absolute_layout_align_items_and_justify_content_center() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(110.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ justify_content: stretch::style::JustifyContent::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(60.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ width: stretch::style::Dimension::Points(110.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(60.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5875,23 +6313,26 @@ mod generated {
#[test]
fn align_self_flex_end() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- align_self: stretch::style::AlignSelf::FlexEnd,
+ let layout = stretch::compute(
+ &stretch::style::Node {
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ align_self: stretch::style::AlignSelf::FlexEnd,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5906,24 +6347,27 @@ mod generated {
#[test]
fn margin_auto_left_child_bigger_than_parent() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(52.0000),
- height: stretch::style::Dimension::Points(52.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::Center,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(72.0000),
- height: stretch::style::Dimension::Points(72.0000),
+ width: stretch::style::Dimension::Points(52.0000),
+ height: stretch::style::Dimension::Points(52.0000),
..Default::default()
},
- margin: stretch::geometry::Rect { start: stretch::style::Dimension::Auto, ..Default::default() },
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(72.0000),
+ height: stretch::style::Dimension::Points(72.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect { start: stretch::style::Dimension::Auto, ..Default::default() },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 52.0000);
assert_eq!(layout.size.height, 52.0000);
@@ -5938,38 +6382,41 @@ mod generated {
#[test]
fn wrapped_row_within_align_items_flex_end() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- align_items: stretch::style::AlignItems::FlexEnd,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::Wrap,
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(150.0000),
- height: stretch::style::Dimension::Points(80.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ align_items: stretch::style::AlignItems::FlexEnd,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ children: vec![stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::Wrap,
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(150.0000),
+ height: stretch::style::Dimension::Points(80.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(80.0000),
- height: stretch::style::Dimension::Points(80.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(80.0000),
+ height: stretch::style::Dimension::Points(80.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
+ ],
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -5994,20 +6441,23 @@ mod generated {
#[test]
fn min_height_overrides_height() {
- let layout = stretch::compute(&stretch::style::Node {
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- min_size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(100.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ min_size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6022,33 +6472,36 @@ mod generated {
#[test]
fn align_strech_should_size_based_on_parent() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- flex_grow: 0.0000,
- flex_shrink: 1.0000,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
children: vec![stretch::style::Node {
- flex_grow: 1.0000,
+ justify_content: stretch::style::JustifyContent::Center,
+ flex_grow: 0.0000,
flex_shrink: 1.0000,
children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ flex_grow: 1.0000,
+ flex_shrink: 1.0000,
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
}],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6073,46 +6526,52 @@ mod generated {
#[test]
fn wrap_row_align_items_flex_end() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::Wrap,
- align_items: stretch::style::AlignItems::FlexEnd,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::Wrap,
+ align_items: stretch::style::AlignItems::FlexEnd,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(30.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(30.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 60.0000);
@@ -6142,24 +6601,27 @@ mod generated {
#[test]
fn size_defined_by_child_with_border() {
- let layout = stretch::compute(&stretch::style::Node {
- border: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- height: stretch::style::Dimension::Points(10.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ border: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 30.0000);
assert_eq!(layout.size.height, 30.0000);
@@ -6174,38 +6636,41 @@ mod generated {
#[test]
fn margin_auto_bottom_and_top_justify_center() {
- let layout = stretch::compute(&stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect {
- top: stretch::style::Dimension::Auto,
- bottom: stretch::style::Dimension::Auto,
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ justify_content: stretch::style::JustifyContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ top: stretch::style::Dimension::Auto,
+ bottom: stretch::style::Dimension::Auto,
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -6225,41 +6690,44 @@ mod generated {
#[test]
fn flex_basis_overrides_main_size() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(50.0000),
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(50.0000),
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6279,43 +6747,46 @@ mod generated {
assert_eq!(layout.children[2].size.width, 20.0000);
assert_eq!(layout.children[2].size.height, 100.0000);
assert_eq!(layout.children[2].location.x, 80.0000);
- assert_eq!(layout.children[2].location.y, 0.0000);
- }
-
- #[test]
- fn wrapped_row_within_align_items_flex_start() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- align_items: stretch::style::AlignItems::FlexStart,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::Wrap,
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(150.0000),
- height: stretch::style::Dimension::Points(80.0000),
+ assert_eq!(layout.children[2].location.y, 0.0000);
+ }
+
+ #[test]
+ fn wrapped_row_within_align_items_flex_start() {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ align_items: stretch::style::AlignItems::FlexStart,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ children: vec![stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::Wrap,
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(150.0000),
+ height: stretch::style::Dimension::Points(80.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(80.0000),
- height: stretch::style::Dimension::Points(80.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(80.0000),
+ height: stretch::style::Dimension::Points(80.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
+ ],
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -6340,34 +6811,37 @@ mod generated {
#[test]
fn align_center_should_size_based_on_content() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- justify_content: stretch::style::JustifyContent::Center,
- flex_grow: 0.0000,
- flex_shrink: 1.0000,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
children: vec![stretch::style::Node {
- flex_grow: 1.0000,
+ justify_content: stretch::style::JustifyContent::Center,
+ flex_grow: 0.0000,
flex_shrink: 1.0000,
children: vec![stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ flex_grow: 1.0000,
+ flex_shrink: 1.0000,
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
}],
..Default::default()
}],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6392,34 +6866,37 @@ mod generated {
#[test]
fn margin_auto_right() {
- let layout = stretch::compute(&stretch::style::Node {
- align_items: stretch::style::AlignItems::Center,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect { end: stretch::style::Dimension::Auto, ..Default::default() },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ align_items: stretch::style::AlignItems::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect { end: stretch::style::Dimension::Auto, ..Default::default() },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -6439,54 +6916,60 @@ mod generated {
#[test]
fn wrap_reverse_row_align_content_center() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- align_content: stretch::style::AlignContent::Center,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
+ align_content: stretch::style::AlignContent::Center,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(30.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(40.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(30.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(30.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(40.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(30.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -6521,16 +7004,19 @@ mod generated {
#[test]
fn padding_no_child() {
- let layout = stretch::compute(&stretch::style::Node {
- padding: stretch::geometry::Rect {
- start: stretch::style::Dimension::Points(10.0000),
- end: stretch::style::Dimension::Points(10.0000),
- top: stretch::style::Dimension::Points(10.0000),
- bottom: stretch::style::Dimension::Points(10.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ padding: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Points(10.0000),
+ end: stretch::style::Dimension::Points(10.0000),
+ top: stretch::style::Dimension::Points(10.0000),
+ bottom: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- });
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 20.0000);
assert_eq!(layout.size.height, 20.0000);
@@ -6540,26 +7026,29 @@ mod generated {
#[test]
fn margin_with_sibling_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- margin: stretch::geometry::Rect {
- bottom: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
- ],
- ..Default::default()
- });
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ margin: stretch::geometry::Rect {
+ bottom: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ stretch::style::Node { flex_grow: 1.0000, ..Default::default() },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6579,33 +7068,39 @@ mod generated {
#[test]
fn flex_direction_row_no_width() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { height: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 30.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6630,14 +7125,20 @@ mod generated {
#[test]
fn max_width_overrides_width_on_root() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(200.0000), ..Default::default() },
- max_size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ ..Default::default()
+ },
+ max_size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- });
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 0.0000);
@@ -6647,37 +7148,40 @@ mod generated {
#[test]
fn margin_auto_left_and_right() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(200.0000),
- height: stretch::style::Dimension::Points(200.0000),
- ..Default::default()
- },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
- margin: stretch::geometry::Rect {
- start: stretch::style::Dimension::Auto,
- end: stretch::style::Dimension::Auto,
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(200.0000),
+ height: stretch::style::Dimension::Points(200.0000),
..Default::default()
},
- stretch::style::Node {
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ margin: stretch::geometry::Rect {
+ start: stretch::style::Dimension::Auto,
+ end: stretch::style::Dimension::Auto,
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -6697,34 +7201,40 @@ mod generated {
#[test]
fn flex_direction_column_no_height() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ children: vec![
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- stretch::style::Node {
- size: stretch::geometry::Size {
- height: stretch::style::Dimension::Points(10.0000),
+ stretch::style::Node {
+ size: stretch::geometry::Size {
+ height: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 30.0000);
@@ -6749,18 +7259,21 @@ mod generated {
#[test]
fn flex_basis_unconstraint_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- children: vec![stretch::style::Node {
- flex_basis: stretch::style::Dimension::Points(50.0000),
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ children: vec![stretch::style::Node {
+ flex_basis: stretch::style::Dimension::Points(50.0000),
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
..Default::default()
- },
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -6775,46 +7288,52 @@ mod generated {
#[test]
fn width_smaller_then_content_with_flex_grow_small_size() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(10.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(0.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(10.0000),
+ ..Default::default()
+ },
+ children: vec![
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(70.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ width: stretch::style::Dimension::Points(0.0000),
..Default::default()
},
- ..Default::default()
- }],
- ..Default::default()
- },
- stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- flex_grow: 1.0000,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(0.0000),
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(70.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
},
- children: vec![stretch::style::Node {
+ stretch::style::Node {
+ flex_direction: stretch::style::FlexDirection::Column,
+ flex_grow: 1.0000,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(100.0000),
+ width: stretch::style::Dimension::Points(0.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(100.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 10.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6844,24 +7363,27 @@ mod generated {
#[test]
fn absolute_layout_in_wrap_reverse_row_container() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_wrap: stretch::style::FlexWrap::WrapReverse,
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(100.0000),
- height: stretch::style::Dimension::Points(100.0000),
- ..Default::default()
- },
- children: vec![stretch::style::Node {
- position_type: stretch::style::PositionType::Absolute,
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ flex_wrap: stretch::style::FlexWrap::WrapReverse,
size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(20.0000),
- height: stretch::style::Dimension::Points(20.0000),
+ width: stretch::style::Dimension::Points(100.0000),
+ height: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
+ children: vec![stretch::style::Node {
+ position_type: stretch::style::PositionType::Absolute,
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(20.0000),
+ height: stretch::style::Dimension::Points(20.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ }],
..Default::default()
- }],
- ..Default::default()
- });
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6876,32 +7398,38 @@ mod generated {
#[test]
fn flex_basis_and_main_dimen_set_when_flexing() {
- let layout = stretch::compute(&stretch::style::Node {
- size: stretch::geometry::Size { width: stretch::style::Dimension::Points(100.0000), ..Default::default() },
- children: vec![
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(10.0000),
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(50.0000),
- height: stretch::style::Dimension::Points(50.0000),
- ..Default::default()
- },
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0000),
..Default::default()
},
- stretch::style::Node {
- flex_grow: 1.0000,
- flex_basis: stretch::style::Dimension::Points(10.0000),
- size: stretch::geometry::Size {
- width: stretch::style::Dimension::Points(0.0000),
- height: stretch::style::Dimension::Points(50.0000),
+ children: vec![
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(10.0000),
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(50.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
..Default::default()
},
- ..Default::default()
- },
- ],
- ..Default::default()
- });
+ stretch::style::Node {
+ flex_grow: 1.0000,
+ flex_basis: stretch::style::Dimension::Points(10.0000),
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(0.0000),
+ height: stretch::style::Dimension::Points(50.0000),
+ ..Default::default()
+ },
+ ..Default::default()
+ },
+ ],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -6921,20 +7449,26 @@ mod generated {
#[test]
fn flex_basis_smaller_than_main_dimen_column() {
- let layout = stretch::compute(&stretch::style::Node {
- flex_direction: stretch::style::FlexDirection::Column,
- size: stretch::geometry::Size { height: stretch::style::Dimension::Points(10
Parcheqa qatikun, ichaqa kaypi kuchusqa: gitwan committa mañakuy llapanta rikunaykipaq.