read_fonts/tables/
head.rs1include!("../../generated/generated_head.rs");
4
5#[cfg(test)]
6mod tests {
7 use super::*;
8 use crate::{FontRef, TableProvider};
9 use font_test_data::bebuffer::BeBuffer;
10
11 #[test]
12 fn smoke_text() {
13 let buf = BeBuffer::new()
14 .extend([1u16, 0u16])
15 .push(Fixed::from_f64(2.8))
16 .extend([42u32, 0x5f0f3cf5])
17 .extend([16u16, 4096]) .extend([LongDateTime::new(-500), LongDateTime::new(101)])
19 .extend([-100i16, -50, 400, 711])
20 .extend([0u16, 12]) .extend([2i16, 1, 0]);
22
23 let head = super::Head::read(buf.data().into()).unwrap();
24 assert_eq!(head.version(), MajorMinor::VERSION_1_0);
25 assert_eq!(head.font_revision(), Fixed::from_f64(2.8));
26 assert_eq!(head.units_per_em(), 4096);
27 assert_eq!(head.created().as_secs(), -500);
28 assert_eq!(head.y_min(), -50);
29 assert_eq!(head.flags(), Flags::INSTRUCTIONS_MAY_ALTER_ADVANCE_WIDTH);
30 }
31
32 #[test]
33 fn flags() {
34 let head = FontRef::new(font_test_data::TINOS_SUBSET)
35 .unwrap()
36 .head()
37 .unwrap();
38 assert_eq!(
39 head.flags(),
40 Flags::BASELINE_AT_Y_0
41 | Flags::FORCE_INTEGER_PPEM
42 | Flags::INSTRUCTIONS_MAY_ALTER_ADVANCE_WIDTH
43 );
44 }
45}