Reviewed-on: #16 Reviewed-by: iris <2+iris@noreply.localhost> Co-authored-by: iris-ai <4+iris-ai@noreply.localhost>
28 lines
998 B
Rust
28 lines
998 B
Rust
//! 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));
|
|
}
|