tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

HTML 5464Rust 87Markdown 12TOML 91903 Definitions

⎇ bce89b1006f36ce35abfaf1f1c2b3dd95f3dffd3 tests/root_constraints.rs Rust · 77 lines · 2.4 KB History Who touched what raw

Update handwritten tests to API changes cd191eadc · msiglreith ·

1#[cfg(test)]
2mod root_constraints {
3    use stretch::number::*;
4
5    #[test]
6    fn root_with_percentage_size() {
7        let mut stretch = stretch::node::Stretch::new();
8        let node = stretch
9            .new_node(
10                stretch::style::Style {
11                    size: stretch::geometry::Size {
12                        width: stretch::style::Dimension::Percent(1.0),
13                        height: stretch::style::Dimension::Percent(1.0),
14                    },
15                    ..Default::default()
16                },
17                vec![],
18            )
19            .unwrap();
20
21        stretch
22            .compute_layout(
23                node,
24                stretch::geometry::Size { width: Number::Defined(100.0), height: Number::Defined(200.0) },
25            )
26            .unwrap();
27        let layout = stretch.layout(node).unwrap();
28
29        assert_eq!(layout.size.width, 100.0);
30        assert_eq!(layout.size.height, 200.0);
31    }
32
33    #[test]
34    fn root_with_no_size() {
35        let mut stretch = stretch::node::Stretch::new();
36        let node = stretch.new_node(stretch::style::Style { ..Default::default() }, vec![]).unwrap();
37
38        stretch
39            .compute_layout(
40                node,
41                stretch::geometry::Size { width: Number::Defined(100.0), height: Number::Defined(100.0) },
42            )
43            .unwrap();
44        let layout = stretch.layout(node).unwrap();
45
46        assert_eq!(layout.size.width, 0.0);
47        assert_eq!(layout.size.height, 0.0);
48    }
49
50    #[test]
51    fn root_with_larger_size() {
52        let mut stretch = stretch::node::Stretch::new();
53        let node = stretch
54            .new_node(
55                stretch::style::Style {
56                    size: stretch::geometry::Size {
57                        width: stretch::style::Dimension::Points(200.0),
58                        height: stretch::style::Dimension::Points(200.0),
59                    },
60                    ..Default::default()
61                },
62                vec![],
63            )
64            .unwrap();
65
66        stretch
67            .compute_layout(
68                node,
69                stretch::geometry::Size { width: Number::Defined(100.0), height: Number::Defined(100.0) },
70            )
71            .unwrap();
72        let layout = stretch.layout(node).unwrap();
73
74        assert_eq!(layout.size.width, 200.0);
75        assert_eq!(layout.size.height, 200.0);
76    }
77}