use ttf_parser::trak::Table;
use crate::{convert, Unit::*};
#[test]
fn empty() {
let data = convert(&[
Fixed(1.0), UInt16(0), UInt16(0), UInt16(0), UInt16(0), ]);
let table = Table::parse(&data).unwrap();
assert_eq!(table.horizontal.tracks.len(), 0);
assert_eq!(table.horizontal.sizes.len(), 0);
assert_eq!(table.vertical.tracks.len(), 0);
assert_eq!(table.vertical.sizes.len(), 0);
}
#[test]
fn basic() {
let data = convert(&[
Fixed(1.0), UInt16(0), UInt16(12), UInt16(0), UInt16(0),
UInt16(3), UInt16(2), UInt32(44),
Fixed(-1.0), UInt16(256), UInt16(52),
Fixed(0.0), UInt16(258), UInt16(60),
Fixed(1.0), UInt16(257), UInt16(56),
Fixed(12.0), Fixed(24.0),
Int16(-15),
Int16(-7),
Int16(50),
Int16(20),
Int16(0),
Int16(0),
]);
let table = Table::parse(&data).unwrap();
assert_eq!(table.horizontal.tracks.len(), 3);
assert_eq!(table.horizontal.tracks.get(0).unwrap().value, -1.0);
assert_eq!(table.horizontal.tracks.get(1).unwrap().value, 0.0);
assert_eq!(table.horizontal.tracks.get(2).unwrap().value, 1.0);
assert_eq!(table.horizontal.tracks.get(0).unwrap().name_index, 256);
assert_eq!(table.horizontal.tracks.get(1).unwrap().name_index, 258);
assert_eq!(table.horizontal.tracks.get(2).unwrap().name_index, 257);
assert_eq!(table.horizontal.tracks.get(0).unwrap().values.len(), 2);
assert_eq!(table.horizontal.tracks.get(0).unwrap().values.get(0).unwrap(), -15);
assert_eq!(table.horizontal.tracks.get(0).unwrap().values.get(1).unwrap(), -7);
assert_eq!(table.horizontal.tracks.get(1).unwrap().values.len(), 2);
assert_eq!(table.horizontal.tracks.get(1).unwrap().values.get(0).unwrap(), 0);
assert_eq!(table.horizontal.tracks.get(1).unwrap().values.get(1).unwrap(), 0);
assert_eq!(table.horizontal.tracks.get(2).unwrap().values.len(), 2);
assert_eq!(table.horizontal.tracks.get(2).unwrap().values.get(0).unwrap(), 50);
assert_eq!(table.horizontal.tracks.get(2).unwrap().values.get(1).unwrap(), 20);
assert_eq!(table.horizontal.sizes.len(), 2);
assert_eq!(table.horizontal.sizes.get(0).unwrap().0, 12.0);
assert_eq!(table.horizontal.sizes.get(1).unwrap().0, 24.0);
assert_eq!(table.vertical.tracks.len(), 0);
assert_eq!(table.vertical.sizes.len(), 0);
}