tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 788HTML 740Markdown 12TOML 62536 Sutichaykuna

⎇ 9e53f03adea2b770d68954e404d2fa407dfc7d40 tests/generated/align_baseline.rs Rust · 57 siq'ikuna · 2.2 KB Ñawpa willay Pi imata llamkarqan ch'uya

Layout algorithm decoupling, Sizing Constraints & Perf Improvements (#246) ba4cd3c3b · Nico Burns ·

1#[test]
2fn align_baseline() {
3    let mut taffy = taffy::Taffy::new();
4    let node0 = taffy
5        .new_with_children(
6            taffy::style::FlexboxLayout {
7                size: taffy::geometry::Size {
8                    width: taffy::style::Dimension::Points(50f32),
9                    height: taffy::style::Dimension::Points(50f32),
10                    ..Default::default()
11                },
12                ..Default::default()
13            },
14            &[],
15        )
16        .unwrap();
17    let node1 = taffy
18        .new_with_children(
19            taffy::style::FlexboxLayout {
20                size: taffy::geometry::Size {
21                    width: taffy::style::Dimension::Points(50f32),
22                    height: taffy::style::Dimension::Points(20f32),
23                    ..Default::default()
24                },
25                ..Default::default()
26            },
27            &[],
28        )
29        .unwrap();
30    let node = taffy
31        .new_with_children(
32            taffy::style::FlexboxLayout {
33                align_items: taffy::style::AlignItems::Baseline,
34                size: taffy::geometry::Size {
35                    width: taffy::style::Dimension::Points(100f32),
36                    height: taffy::style::Dimension::Points(100f32),
37                    ..Default::default()
38                },
39                ..Default::default()
40            },
41            &[node0, node1],
42        )
43        .unwrap();
44    taffy.compute_layout(node, taffy::geometry::Size::MAX_CONTENT).unwrap();
45    assert_eq!(taffy.layout(node).unwrap().size.width, 100f32);
46    assert_eq!(taffy.layout(node).unwrap().size.height, 100f32);
47    assert_eq!(taffy.layout(node).unwrap().location.x, 0f32);
48    assert_eq!(taffy.layout(node).unwrap().location.y, 0f32);
49    assert_eq!(taffy.layout(node0).unwrap().size.width, 50f32);
50    assert_eq!(taffy.layout(node0).unwrap().size.height, 50f32);
51    assert_eq!(taffy.layout(node0).unwrap().location.x, 0f32);
52    assert_eq!(taffy.layout(node0).unwrap().location.y, 0f32);
53    assert_eq!(taffy.layout(node1).unwrap().size.width, 50f32);
54    assert_eq!(taffy.layout(node1).unwrap().size.height, 20f32);
55    assert_eq!(taffy.layout(node1).unwrap().location.x, 50f32);
56    assert_eq!(taffy.layout(node1).unwrap().location.y, 30f32);
57}