⎇ 7bbb03eb96b50247931bc232204d201ef03fa69e
src/compute/grid/util/test_helpers.rs
Ñawpa willay
Pi imata llamkarqan
ch'uya
1//! Helpers for use in unit tests within the grid module
2use super::super::OriginZeroLine;
3use crate::style::{Dimension, GridPlacement, Style};
4use crate::{prelude::*, DefaultUnits};
5
6pub(crate) trait CreateParentTestNode {
7 fn into_grid(self) -> Style;
8}
9impl CreateParentTestNode for (f32, f32, i32, i32) {
10 fn into_grid(self) -> Style {
11 Style {
12 display: Display::Grid,
13 size: Size { width: Dimension::from_length(self.0), height: Dimension::from_length(self.1) },
14 grid_template_columns: vec![fr(1f32); self.2 as usize],
15 grid_template_rows: vec![fr(1f32); self.3 as usize],
16 ..Default::default()
17 }
18 }
19}
20pub(crate) trait CreateChildTestNode {
21 fn into_grid_child(self) -> Style;
22}
23impl CreateChildTestNode
24 for (GridPlacement<String>, GridPlacement<String>, GridPlacement<String>, GridPlacement<String>)
25{
26 fn into_grid_child(self) -> Style<DefaultUnits> {
27 Style {
28 display: Display::Grid,
29 grid_column: Line { start: self.0, end: self.1 },
30 grid_row: Line { start: self.2, end: self.3 },
31 ..Default::default()
32 }
33 }
34}
35
36pub(crate) trait CreateExpectedPlacement {
37 fn into_oz(self) -> (OriginZeroLine, OriginZeroLine, OriginZeroLine, OriginZeroLine);
38}
39impl CreateExpectedPlacement for (i16, i16, i16, i16) {
40 fn into_oz(self) -> (OriginZeroLine, OriginZeroLine, OriginZeroLine, OriginZeroLine) {
41 (OriginZeroLine(self.0), OriginZeroLine(self.1), OriginZeroLine(self.2), OriginZeroLine(self.3))
42 }
43}