FeatureProof is a Mac OS X application for testing built on top of Compositor. It makes it easy for type designers to test OpenType features.
FeatureProof allows for two types of testing: interactive and programmatic. Interactive testing is just that; you type in text, flip features on and off, etc. Programmatic testing allows you to define a series of test cases -- script, language, feature states, input text and expected output -- and execute the tests on a font. This is extremely useful when developing complex OpenType features. The results of these tests are reported in the application. The tests can also be output as a PDF or as InDesign Tagged Text. A sample test file can be seen here.
Download
Beta 1 can be downloaded here.
Bug reports would be greatly appreciated. You can contact me on my main site.
Preliminary Documentation
Preview Mode
Type test in the text entry field and set language, script, feature and case states with the controls on the left. If a feature contains one or more GSUB lookup type 3 subtables, any affected glyphs will be colored blue. Control-click the glyph to see a list of the alternate glyphs.
List Mode
This is the same as preview mode, but instead of showing glyphs, it shows a list of glyph records.
Log Mode
This shows the complete GSUB and GPOS history for the set text, script, language and feature states.
Test Mode
This allows you to import one or more test case files (syntax to be documented), evaluate the tests and study the results. The results can be exported to a PDF or an InDesign Tagged Text file. A sample file is included with the application. After evaluating the tests, if an expected result was defined in a test case, the preview will show the result compared with the expected result. If the test passed, the expected result will have a green background. If the test failed, it will have a red background.
The test files are simple text and the file names must end with .featest. The syntax is as follows:
Comments can be stored in the file. They will be invisible in the output. To add a comment, begin a line with #.
# This is invisible in the output.
Notes can be written into the final output. To add a note, begin a line with !.
! This is visible in the output.
A script can be specified one or more times in the file. To specify the script, begin a line with ^ and follow it with an OpenType script tag.
^ cyrl
A language can be specified one or more times in the file. To specify the language, begin a line with @ and follow it with an OpenType language tag. To indicate that no particular language should be used use None.
@ TRK
The direction of the text can be specified one or more times in the file. To specify the direction, use * left to indicate left to right or * right to indicate right to left.
* left
To specify input text, begin a line with > and follow it with glyph names.
> T h i s space i s space a space t e s t exclam
Optionally, it is possible to specify expected output. If expected output is specified, FeatureProof will report any failing tests. Expected results can be specified as glyph names or glyph records. If glyph records are specified the placement and x advance values from the GPOS table will be tested along with the glyph names.
To specify an expected result as glyph names, begin a line with < and follow it with glyph names.
< T h i s space i s space a space t e s t exclam
To specify an expected result as glyph records, begin a line with < and follow it with glyph records. Glyph records are specified as glyph name, x placement, y placement, x advance and y advance between < and >.
< <T 0 0 0 0> <h 0 0 0 0> <i 0 0 0 0> <s 0 0 0 0> <space 0 0 0 0> <i 0 0 0 0> <s 0 0 0 0> <space 0 0 0 0> <a 0 0 0 0> <space 0 0 0 0> <t 0 0 0 0> <e 0 0 0 0> <s 0 0 0 0> <t 0 0 0 0> <exclam 0 0 0 0>
Browse Mode
This allows you to browse through the GDEF, GSUB and GPOS tables in the font.
System Requirements
- Mac OS 10.4+
Known Issues
- FeatureProof is subject to the limitations of Compositor. Compositor can handle most, but not all, lookup types.
- The Log and Test views can be slow if a large amount of data is to be displayed.
- The application has no icon.
- The scroll view-within-scroll view column is not so attractive.
Running from Source
Dependencies
- Compositor
- Vanilla
- fontAppTools
- ElementTree/cElementTree (Used by the log and test case modes)
- ReportLab (used for PDF export)
Source Code
The source code can be browsed here. Or, you can check it out with Subversion at http://svn.typesupply.com/applications/!FeatureProof.
Attachments
- FeatureProof_Preview.png (59.3 kB) - added by tal on 09/18/07 15:52:45.
- FeatureProof_List.png (56.7 kB) - added by tal on 09/18/07 15:55:29.
- FeatureProof_Log.png (100.1 kB) - added by tal on 09/18/07 15:57:47.
- FeatureProof_Test.png (77.6 kB) - added by tal on 09/18/07 15:59:22.
- FeatureProof_Browse.png (78.2 kB) - added by tal on 09/18/07 16:00:22.





