#lang racket
(require rackunit racket/runtime-path fontland)

#|
approximates
https://github.com/mbutterick/fontkit/blob/master/test/metadata.js
|#

#|
import fontkit from '../src';
import assert from 'assert';
import BBox from '../src/glyph/BBox';

describe('metadata', function() {
  let font = fontkit.openSync(__dirname + '/data/NotoSans/NotoSans.ttc', 'NotoSans');

  it('has metadata properties', function() {
    assert.equal(font.fullName, 'Noto Sans');
    assert.equal(font.postscriptName, 'NotoSans');
    assert.equal(font.familyName, 'Noto Sans');
    assert.equal(font.subfamilyName, 'Regular');
    assert.equal(font.copyright, 'Copyright 2012 Google Inc. All Rights Reserved.');
    return assert.equal(font.version, 'Version 1.05 uh');
  });

  it('exposes some metrics', function() {
    assert.equal(font.unitsPerEm, 2048);
    assert.equal(font.ascent | 0, 2189);
    assert.equal(font.descent | 0, -600);
    assert.equal(font.lineGap, 0);
    assert.equal(font.underlinePosition, -154);
    assert.equal(font.underlineThickness, 102);
    assert.equal(font.italicAngle, 0);
    assert.equal(font.capHeight, 1462);
    assert.equal(font.xHeight, 1098);
    assert.equal(font.numGlyphs, 8708);
    return assert.deepEqual(font.bbox, new BBox(-1268, -600, 2952, 2189));
  });

  it('exposes tables directly', function() {
    let iterable = ['head', 'hhea', 'OS/2', 'post'];
    for (let i = 0; i < iterable.length; i++) {
      let table = iterable[i];
      assert.equal(typeof font[table], 'object');
    }
  });
});
|#