gioser

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 497HTML 254C 19JavaScript 81329 Definiciones

⎇ a1e91740880b61f1c39c9114b628ff09655141a9 tests/generated/absolute_layout_within_border.rs Rust · 142 líneas · 6.2 KB Historia Quién tocó qué crudo

Rename generated files (#80) 78c5e05ef · Andreas Weibye ·

1#[test]
2fn absolute_layout_within_border() {
3    let mut sprawl = sprawl::Sprawl::new();
4    let node0 = sprawl
5        .new_node(
6            sprawl::style::Style {
7                position_type: sprawl::style::PositionType::Absolute,
8                size: sprawl::geometry::Size {
9                    width: sprawl::style::Dimension::Points(50f32),
10                    height: sprawl::style::Dimension::Points(50f32),
11                    ..Default::default()
12                },
13                position: sprawl::geometry::Rect {
14                    start: sprawl::style::Dimension::Points(0f32),
15                    top: sprawl::style::Dimension::Points(0f32),
16                    ..Default::default()
17                },
18                ..Default::default()
19            },
20            &[],
21        )
22        .unwrap();
23    let node1 = sprawl
24        .new_node(
25            sprawl::style::Style {
26                position_type: sprawl::style::PositionType::Absolute,
27                size: sprawl::geometry::Size {
28                    width: sprawl::style::Dimension::Points(50f32),
29                    height: sprawl::style::Dimension::Points(50f32),
30                    ..Default::default()
31                },
32                position: sprawl::geometry::Rect {
33                    end: sprawl::style::Dimension::Points(0f32),
34                    bottom: sprawl::style::Dimension::Points(0f32),
35                    ..Default::default()
36                },
37                ..Default::default()
38            },
39            &[],
40        )
41        .unwrap();
42    let node2 = sprawl
43        .new_node(
44            sprawl::style::Style {
45                position_type: sprawl::style::PositionType::Absolute,
46                size: sprawl::geometry::Size {
47                    width: sprawl::style::Dimension::Points(50f32),
48                    height: sprawl::style::Dimension::Points(50f32),
49                    ..Default::default()
50                },
51                margin: sprawl::geometry::Rect {
52                    start: sprawl::style::Dimension::Points(10f32),
53                    end: sprawl::style::Dimension::Points(10f32),
54                    top: sprawl::style::Dimension::Points(10f32),
55                    bottom: sprawl::style::Dimension::Points(10f32),
56                    ..Default::default()
57                },
58                position: sprawl::geometry::Rect {
59                    start: sprawl::style::Dimension::Points(0f32),
60                    top: sprawl::style::Dimension::Points(0f32),
61                    ..Default::default()
62                },
63                ..Default::default()
64            },
65            &[],
66        )
67        .unwrap();
68    let node3 = sprawl
69        .new_node(
70            sprawl::style::Style {
71                position_type: sprawl::style::PositionType::Absolute,
72                size: sprawl::geometry::Size {
73                    width: sprawl::style::Dimension::Points(50f32),
74                    height: sprawl::style::Dimension::Points(50f32),
75                    ..Default::default()
76                },
77                margin: sprawl::geometry::Rect {
78                    start: sprawl::style::Dimension::Points(10f32),
79                    end: sprawl::style::Dimension::Points(10f32),
80                    top: sprawl::style::Dimension::Points(10f32),
81                    bottom: sprawl::style::Dimension::Points(10f32),
82                    ..Default::default()
83                },
84                position: sprawl::geometry::Rect {
85                    end: sprawl::style::Dimension::Points(0f32),
86                    bottom: sprawl::style::Dimension::Points(0f32),
87                    ..Default::default()
88                },
89                ..Default::default()
90            },
91            &[],
92        )
93        .unwrap();
94    let node = sprawl
95        .new_node(
96            sprawl::style::Style {
97                size: sprawl::geometry::Size {
98                    width: sprawl::style::Dimension::Points(100f32),
99                    height: sprawl::style::Dimension::Points(100f32),
100                    ..Default::default()
101                },
102                padding: sprawl::geometry::Rect {
103                    start: sprawl::style::Dimension::Points(10f32),
104                    end: sprawl::style::Dimension::Points(10f32),
105                    top: sprawl::style::Dimension::Points(10f32),
106                    bottom: sprawl::style::Dimension::Points(10f32),
107                    ..Default::default()
108                },
109                border: sprawl::geometry::Rect {
110                    start: sprawl::style::Dimension::Points(10f32),
111                    end: sprawl::style::Dimension::Points(10f32),
112                    top: sprawl::style::Dimension::Points(10f32),
113                    bottom: sprawl::style::Dimension::Points(10f32),
114                    ..Default::default()
115                },
116                ..Default::default()
117            },
118            &[node0, node1, node2, node3],
119        )
120        .unwrap();
121    sprawl.compute_layout(node, sprawl::geometry::Size::undefined()).unwrap();
122    assert_eq!(sprawl.layout(node).unwrap().size.width, 100f32);
123    assert_eq!(sprawl.layout(node).unwrap().size.height, 100f32);
124    assert_eq!(sprawl.layout(node).unwrap().location.x, 0f32);
125    assert_eq!(sprawl.layout(node).unwrap().location.y, 0f32);
126    assert_eq!(sprawl.layout(node0).unwrap().size.width, 50f32);
127    assert_eq!(sprawl.layout(node0).unwrap().size.height, 50f32);
128    assert_eq!(sprawl.layout(node0).unwrap().location.x, 10f32);
129    assert_eq!(sprawl.layout(node0).unwrap().location.y, 10f32);
130    assert_eq!(sprawl.layout(node1).unwrap().size.width, 50f32);
131    assert_eq!(sprawl.layout(node1).unwrap().size.height, 50f32);
132    assert_eq!(sprawl.layout(node1).unwrap().location.x, 40f32);
133    assert_eq!(sprawl.layout(node1).unwrap().location.y, 40f32);
134    assert_eq!(sprawl.layout(node2).unwrap().size.width, 50f32);
135    assert_eq!(sprawl.layout(node2).unwrap().size.height, 50f32);
136    assert_eq!(sprawl.layout(node2).unwrap().location.x, 20f32);
137    assert_eq!(sprawl.layout(node2).unwrap().location.y, 20f32);
138    assert_eq!(sprawl.layout(node3).unwrap().size.width, 50f32);
139    assert_eq!(sprawl.layout(node3).unwrap().size.height, 50f32);
140    assert_eq!(sprawl.layout(node3).unwrap().location.x, 30f32);
141    assert_eq!(sprawl.layout(node3).unwrap().location.y, 30f32);
142}