tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 1061HTML 997Markdown 12TOML 83120 Definitions

⎇ direction-floats tests/border_and_padding.rs Rust · 111 lines · 3.3 KB History Who touched what raw

Use tagged pointer to represent size/length values (#769) afa6437b0 · Nico Burns ·

1use taffy::prelude::*;
2use taffy::style_helpers::TaffyZero;
3use taffy_test_helpers::new_test_tree;
4
5fn arr_to_rect<T: Copy>(items: [T; 4]) -> Rect<T> {
6    Rect { left: items[0], right: items[1], top: items[2], bottom: items[3] }
7}
8
9#[test]
10#[ignore]
11fn border_on_a_single_axis_doesnt_increase_size() {
12    for i in 0..4 {
13        let mut taffy = new_test_tree();
14        let node = taffy
15            .new_leaf(Style {
16                border: {
17                    let mut lengths = [LengthPercentage::ZERO; 4];
18                    lengths[i] = LengthPercentage::from_length(10.);
19                    arr_to_rect(lengths)
20                },
21                ..Default::default()
22            })
23            .unwrap();
24
25        taffy
26            .compute_layout(
27                node,
28                Size { width: AvailableSpace::Definite(100.0), height: AvailableSpace::Definite(100.0) },
29            )
30            .unwrap();
31
32        let layout = taffy.layout(node).unwrap();
33        assert_eq!(layout.size.width * layout.size.height, 0.);
34    }
35}
36
37#[test]
38#[ignore]
39fn padding_on_a_single_axis_doesnt_increase_size() {
40    for i in 0..4 {
41        let mut taffy = new_test_tree();
42        let node = taffy
43            .new_leaf(Style {
44                padding: {
45                    let mut lengths = [LengthPercentage::ZERO; 4];
46                    lengths[i] = LengthPercentage::from_length(10.);
47                    arr_to_rect(lengths)
48                },
49                ..Default::default()
50            })
51            .unwrap();
52
53        taffy
54            .compute_layout(
55                node,
56                Size { width: AvailableSpace::Definite(100.0), height: AvailableSpace::Definite(100.0) },
57            )
58            .unwrap();
59
60        let layout = taffy.layout(node).unwrap();
61        assert_eq!(layout.size.width * layout.size.height, 0.);
62    }
63}
64
65#[test]
66#[ignore]
67fn border_and_padding_on_a_single_axis_doesnt_increase_size() {
68    for i in 0..4 {
69        let mut taffy = new_test_tree();
70        let rect = {
71            let mut lengths = [LengthPercentage::ZERO; 4];
72            lengths[i] = LengthPercentage::from_length(10.);
73            arr_to_rect(lengths)
74        };
75        let node = taffy.new_leaf(Style { border: rect, padding: rect, ..Default::default() }).unwrap();
76
77        taffy
78            .compute_layout(
79                node,
80                Size { width: AvailableSpace::Definite(100.0), height: AvailableSpace::Definite(100.0) },
81            )
82            .unwrap();
83        let layout = taffy.layout(node).unwrap();
84        assert_eq!(layout.size.width * layout.size.height, 0.);
85    }
86}
87
88#[test]
89#[ignore]
90fn vertical_border_and_padding_percentage_values_use_available_space_correctly() {
91    let mut taffy = new_test_tree();
92
93    let node = taffy
94        .new_leaf(Style {
95            padding: Rect {
96                left: LengthPercentage::from_percent(1.0),
97                top: LengthPercentage::from_percent(1.0),
98                ..Rect::zero()
99            },
100            ..Default::default()
101        })
102        .unwrap();
103
104    taffy
105        .compute_layout(node, Size { width: AvailableSpace::Definite(200.0), height: AvailableSpace::Definite(100.0) })
106        .unwrap();
107
108    let layout = taffy.layout(node).unwrap();
109    assert_eq!(layout.size.width, 200.0);
110    assert_eq!(layout.size.height, 200.0);
111}