Rename Taffy struct to TaffyTree (#580)
1#[test]
2fn percent_absolute_position() {
3 #[allow(unused_imports)]
4 use taffy::{prelude::*, tree::Layout, TaffyTree};
5 let mut taffy: TaffyTree<crate::TextMeasure> = TaffyTree::new();
6 let node00 = taffy
7 .new_leaf(taffy::style::Style {
8 size: taffy::geometry::Size { width: taffy::style::Dimension::Percent(1f32), height: auto() },
9 ..Default::default()
10 })
11 .unwrap();
12 let node01 = taffy
13 .new_leaf(taffy::style::Style {
14 size: taffy::geometry::Size { width: taffy::style::Dimension::Percent(1f32), height: auto() },
15 ..Default::default()
16 })
17 .unwrap();
18 let node0 = taffy
19 .new_with_children(
20 taffy::style::Style {
21 position: taffy::style::Position::Absolute,
22 size: taffy::geometry::Size {
23 width: taffy::style::Dimension::Percent(1f32),
24 height: taffy::style::Dimension::Length(50f32),
25 },
26 inset: taffy::geometry::Rect {
27 left: taffy::style::LengthPercentageAuto::Percent(0.5f32),
28 right: auto(),
29 top: auto(),
30 bottom: auto(),
31 },
32 ..Default::default()
33 },
34 &[node00, node01],
35 )
36 .unwrap();
37 let node = taffy
38 .new_with_children(
39 taffy::style::Style {
40 flex_direction: taffy::style::FlexDirection::Column,
41 size: taffy::geometry::Size {
42 width: taffy::style::Dimension::Length(60f32),
43 height: taffy::style::Dimension::Length(50f32),
44 },
45 ..Default::default()
46 },
47 &[node0],
48 )
49 .unwrap();
50 taffy.compute_layout_with_measure(node, taffy::geometry::Size::MAX_CONTENT, crate::test_measure_function).unwrap();
51 println!("\nComputed tree:");
52 taffy.print_tree(node);
53 println!();
54 #[cfg_attr(not(feature = "content_size"), allow(unused_variables))]
55 let layout @ Layout { size, location, .. } = taffy.layout(node).unwrap();
56 assert_eq!(size.width, 60f32, "width of node {:?}. Expected {}. Actual {}", node, 60f32, size.width);
57 assert_eq!(size.height, 50f32, "height of node {:?}. Expected {}. Actual {}", node, 50f32, size.height);
58 assert_eq!(location.x, 0f32, "x of node {:?}. Expected {}. Actual {}", node, 0f32, location.x);
59 assert_eq!(location.y, 0f32, "y of node {:?}. Expected {}. Actual {}", node, 0f32, location.y);
60 #[cfg(feature = "content_size")]
61 assert_eq!(
62 layout.scroll_width(),
63 30f32,
64 "scroll_width of node {:?}. Expected {}. Actual {}",
65 node,
66 30f32,
67 layout.scroll_width()
68 );
69 #[cfg(feature = "content_size")]
70 assert_eq!(
71 layout.scroll_height(),
72 0f32,
73 "scroll_height of node {:?}. Expected {}. Actual {}",
74 node,
75 0f32,
76 layout.scroll_height()
77 );
78 #[cfg_attr(not(feature = "content_size"), allow(unused_variables))]
79 let layout @ Layout { size, location, .. } = taffy.layout(node0).unwrap();
80 assert_eq!(size.width, 60f32, "width of node {:?}. Expected {}. Actual {}", node0, 60f32, size.width);
81 assert_eq!(size.height, 50f32, "height of node {:?}. Expected {}. Actual {}", node0, 50f32, size.height);
82 assert_eq!(location.x, 30f32, "x of node {:?}. Expected {}. Actual {}", node0, 30f32, location.x);
83 assert_eq!(location.y, 0f32, "y of node {:?}. Expected {}. Actual {}", node0, 0f32, location.y);
84 #[cfg(feature = "content_size")]
85 assert_eq!(
86 layout.scroll_width(),
87 0f32,
88 "scroll_width of node {:?}. Expected {}. Actual {}",
89 node0,
90 0f32,
91 layout.scroll_width()
92 );
93 #[cfg(feature = "content_size")]
94 assert_eq!(
95 layout.scroll_height(),
96 0f32,
97 "scroll_height of node {:?}. Expected {}. Actual {}",
98 node0,
99 0f32,
100 layout.scroll_height()
101 );
102 #[cfg_attr(not(feature = "content_size"), allow(unused_variables))]
103 let layout @ Layout { size, location, .. } = taffy.layout(node00).unwrap();
104 assert_eq!(size.width, 30f32, "width of node {:?}. Expected {}. Actual {}", node00, 30f32, size.width);
105 assert_eq!(size.height, 50f32, "height of node {:?}. Expected {}. Actual {}", node00, 50f32, size.height);
106 assert_eq!(location.x, 0f32, "x of node {:?}. Expected {}. Actual {}", node00, 0f32, location.x);
107 assert_eq!(location.y, 0f32, "y of node {:?}. Expected {}. Actual {}", node00, 0f32, location.y);
108 #[cfg(feature = "content_size")]
109 assert_eq!(
110 layout.scroll_width(),
111 0f32,
112 "scroll_width of node {:?}. Expected {}. Actual {}",
113 node00,
114 0f32,
115 layout.scroll_width()
116 );
117 #[cfg(feature = "content_size")]
118 assert_eq!(
119 layout.scroll_height(),
120 0f32,
121 "scroll_height of node {:?}. Expected {}. Actual {}",
122 node00,
123 0f32,
124 layout.scroll_height()
125 );
126 #[cfg_attr(not(feature = "content_size"), allow(unused_variables))]
127 let layout @ Layout { size, location, .. } = taffy.layout(node01).unwrap();
128 assert_eq!(size.width, 30f32, "width of node {:?}. Expected {}. Actual {}", node01, 30f32, size.width);
129 assert_eq!(size.height, 50f32, "height of node {:?}. Expected {}. Actual {}", node01, 50f32, size.height);
130 assert_eq!(location.x, 30f32, "x of node {:?}. Expected {}. Actual {}", node01, 30f32, location.x);
131 assert_eq!(location.y, 0f32, "y of node {:?}. Expected {}. Actual {}", node01, 0f32, location.y);
132 #[cfg(feature = "content_size")]
133 assert_eq!(
134 layout.scroll_width(),
135 0f32,
136 "scroll_width of node {:?}. Expected {}. Actual {}",
137 node01,
138 0f32,
139 layout.scroll_width()
140 );
141 #[cfg(feature = "content_size")]
142 assert_eq!(
143 layout.scroll_height(),
144 0f32,
145 "scroll_height of node {:?}. Expected {}. Actual {}",
146 node01,
147 0f32,
148 layout.scroll_height()
149 );
150}