From c3a3b6b438ff77b39767885902eb241835584c12 Mon Sep 17 00:00:00 2001 From: Zachary Quinn Scheuren Date: Tue, 13 Aug 2024 14:48:09 -0700 Subject: [PATCH] Add makeinstancesufo support for strict flag passed to ufoProcessor/fontMath --- python/afdko/makeinstancesufo.py | 28 +++++++--- requirements.txt | 2 +- .../Dummy-ExtraMinus.ufo/fontinfo.plist | 15 +++++ .../Dummy-ExtraPlus.ufo/fontinfo.plist | 15 +++++ .../anisotropic.ufo/groups.plist | 56 +++++++++++++++++++ .../expected_output/bend1.ufo/features.fea | 14 +++++ .../expected_output/bend2.ufo/features.fea | 14 +++++ .../expected_output/bend3.ufo/features.fea | 14 +++++ .../expected_output/black.ufo/groups.plist | 56 +++++++++++++++++++ .../expected_output/bold.ufo/groups.plist | 56 +++++++++++++++++++ .../extralight.ufo/groups.plist | 56 +++++++++++++++++++ .../features_copy1.ufo/features.fea | 2 +- .../features_copy2.ufo/features.fea | 2 +- .../expected_output/light.ufo/groups.plist | 56 +++++++++++++++++++ .../overlapping-Black.ufo/features.fea | 11 ++++ .../overlapping-Black.ufo/fontinfo.plist | 56 +++++++++++++++++++ .../overlapping-Black.ufo/glyphs/_notdef.glif | 6 ++ .../glyphs/contents.plist | 10 ++++ .../glyphs/iamaglyph.glif | 39 +++++++++++++ .../overlapping-Black.ufo/layercontents.plist | 10 ++++ .../overlapping-Black.ufo/lib.plist | 11 ++++ .../overlapping-Black.ufo/metainfo.plist | 10 ++++ .../overlapping-Thin.ufo/features.fea | 11 ++++ .../overlapping-Thin.ufo/fontinfo.plist | 56 +++++++++++++++++++ .../overlapping-Thin.ufo/glyphs/_notdef.glif | 6 ++ .../glyphs/contents.plist | 10 ++++ .../glyphs/iamaglyph.glif | 39 +++++++++++++ .../overlapping-Thin.ufo/layercontents.plist | 10 ++++ .../overlapping-Thin.ufo/lib.plist | 11 ++++ .../overlapping-Thin.ufo/metainfo.plist | 10 ++++ .../expected_output/regular.ufo/groups.plist | 56 +++++++++++++++++++ .../expected_output/regular1.ufo/groups.plist | 56 +++++++++++++++++++ .../expected_output/semibold.ufo/groups.plist | 56 +++++++++++++++++++ .../expected_output/ufo2.ufo/fontinfo.plist | 3 + .../expected_output/ufo2.ufo/glyphs/A_.glif | 14 ++--- .../ufo2.ufo/glyphs/A_acute.glif | 2 +- .../ufo2.ufo/glyphs/A_dieresis.glif | 2 +- .../ufo2.ufo/glyphs/A_tilde.glif | 2 +- .../expected_output/ufo2.ufo/glyphs/Y_.glif | 10 +--- .../ufo2.ufo/glyphs/Y_acute.glif | 2 +- .../ufo2.ufo/glyphs/Y_dieresis.glif | 2 +- .../ufo2.ufo/glyphs/Y_tilde.glif | 2 +- .../expected_output/ufo2.ufo/glyphs/a.glif | 14 ++--- .../ufo2.ufo/glyphs/aacute.glif | 2 +- .../ufo2.ufo/glyphs/acutecmb.cap.glif | 6 +- .../ufo2.ufo/glyphs/acutecmb.glif | 6 +- .../ufo2.ufo/glyphs/adieresis.glif | 2 +- .../ufo2.ufo/glyphs/atilde.glif | 2 +- .../ufo2.ufo/glyphs/dieresiscmb.cap.glif | 6 +- .../ufo2.ufo/glyphs/dieresiscmb.glif | 10 +--- .../ufo2.ufo/glyphs/tildecmb.cap.glif | 6 +- .../ufo2.ufo/glyphs/tildecmb.glif | 6 +- .../expected_output/ufo2.ufo/glyphs/y.glif | 10 +--- .../ufo2.ufo/glyphs/yacute.glif | 2 +- .../ufo2.ufo/glyphs/ydieresis.glif | 2 +- .../ufo2.ufo/glyphs/ytilde.glif | 2 +- .../expected_output/ufo2.ufo/groups.plist | 56 +++++++++++++++++++ .../expected_output/ufo2.ufo/kerning.plist | 46 +++++++-------- .../ufo3semibold.ufo/fontinfo.plist | 3 + .../ufo3semibold.ufo/glyphs/A_.glif | 14 ++--- .../ufo3semibold.ufo/glyphs/A_acute.glif | 2 +- .../ufo3semibold.ufo/glyphs/A_dieresis.glif | 2 +- .../ufo3semibold.ufo/glyphs/A_tilde.glif | 2 +- .../ufo3semibold.ufo/glyphs/Y_.glif | 10 +--- .../ufo3semibold.ufo/glyphs/Y_acute.glif | 2 +- .../ufo3semibold.ufo/glyphs/Y_dieresis.glif | 2 +- .../ufo3semibold.ufo/glyphs/Y_tilde.glif | 2 +- .../ufo3semibold.ufo/glyphs/a.glif | 14 ++--- .../ufo3semibold.ufo/glyphs/aacute.glif | 2 +- .../ufo3semibold.ufo/glyphs/acutecmb.cap.glif | 6 +- .../ufo3semibold.ufo/glyphs/acutecmb.glif | 6 +- .../ufo3semibold.ufo/glyphs/adieresis.glif | 2 +- .../ufo3semibold.ufo/glyphs/atilde.glif | 2 +- .../glyphs/dieresiscmb.cap.glif | 6 +- .../ufo3semibold.ufo/glyphs/dieresiscmb.glif | 10 +--- .../ufo3semibold.ufo/glyphs/tildecmb.cap.glif | 6 +- .../ufo3semibold.ufo/glyphs/tildecmb.glif | 6 +- .../ufo3semibold.ufo/glyphs/y.glif | 10 +--- .../ufo3semibold.ufo/glyphs/yacute.glif | 2 +- .../ufo3semibold.ufo/glyphs/ydieresis.glif | 2 +- .../ufo3semibold.ufo/glyphs/ytilde.glif | 2 +- .../OverlappingPoints-Black.ufo/features.fea | 11 ++++ .../fontinfo.plist | 56 +++++++++++++++++++ .../glyphs/_notdef.glif | 6 ++ .../glyphs/contents.plist | 10 ++++ .../glyphs/iamaglyph.glif | 39 +++++++++++++ .../glyphs/layerinfo.plist | 8 +++ .../layercontents.plist | 10 ++++ .../OverlappingPoints-Black.ufo/lib.plist | 11 ++++ .../metainfo.plist | 10 ++++ .../features.fea | 11 ++++ .../fontinfo.plist | 56 +++++++++++++++++++ .../glyphs/_notdef.glif | 6 ++ .../glyphs/contents.plist | 10 ++++ .../glyphs/iamaglyph.glif | 39 +++++++++++++ .../glyphs/layerinfo.plist | 8 +++ .../layercontents.plist | 10 ++++ .../OverlappingPoints-Regular.ufo/lib.plist | 11 ++++ .../metainfo.plist | 10 ++++ .../OverlappingPoints-Thin.ufo/features.fea | 11 ++++ .../OverlappingPoints-Thin.ufo/fontinfo.plist | 56 +++++++++++++++++++ .../glyphs/_notdef.glif | 6 ++ .../glyphs/contents.plist | 10 ++++ .../glyphs/iamaglyph.glif | 39 +++++++++++++ .../glyphs/layerinfo.plist | 8 +++ .../layercontents.plist | 10 ++++ .../OverlappingPoints-Thin.ufo/lib.plist | 11 ++++ .../OverlappingPoints-Thin.ufo/metainfo.plist | 10 ++++ .../input/OverlappingPoints.designspace | 43 ++++++++++++++ .../input/font.designspace | 2 +- tests/makeinstancesufo_test.py | 16 ++++++ 111 files changed, 1555 insertions(+), 181 deletions(-) create mode 100644 tests/makeinstancesufo_data/expected_output/bend1.ufo/features.fea create mode 100644 tests/makeinstancesufo_data/expected_output/bend2.ufo/features.fea create mode 100644 tests/makeinstancesufo_data/expected_output/bend3.ufo/features.fea create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/features.fea create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/fontinfo.plist create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/_notdef.glif create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/contents.plist create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/iamaglyph.glif create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/layercontents.plist create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/lib.plist create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/metainfo.plist create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/features.fea create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/fontinfo.plist create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/_notdef.glif create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/contents.plist create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/iamaglyph.glif create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/layercontents.plist create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/lib.plist create mode 100644 tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/metainfo.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/features.fea create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/fontinfo.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/_notdef.glif create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/contents.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/iamaglyph.glif create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/layerinfo.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/layercontents.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/lib.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/metainfo.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/features.fea create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/fontinfo.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/_notdef.glif create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/contents.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/iamaglyph.glif create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/layerinfo.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/layercontents.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/lib.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/metainfo.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/features.fea create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/fontinfo.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/_notdef.glif create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/contents.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/iamaglyph.glif create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/layerinfo.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/layercontents.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/lib.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/metainfo.plist create mode 100644 tests/makeinstancesufo_data/input/OverlappingPoints.designspace diff --git a/python/afdko/makeinstancesufo.py b/python/afdko/makeinstancesufo.py index 42d664372..d144bcb46 100644 --- a/python/afdko/makeinstancesufo.py +++ b/python/afdko/makeinstancesufo.py @@ -1,9 +1,10 @@ # Copyright 2015 Adobe. All rights reserved. """ -Generates UFO font instances from a set of master UFO fonts. -It uses the mutatorMath library. The paths to the masters and -instances fonts are specified in the .designspace file. +Generates UFO font instances from a set of source UFO fonts +using either MutatorMath or the fontTools varLib library. +The paths to the source and instance fonts are specified in +the .designspace file. """ import argparse @@ -22,7 +23,7 @@ from defcon import Font from .otfautohint.__main__ import main as otfautohint from ufonormalizer import normalizeUFO -from ufoProcessor import build as ufoProcessorBuild +from ufoProcessor.ufoOperator import UFOOperator from afdko.checkoutlinesufo import run as checkoutlinesUFO from afdko.fdkutils import ( @@ -336,10 +337,15 @@ def run(options): tool_str = "fontTools.varlib" if options.useVarlib else "MutatorMath" info_str = f"Building {newInstancesCount} {icnt_str} with {tool_str} ..." logger.info(info_str) - ufoProcessorBuild(documentPath=dsPath, - outputUFOFormatVersion=options.ufo_version, - roundGeometry=(not options.no_round), - logger=logger, useVarlib=options.useVarlib) + ufoOperator = UFOOperator(pathOrObject=dsPath, + ufoVersion=options.ufo_version, + useVarlib=options.useVarlib, + extrapolate=True, + strict=options.strict, + debug=options.verbose > 2) + ufoOperator.roundGeometry = (not options.no_round) + ufoOperator.loadFonts() + ufoOperator.generateUFOs() # Remove temporary designspace file if (dsPath != options.dsPath) and os.path.exists(dsPath): @@ -470,6 +476,12 @@ def get_options(args): action='store_true', help='do NOT round coordinates to integer' ) + parser.add_argument( + '-s', + '--strict', + action='store_true', + help='Pass the strict flag to ufoProcessor' + ) parser.add_argument( '-i', metavar='INDEX(ES)', diff --git a/requirements.txt b/requirements.txt index faa60f57b..6afb636f6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,4 +9,4 @@ fontMath==0.9.3 fontTools[unicode,woff,lxml,ufo]==4.43.0 tqdm==4.66.1 ufonormalizer==0.6.1 -ufoProcessor==1.9.0 +ufoProcessor==1.13.1 diff --git a/tests/makeinstancesufo_data/expected_output/Dummy-ExtraMinus.ufo/fontinfo.plist b/tests/makeinstancesufo_data/expected_output/Dummy-ExtraMinus.ufo/fontinfo.plist index 226852100..9184e4562 100644 --- a/tests/makeinstancesufo_data/expected_output/Dummy-ExtraMinus.ufo/fontinfo.plist +++ b/tests/makeinstancesufo_data/expected_output/Dummy-ExtraMinus.ufo/fontinfo.plist @@ -6,6 +6,8 @@ 750 capHeight 750 + copyright + Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. descender -250 familyName @@ -15,6 +17,11 @@ italicAngle 0 + openTypeNameLicense + This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is available with a FAQ at: http://scripts.sil.org/OFL. This Font Software is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software. + openTypeNameLicenseURL + http://scripts.sil.org/OFL postscriptBlueFuzz 0 postscriptBlueScale @@ -60,6 +67,8 @@ postscriptFontName Dummy-ExtraMinus + postscriptForceBold + postscriptOtherBlues -243 @@ -81,8 +90,14 @@ 50 styleName Extra Minus + trademark + Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. unitsPerEm 1000 + versionMajor + 2 + versionMinor + 0 xHeight 500 diff --git a/tests/makeinstancesufo_data/expected_output/Dummy-ExtraPlus.ufo/fontinfo.plist b/tests/makeinstancesufo_data/expected_output/Dummy-ExtraPlus.ufo/fontinfo.plist index 16c9ed1a4..2780d2628 100644 --- a/tests/makeinstancesufo_data/expected_output/Dummy-ExtraPlus.ufo/fontinfo.plist +++ b/tests/makeinstancesufo_data/expected_output/Dummy-ExtraPlus.ufo/fontinfo.plist @@ -6,6 +6,8 @@ 750 capHeight 750 + copyright + Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. descender -250 familyName @@ -15,6 +17,11 @@ italicAngle 0 + openTypeNameLicense + This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is available with a FAQ at: http://scripts.sil.org/OFL. This Font Software is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software. + openTypeNameLicenseURL + http://scripts.sil.org/OFL postscriptBlueFuzz 0 postscriptBlueScale @@ -60,6 +67,8 @@ postscriptFontName Dummy-ExtraPlus + postscriptForceBold + postscriptOtherBlues -165 @@ -81,8 +90,14 @@ 50 styleName Extra Plus + trademark + Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. unitsPerEm 1000 + versionMajor + 2 + versionMinor + 0 xHeight 500 diff --git a/tests/makeinstancesufo_data/expected_output/anisotropic.ufo/groups.plist b/tests/makeinstancesufo_data/expected_output/anisotropic.ufo/groups.plist index 61918a0e9..3548ad16e 100644 --- a/tests/makeinstancesufo_data/expected_output/anisotropic.ufo/groups.plist +++ b/tests/makeinstancesufo_data/expected_output/anisotropic.ufo/groups.plist @@ -2,6 +2,62 @@ + @MMK_L_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_L_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_L_LAT_a + + a + aacute + adieresis + atilde + + @MMK_L_LAT_v + + y + yacute + ydieresis + ytilde + + @MMK_R_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_R_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_R_LAT_a + + a + aacute + adieresis + atilde + + @MMK_R_LAT_y + + y + yacute + ydieresis + ytilde + Not a kerning group a diff --git a/tests/makeinstancesufo_data/expected_output/bend1.ufo/features.fea b/tests/makeinstancesufo_data/expected_output/bend1.ufo/features.fea new file mode 100644 index 000000000..95e89ffb5 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/bend1.ufo/features.fea @@ -0,0 +1,14 @@ +@lat_UC_left = [ A B C D E F G H J K L M N O P R S T U V W X Y Z ]; + +@lat_lcnew_right = [ a o l lslash b ]; + +@punct_left = [ hyphen parenleft quotedblbase guillemotleft quotedblleft guillemotright quotedblright asterisk quotesingle comma period slash colon semicolon question backslash bullet ]; + +@punct_right = [ hyphen parenright guillemotleft quotedblleft guillemotright quotedblright exclam quotedbl asterisk comma period slash colon semicolon question backslash bullet ]; + +@lat_lc_right = [ a n e c f g i j lslash o p d h s t u v w x y z ]; + +@lat_lcnew_left = [ d dcaron e c l lslash o eth s germandbls ]; + +@lat_lc_left = [ c dcaron eth e f longs germandbls g j k lslash o b r d n a s t v w x y z ]; + diff --git a/tests/makeinstancesufo_data/expected_output/bend2.ufo/features.fea b/tests/makeinstancesufo_data/expected_output/bend2.ufo/features.fea new file mode 100644 index 000000000..95e89ffb5 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/bend2.ufo/features.fea @@ -0,0 +1,14 @@ +@lat_UC_left = [ A B C D E F G H J K L M N O P R S T U V W X Y Z ]; + +@lat_lcnew_right = [ a o l lslash b ]; + +@punct_left = [ hyphen parenleft quotedblbase guillemotleft quotedblleft guillemotright quotedblright asterisk quotesingle comma period slash colon semicolon question backslash bullet ]; + +@punct_right = [ hyphen parenright guillemotleft quotedblleft guillemotright quotedblright exclam quotedbl asterisk comma period slash colon semicolon question backslash bullet ]; + +@lat_lc_right = [ a n e c f g i j lslash o p d h s t u v w x y z ]; + +@lat_lcnew_left = [ d dcaron e c l lslash o eth s germandbls ]; + +@lat_lc_left = [ c dcaron eth e f longs germandbls g j k lslash o b r d n a s t v w x y z ]; + diff --git a/tests/makeinstancesufo_data/expected_output/bend3.ufo/features.fea b/tests/makeinstancesufo_data/expected_output/bend3.ufo/features.fea new file mode 100644 index 000000000..95e89ffb5 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/bend3.ufo/features.fea @@ -0,0 +1,14 @@ +@lat_UC_left = [ A B C D E F G H J K L M N O P R S T U V W X Y Z ]; + +@lat_lcnew_right = [ a o l lslash b ]; + +@punct_left = [ hyphen parenleft quotedblbase guillemotleft quotedblleft guillemotright quotedblright asterisk quotesingle comma period slash colon semicolon question backslash bullet ]; + +@punct_right = [ hyphen parenright guillemotleft quotedblleft guillemotright quotedblright exclam quotedbl asterisk comma period slash colon semicolon question backslash bullet ]; + +@lat_lc_right = [ a n e c f g i j lslash o p d h s t u v w x y z ]; + +@lat_lcnew_left = [ d dcaron e c l lslash o eth s germandbls ]; + +@lat_lc_left = [ c dcaron eth e f longs germandbls g j k lslash o b r d n a s t v w x y z ]; + diff --git a/tests/makeinstancesufo_data/expected_output/black.ufo/groups.plist b/tests/makeinstancesufo_data/expected_output/black.ufo/groups.plist index 61918a0e9..3548ad16e 100644 --- a/tests/makeinstancesufo_data/expected_output/black.ufo/groups.plist +++ b/tests/makeinstancesufo_data/expected_output/black.ufo/groups.plist @@ -2,6 +2,62 @@ + @MMK_L_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_L_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_L_LAT_a + + a + aacute + adieresis + atilde + + @MMK_L_LAT_v + + y + yacute + ydieresis + ytilde + + @MMK_R_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_R_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_R_LAT_a + + a + aacute + adieresis + atilde + + @MMK_R_LAT_y + + y + yacute + ydieresis + ytilde + Not a kerning group a diff --git a/tests/makeinstancesufo_data/expected_output/bold.ufo/groups.plist b/tests/makeinstancesufo_data/expected_output/bold.ufo/groups.plist index 61918a0e9..3548ad16e 100644 --- a/tests/makeinstancesufo_data/expected_output/bold.ufo/groups.plist +++ b/tests/makeinstancesufo_data/expected_output/bold.ufo/groups.plist @@ -2,6 +2,62 @@ + @MMK_L_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_L_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_L_LAT_a + + a + aacute + adieresis + atilde + + @MMK_L_LAT_v + + y + yacute + ydieresis + ytilde + + @MMK_R_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_R_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_R_LAT_a + + a + aacute + adieresis + atilde + + @MMK_R_LAT_y + + y + yacute + ydieresis + ytilde + Not a kerning group a diff --git a/tests/makeinstancesufo_data/expected_output/extralight.ufo/groups.plist b/tests/makeinstancesufo_data/expected_output/extralight.ufo/groups.plist index b348c047e..2527be6b3 100644 --- a/tests/makeinstancesufo_data/expected_output/extralight.ufo/groups.plist +++ b/tests/makeinstancesufo_data/expected_output/extralight.ufo/groups.plist @@ -2,6 +2,62 @@ + @MMK_L_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_L_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_L_LAT_a + + a + aacute + adieresis + atilde + + @MMK_L_LAT_v + + y + yacute + ydieresis + ytilde + + @MMK_R_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_R_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_R_LAT_a + + a + aacute + adieresis + atilde + + @MMK_R_LAT_y + + y + yacute + ydieresis + ytilde + Not a kerning group a diff --git a/tests/makeinstancesufo_data/expected_output/features_copy1.ufo/features.fea b/tests/makeinstancesufo_data/expected_output/features_copy1.ufo/features.fea index 83c90d56e..9ed154f99 100644 --- a/tests/makeinstancesufo_data/expected_output/features_copy1.ufo/features.fea +++ b/tests/makeinstancesufo_data/expected_output/features_copy1.ufo/features.fea @@ -1 +1 @@ -# Master 1 +# Master 0 diff --git a/tests/makeinstancesufo_data/expected_output/features_copy2.ufo/features.fea b/tests/makeinstancesufo_data/expected_output/features_copy2.ufo/features.fea index 83c90d56e..9ed154f99 100644 --- a/tests/makeinstancesufo_data/expected_output/features_copy2.ufo/features.fea +++ b/tests/makeinstancesufo_data/expected_output/features_copy2.ufo/features.fea @@ -1 +1 @@ -# Master 1 +# Master 0 diff --git a/tests/makeinstancesufo_data/expected_output/light.ufo/groups.plist b/tests/makeinstancesufo_data/expected_output/light.ufo/groups.plist index b348c047e..2527be6b3 100644 --- a/tests/makeinstancesufo_data/expected_output/light.ufo/groups.plist +++ b/tests/makeinstancesufo_data/expected_output/light.ufo/groups.plist @@ -2,6 +2,62 @@ + @MMK_L_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_L_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_L_LAT_a + + a + aacute + adieresis + atilde + + @MMK_L_LAT_v + + y + yacute + ydieresis + ytilde + + @MMK_R_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_R_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_R_LAT_a + + a + aacute + adieresis + atilde + + @MMK_R_LAT_y + + y + yacute + ydieresis + ytilde + Not a kerning group a diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/features.fea b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/features.fea new file mode 100644 index 000000000..dd5c29503 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/features.fea @@ -0,0 +1,11 @@ +### prefix:-1: ### +### open prefix '' ### +languagesystem DFLT dflt; +### close prefix '' ### + +table GDEF { + GlyphClassDef ,# Base + , # Liga + , # Mark + ; + } GDEF; diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/fontinfo.plist b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/fontinfo.plist new file mode 100644 index 000000000..66cbcf01a --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/fontinfo.plist @@ -0,0 +1,56 @@ + + + + + ascender + 800 + capHeight + 700 + descender + -200 + familyName + Font + guidelines + + italicAngle + 0 + openTypeHeadCreated + 2024/08/07 17:44:51 + postscriptBlueValues + + -16 + 0 + 500 + 516 + 700 + 716 + 800 + 816 + + postscriptFamilyBlues + + postscriptFamilyOtherBlues + + postscriptFontName + Font-Black + postscriptOtherBlues + + -216 + -200 + + postscriptStemSnapH + + postscriptStemSnapV + + styleName + Black + unitsPerEm + 1000 + versionMajor + 1 + versionMinor + 0 + xHeight + 500 + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/_notdef.glif b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/_notdef.glif new file mode 100644 index 000000000..50ec2b579 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/_notdef.glif @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/contents.plist b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/contents.plist new file mode 100644 index 000000000..374cc07e3 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/contents.plist @@ -0,0 +1,10 @@ + + + + + .notdef + _notdef.glif + iamaglyph + iamaglyph.glif + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/iamaglyph.glif b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/iamaglyph.glif new file mode 100644 index 000000000..617169254 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/glyphs/iamaglyph.glif @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/layercontents.plist b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/layercontents.plist new file mode 100644 index 000000000..b9c1a4f27 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/layercontents.plist @@ -0,0 +1,10 @@ + + + + + + public.default + glyphs + + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/lib.plist b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/lib.plist new file mode 100644 index 000000000..61c80ef34 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/lib.plist @@ -0,0 +1,11 @@ + + + + + public.glyphOrder + + .notdef + iamaglyph + + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/metainfo.plist b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/metainfo.plist new file mode 100644 index 000000000..7b8b34ac6 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Black.ufo/metainfo.plist @@ -0,0 +1,10 @@ + + + + + creator + com.github.fonttools.ufoLib + formatVersion + 3 + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/features.fea b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/features.fea new file mode 100644 index 000000000..dd5c29503 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/features.fea @@ -0,0 +1,11 @@ +### prefix:-1: ### +### open prefix '' ### +languagesystem DFLT dflt; +### close prefix '' ### + +table GDEF { + GlyphClassDef ,# Base + , # Liga + , # Mark + ; + } GDEF; diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/fontinfo.plist b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/fontinfo.plist new file mode 100644 index 000000000..dbd7d1574 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/fontinfo.plist @@ -0,0 +1,56 @@ + + + + + ascender + 800 + capHeight + 700 + descender + -200 + familyName + Font + guidelines + + italicAngle + 0 + openTypeHeadCreated + 2024/08/07 17:44:51 + postscriptBlueValues + + -16 + 0 + 500 + 516 + 700 + 716 + 800 + 816 + + postscriptFamilyBlues + + postscriptFamilyOtherBlues + + postscriptFontName + Font-ExtraLight + postscriptOtherBlues + + -216 + -200 + + postscriptStemSnapH + + postscriptStemSnapV + + styleName + Thin + unitsPerEm + 1000 + versionMajor + 1 + versionMinor + 0 + xHeight + 500 + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/_notdef.glif b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/_notdef.glif new file mode 100644 index 000000000..50ec2b579 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/_notdef.glif @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/contents.plist b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/contents.plist new file mode 100644 index 000000000..374cc07e3 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/contents.plist @@ -0,0 +1,10 @@ + + + + + .notdef + _notdef.glif + iamaglyph + iamaglyph.glif + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/iamaglyph.glif b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/iamaglyph.glif new file mode 100644 index 000000000..b1cb2031a --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/glyphs/iamaglyph.glif @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/layercontents.plist b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/layercontents.plist new file mode 100644 index 000000000..b9c1a4f27 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/layercontents.plist @@ -0,0 +1,10 @@ + + + + + + public.default + glyphs + + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/lib.plist b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/lib.plist new file mode 100644 index 000000000..61c80ef34 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/lib.plist @@ -0,0 +1,11 @@ + + + + + public.glyphOrder + + .notdef + iamaglyph + + + diff --git a/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/metainfo.plist b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/metainfo.plist new file mode 100644 index 000000000..7b8b34ac6 --- /dev/null +++ b/tests/makeinstancesufo_data/expected_output/overlapping-Thin.ufo/metainfo.plist @@ -0,0 +1,10 @@ + + + + + creator + com.github.fonttools.ufoLib + formatVersion + 3 + + diff --git a/tests/makeinstancesufo_data/expected_output/regular.ufo/groups.plist b/tests/makeinstancesufo_data/expected_output/regular.ufo/groups.plist index b348c047e..2527be6b3 100644 --- a/tests/makeinstancesufo_data/expected_output/regular.ufo/groups.plist +++ b/tests/makeinstancesufo_data/expected_output/regular.ufo/groups.plist @@ -2,6 +2,62 @@ + @MMK_L_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_L_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_L_LAT_a + + a + aacute + adieresis + atilde + + @MMK_L_LAT_v + + y + yacute + ydieresis + ytilde + + @MMK_R_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_R_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_R_LAT_a + + a + aacute + adieresis + atilde + + @MMK_R_LAT_y + + y + yacute + ydieresis + ytilde + Not a kerning group a diff --git a/tests/makeinstancesufo_data/expected_output/regular1.ufo/groups.plist b/tests/makeinstancesufo_data/expected_output/regular1.ufo/groups.plist index 61918a0e9..3548ad16e 100644 --- a/tests/makeinstancesufo_data/expected_output/regular1.ufo/groups.plist +++ b/tests/makeinstancesufo_data/expected_output/regular1.ufo/groups.plist @@ -2,6 +2,62 @@ + @MMK_L_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_L_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_L_LAT_a + + a + aacute + adieresis + atilde + + @MMK_L_LAT_v + + y + yacute + ydieresis + ytilde + + @MMK_R_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_R_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_R_LAT_a + + a + aacute + adieresis + atilde + + @MMK_R_LAT_y + + y + yacute + ydieresis + ytilde + Not a kerning group a diff --git a/tests/makeinstancesufo_data/expected_output/semibold.ufo/groups.plist b/tests/makeinstancesufo_data/expected_output/semibold.ufo/groups.plist index b348c047e..2527be6b3 100644 --- a/tests/makeinstancesufo_data/expected_output/semibold.ufo/groups.plist +++ b/tests/makeinstancesufo_data/expected_output/semibold.ufo/groups.plist @@ -2,6 +2,62 @@ + @MMK_L_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_L_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_L_LAT_a + + a + aacute + adieresis + atilde + + @MMK_L_LAT_v + + y + yacute + ydieresis + ytilde + + @MMK_R_LAT_A + + A + Aacute + Adieresis + Atilde + + @MMK_R_LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + @MMK_R_LAT_a + + a + aacute + adieresis + atilde + + @MMK_R_LAT_y + + y + yacute + ydieresis + ytilde + Not a kerning group a diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/fontinfo.plist b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/fontinfo.plist index 6bfc12612..dd8363e58 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/fontinfo.plist +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/fontinfo.plist @@ -12,6 +12,9 @@ -239 familyName Source Serif Pro + guidelines + + italicAngle 0 openTypeHheaAscender diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_.glif index 418707211..1b8c38d86 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_.glif @@ -1,5 +1,5 @@ - + @@ -35,14 +35,8 @@ - - - - - - - - - + + + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_acute.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_acute.glif index 13e7c81aa..7052001c3 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_acute.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_acute.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_dieresis.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_dieresis.glif index 8473b218d..e79c0b5e7 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_dieresis.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_dieresis.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_tilde.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_tilde.glif index 919af4ab9..2771b7328 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_tilde.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/A_tilde.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_.glif index 6913eae68..11dbd3c62 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_.glif @@ -1,5 +1,5 @@ - + @@ -47,11 +47,7 @@ - - - - - - + + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_acute.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_acute.glif index 774a44d02..63bfa65a9 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_acute.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_acute.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_dieresis.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_dieresis.glif index 14b96718c..ee6cde80f 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_dieresis.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_dieresis.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_tilde.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_tilde.glif index c059d610d..ef5de6301 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_tilde.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/Y_tilde.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/a.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/a.glif index c2b774e62..902146aab 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/a.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/a.glif @@ -1,5 +1,5 @@ - + @@ -70,14 +70,8 @@ - - - - - - - - - + + + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/aacute.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/aacute.glif index 87e704d30..5fb6d9a6f 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/aacute.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/aacute.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/acutecmb.cap.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/acutecmb.cap.glif index 05433b6bc..c1a3d3a07 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/acutecmb.cap.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/acutecmb.cap.glif @@ -1,5 +1,5 @@ - + @@ -19,8 +19,6 @@ - - - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/acutecmb.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/acutecmb.glif index 3f1a7dba3..39b838b9c 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/acutecmb.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/acutecmb.glif @@ -1,5 +1,5 @@ - + @@ -20,8 +20,6 @@ - - - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/adieresis.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/adieresis.glif index 84a59469f..e11a7b10f 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/adieresis.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/adieresis.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/atilde.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/atilde.glif index 18b0b00ea..227256e00 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/atilde.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/atilde.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/dieresiscmb.cap.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/dieresiscmb.cap.glif index cb7618f51..c03d333de 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/dieresiscmb.cap.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/dieresiscmb.cap.glif @@ -1,5 +1,5 @@ - + @@ -29,8 +29,6 @@ - - - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/dieresiscmb.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/dieresiscmb.glif index c27abdc28..bea0714e4 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/dieresiscmb.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/dieresiscmb.glif @@ -1,5 +1,5 @@ - + @@ -30,11 +30,7 @@ - - - - - - + + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/tildecmb.cap.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/tildecmb.cap.glif index b935e133b..379a687bf 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/tildecmb.cap.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/tildecmb.cap.glif @@ -1,5 +1,5 @@ - + @@ -29,8 +29,6 @@ - - - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/tildecmb.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/tildecmb.glif index d37fb6146..a0277624c 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/tildecmb.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/tildecmb.glif @@ -1,5 +1,5 @@ - + @@ -30,8 +30,6 @@ - - - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/y.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/y.glif index ff2b42182..457ccc624 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/y.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/y.glif @@ -1,5 +1,5 @@ - + @@ -49,11 +49,7 @@ - - - - - - + + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/yacute.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/yacute.glif index 826e16a22..b8846bea3 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/yacute.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/yacute.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/ydieresis.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/ydieresis.glif index d0b302786..dcb0c3a75 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/ydieresis.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/ydieresis.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/ytilde.glif b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/ytilde.glif index cb03f22d9..2d76a9867 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/ytilde.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/glyphs/ytilde.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/groups.plist b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/groups.plist index dcc8184b8..2527be6b3 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/groups.plist +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/groups.plist @@ -66,5 +66,61 @@ d e + public.kern1.LAT_A + + A + Aacute + Adieresis + Atilde + + public.kern1.LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + public.kern1.LAT_a + + a + aacute + adieresis + atilde + + public.kern1.LAT_v + + y + yacute + ydieresis + ytilde + + public.kern2.LAT_A + + A + Aacute + Adieresis + Atilde + + public.kern2.LAT_Y + + Y + Yacute + Ydieresis + Ytilde + + public.kern2.LAT_a + + a + aacute + adieresis + atilde + + public.kern2.LAT_y + + y + yacute + ydieresis + ytilde + diff --git a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/kerning.plist b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/kerning.plist index 33db1da84..9cc8895d3 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo2.ufo/kerning.plist +++ b/tests/makeinstancesufo_data/expected_output/ufo2.ufo/kerning.plist @@ -2,50 +2,50 @@ - @MMK_L_LAT_A + public.kern1.LAT_A - @MMK_R_LAT_A + public.kern2.LAT_A 10 - @MMK_R_LAT_Y + public.kern2.LAT_Y -90 - @MMK_R_LAT_a + public.kern2.LAT_a -5 - @MMK_R_LAT_y + public.kern2.LAT_y -50 - @MMK_L_LAT_Y + public.kern1.LAT_Y - @MMK_R_LAT_A - -90 - @MMK_R_LAT_Y - 0 - @MMK_R_LAT_a - -80 - @MMK_R_LAT_y - -69 adieresis -79 atilde -61 + public.kern2.LAT_A + -90 + public.kern2.LAT_Y + 0 + public.kern2.LAT_a + -80 + public.kern2.LAT_y + -69 - @MMK_L_LAT_a + public.kern1.LAT_a - @MMK_R_LAT_A + public.kern2.LAT_A 10 - @MMK_R_LAT_Y + public.kern2.LAT_Y -80 - @MMK_R_LAT_y + public.kern2.LAT_y -10 - @MMK_L_LAT_v + public.kern1.LAT_v - @MMK_R_LAT_A + public.kern2.LAT_A -71 - @MMK_R_LAT_Y + public.kern2.LAT_Y -50 - @MMK_R_LAT_a + public.kern2.LAT_a -16 - @MMK_R_LAT_y + public.kern2.LAT_y 9 diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/fontinfo.plist b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/fontinfo.plist index 199cb1c21..f7074fbbf 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/fontinfo.plist +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/fontinfo.plist @@ -12,6 +12,9 @@ -231 familyName Source Serif Pro + guidelines + + italicAngle 0 openTypeHheaAscender diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_.glif index 67443357a..f5ea7b561 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_.glif @@ -1,5 +1,5 @@ - + @@ -35,14 +35,8 @@ - - - - - - - - - + + + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_acute.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_acute.glif index fb33eec1f..d8d29c11a 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_acute.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_acute.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_dieresis.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_dieresis.glif index f3535950a..90b1ed882 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_dieresis.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_dieresis.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_tilde.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_tilde.glif index 2458f61e7..e08cac5a4 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_tilde.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/A_tilde.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_.glif index 457fe1992..c6518a697 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_.glif @@ -1,5 +1,5 @@ - + @@ -47,11 +47,7 @@ - - - - - - + + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_acute.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_acute.glif index 3d66593ba..920051ea6 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_acute.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_acute.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_dieresis.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_dieresis.glif index 316cf040b..aee2fb497 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_dieresis.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_dieresis.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_tilde.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_tilde.glif index 5ea48f002..be908b1a1 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_tilde.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/Y_tilde.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/a.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/a.glif index e0d66c6b2..0f76c83d0 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/a.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/a.glif @@ -1,5 +1,5 @@ - + @@ -70,14 +70,8 @@ - - - - - - - - - + + + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/aacute.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/aacute.glif index 60126f80e..77d2bc2d2 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/aacute.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/aacute.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/acutecmb.cap.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/acutecmb.cap.glif index ae408954c..e8fd81b25 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/acutecmb.cap.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/acutecmb.cap.glif @@ -1,5 +1,5 @@ - + @@ -19,8 +19,6 @@ - - - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/acutecmb.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/acutecmb.glif index 23fe0f9f7..fe8dc474d 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/acutecmb.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/acutecmb.glif @@ -1,5 +1,5 @@ - + @@ -20,8 +20,6 @@ - - - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/adieresis.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/adieresis.glif index 3a26ab5d2..d011cac40 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/adieresis.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/adieresis.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/atilde.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/atilde.glif index 513076017..5c3323cc8 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/atilde.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/atilde.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/dieresiscmb.cap.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/dieresiscmb.cap.glif index 03b3d969d..3a304a5de 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/dieresiscmb.cap.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/dieresiscmb.cap.glif @@ -1,5 +1,5 @@ - + @@ -29,8 +29,6 @@ - - - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/dieresiscmb.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/dieresiscmb.glif index 75b68d470..53e042ed0 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/dieresiscmb.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/dieresiscmb.glif @@ -1,5 +1,5 @@ - + @@ -30,11 +30,7 @@ - - - - - - + + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/tildecmb.cap.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/tildecmb.cap.glif index 16b6c3110..5a2048368 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/tildecmb.cap.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/tildecmb.cap.glif @@ -1,5 +1,5 @@ - + @@ -29,8 +29,6 @@ - - - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/tildecmb.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/tildecmb.glif index e229c7e14..c91b9ff8f 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/tildecmb.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/tildecmb.glif @@ -1,5 +1,5 @@ - + @@ -30,8 +30,6 @@ - - - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/y.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/y.glif index 0c6a95057..c03dea1ac 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/y.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/y.glif @@ -1,5 +1,5 @@ - + @@ -49,11 +49,7 @@ - - - - - - + + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/yacute.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/yacute.glif index 8608a7910..3e4bd30f5 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/yacute.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/yacute.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/ydieresis.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/ydieresis.glif index 7461fd7c1..3af795a58 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/ydieresis.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/ydieresis.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/ytilde.glif b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/ytilde.glif index 3aded687f..58bb7e056 100644 --- a/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/ytilde.glif +++ b/tests/makeinstancesufo_data/expected_output/ufo3semibold.ufo/glyphs/ytilde.glif @@ -1,5 +1,5 @@ - + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/features.fea b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/features.fea new file mode 100644 index 000000000..dd5c29503 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/features.fea @@ -0,0 +1,11 @@ +### prefix:-1: ### +### open prefix '' ### +languagesystem DFLT dflt; +### close prefix '' ### + +table GDEF { + GlyphClassDef ,# Base + , # Liga + , # Mark + ; + } GDEF; diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/fontinfo.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/fontinfo.plist new file mode 100644 index 000000000..1b47c0256 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/fontinfo.plist @@ -0,0 +1,56 @@ + + + + + ascender + 800 + capHeight + 700 + descender + -200 + familyName + OverlappingPoints + guidelines + + italicAngle + 0 + openTypeHeadCreated + 2024/08/07 17:44:51 + postscriptBlueValues + + -16 + 0 + 500 + 516 + 700 + 716 + 800 + 816 + + postscriptFamilyBlues + + postscriptFamilyOtherBlues + + postscriptFontName + OverlappingPoints-Regular + postscriptOtherBlues + + -216 + -200 + + postscriptStemSnapH + + postscriptStemSnapV + + styleName + Black + unitsPerEm + 1000 + versionMajor + 1 + versionMinor + 0 + xHeight + 500 + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/_notdef.glif b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/_notdef.glif new file mode 100644 index 000000000..50ec2b579 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/_notdef.glif @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/contents.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/contents.plist new file mode 100644 index 000000000..374cc07e3 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/contents.plist @@ -0,0 +1,10 @@ + + + + + .notdef + _notdef.glif + iamaglyph + iamaglyph.glif + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/iamaglyph.glif b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/iamaglyph.glif new file mode 100644 index 000000000..fbba4b45d --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/iamaglyph.glif @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/layerinfo.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/layerinfo.plist new file mode 100644 index 000000000..e0dd9a592 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/glyphs/layerinfo.plist @@ -0,0 +1,8 @@ + + + + + color + 0.5,0,0.5,0.7 + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/layercontents.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/layercontents.plist new file mode 100644 index 000000000..b9c1a4f27 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/layercontents.plist @@ -0,0 +1,10 @@ + + + + + + public.default + glyphs + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/lib.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/lib.plist new file mode 100644 index 000000000..b8546f8e9 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/lib.plist @@ -0,0 +1,11 @@ + + + + + public.glyphOrder + + .notdef + iamaglyph + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/metainfo.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/metainfo.plist new file mode 100644 index 000000000..7b8b34ac6 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Black.ufo/metainfo.plist @@ -0,0 +1,10 @@ + + + + + creator + com.github.fonttools.ufoLib + formatVersion + 3 + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/features.fea b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/features.fea new file mode 100644 index 000000000..dd5c29503 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/features.fea @@ -0,0 +1,11 @@ +### prefix:-1: ### +### open prefix '' ### +languagesystem DFLT dflt; +### close prefix '' ### + +table GDEF { + GlyphClassDef ,# Base + , # Liga + , # Mark + ; + } GDEF; diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/fontinfo.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/fontinfo.plist new file mode 100644 index 000000000..84eec370f --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/fontinfo.plist @@ -0,0 +1,56 @@ + + + + + ascender + 800 + capHeight + 700 + descender + -200 + familyName + OverlappingPoints + guidelines + + italicAngle + 0 + openTypeHeadCreated + 2024/08/07 17:44:51 + postscriptBlueValues + + -16 + 0 + 500 + 516 + 700 + 716 + 800 + 816 + + postscriptFamilyBlues + + postscriptFamilyOtherBlues + + postscriptFontName + OverlappingPoints-Regular + postscriptOtherBlues + + -216 + -200 + + postscriptStemSnapH + + postscriptStemSnapV + + styleName + Regular + unitsPerEm + 1000 + versionMajor + 1 + versionMinor + 0 + xHeight + 500 + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/_notdef.glif b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/_notdef.glif new file mode 100644 index 000000000..50ec2b579 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/_notdef.glif @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/contents.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/contents.plist new file mode 100644 index 000000000..374cc07e3 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/contents.plist @@ -0,0 +1,10 @@ + + + + + .notdef + _notdef.glif + iamaglyph + iamaglyph.glif + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/iamaglyph.glif b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/iamaglyph.glif new file mode 100644 index 000000000..7cdb929f8 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/iamaglyph.glif @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/layerinfo.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/layerinfo.plist new file mode 100644 index 000000000..e0dd9a592 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/glyphs/layerinfo.plist @@ -0,0 +1,8 @@ + + + + + color + 0.5,0,0.5,0.7 + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/layercontents.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/layercontents.plist new file mode 100644 index 000000000..b9c1a4f27 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/layercontents.plist @@ -0,0 +1,10 @@ + + + + + + public.default + glyphs + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/lib.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/lib.plist new file mode 100644 index 000000000..b8546f8e9 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/lib.plist @@ -0,0 +1,11 @@ + + + + + public.glyphOrder + + .notdef + iamaglyph + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/metainfo.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/metainfo.plist new file mode 100644 index 000000000..7b8b34ac6 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Regular.ufo/metainfo.plist @@ -0,0 +1,10 @@ + + + + + creator + com.github.fonttools.ufoLib + formatVersion + 3 + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/features.fea b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/features.fea new file mode 100644 index 000000000..dd5c29503 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/features.fea @@ -0,0 +1,11 @@ +### prefix:-1: ### +### open prefix '' ### +languagesystem DFLT dflt; +### close prefix '' ### + +table GDEF { + GlyphClassDef ,# Base + , # Liga + , # Mark + ; + } GDEF; diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/fontinfo.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/fontinfo.plist new file mode 100644 index 000000000..b3bd0d282 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/fontinfo.plist @@ -0,0 +1,56 @@ + + + + + ascender + 800 + capHeight + 700 + descender + -200 + familyName + OverlappingPoints + guidelines + + italicAngle + 0 + openTypeHeadCreated + 2024/08/07 17:44:51 + postscriptBlueValues + + -16 + 0 + 500 + 516 + 700 + 716 + 800 + 816 + + postscriptFamilyBlues + + postscriptFamilyOtherBlues + + postscriptFontName + OverlappingPoints-Regular + postscriptOtherBlues + + -216 + -200 + + postscriptStemSnapH + + postscriptStemSnapV + + styleName + Thin + unitsPerEm + 1000 + versionMajor + 1 + versionMinor + 0 + xHeight + 500 + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/_notdef.glif b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/_notdef.glif new file mode 100644 index 000000000..50ec2b579 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/_notdef.glif @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/contents.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/contents.plist new file mode 100644 index 000000000..374cc07e3 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/contents.plist @@ -0,0 +1,10 @@ + + + + + .notdef + _notdef.glif + iamaglyph + iamaglyph.glif + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/iamaglyph.glif b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/iamaglyph.glif new file mode 100644 index 000000000..044718c51 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/iamaglyph.glif @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/layerinfo.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/layerinfo.plist new file mode 100644 index 000000000..e0dd9a592 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/glyphs/layerinfo.plist @@ -0,0 +1,8 @@ + + + + + color + 0.5,0,0.5,0.7 + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/layercontents.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/layercontents.plist new file mode 100644 index 000000000..b9c1a4f27 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/layercontents.plist @@ -0,0 +1,10 @@ + + + + + + public.default + glyphs + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/lib.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/lib.plist new file mode 100644 index 000000000..b8546f8e9 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/lib.plist @@ -0,0 +1,11 @@ + + + + + public.glyphOrder + + .notdef + iamaglyph + + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/metainfo.plist b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/metainfo.plist new file mode 100644 index 000000000..7b8b34ac6 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints-Thin.ufo/metainfo.plist @@ -0,0 +1,10 @@ + + + + + creator + com.github.fonttools.ufoLib + formatVersion + 3 + + diff --git a/tests/makeinstancesufo_data/input/OverlappingPoints.designspace b/tests/makeinstancesufo_data/input/OverlappingPoints.designspace new file mode 100644 index 000000000..2cf65a4f8 --- /dev/null +++ b/tests/makeinstancesufo_data/input/OverlappingPoints.designspace @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/makeinstancesufo_data/input/font.designspace b/tests/makeinstancesufo_data/input/font.designspace index 65f330977..192e895ed 100644 --- a/tests/makeinstancesufo_data/input/font.designspace +++ b/tests/makeinstancesufo_data/input/font.designspace @@ -85,7 +85,7 @@ - + diff --git a/tests/makeinstancesufo_test.py b/tests/makeinstancesufo_test.py index 0c4775e67..92b5dfe9b 100644 --- a/tests/makeinstancesufo_test.py +++ b/tests/makeinstancesufo_test.py @@ -212,3 +212,19 @@ def test_extrapolate(capfd, use_varlib): assert "Extrapolation is not supported with varlib (Dummy Extra Plus weight: 1500.0)" in captured.err # noqa: E501 else: assert differ([expected_path, actual_path]) + + +def test_strict_flag(capfd): + """ + Test extrapolating, with default (MutatorMath) and with varlib. + Using varlib should fail (output should not be extrapolated) because + extrapolation is not supported by varlib. + """ + runner_args = ['-t', TOOL, '-o', 'a', 'c', 'n', 's', 'd', f'_{get_input_path("OverlappingPoints.designspace")}'] # noqa: E501 + runner(runner_args) + + for ufo_filename in ("overlapping-Thin.ufo", "overlapping-Black.ufo"): + expected_path = _get_output_path(ufo_filename, 'expected_output') + actual_path = _get_output_path(ufo_filename, 'temp_output') + + assert differ([expected_path, actual_path])