# Tests for the MathML Core specification

This directory contains tests for the
[MathML Core specification](https://w3c.github.io/mathml-core/).
Many of the tests verify OpenType features and require specific Web fonts for
that purpose. WOFF fonts are generated by scripts in the `tools/` folder using
the Python API of
[fontforge](https://github.com/fontforge/fontforge/). A recent enough version
of FontForge is necessary so that it includes fixes for
[WOFF checkSumAdjustment](https://github.com/fontforge/fontforge/issues/926),
[USE_TYPO_METRICS flag](https://github.com/fontforge/fontforge/pull/2274) and
for other various bugs.
