1#[test]
2fn flex_shrink_to_zero() {
3 let mut taffy = taffy::Taffy::new();
4 let node0 = taffy
5 .new_node(
6 taffy::style::Style {
7 flex_shrink: 0f32,
8 size: taffy::geometry::Size {
9 width: taffy::style::Dimension::Points(50f32),
10 height: taffy::style::Dimension::Points(50f32),
11 ..Default::default()
12 },
13 ..Default::default()
14 },
15 &[],
16 )
17 .unwrap();
18 let node1 = taffy
19 .new_node(
20 taffy::style::Style {
21 flex_shrink: 1f32,
22 size: taffy::geometry::Size {
23 width: taffy::style::Dimension::Points(50f32),
24 height: taffy::style::Dimension::Points(50f32),
25 ..Default::default()
26 },
27 ..Default::default()
28 },
29 &[],
30 )
31 .unwrap();
32 let node2 = taffy
33 .new_node(
34 taffy::style::Style {
35 flex_shrink: 0f32,
36 size: taffy::geometry::Size {
37 width: taffy::style::Dimension::Points(50f32),
38 height: taffy::style::Dimension::Points(50f32),
39 ..Default::default()
40 },
41 ..Default::default()
42 },
43 &[],
44 )
45 .unwrap();
46 let node = taffy
47 .new_node(
48 taffy::style::Style {
49 size: taffy::geometry::Size { width: taffy::style::Dimension::Points(75f32), ..Default::default() },
50 ..Default::default()
51 },
52 &[node0, node1, node2],
53 )
54 .unwrap();
55 taffy.compute_layout(node, taffy::geometry::Size::undefined()).unwrap();
56 assert_eq!(taffy.layout(node).unwrap().size.width, 75f32);
57 assert_eq!(taffy.layout(node).unwrap().size.height, 50f32);
58 assert_eq!(taffy.layout(node).unwrap().location.x, 0f32);
59 assert_eq!(taffy.layout(node).unwrap().location.y, 0f32);
60 assert_eq!(taffy.layout(node0).unwrap().size.width, 50f32);
61 assert_eq!(taffy.layout(node0).unwrap().size.height, 50f32);
62 assert_eq!(taffy.layout(node0).unwrap().location.x, 0f32);
63 assert_eq!(taffy.layout(node0).unwrap().location.y, 0f32);
64 assert_eq!(taffy.layout(node1).unwrap().size.width, 0f32);
65 assert_eq!(taffy.layout(node1).unwrap().size.height, 50f32);
66 assert_eq!(taffy.layout(node1).unwrap().location.x, 50f32);
67 assert_eq!(taffy.layout(node1).unwrap().location.y, 0f32);
68 assert_eq!(taffy.layout(node2).unwrap().size.width, 50f32);
69 assert_eq!(taffy.layout(node2).unwrap().size.height, 50f32);
70 assert_eq!(taffy.layout(node2).unwrap().location.x, 50f32);
71 assert_eq!(taffy.layout(node2).unwrap().location.y, 0f32);
72}