46 lines
1.4 KiB
Rust
46 lines
1.4 KiB
Rust
//! The [gasp](https://learn.microsoft.com/en-us/typography/opentype/spec/gasp) table
|
|
|
|
include!("../../generated/generated_gasp.rs");
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use font_test_data::bebuffer::BeBuffer;
|
|
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn smoke_test() {
|
|
let buf = BeBuffer::new()
|
|
.push(1u16) // version
|
|
.push(2u16) // number of records
|
|
.push(404u16) // record 1 ppem
|
|
.push(GaspRangeBehavior::GASP_GRIDFIT | GaspRangeBehavior::GASP_DOGRAY)
|
|
.push(u16::MAX)
|
|
.push(
|
|
GaspRangeBehavior::GASP_SYMMETRIC_GRIDFIT
|
|
| GaspRangeBehavior::GASP_SYMMETRIC_SMOOTHING,
|
|
);
|
|
|
|
let gasp = Gasp::read(buf.data().into()).unwrap();
|
|
assert_eq!(gasp.version(), 1);
|
|
assert_eq!(
|
|
gasp.gasp_ranges()[0],
|
|
GaspRange {
|
|
range_max_ppem: 404.into(),
|
|
range_gasp_behavior: (GaspRangeBehavior::GASP_GRIDFIT
|
|
| GaspRangeBehavior::GASP_DOGRAY)
|
|
.into(),
|
|
}
|
|
);
|
|
assert_eq!(
|
|
gasp.gasp_ranges()[1],
|
|
GaspRange {
|
|
range_max_ppem: u16::MAX.into(),
|
|
range_gasp_behavior: (GaspRangeBehavior::GASP_SYMMETRIC_GRIDFIT
|
|
| GaspRangeBehavior::GASP_SYMMETRIC_SMOOTHING)
|
|
.into(),
|
|
}
|
|
);
|
|
}
|
|
}
|