makepad/libs/sdfer/tests/edge-cases.rs

32 lines
899 B
Rust

use sdfer::{esdt, Image2d, Unorm8};
#[test]
fn simple_3x3() {
fn sdf_of(inputs: [f32; 9]) -> [f32; 9] {
let pad = 1;
let (sdf, _) = esdt::glyph_to_sdf(
&mut Image2d::from_storage(3, 3, inputs.map(Unorm8::encode)),
esdt::Params {
pad,
..Default::default()
},
None,
);
[0, 1, 2, 3, 4, 5, 6, 7, 8].map(|i| sdf[(pad + i % 3, pad + i / 3)].decode())
}
// FIXME(eddyb) add more test cases.
assert_eq!(
// HACK(eddyb) trailing comments keeps `rustfmt` helpful.
sdf_of([
0.00, 0.85, 0.00, //
0.85, 0.90, 0.85, //
0.00, 0.85, 0.00, //
]),
[
0.58431375, 0.8980392, 0.58431375, //
0.89803920, 1.0000000, 0.89803920, //
0.58431375, 0.8980392, 0.58431375, //
]
);
}