//! What a drawing can be taken out of, and what it cannot. use iris::core::{Remap, UiRegion, UiScalar, UiSpan}; /// A box `size` tall whose top is `rel` of the way down the window. fn fixed(rel: f32, size: f32) -> UiRegion { UiRegion::new( UiSpan::FULL, UiSpan::new(UiScalar { rel, abs: 0.0 }, UiScalar { rel, abs: size }), ) } #[test] fn a_fixed_box_can_be_carried_but_not_stretched() { let from = fixed(0.0, 164.0); assert!(Remap::new(from, UiRegion::FULL).is_none()); assert!(Remap::new(from, fixed(0.5, 164.0)).is_some()); assert!(Remap::new(from, fixed(0.0, 98.0)).is_none()); } #[test] fn a_relative_box_can_be_stretched_to_any_other() { let remap = Remap::new(UiRegion::FULL, fixed(0.0, 98.0)).expect("relative boxes remap"); // A part that filled the window keeps filling what replaced it, which is // exactly what `outside` could not say for a box of a fixed length. assert_eq!(remap.apply(UiRegion::FULL), fixed(0.0, 98.0)); }