From e06ad24da3986f8a4cdf8f32b70889d06379c347 Mon Sep 17 00:00:00 2001 From: Just van Rossum Date: Mon, 15 Jul 2024 10:27:31 +0200 Subject: [PATCH] Add tiny subset of Noto Sans CJK VarCo to test edge case in otf export --- .../data/notosanscjksc.fontra/font-data.json | 99 + .../data/notosanscjksc.fontra/glyph-info.csv | 12 + .../glyphs/T_4EBA_2FF1^PP.json | 225 + .../glyphs/VG_31CF_00^33.json | 1394 ++++++ .../glyphs/VG_4E00_00^J.json | 138 + .../glyphs/VG_4E28_00^J.json | 224 + .../glyphs/VG_4E3F_01^J2.json | 2197 ++++++++ .../glyphs/VG_531A_00^32.json | 1033 ++++ .../glyphs/VG_53E3_00^31.json | 1459 ++++++ .../glyphs/VG_65E5_00^31.json | 657 +++ .../glyphs/VG_7530_00^3.json | 921 ++++ .../notosanscjksc.fontra/glyphs/uni3479.json | 149 + .../glyphs/uni531A^02.json | 70 + tests/data/notosanscjksc.otf.ttx | 4460 +++++++++++++++++ tests/test_workflow.py | 10 + 15 files changed, 13048 insertions(+) create mode 100644 tests/data/notosanscjksc.fontra/font-data.json create mode 100644 tests/data/notosanscjksc.fontra/glyph-info.csv create mode 100644 tests/data/notosanscjksc.fontra/glyphs/T_4EBA_2FF1^PP.json create mode 100644 tests/data/notosanscjksc.fontra/glyphs/VG_31CF_00^33.json create mode 100644 tests/data/notosanscjksc.fontra/glyphs/VG_4E00_00^J.json create mode 100644 tests/data/notosanscjksc.fontra/glyphs/VG_4E28_00^J.json create mode 100644 tests/data/notosanscjksc.fontra/glyphs/VG_4E3F_01^J2.json create mode 100644 tests/data/notosanscjksc.fontra/glyphs/VG_531A_00^32.json create mode 100644 tests/data/notosanscjksc.fontra/glyphs/VG_53E3_00^31.json create mode 100644 tests/data/notosanscjksc.fontra/glyphs/VG_65E5_00^31.json create mode 100644 tests/data/notosanscjksc.fontra/glyphs/VG_7530_00^3.json create mode 100644 tests/data/notosanscjksc.fontra/glyphs/uni3479.json create mode 100644 tests/data/notosanscjksc.fontra/glyphs/uni531A^02.json create mode 100644 tests/data/notosanscjksc.otf.ttx diff --git a/tests/data/notosanscjksc.fontra/font-data.json b/tests/data/notosanscjksc.fontra/font-data.json new file mode 100644 index 0000000..d92d38f --- /dev/null +++ b/tests/data/notosanscjksc.fontra/font-data.json @@ -0,0 +1,99 @@ +{ +"axes": { +"axes": [ +{ +"name": "wght", +"label": "wght", +"tag": "wght", +"minValue": 100, +"defaultValue": 100, +"maxValue": 900, +"mapping": [ +[ +100, +0 +], +[ +300, +0.15997314453125 +], +[ +350, +0.32000732421875 +], +[ +400, +0.3900146484375 +], +[ +500, +0.55999755859375 +], +[ +700, +0.780029296875 +], +[ +900, +1 +] +] +} +] +}, +"customData": { +"fontra.sourceStatusFieldDefinitions": [ +{ +"color": [ +1, +0, +0, +1 +], +"isDefault": true, +"label": "In progress", +"value": 0 +}, +{ +"color": [ +1, +0.5, +0, +1 +], +"label": "Checking-1", +"value": 1 +}, +{ +"color": [ +1, +1, +0, +1 +], +"label": "Checking-2", +"value": 2 +}, +{ +"color": [ +0, +0.5, +1, +1 +], +"label": "Checking-3", +"value": 3 +}, +{ +"color": [ +0, +1, +0.5, +1 +], +"label": "Validated", +"value": 4 +} +] +} +} diff --git a/tests/data/notosanscjksc.fontra/glyph-info.csv b/tests/data/notosanscjksc.fontra/glyph-info.csv new file mode 100644 index 0000000..f977fb1 --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyph-info.csv @@ -0,0 +1,12 @@ +glyph name;code points +T_4EBA_2FF1; +VG_31CF_00; +VG_4E00_00; +VG_4E28_00; +VG_4E3F_01; +VG_531A_00; +VG_53E3_00; +VG_65E5_00; +VG_7530_00; +uni3479;U+3479 +uni531A;U+531A diff --git a/tests/data/notosanscjksc.fontra/glyphs/T_4EBA_2FF1^PP.json b/tests/data/notosanscjksc.fontra/glyphs/T_4EBA_2FF1^PP.json new file mode 100644 index 0000000..45e906d --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/T_4EBA_2FF1^PP.json @@ -0,0 +1,225 @@ +{ +"name": "T_4EBA_2FF1", +"axes": [ +{ +"name": "height", +"minValue": 299, +"defaultValue": 454, +"maxValue": 454 +} +], +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "wght=1", +"layerName": "wght=1", +"location": { +"wght": 1 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=299", +"layerName": "height=299", +"location": { +"height": 299 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "wght=1,height=299", +"layerName": "wght=1,height=299", +"location": { +"height": 299, +"wght": 1 +}, +"customData": { +"fontra.development.status": 0 +} +} +], +"layers": { +"foreground": { +"glyph": { +"components": [ +{ +"name": "VG_31CF_00", +"transformation": { +"translateX": 429, +"translateY": -52 +}, +"location": { +"B_weightH": -1, +"B_weightV": 3, +"T_weightH": -1, +"T_weightV": -3, +"curveH": -9, +"curveV": -19, +"height": 407.2, +"weight": 30, +"width": 473.12 +} +}, +{ +"name": "VG_4E3F_01", +"transformation": { +"translateX": -405, +"translateY": 40 +}, +"location": { +"bottom_weightH": 4, +"bottom_weightV": 2, +"curveH": 19, +"curveV": 0, +"height": 448.5, +"top_weightH": 1, +"top_weightV": -3, +"weight": 30, +"width": 495.5 +} +} +], +"xAdvance": 1000 +} +}, +"height=299": { +"glyph": { +"components": [ +{ +"name": "VG_31CF_00", +"transformation": { +"translateX": 424, +"translateY": -23 +}, +"location": { +"B_weightH": -1, +"B_weightV": 3, +"T_weightH": 2, +"T_weightV": -3, +"curveH": 11, +"curveV": 1, +"height": 277.2, +"weight": 30, +"width": 472.12 +} +}, +{ +"name": "VG_4E3F_01", +"transformation": { +"translateX": -418, +"translateY": 39 +}, +"location": { +"bottom_weightH": 4, +"bottom_weightV": 2, +"curveH": 41, +"curveV": 0, +"height": 292.5, +"top_weightH": 5, +"top_weightV": -6, +"weight": 30, +"width": 484.5 +} +} +], +"xAdvance": 1000 +} +}, +"wght=1": { +"glyph": { +"components": [ +{ +"name": "VG_31CF_00", +"transformation": { +"translateX": 383, +"translateY": -71 +}, +"location": { +"B_weightH": -13, +"B_weightV": 25, +"T_weightH": -8, +"T_weightV": 11, +"curveH": -22, +"curveV": -9, +"height": 406.2, +"weight": 160, +"width": 561.12 +} +}, +{ +"name": "VG_4E3F_01", +"transformation": { +"translateX": -369, +"translateY": 49 +}, +"location": { +"bottom_weightH": 4, +"bottom_weightV": 20, +"curveH": 12, +"curveV": 0, +"height": 431.5, +"top_weightH": 8, +"top_weightV": -16, +"weight": 166, +"width": 526.5 +} +} +], +"xAdvance": 1000 +} +}, +"wght=1,height=299": { +"glyph": { +"components": [ +{ +"name": "VG_31CF_00", +"transformation": { +"translateX": 402, +"translateY": -25 +}, +"location": { +"B_weightH": -5, +"B_weightV": 28, +"T_weightH": -15, +"T_weightV": 11, +"curveH": -2, +"curveV": 11, +"height": 286.2, +"weight": 130, +"width": 538.12 +} +}, +{ +"name": "VG_4E3F_01", +"transformation": { +"translateX": -380, +"translateY": 68 +}, +"location": { +"bottom_weightH": 6, +"bottom_weightV": 20, +"curveH": 44, +"curveV": 3, +"height": 301.5, +"top_weightH": 42, +"top_weightV": -31, +"weight": 129, +"width": 525.5 +} +} +], +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.fontra/glyphs/VG_31CF_00^33.json b/tests/data/notosanscjksc.fontra/glyphs/VG_31CF_00^33.json new file mode 100644 index 0000000..f1a8fa9 --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/VG_31CF_00^33.json @@ -0,0 +1,1394 @@ +{ +"name": "VG_31CF_00", +"axes": [ +{ +"name": "weight", +"minValue": 25, +"defaultValue": 25, +"maxValue": 170 +}, +{ +"name": "height", +"minValue": 180, +"defaultValue": 900, +"maxValue": 900 +}, +{ +"name": "width", +"minValue": 180, +"defaultValue": 900, +"maxValue": 900 +}, +{ +"name": "T_weightH", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "T_weightV", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "B_weightH", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "B_weightV", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "curveH", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "curveV", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +} +], +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170", +"layerName": "weight=170", +"location": { +"weight": 170 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=180", +"layerName": "height=180", +"location": { +"height": 180 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=180", +"layerName": "width=180", +"location": { +"width": 180 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170,width=180", +"layerName": "weight=170,width=180", +"location": { +"weight": 170, +"width": 180 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170,height=180,width=180", +"layerName": "weight=170,height=180,width=180", +"location": { +"height": 180, +"weight": 170, +"width": 180 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "T_weightH=-100", +"layerName": "T_weightH=-100", +"location": { +"T_weightH": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "T_weightH=100", +"layerName": "T_weightH=100", +"location": { +"T_weightH": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "T_weightV=-100", +"layerName": "T_weightV=-100", +"location": { +"T_weightV": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "T_weightV=100", +"layerName": "T_weightV=100", +"location": { +"T_weightV": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "B_weightH=-100", +"layerName": "B_weightH=-100", +"location": { +"B_weightH": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "B_weightH=100", +"layerName": "B_weightH=100", +"location": { +"B_weightH": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "B_weightV=-100", +"layerName": "B_weightV=-100", +"location": { +"B_weightV": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "B_weightV=100", +"layerName": "B_weightV=100", +"location": { +"B_weightV": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "curveH=-100", +"layerName": "curveH=-100", +"location": { +"curveH": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "curveH=100", +"layerName": "curveH=100", +"location": { +"curveH": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "curveV=-100", +"layerName": "curveV=-100", +"location": { +"curveV": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "curveV=100", +"layerName": "curveV=100", +"location": { +"curveV": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=180,width=180", +"layerName": "height=180,width=180", +"location": { +"height": 180, +"width": 180 +}, +"customData": { +"fontra.development.status": 0 +} +} +], +"layers": { +"B_weightH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 384, +"type": "cubic" +}, +{ +"x": 484, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 912, +"y": -53, +"type": "cubic" +}, +{ +"x": 886, +"y": -46, +"type": "cubic" +}, +{ +"x": 859, +"y": -40 +}, +{ +"x": 447.7423679442857, +"y": 70.86075298893167, +"type": "cubic" +}, +{ +"x": 218.66836970337044, +"y": 406.23788911920064, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"B_weightH=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 384, +"type": "cubic" +}, +{ +"x": 484, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 979, +"y": -53, +"type": "cubic" +}, +{ +"x": 1015, +"y": -46, +"type": "cubic" +}, +{ +"x": 1059, +"y": -40 +}, +{ +"x": 549.8748064095068, +"y": 97.24244348961119, +"type": "cubic" +}, +{ +"x": 221.47762096555581, +"y": 397.2974982410048, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"B_weightV=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 384, +"type": "cubic" +}, +{ +"x": 484, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 949, +"y": -87, +"type": "cubic" +}, +{ +"x": 954, +"y": -116, +"type": "cubic" +}, +{ +"x": 959, +"y": -140 +}, +{ +"x": 495.26388605776907, +"y": -14.992873632963835, +"type": "cubic" +}, +{ +"x": 234.2673065394611, +"y": 356.5945572904742, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"B_weightV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 384, +"type": "cubic" +}, +{ +"x": 484, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 944, +"y": -22, +"type": "cubic" +}, +{ +"x": 950, +"y": 20, +"type": "cubic" +}, +{ +"x": 959, +"y": 60 +}, +{ +"x": 502.3593191732545, +"y": 183.09444439677486, +"type": "cubic" +}, +{ +"x": 205.87958095199198, +"y": 446.93797594840504, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"T_weightH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": -17, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 384, +"type": "cubic" +}, +{ +"x": 484, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 947, +"y": -54, +"type": "cubic" +}, +{ +"x": 954, +"y": -45, +"type": "cubic" +}, +{ +"x": 959, +"y": -40 +}, +{ +"x": 449.8748064095068, +"y": 97.24244348961119, +"type": "cubic" +}, +{ +"x": 121.47762096555581, +"y": 397.2974982410048, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"T_weightH=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 183, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 384, +"type": "cubic" +}, +{ +"x": 484, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 947, +"y": -54, +"type": "cubic" +}, +{ +"x": 954, +"y": -45, +"type": "cubic" +}, +{ +"x": 959, +"y": -40 +}, +{ +"x": 547.7423679442858, +"y": 70.86075298893165, +"type": "cubic" +}, +{ +"x": 318.66836970337044, +"y": 406.23788911920064, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"T_weightV=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 738 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 384, +"type": "cubic" +}, +{ +"x": 484, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 947, +"y": -54, +"type": "cubic" +}, +{ +"x": 954, +"y": -45, +"type": "cubic" +}, +{ +"x": 959, +"y": -40 +}, +{ +"x": 502.3593191732545, +"y": 83.09444439677486, +"type": "cubic" +}, +{ +"x": 205.87958095199198, +"y": 346.93797594840504, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"T_weightV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 938 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 384, +"type": "cubic" +}, +{ +"x": 484, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 947, +"y": -54, +"type": "cubic" +}, +{ +"x": 954, +"y": -45, +"type": "cubic" +}, +{ +"x": 959, +"y": -40 +}, +{ +"x": 495.26388605776907, +"y": 85.00712636703616, +"type": "cubic" +}, +{ +"x": 234.2673065394611, +"y": 456.5945572904742, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"curveH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 300, +"y": 384, +"type": "cubic" +}, +{ +"x": 584, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 947, +"y": -54, +"type": "cubic" +}, +{ +"x": 954, +"y": -45, +"type": "cubic" +}, +{ +"x": 959, +"y": -40 +}, +{ +"x": 599, +"y": 84, +"type": "cubic" +}, +{ +"x": 320, +"y": 402, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"curveH=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 100, +"y": 384, +"type": "cubic" +}, +{ +"x": 384, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 947, +"y": -54, +"type": "cubic" +}, +{ +"x": 954, +"y": -45, +"type": "cubic" +}, +{ +"x": 959, +"y": -40 +}, +{ +"x": 399, +"y": 84, +"type": "cubic" +}, +{ +"x": 120, +"y": 402, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"curveV=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 484, +"type": "cubic" +}, +{ +"x": 484, +"y": 164, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 947, +"y": -54, +"type": "cubic" +}, +{ +"x": 954, +"y": -45, +"type": "cubic" +}, +{ +"x": 959, +"y": -40 +}, +{ +"x": 499, +"y": 184, +"type": "cubic" +}, +{ +"x": 220, +"y": 502, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"curveV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 284, +"type": "cubic" +}, +{ +"x": 484, +"y": -36, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 947, +"y": -54, +"type": "cubic" +}, +{ +"x": 954, +"y": -44, +"type": "cubic" +}, +{ +"x": 959, +"y": -39 +}, +{ +"x": 499, +"y": -15, +"type": "cubic" +}, +{ +"x": 220, +"y": 302, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"foreground": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 83, +"y": 838 +}, +{ +"x": 59, +"y": 830 +}, +{ +"x": 200, +"y": 384, +"type": "cubic" +}, +{ +"x": 484, +"y": 64, +"type": "cubic" +}, +{ +"x": 943, +"y": -62 +}, +{ +"x": 947, +"y": -54, +"type": "cubic" +}, +{ +"x": 954, +"y": -45, +"type": "cubic" +}, +{ +"x": 959, +"y": -40 +}, +{ +"x": 499, +"y": 84, +"type": "cubic" +}, +{ +"x": 220, +"y": 402, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"height=180": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 70, +"y": 838 +}, +{ +"x": 59, +"y": 815 +}, +{ +"x": 317, +"y": 726, +"type": "cubic" +}, +{ +"x": 641, +"y": 674, +"type": "cubic" +}, +{ +"x": 944, +"y": 658 +}, +{ +"x": 947, +"y": 666, +"type": "cubic" +}, +{ +"x": 953, +"y": 676, +"type": "cubic" +}, +{ +"x": 959, +"y": 683 +}, +{ +"x": 643, +"y": 699, +"type": "cubic" +}, +{ +"x": 324, +"y": 751, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"height=180,width=180": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 80, +"y": 838 +}, +{ +"x": 59, +"y": 823 +}, +{ +"x": 101.2361115390622, +"y": 767.0125963319407, +"type": "cubic" +}, +{ +"x": 154.40138285234912, +"y": 711.8989134731543, +"type": "cubic" +}, +{ +"x": 223, +"y": 658 +}, +{ +"x": 229.3546273110161, +"y": 664.354627311016, +"type": "cubic" +}, +{ +"x": 234.51174531248404, +"y": 671.3621765624931, +"type": "cubic" +}, +{ +"x": 243, +"y": 675 +}, +{ +"x": 170.06248082234146, +"y": 728.4875140636162, +"type": "cubic" +}, +{ +"x": 119.86199386739136, +"y": 783.5543498396606, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 220, +"y": 838 +}, +{ +"x": 59, +"y": 779 +}, +{ +"x": 198, +"y": 343, +"type": "cubic" +}, +{ +"x": 408, +"y": 51, +"type": "cubic" +}, +{ +"x": 848, +"y": -62 +}, +{ +"x": 871, +"y": -19, +"type": "cubic" +}, +{ +"x": 922, +"y": 51, +"type": "cubic" +}, +{ +"x": 959, +"y": 85 +}, +{ +"x": 548, +"y": 177, +"type": "cubic" +}, +{ +"x": 331, +"y": 458, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170,height=180,width=180": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 202, +"y": 838 +}, +{ +"x": 56, +"y": 816 +}, +{ +"x": 65, +"y": 756, +"type": "cubic" +}, +{ +"x": 76.72605327113206, +"y": 714.6392090340252, +"type": "cubic" +}, +{ +"x": 101, +"y": 658 +}, +{ +"x": 140, +"y": 685, +"type": "cubic" +}, +{ +"x": 192, +"y": 708, +"type": "cubic" +}, +{ +"x": 239, +"y": 722 +}, +{ +"x": 222, +"y": 758, +"type": "cubic" +}, +{ +"x": 210.970408738444, +"y": 791.1545321436813, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170,width=180": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 196, +"y": 838 +}, +{ +"x": 59, +"y": 831 +}, +{ +"x": 64, +"y": 438, +"type": "cubic" +}, +{ +"x": 71, +"y": 232, +"type": "cubic" +}, +{ +"x": 100, +"y": -62 +}, +{ +"x": 137, +"y": -32, +"type": "cubic" +}, +{ +"x": 190, +"y": -10, +"type": "cubic" +}, +{ +"x": 239, +"y": -1 +}, +{ +"x": 216, +"y": 243, +"type": "cubic" +}, +{ +"x": 206, +"y": 459, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"width=180": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 85, +"y": 838 +}, +{ +"x": 59, +"y": 836 +}, +{ +"x": 94, +"y": 444, +"type": "cubic" +}, +{ +"x": 151, +"y": 146, +"type": "cubic" +}, +{ +"x": 218, +"y": -62 +}, +{ +"x": 225, +"y": -58, +"type": "cubic" +}, +{ +"x": 235, +"y": -55, +"type": "cubic" +}, +{ +"x": 243, +"y": -54 +}, +{ +"x": 176, +"y": 148, +"type": "cubic" +}, +{ +"x": 118, +"y": 454, +"type": "cubic" +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.fontra/glyphs/VG_4E00_00^J.json b/tests/data/notosanscjksc.fontra/glyphs/VG_4E00_00^J.json new file mode 100644 index 0000000..b2f30e5 --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/VG_4E00_00^J.json @@ -0,0 +1,138 @@ +{ +"name": "VG_4E00_00", +"axes": [ +{ +"name": "weight", +"minValue": -100, +"defaultValue": 10, +"maxValue": 200 +}, +{ +"name": "width", +"minValue": 10, +"defaultValue": 1000, +"maxValue": 1000 +} +], +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=200", +"layerName": "weight=200", +"location": { +"weight": 200 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=10", +"layerName": "width=10", +"location": { +"width": 10 +}, +"customData": { +"fontra.development.status": 0 +} +} +], +"layers": { +"foreground": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 390 +}, +{ +"x": 0, +"y": 380 +}, +{ +"x": 1000, +"y": 380 +}, +{ +"x": 1000, +"y": 390 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=200": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 580 +}, +{ +"x": 0, +"y": 380 +}, +{ +"x": 1000, +"y": 380 +}, +{ +"x": 1000, +"y": 580 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"width=10": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 390 +}, +{ +"x": 0, +"y": 380 +}, +{ +"x": 10, +"y": 380 +}, +{ +"x": 10, +"y": 390 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.fontra/glyphs/VG_4E28_00^J.json b/tests/data/notosanscjksc.fontra/glyphs/VG_4E28_00^J.json new file mode 100644 index 0000000..c8128fe --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/VG_4E28_00^J.json @@ -0,0 +1,224 @@ +{ +"name": "VG_4E28_00", +"axes": [ +{ +"name": "weight", +"minValue": -100, +"defaultValue": 10, +"maxValue": 200 +}, +{ +"name": "height", +"minValue": 10, +"defaultValue": 1000, +"maxValue": 2000 +}, +{ +"name": "T_slant", +"minValue": 0, +"defaultValue": 0, +"maxValue": 100 +} +], +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=200", +"layerName": "weight=200", +"location": { +"weight": 200 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=10", +"layerName": "height=10", +"location": { +"height": 10 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=2000", +"layerName": "height=2000", +"location": { +"height": 2000 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "T_slant=100", +"layerName": "T_slant=100", +"location": { +"T_slant": 100 +}, +"customData": { +"fontra.development.status": 0 +} +} +], +"layers": { +"T_slant=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 500, +"y": 880 +}, +{ +"x": 500, +"y": -120 +}, +{ +"x": 510, +"y": -120 +}, +{ +"x": 510, +"y": 980 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"foreground": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 500, +"y": 880 +}, +{ +"x": 500, +"y": -120 +}, +{ +"x": 510, +"y": -120 +}, +{ +"x": 510, +"y": 880 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"height=10": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 500, +"y": 880 +}, +{ +"x": 500, +"y": 870 +}, +{ +"x": 510, +"y": 870 +}, +{ +"x": 510, +"y": 880 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"height=2000": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 500, +"y": 880 +}, +{ +"x": 500, +"y": -1120 +}, +{ +"x": 510, +"y": -1120 +}, +{ +"x": 510, +"y": 880 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=200": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 500, +"y": 880 +}, +{ +"x": 500, +"y": -120 +}, +{ +"x": 700, +"y": -120 +}, +{ +"x": 700, +"y": 880 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.fontra/glyphs/VG_4E3F_01^J2.json b/tests/data/notosanscjksc.fontra/glyphs/VG_4E3F_01^J2.json new file mode 100644 index 0000000..f1a9a96 --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/VG_4E3F_01^J2.json @@ -0,0 +1,2197 @@ +{ +"name": "VG_4E3F_01", +"axes": [ +{ +"name": "weight", +"minValue": 30, +"defaultValue": 30, +"maxValue": 170 +}, +{ +"name": "width", +"minValue": 130, +"defaultValue": 930, +"maxValue": 930 +}, +{ +"name": "height", +"minValue": 130, +"defaultValue": 780, +"maxValue": 780 +}, +{ +"name": "curveH", +"minValue": 0, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "curveV", +"minValue": 0, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "top_weightH", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "top_weightV", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "bottom_weightH", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "bottom_weightV", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +} +], +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170", +"layerName": "weight=170", +"location": { +"weight": 170 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=130", +"layerName": "width=130", +"location": { +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=130", +"layerName": "height=130", +"location": { +"height": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=130,height=130", +"layerName": "width=130,height=130", +"location": { +"height": 130, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170,width=130", +"layerName": "weight=170,width=130", +"location": { +"weight": 170, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170,height=130", +"layerName": "weight=170,height=130", +"location": { +"height": 130, +"weight": 170 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170,width=130,height=130", +"layerName": "weight=170,width=130,height=130", +"location": { +"height": 130, +"weight": 170, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "curveH=100", +"layerName": "curveH=100", +"location": { +"curveH": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "curveV=100", +"layerName": "curveV=100", +"location": { +"curveV": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "top_weightH=-100", +"layerName": "top_weightH=-100", +"location": { +"top_weightH": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "top_weightV=100", +"layerName": "top_weightV=100", +"location": { +"top_weightV": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "top_weightH=100", +"layerName": "top_weightH=100", +"location": { +"top_weightH": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "top_weightV=-100", +"layerName": "top_weightV=-100", +"location": { +"top_weightV": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "bottom_weightH=-100", +"layerName": "bottom_weightH=-100", +"location": { +"bottom_weightH": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "bottom_weightH=100", +"layerName": "bottom_weightH=100", +"location": { +"bottom_weightH": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "bottom_weightV=-100", +"layerName": "bottom_weightV=-100", +"location": { +"bottom_weightV": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "bottom_weightV=100", +"layerName": "bottom_weightV=100", +"location": { +"bottom_weightV": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170,width=130,bottom_weightV=100", +"layerName": "weight=170,width=130,bottom_weightV=100", +"location": { +"bottom_weightV": 100, +"weight": 170, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170,width=130,top_weightH=100,bottom_weightV=100", +"layerName": "weight=170,width=130,top_weightH=100,bottom_weightV=100", +"location": { +"bottom_weightV": 100, +"top_weightH": 100, +"weight": 170, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170,width=130,height=130,top_weightH=100,bottom_weightV=100", +"layerName": "weight=170,width=130,height=130,top_weightH=100,bottom_weightV=100", +"location": { +"bottom_weightV": 100, +"height": 130, +"top_weightH": 100, +"weight": 170, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170,width=130,top_weightH=-100", +"layerName": "weight=170,width=130,top_weightH=-100", +"location": { +"top_weightH": -100, +"weight": 170, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=170,width=130,height=130,top_weightH=-100", +"layerName": "weight=170,width=130,height=130,top_weightH=-100", +"location": { +"height": 130, +"top_weightH": -100, +"weight": 170, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=130,bottom_weightV=100", +"layerName": "width=130,bottom_weightV=100", +"location": { +"bottom_weightV": 100, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=130,height=130,bottom_weightV=100", +"layerName": "width=130,height=130,bottom_weightV=100", +"location": { +"bottom_weightV": 100, +"height": 130, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "wght=1,weight=170,width=130,height=130,bottom_weightV=100", +"layerName": "wght=1,weight=170,width=130,height=130,bottom_weightV=100", +"location": { +"bottom_weightV": 100, +"height": 130, +"weight": 170, +"wght": 1, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=130,bottom_weightH=-100", +"layerName": "width=130,bottom_weightH=-100", +"location": { +"bottom_weightH": -100, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "top_weightH=100,bottom_weightH=-100", +"layerName": "top_weightH=100,bottom_weightH=-100", +"location": { +"bottom_weightH": -100, +"top_weightH": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "wght=1,weight=170,width=130,top_weightH=100,bottom_weightH=-100", +"layerName": "wght=1,weight=170,width=130,top_weightH=100,bottom_weightH=-100", +"location": { +"bottom_weightH": -100, +"top_weightH": 100, +"weight": 170, +"wght": 1, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "wght=1,weight=170,width=130,height=130,top_weightH=100,bottom_weightH=-100", +"layerName": "wght=1,weight=170,width=130,height=130,top_weightH=100,bottom_weightH=-100", +"location": { +"bottom_weightH": -100, +"height": 130, +"top_weightH": 100, +"weight": 170, +"wght": 1, +"width": 130 +}, +"customData": { +"fontra.development.status": 0 +} +} +], +"layers": { +"bottom_weightH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 924, +"y": 793 +}, +{ +"x": 713.3701789510591, +"y": 480.9200357852848, +"type": "cubic" +}, +{ +"x": 456.02003588010075, +"y": 183.98988034812038, +"type": "cubic" +}, +{ +"x": 121, +"y": 36 +}, +{ +"x": 98, +"y": 28, +"type": "cubic" +}, +{ +"x": 71, +"y": 20, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 179, +"type": "cubic" +}, +{ +"x": 722, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"bottom_weightH=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 924, +"y": 793 +}, +{ +"x": 698.1669596362449, +"y": 458.3941649656289, +"type": "cubic" +}, +{ +"x": 324.4747361623256, +"y": 214.22867749175902, +"type": "cubic" +}, +{ +"x": -79, +"y": 36 +}, +{ +"x": -36, +"y": 32, +"type": "cubic" +}, +{ +"x": 3, +"y": 25, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 179, +"type": "cubic" +}, +{ +"x": 722, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"bottom_weightV=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 924, +"y": 793 +}, +{ +"x": 685.8400578239529, +"y": 440.12999393182, +"type": "cubic" +}, +{ +"x": 398.38893626474754, +"y": 102.70568187304565, +"type": "cubic" +}, +{ +"x": 21, +"y": -64 +}, +{ +"x": 29, +"y": -41, +"type": "cubic" +}, +{ +"x": 38, +"y": -7, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 179, +"type": "cubic" +}, +{ +"x": 722, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"bottom_weightV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 924, +"y": 793 +}, +{ +"x": 725.3359855215677, +"y": 498.6491895571852, +"type": "cubic" +}, +{ +"x": 382.4906332456932, +"y": 295.68285425216254, +"type": "cubic" +}, +{ +"x": 21, +"y": 136 +}, +{ +"x": 34, +"y": 96, +"type": "cubic" +}, +{ +"x": 41, +"y": 53, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 179, +"type": "cubic" +}, +{ +"x": 722, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"curveH=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 924, +"y": 793 +}, +{ +"x": 806, +"y": 470, +"type": "cubic" +}, +{ +"x": 490, +"y": 199, +"type": "cubic" +}, +{ +"x": 21, +"y": 36 +}, +{ +"x": 29, +"y": 30, +"type": "cubic" +}, +{ +"x": 37, +"y": 20, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 508, +"y": 179, +"type": "cubic" +}, +{ +"x": 822, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"curveV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 924, +"y": 793 +}, +{ +"x": 706, +"y": 370, +"type": "cubic" +}, +{ +"x": 390, +"y": 99, +"type": "cubic" +}, +{ +"x": 21, +"y": 36 +}, +{ +"x": 29, +"y": 30, +"type": "cubic" +}, +{ +"x": 37, +"y": 20, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 79, +"type": "cubic" +}, +{ +"x": 722, +"y": 346, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"foreground": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 924, +"y": 793 +}, +{ +"x": 706, +"y": 470, +"type": "cubic" +}, +{ +"x": 390, +"y": 199, +"type": "cubic" +}, +{ +"x": 21, +"y": 36 +}, +{ +"x": 29, +"y": 30, +"type": "cubic" +}, +{ +"x": 37, +"y": 20, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 179, +"type": "cubic" +}, +{ +"x": 722, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"height=130": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 940, +"y": 809 +}, +{ +"x": 653.5699483082634, +"y": 726.5885465307987, +"type": "cubic" +}, +{ +"x": 348, +"y": 691, +"type": "cubic" +}, +{ +"x": 29, +"y": 689 +}, +{ +"x": 32, +"y": 680, +"type": "cubic" +}, +{ +"x": 33, +"y": 667, +"type": "cubic" +}, +{ +"x": 32, +"y": 658 +}, +{ +"x": 349, +"y": 662, +"type": "cubic" +}, +{ +"x": 655, +"y": 695, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"top_weightH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 1024, +"y": 793 +}, +{ +"x": 798.1669596362449, +"y": 458.3941649656289, +"type": "cubic" +}, +{ +"x": 424.4747361623256, +"y": 214.22867749175902, +"type": "cubic" +}, +{ +"x": 21, +"y": 36 +}, +{ +"x": 29, +"y": 30, +"type": "cubic" +}, +{ +"x": 37, +"y": 20, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 179, +"type": "cubic" +}, +{ +"x": 722, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"top_weightH=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 824, +"y": 793 +}, +{ +"x": 613.2578832282923, +"y": 480.7536526731119, +"type": "cubic" +}, +{ +"x": 356.1485662937221, +"y": 184.04665665549243, +"type": "cubic" +}, +{ +"x": 21, +"y": 36 +}, +{ +"x": 29, +"y": 30, +"type": "cubic" +}, +{ +"x": 37, +"y": 20, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 179, +"type": "cubic" +}, +{ +"x": 722, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"top_weightH=100,bottom_weightH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 824, +"y": 793 +}, +{ +"x": 711, +"y": 492, +"type": "cubic" +}, +{ +"x": 332, +"y": 169, +"type": "cubic" +}, +{ +"x": 121, +"y": 36 +}, +{ +"x": 98, +"y": 28, +"type": "cubic" +}, +{ +"x": 71, +"y": 20, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 179, +"type": "cubic" +}, +{ +"x": 722, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"top_weightV=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 924, +"y": 693 +}, +{ +"x": 725.3359855215677, +"y": 398.6491895571852, +"type": "cubic" +}, +{ +"x": 382.4906332456932, +"y": 195.68285425216257, +"type": "cubic" +}, +{ +"x": 21, +"y": 36 +}, +{ +"x": 29, +"y": 30, +"type": "cubic" +}, +{ +"x": 37, +"y": 20, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 179, +"type": "cubic" +}, +{ +"x": 722, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"top_weightV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 924, +"y": 893 +}, +{ +"x": 685.8400578239529, +"y": 540.1299939318201, +"type": "cubic" +}, +{ +"x": 398.38893626474754, +"y": 202.70568187304565, +"type": "cubic" +}, +{ +"x": 21, +"y": 36 +}, +{ +"x": 29, +"y": 30, +"type": "cubic" +}, +{ +"x": 37, +"y": 20, +"type": "cubic" +}, +{ +"x": 42, +"y": 13 +}, +{ +"x": 408, +"y": 179, +"type": "cubic" +}, +{ +"x": 722, +"y": 446, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 850, +"y": 819 +}, +{ +"x": 655, +"y": 494, +"type": "cubic" +}, +{ +"x": 344, +"y": 238, +"type": "cubic" +}, +{ +"x": -26, +"y": 101 +}, +{ +"x": 4, +"y": 65, +"type": "cubic" +}, +{ +"x": 49, +"y": -3, +"type": "cubic" +}, +{ +"x": 72, +"y": -45 +}, +{ +"x": 480, +"y": 120, +"type": "cubic" +}, +{ +"x": 781, +"y": 381, +"type": "cubic" +}, +{ +"x": 1015, +"y": 758 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170,height=130": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 919, +"y": 878 +}, +{ +"x": 639.2521646444263, +"y": 797.7925786742761, +"type": "cubic" +}, +{ +"x": 340.64673980204435, +"y": 760.9538980551853, +"type": "cubic" +}, +{ +"x": 29, +"y": 759 +}, +{ +"x": 35, +"y": 712, +"type": "cubic" +}, +{ +"x": 36, +"y": 637, +"type": "cubic" +}, +{ +"x": 32, +"y": 588 +}, +{ +"x": 349, +"y": 592, +"type": "cubic" +}, +{ +"x": 655, +"y": 625, +"type": "cubic" +}, +{ +"x": 951, +"y": 710 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170,width=130": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 851, +"y": 792 +}, +{ +"x": 838.150779897201, +"y": 534.0271963976514, +"type": "cubic" +}, +{ +"x": 807.29174163576, +"y": 255.52109572515965, +"type": "cubic" +}, +{ +"x": 742, +"y": 27 +}, +{ +"x": 799, +"y": 22, +"type": "cubic" +}, +{ +"x": 857.9047250160156, +"y": 12.019407867107926, +"type": "cubic" +}, +{ +"x": 912, +"y": 1 +}, +{ +"x": 976, +"y": 232, +"type": "cubic" +}, +{ +"x": 1008, +"y": 512, +"type": "cubic" +}, +{ +"x": 1021, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170,width=130,bottom_weightV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 851, +"y": 792 +}, +{ +"x": 837, +"y": 563, +"type": "cubic" +}, +{ +"x": 807, +"y": 352, +"type": "cubic" +}, +{ +"x": 742, +"y": 127 +}, +{ +"x": 800, +"y": 88, +"type": "cubic" +}, +{ +"x": 858, +"y": 45, +"type": "cubic" +}, +{ +"x": 912, +"y": 1 +}, +{ +"x": 976, +"y": 232, +"type": "cubic" +}, +{ +"x": 1008, +"y": 512, +"type": "cubic" +}, +{ +"x": 1021, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170,width=130,height=130": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 858, +"y": 831 +}, +{ +"x": 829, +"y": 782, +"type": "cubic" +}, +{ +"x": 808, +"y": 750, +"type": "cubic" +}, +{ +"x": 774, +"y": 708 +}, +{ +"x": 817, +"y": 682, +"type": "cubic" +}, +{ +"x": 874, +"y": 643, +"type": "cubic" +}, +{ +"x": 916, +"y": 611 +}, +{ +"x": 952, +"y": 654, +"type": "cubic" +}, +{ +"x": 978, +"y": 693, +"type": "cubic" +}, +{ +"x": 1009, +"y": 750 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170,width=130,height=130,top_weightH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 958, +"y": 831 +}, +{ +"x": 895, +"y": 785, +"type": "cubic" +}, +{ +"x": 844, +"y": 751, +"type": "cubic" +}, +{ +"x": 774, +"y": 708 +}, +{ +"x": 817, +"y": 682, +"type": "cubic" +}, +{ +"x": 874, +"y": 643, +"type": "cubic" +}, +{ +"x": 916, +"y": 611 +}, +{ +"x": 954, +"y": 654, +"type": "cubic" +}, +{ +"x": 976, +"y": 693, +"type": "cubic" +}, +{ +"x": 1009, +"y": 750 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170,width=130,height=130,top_weightH=100,bottom_weightV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 758, +"y": 831 +}, +{ +"x": 764, +"y": 826, +"type": "cubic" +}, +{ +"x": 769, +"y": 819, +"type": "cubic" +}, +{ +"x": 774, +"y": 808 +}, +{ +"x": 818, +"y": 748, +"type": "cubic" +}, +{ +"x": 874, +"y": 676, +"type": "cubic" +}, +{ +"x": 916, +"y": 611 +}, +{ +"x": 954, +"y": 654, +"type": "cubic" +}, +{ +"x": 976, +"y": 693, +"type": "cubic" +}, +{ +"x": 1009, +"y": 750 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170,width=130,top_weightH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 951, +"y": 792 +}, +{ +"x": 918, +"y": 522, +"type": "cubic" +}, +{ +"x": 850, +"y": 271, +"type": "cubic" +}, +{ +"x": 742, +"y": 27 +}, +{ +"x": 799, +"y": 22, +"type": "cubic" +}, +{ +"x": 858, +"y": 12, +"type": "cubic" +}, +{ +"x": 912, +"y": 1 +}, +{ +"x": 976, +"y": 232, +"type": "cubic" +}, +{ +"x": 1008, +"y": 512, +"type": "cubic" +}, +{ +"x": 1021, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=170,width=130,top_weightH=100,bottom_weightV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 751, +"y": 792 +}, +{ +"x": 766, +"y": 574, +"type": "cubic" +}, +{ +"x": 763, +"y": 337, +"type": "cubic" +}, +{ +"x": 742, +"y": 127 +}, +{ +"x": 800, +"y": 88, +"type": "cubic" +}, +{ +"x": 858, +"y": 45, +"type": "cubic" +}, +{ +"x": 912, +"y": 1 +}, +{ +"x": 976, +"y": 232, +"type": "cubic" +}, +{ +"x": 1008, +"y": 512, +"type": "cubic" +}, +{ +"x": 1021, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"wght=1,weight=170,width=130,height=130,bottom_weightV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 858, +"y": 831 +}, +{ +"x": 830, +"y": 823, +"type": "cubic" +}, +{ +"x": 803, +"y": 816, +"type": "cubic" +}, +{ +"x": 774, +"y": 808 +}, +{ +"x": 818, +"y": 748, +"type": "cubic" +}, +{ +"x": 874, +"y": 676, +"type": "cubic" +}, +{ +"x": 916, +"y": 611 +}, +{ +"x": 952, +"y": 654, +"type": "cubic" +}, +{ +"x": 978, +"y": 693, +"type": "cubic" +}, +{ +"x": 1009, +"y": 750 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"wght=1,weight=170,width=130,height=130,top_weightH=100,bottom_weightH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 758, +"y": 831 +}, +{ +"x": 790, +"y": 803, +"type": "cubic" +}, +{ +"x": 845, +"y": 746, +"type": "cubic" +}, +{ +"x": 874, +"y": 708 +}, +{ +"x": 886, +"y": 680, +"type": "cubic" +}, +{ +"x": 908, +"y": 643, +"type": "cubic" +}, +{ +"x": 916, +"y": 611 +}, +{ +"x": 952, +"y": 654, +"type": "cubic" +}, +{ +"x": 978, +"y": 693, +"type": "cubic" +}, +{ +"x": 1009, +"y": 750 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"wght=1,weight=170,width=130,top_weightH=100,bottom_weightH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 751, +"y": 792 +}, +{ +"x": 789, +"y": 556, +"type": "cubic" +}, +{ +"x": 824, +"y": 226, +"type": "cubic" +}, +{ +"x": 842, +"y": 27 +}, +{ +"x": 868, +"y": 20, +"type": "cubic" +}, +{ +"x": 892, +"y": 12, +"type": "cubic" +}, +{ +"x": 912, +"y": 1 +}, +{ +"x": 976, +"y": 232, +"type": "cubic" +}, +{ +"x": 1008, +"y": 512, +"type": "cubic" +}, +{ +"x": 1021, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"width=130": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 921, +"y": 781 +}, +{ +"x": 907.9834970985261, +"y": 519.6686725165625, +"type": "cubic" +}, +{ +"x": 878, +"y": 238, +"type": "cubic" +}, +{ +"x": 812, +"y": 7 +}, +{ +"x": 822, +"y": 7, +"type": "cubic" +}, +{ +"x": 834, +"y": 4, +"type": "cubic" +}, +{ +"x": 842, +"y": 1 +}, +{ +"x": 906, +"y": 232, +"type": "cubic" +}, +{ +"x": 938, +"y": 512, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"width=130,bottom_weightH=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 921, +"y": 781 +}, +{ +"x": 931, +"y": 531, +"type": "cubic" +}, +{ +"x": 927, +"y": 223, +"type": "cubic" +}, +{ +"x": 912, +"y": 7 +}, +{ +"x": 891, +"y": 5, +"type": "cubic" +}, +{ +"x": 868, +"y": 4, +"type": "cubic" +}, +{ +"x": 842, +"y": 1 +}, +{ +"x": 906, +"y": 232, +"type": "cubic" +}, +{ +"x": 938, +"y": 512, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"width=130,bottom_weightV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 921, +"y": 781 +}, +{ +"x": 906, +"y": 546, +"type": "cubic" +}, +{ +"x": 874, +"y": 335, +"type": "cubic" +}, +{ +"x": 812, +"y": 107 +}, +{ +"x": 823, +"y": 73, +"type": "cubic" +}, +{ +"x": 834, +"y": 37, +"type": "cubic" +}, +{ +"x": 842, +"y": 1 +}, +{ +"x": 906, +"y": 232, +"type": "cubic" +}, +{ +"x": 938, +"y": 512, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"width=130,height=130": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 925, +"y": 795 +}, +{ +"x": 900, +"y": 754, +"type": "cubic" +}, +{ +"x": 866, +"y": 706, +"type": "cubic" +}, +{ +"x": 833, +"y": 671 +}, +{ +"x": 841, +"y": 666, +"type": "cubic" +}, +{ +"x": 852, +"y": 657, +"type": "cubic" +}, +{ +"x": 857, +"y": 652 +}, +{ +"x": 888, +"y": 687, +"type": "cubic" +}, +{ +"x": 924, +"y": 736, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"width=130,height=130,bottom_weightV=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 925, +"y": 795 +}, +{ +"x": 892, +"y": 786, +"type": "cubic" +}, +{ +"x": 866, +"y": 779, +"type": "cubic" +}, +{ +"x": 833, +"y": 771 +}, +{ +"x": 842, +"y": 732, +"type": "cubic" +}, +{ +"x": 852, +"y": 690, +"type": "cubic" +}, +{ +"x": 857, +"y": 652 +}, +{ +"x": 888, +"y": 687, +"type": "cubic" +}, +{ +"x": 924, +"y": 736, +"type": "cubic" +}, +{ +"x": 951, +"y": 780 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.fontra/glyphs/VG_531A_00^32.json b/tests/data/notosanscjksc.fontra/glyphs/VG_531A_00^32.json new file mode 100644 index 0000000..168b63b --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/VG_531A_00^32.json @@ -0,0 +1,1033 @@ +{ +"name": "VG_531A_00", +"axes": [ +{ +"name": "width", +"minValue": 100, +"defaultValue": 1000, +"maxValue": 1000 +}, +{ +"name": "height", +"minValue": 100, +"defaultValue": 1000, +"maxValue": 1000 +}, +{ +"name": "weight", +"minValue": 20, +"defaultValue": 20, +"maxValue": 160 +}, +{ +"name": "L_S_end_length", +"minValue": 0, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "L_S_weight", +"minValue": -20, +"defaultValue": 0, +"maxValue": 20 +}, +{ +"name": "TB_2H_weight", +"minValue": -50, +"defaultValue": 0, +"maxValue": 50 +}, +{ +"name": "T_H_right_length", +"minValue": -50, +"defaultValue": 0, +"maxValue": 50 +} +], +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=100", +"layerName": "width=100", +"location": { +"width": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=100", +"layerName": "height=100", +"location": { +"height": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=100,height=100", +"layerName": "width=100,height=100", +"location": { +"height": 100, +"width": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=160", +"layerName": "weight=160", +"location": { +"weight": 160 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_end_length=100", +"layerName": "L_S_end_length=100", +"location": { +"L_S_end_length": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_weight=20", +"layerName": "L_S_weight=20", +"location": { +"L_S_weight": 20 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_weight=-20", +"layerName": "L_S_weight=-20", +"location": { +"L_S_weight": -20 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "TB_2H_weight=50", +"layerName": "TB_2H_weight=50", +"location": { +"TB_2H_weight": 50 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "TB_2H_weight=-50", +"layerName": "TB_2H_weight=-50", +"location": { +"TB_2H_weight": -50 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "T_H_right_length=50", +"layerName": "T_H_right_length=50", +"location": { +"T_H_right_length": 50 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "T_H_right_length=-50", +"layerName": "T_H_right_length=-50", +"location": { +"T_H_right_length": -50 +}, +"customData": { +"fontra.development.status": 0 +} +} +], +"layers": { +"L_S_end_length=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -220 +}, +{ +"x": 20, +"y": -220 +}, +{ +"x": 20, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 860 +}, +{ +"x": 1000, +"y": 860 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -100 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": -100 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"L_S_weight=-20": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 0, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 860 +}, +{ +"x": 1000, +"y": 860 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -100 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": -100 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"L_S_weight=20": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 40, +"y": -120 +}, +{ +"x": 40, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 860 +}, +{ +"x": 1000, +"y": 860 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -100 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": -100 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"TB_2H_weight=-50": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 20, +"y": -120 +}, +{ +"x": 20, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 910 +}, +{ +"x": 1000, +"y": 910 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -150 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": -150 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"TB_2H_weight=50": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 20, +"y": -120 +}, +{ +"x": 20, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 810 +}, +{ +"x": 1000, +"y": 810 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -50 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": -50 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"T_H_right_length=-50": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 20, +"y": -120 +}, +{ +"x": 20, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 860 +}, +{ +"x": 950, +"y": 860 +}, +{ +"x": 950, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -100 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": -100 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"T_H_right_length=50": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 20, +"y": -120 +}, +{ +"x": 20, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 860 +}, +{ +"x": 1050, +"y": 860 +}, +{ +"x": 1050, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -100 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": -100 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"foreground": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 20, +"y": -120 +}, +{ +"x": 20, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 860 +}, +{ +"x": 1000, +"y": 860 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -100 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": -100 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"height=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": -20 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 20, +"y": -120 +}, +{ +"x": 20, +"y": -20 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -20 +}, +{ +"x": 0, +"y": -40 +}, +{ +"x": 1000, +"y": -40 +}, +{ +"x": 1000, +"y": -20 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -100 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": -100 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=160": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 160, +"y": -120 +}, +{ +"x": 160, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 720 +}, +{ +"x": 1000, +"y": 720 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 40 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 40 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"width=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 20, +"y": -120 +}, +{ +"x": 20, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 860 +}, +{ +"x": 100, +"y": 860 +}, +{ +"x": 100, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -100 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 100, +"y": -120 +}, +{ +"x": 100, +"y": -100 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"width=100,height=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": -20 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 20, +"y": -120 +}, +{ +"x": 20, +"y": -20 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -20 +}, +{ +"x": 0, +"y": -40 +}, +{ +"x": 100, +"y": -40 +}, +{ +"x": 100, +"y": -20 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 0, +"y": -100 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 100, +"y": -120 +}, +{ +"x": 100, +"y": -100 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.fontra/glyphs/VG_53E3_00^31.json b/tests/data/notosanscjksc.fontra/glyphs/VG_53E3_00^31.json new file mode 100644 index 0000000..2fd0b0f --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/VG_53E3_00^31.json @@ -0,0 +1,1459 @@ +{ +"name": "VG_53E3_00", +"axes": [ +{ +"name": "weight", +"minValue": 30, +"defaultValue": 30, +"maxValue": 160 +}, +{ +"name": "T_H_weight", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "B_H_weight", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "L_S_weight", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "R_S_weight", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "height", +"minValue": 60, +"defaultValue": 1000, +"maxValue": 1000 +}, +{ +"name": "width", +"minValue": 60, +"defaultValue": 1000, +"maxValue": 1000 +}, +{ +"name": "L_S_bottom_length", +"minValue": 0, +"defaultValue": 0, +"maxValue": 200 +}, +{ +"name": "R_S_bottom_length", +"minValue": 0, +"defaultValue": 0, +"maxValue": 200 +}, +{ +"name": "B_H_moveV", +"minValue": -300, +"defaultValue": 0, +"maxValue": 300 +}, +{ +"name": "B_H_length", +"minValue": -500, +"defaultValue": 0, +"maxValue": 0 +} +], +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=160", +"layerName": "weight=160", +"location": { +"weight": 160 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "T_H_weight=100", +"layerName": "T_H_weight=100", +"location": { +"T_H_weight": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "T_H_weight=-100", +"layerName": "T_H_weight=-100", +"location": { +"T_H_weight": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "B_H_weight=100", +"layerName": "B_H_weight=100", +"location": { +"B_H_weight": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "B_H_weight=-100", +"layerName": "B_H_weight=-100", +"location": { +"B_H_weight": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_weight=100", +"layerName": "L_S_weight=100", +"location": { +"L_S_weight": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_weight=-100", +"layerName": "L_S_weight=-100", +"location": { +"L_S_weight": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "R_S_weight=100", +"layerName": "R_S_weight=100", +"location": { +"R_S_weight": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "R_S_weight=-100", +"layerName": "R_S_weight=-100", +"location": { +"R_S_weight": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=60", +"layerName": "height=60", +"location": { +"height": 60 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=60", +"layerName": "width=60", +"location": { +"width": 60 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=60,width=60", +"layerName": "height=60,width=60", +"location": { +"height": 60, +"width": 60 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_bottom_length=200", +"layerName": "L_S_bottom_length=200", +"location": { +"L_S_bottom_length": 200 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "R_S_bottom_length=200", +"layerName": "R_S_bottom_length=200", +"location": { +"R_S_bottom_length": 200 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "B_H_moveV=300", +"layerName": "B_H_moveV=300", +"location": { +"B_H_moveV": 300 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "B_H_moveV=-300", +"layerName": "B_H_moveV=-300", +"location": { +"B_H_moveV": -300 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "B_H_length=-500", +"layerName": "B_H_length=-500", +"location": { +"B_H_length": -500 +}, +"customData": { +"fontra.development.status": 0 +} +} +], +"layers": { +"B_H_length=-500": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 260, +"y": -90 +}, +{ +"x": 260, +"y": -120 +}, +{ +"x": 740, +"y": -120 +}, +{ +"x": 740, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"B_H_moveV=-300": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -390 +}, +{ +"x": 10, +"y": -420 +}, +{ +"x": 999, +"y": -420 +}, +{ +"x": 999, +"y": -390 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"B_H_moveV=300": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": 210 +}, +{ +"x": 10, +"y": 180 +}, +{ +"x": 999, +"y": 180 +}, +{ +"x": 999, +"y": 210 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"B_H_weight=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -190 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": -190 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"B_H_weight=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": 10 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": 10 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"L_S_bottom_length=200": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -320 +}, +{ +"x": 30, +"y": -320 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -90 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"L_S_weight=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": -70, +"y": -120 +}, +{ +"x": -70, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -90 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"L_S_weight=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 130, +"y": -120 +}, +{ +"x": 130, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -90 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"R_S_bottom_length=200": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": -320 +}, +{ +"x": 1000, +"y": -320 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -90 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"R_S_weight=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 1070, +"y": 850 +}, +{ +"x": 1070, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -90 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"R_S_weight=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 870, +"y": 850 +}, +{ +"x": 870, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -90 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"T_H_weight=-100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 950 +}, +{ +"x": 970, +"y": 950 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -90 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"T_H_weight=100": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 750 +}, +{ +"x": 970, +"y": 750 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -90 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"foreground": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -90 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"height=60": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 820 +}, +{ +"x": 30, +"y": 820 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 970, +"y": 850 +}, +{ +"x": 970, +"y": 820 +}, +{ +"x": 1000, +"y": 820 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": 850 +}, +{ +"x": 10, +"y": 820 +}, +{ +"x": 999, +"y": 820 +}, +{ +"x": 999, +"y": 850 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"height=60,width=60": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": 820 +}, +{ +"x": 30, +"y": 820 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 30, +"y": 820 +}, +{ +"x": 60, +"y": 820 +}, +{ +"x": 60, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": 850 +}, +{ +"x": 10, +"y": 820 +}, +{ +"x": 59, +"y": 820 +}, +{ +"x": 59, +"y": 850 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"weight=160": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 160, +"y": -120 +}, +{ +"x": 160, +"y": 720 +}, +{ +"x": 840, +"y": 720 +}, +{ +"x": 840, +"y": -120 +}, +{ +"x": 1000, +"y": -120 +}, +{ +"x": 1000, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": 40 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 999, +"y": -120 +}, +{ +"x": 999, +"y": 40 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +}, +"width=60": { +"glyph": { +"path": { +"contours": [ +{ +"points": [ +{ +"x": 0, +"y": 880 +}, +{ +"x": 0, +"y": -120 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 30, +"y": 850 +}, +{ +"x": 30, +"y": -120 +}, +{ +"x": 60, +"y": -120 +}, +{ +"x": 60, +"y": 880 +} +], +"isClosed": true +}, +{ +"points": [ +{ +"x": 10, +"y": -90 +}, +{ +"x": 10, +"y": -120 +}, +{ +"x": 59, +"y": -120 +}, +{ +"x": 59, +"y": -90 +} +], +"isClosed": true +} +] +}, +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.fontra/glyphs/VG_65E5_00^31.json b/tests/data/notosanscjksc.fontra/glyphs/VG_65E5_00^31.json new file mode 100644 index 0000000..9387579 --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/VG_65E5_00^31.json @@ -0,0 +1,657 @@ +{ +"name": "VG_65E5_00", +"axes": [ +{ +"name": "weight", +"minValue": 20, +"defaultValue": 20, +"maxValue": 160 +}, +{ +"name": "width", +"minValue": 60, +"defaultValue": 1000, +"maxValue": 1000 +}, +{ +"name": "height", +"minValue": 60, +"defaultValue": 1000, +"maxValue": 1000 +}, +{ +"name": "H_weight", +"minValue": -90, +"defaultValue": 0, +"maxValue": 50 +}, +{ +"name": "M_H_weight", +"minValue": -50, +"defaultValue": 0, +"maxValue": 0 +}, +{ +"name": "M_H_moveV", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "L_S_bottom_length", +"minValue": 0, +"defaultValue": 0, +"maxValue": 200 +}, +{ +"name": "R_S_bottom_length", +"minValue": 0, +"defaultValue": 0, +"maxValue": 200 +}, +{ +"name": "M_H_right_length", +"minValue": -200, +"defaultValue": 0, +"maxValue": 0 +}, +{ +"name": "L_S_weight", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +} +], +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=160", +"layerName": "weight=160", +"location": { +"weight": 160 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=60", +"layerName": "width=60", +"location": { +"width": 60 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=60", +"layerName": "height=60", +"location": { +"height": 60 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "H_weight=-90", +"layerName": "H_weight=-90", +"location": { +"H_weight": -90 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_H_weight=-50", +"layerName": "M_H_weight=-50", +"location": { +"M_H_weight": -50 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_H_moveV=-100", +"layerName": "M_H_moveV=-100", +"location": { +"M_H_moveV": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_H_moveV=100", +"layerName": "M_H_moveV=100", +"location": { +"M_H_moveV": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_bottom_length=200", +"layerName": "L_S_bottom_length=200", +"location": { +"L_S_bottom_length": 200 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "R_S_bottom_length=200", +"layerName": "R_S_bottom_length=200", +"location": { +"R_S_bottom_length": 200 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "H_weight=50", +"layerName": "H_weight=50", +"location": { +"H_weight": 50 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_H_right_length=-200", +"layerName": "M_H_right_length=-200", +"location": { +"M_H_right_length": -200 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_weight=100", +"layerName": "L_S_weight=100", +"location": { +"L_S_weight": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_weight=-100", +"layerName": "L_S_weight=-100", +"location": { +"L_S_weight": -100 +}, +"customData": { +"fontra.development.status": 0 +} +} +], +"layers": { +"H_weight=-90": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -100, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -100, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": 35 +}, +"location": { +"weight": -70, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"H_weight=50": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": 40, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": 40, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -35 +}, +"location": { +"weight": 70, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"L_S_bottom_length=200": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 200, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"L_S_weight=-100": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -100, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"L_S_weight=100": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": 90, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"M_H_moveV=-100": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -110 +}, +"location": { +"weight": 20, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"M_H_moveV=100": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": 90 +}, +"location": { +"weight": 20, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"M_H_right_length=-200": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 800 +} +} +], +"xAdvance": 1000 +} +}, +"M_H_weight=-50": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": 15 +}, +"location": { +"weight": -30, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"R_S_bottom_length=200": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 200, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"foreground": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"height=60": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"transformation": { +"translateY": -940 +}, +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 60, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -480 +}, +"location": { +"weight": 20, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"weight=160": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": 0, +"L_S_bottom_length": 0, +"L_S_weight": 0, +"R_S_bottom_length": 0, +"R_S_weight": 0, +"T_H_weight": 0, +"height": 1000, +"weight": 160, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -80 +}, +"location": { +"weight": 160, +"width": 1000 +} +} +], +"xAdvance": 1000 +} +}, +"width=60": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 60 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 60 +} +} +], +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.fontra/glyphs/VG_7530_00^3.json b/tests/data/notosanscjksc.fontra/glyphs/VG_7530_00^3.json new file mode 100644 index 0000000..13867ca --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/VG_7530_00^3.json @@ -0,0 +1,921 @@ +{ +"name": "VG_7530_00", +"axes": [ +{ +"name": "weight", +"minValue": 20, +"defaultValue": 20, +"maxValue": 160 +}, +{ +"name": "width", +"minValue": 60, +"defaultValue": 1000, +"maxValue": 1000 +}, +{ +"name": "height", +"minValue": 60, +"defaultValue": 1000, +"maxValue": 1000 +}, +{ +"name": "H_weight", +"minValue": -90, +"defaultValue": 0, +"maxValue": 50 +}, +{ +"name": "M_H_weight", +"minValue": -50, +"defaultValue": 0, +"maxValue": 0 +}, +{ +"name": "M_H_moveV", +"minValue": -100, +"defaultValue": 0, +"maxValue": 100 +}, +{ +"name": "L_S_bottom_length", +"minValue": 0, +"defaultValue": 0, +"maxValue": 200 +}, +{ +"name": "R_S_bottom_length", +"minValue": 0, +"defaultValue": 0, +"maxValue": 200 +}, +{ +"name": "M_S_top_length", +"minValue": 0, +"defaultValue": 0, +"maxValue": 1000 +}, +{ +"name": "M_S_bottom_length", +"minValue": 0, +"defaultValue": 0, +"maxValue": 1000 +}, +{ +"name": "M_S_moveH", +"minValue": -100, +"defaultValue": 0, +"maxValue": 0 +}, +{ +"name": "M_S_weight", +"minValue": -50, +"defaultValue": 0, +"maxValue": 0 +}, +{ +"name": "L_S_weight", +"minValue": -50, +"defaultValue": 0, +"maxValue": 0 +} +], +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "weight=160", +"layerName": "weight=160", +"location": { +"weight": 160 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "width=60", +"layerName": "width=60", +"location": { +"width": 60 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "height=60", +"layerName": "height=60", +"location": { +"height": 60 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "H_weight=-90", +"layerName": "H_weight=-90", +"location": { +"H_weight": -90 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_H_weight=-50", +"layerName": "M_H_weight=-50", +"location": { +"M_H_weight": -50 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_H_moveV=-100", +"layerName": "M_H_moveV=-100", +"location": { +"M_H_moveV": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_H_moveV=100", +"layerName": "M_H_moveV=100", +"location": { +"M_H_moveV": 100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_bottom_length=200", +"layerName": "L_S_bottom_length=200", +"location": { +"L_S_bottom_length": 200 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "R_S_bottom_length=200", +"layerName": "R_S_bottom_length=200", +"location": { +"R_S_bottom_length": 200 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "H_weight=50", +"layerName": "H_weight=50", +"location": { +"H_weight": 50 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_S_top_length=1000", +"layerName": "M_S_top_length=1000", +"location": { +"M_S_top_length": 1000 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_S_bottom_length=1000", +"layerName": "M_S_bottom_length=1000", +"location": { +"M_S_bottom_length": 1000 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_S_moveH=-100", +"layerName": "M_S_moveH=-100", +"location": { +"M_S_moveH": -100 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "M_S_weight=-50", +"layerName": "M_S_weight=-50", +"location": { +"M_S_weight": -50 +}, +"customData": { +"fontra.development.status": 0 +} +}, +{ +"name": "L_S_weight=-50", +"layerName": "L_S_weight=-50", +"location": { +"L_S_weight": -50 +}, +"customData": { +"fontra.development.status": 0 +} +} +], +"layers": { +"H_weight=-90": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -100, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -100, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": 35 +}, +"location": { +"weight": -70, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"H_weight=50": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": 40, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": 40, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -35 +}, +"location": { +"weight": 70, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"L_S_bottom_length=200": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 200, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"L_S_weight=-50": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -60, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"M_H_moveV=-100": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -110 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"M_H_moveV=100": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": 90 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"M_H_weight=-50": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": 15 +}, +"location": { +"weight": -30, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"M_S_bottom_length=1000": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10 +}, +"location": { +"height": 2000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"M_S_moveH=-100": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -110 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"M_S_top_length=1000": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10, +"translateY": 1000 +}, +"location": { +"height": 2000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"M_S_weight=-50": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": 15 +}, +"location": { +"height": 1000, +"weight": -30 +} +} +], +"xAdvance": 1000 +} +}, +"R_S_bottom_length=200": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 200, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"foreground": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"height=60": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"transformation": { +"translateY": -940 +}, +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 60, +"weight": 30, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -480 +}, +"location": { +"weight": 20, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -10, +"translateY": -940 +}, +"location": { +"height": 60, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +}, +"weight=160": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": 0, +"L_S_bottom_length": 0, +"L_S_weight": 0, +"R_S_bottom_length": 0, +"R_S_weight": 0, +"T_H_weight": 0, +"height": 1000, +"weight": 160, +"width": 1000 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -80 +}, +"location": { +"weight": 160, +"width": 1000 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -80 +}, +"location": { +"height": 1000, +"weight": 160 +} +} +], +"xAdvance": 1000 +} +}, +"width=60": { +"glyph": { +"components": [ +{ +"name": "VG_53E3_00", +"location": { +"B_H_moveV": 0, +"B_H_weight": -10, +"L_S_bottom_length": 0, +"L_S_weight": -10, +"R_S_bottom_length": 0, +"R_S_weight": -10, +"T_H_weight": -10, +"height": 1000, +"weight": 30, +"width": 60 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateY": -10 +}, +"location": { +"weight": 20, +"width": 60 +} +}, +{ +"name": "VG_4E28_00", +"transformation": { +"translateX": -480 +}, +"location": { +"height": 1000, +"weight": 20 +} +} +], +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.fontra/glyphs/uni3479.json b/tests/data/notosanscjksc.fontra/glyphs/uni3479.json new file mode 100644 index 0000000..10df3a8 --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/uni3479.json @@ -0,0 +1,149 @@ +{ +"name": "uni3479", +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 4 +} +}, +{ +"name": "wght=1", +"layerName": "wght=1", +"location": { +"wght": 1 +}, +"customData": { +"fontra.development.status": 4 +} +} +], +"layers": { +"foreground": { +"glyph": { +"components": [ +{ +"name": "VG_65E5_00", +"transformation": { +"translateX": 238, +"translateY": 93 +}, +"location": { +"H_weight": 0, +"L_S_bottom_length": 43, +"M_H_moveV": 3, +"M_H_right_length": 0, +"M_H_weight": 0, +"R_S_bottom_length": 38, +"height": 276, +"weight": 30, +"width": 539 +} +}, +{ +"name": "VG_7530_00", +"transformation": { +"translateX": 174, +"translateY": 431 +}, +"location": { +"H_weight": 0, +"L_S_bottom_length": 0, +"M_H_moveV": 3, +"M_H_weight": 0, +"M_S_bottom_length": 0, +"M_S_moveH": 0, +"M_S_top_length": 87.0909678312641, +"R_S_bottom_length": 0, +"height": 234, +"weight": 30, +"width": 651 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateX": 332, +"translateY": 232 +}, +"location": { +"weight": 30, +"width": 344 +} +}, +{ +"name": "T_4EBA_2FF1", +"location": { +"height": 299 +} +} +], +"xAdvance": 1000 +} +}, +"wght=1": { +"glyph": { +"components": [ +{ +"name": "VG_65E5_00", +"transformation": { +"translateX": 198, +"translateY": 51 +}, +"location": { +"H_weight": -55, +"L_S_bottom_length": 25, +"M_H_moveV": 0, +"M_H_right_length": 0, +"M_H_weight": 0, +"R_S_bottom_length": 21, +"height": 326, +"weight": 146, +"width": 608 +} +}, +{ +"name": "VG_7530_00", +"transformation": { +"translateX": 146, +"translateY": 394 +}, +"location": { +"H_weight": -35, +"L_S_bottom_length": 0, +"M_H_moveV": -1, +"M_H_weight": -14, +"M_S_bottom_length": 0, +"M_S_moveH": -6, +"M_S_top_length": 78.0909678312641, +"M_S_weight": -5, +"R_S_bottom_length": 0, +"height": 293, +"weight": 123, +"width": 710 +} +}, +{ +"name": "VG_4E00_00", +"transformation": { +"translateX": 320, +"translateY": 210 +}, +"location": { +"weight": 91, +"width": 357 +} +}, +{ +"name": "T_4EBA_2FF1", +"location": { +"height": 299 +} +} +], +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.fontra/glyphs/uni531A^02.json b/tests/data/notosanscjksc.fontra/glyphs/uni531A^02.json new file mode 100644 index 0000000..57a52f0 --- /dev/null +++ b/tests/data/notosanscjksc.fontra/glyphs/uni531A^02.json @@ -0,0 +1,70 @@ +{ +"name": "uni531A", +"sources": [ +{ +"name": "", +"layerName": "foreground", +"customData": { +"fontra.development.status": 4 +} +}, +{ +"name": "wght=1", +"layerName": "wght=1", +"location": { +"wght": 1 +}, +"customData": { +"fontra.development.status": 4 +} +} +], +"layers": { +"foreground": { +"glyph": { +"components": [ +{ +"name": "VG_531A_00", +"transformation": { +"translateX": 142, +"translateY": 129 +}, +"location": { +"L_S_end_length": 0, +"L_S_weight": 0, +"TB_2H_weight": -1, +"T_H_right_length": -20, +"height": 741, +"weight": 30, +"width": 745 +} +} +], +"xAdvance": 1000 +} +}, +"wght=1": { +"glyph": { +"components": [ +{ +"name": "VG_531A_00", +"transformation": { +"translateX": 91, +"translateY": 79 +}, +"location": { +"L_S_end_length": 0, +"L_S_weight": 0, +"TB_2H_weight": -1, +"T_H_right_length": -27, +"height": 838, +"weight": 136, +"width": 845 +} +} +], +"xAdvance": 1000 +} +} +} +} diff --git a/tests/data/notosanscjksc.otf.ttx b/tests/data/notosanscjksc.otf.ttx new file mode 100644 index 0000000..4c077a2 --- /dev/null +++ b/tests/data/notosanscjksc.otf.ttx @@ -0,0 +1,4460 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wght + + + V000 + + + V001 + + + V002 + + + V003 + + + V004 + + + V005 + + + V006 + + + V007 + + + V008 + + + V009 + + + V010 + + + V011 + + + V012 + + + wght + + + V000 + + + V001 + + + V002 + + + V003 + + + V004 + + + V005 + + + V006 + + + V007 + + + V008 + + + V009 + + + V010 + + + V011 + + + V012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -106 callsubr + 0 + + 0 0 0 + + -99 callsubr + 0 + + -107 callsubr + 0 0 + + -0.01941 + + 0.01941 + + -0.09528 + + 0.09528 + + -104 callsubr + 0 0 + + -105 callsubr + -106 callsubr + + + 0 -95 callsubr + 0 + + -106 callsubr + -90 callsubr + 3 blend + vlineto + + + 0 0 -94 callsubr + + + 0 0 -93 callsubr + + + -100 100 -104 callsubr + -107 callsubr + + + 0 -900 -104 callsubr + -106 callsubr + + + 0 0 100 -100 -104 callsubr + 0 0 + + 140 -106 callsubr + -50 50 -106 callsubr + + + -106 callsubr + 2 0 2 -106 callsubr + + + + + + + + + + + + 1 vsindex + 83 838 137 -13 2 -93 callsubr + -26 8 11 -97 callsubr + 2 blend + rmoveto + -24 -8 141 -446 284 -320 459 -126 -137 13 -2 100 -100 -105 callsubr + 0 26 -8 -14 -51 -15 6 -91 callsubr + 46 2 -2 -2 117 -106 -99 callsubr + 100 -100 0 0 -28 -109.76389 -3.23611 10 357 54 -105 callsubr + 0 100 -100 -11 -20.9874 -3.0126 -74 40 -227 -98 callsubr + 24 -43.83473 8.56078 28 268 22 -98 callsubr + 64 -25.11368 -78.2471 -19 -156 -392 -99 callsubr + -100 100 0 0 -19 157.59862 -6.32468 13 110 -82 -105 callsubr + 0 -100 100 -99 44.10109 83.2597 8 blend + rlinecurve + 4 8 7 9 5 5 -460 124 -279 318 -137 436 19 -1 3 -107 callsubr + -35 32 2 -3 -107 callsubr + 11 0.35463 2.64537 35 0 -4 -107 callsubr + 1 1 -33 32 -107 callsubr + -9 2.35463 -5.35463 44 -1 3 -107 callsubr + -33 29 -2 -1 -107 callsubr + -1 -3.84288 3.84288 61 1 -6 -107 callsubr + -2 -2 -38 33 -106 callsubr + 1 -42 3 -3 32 1 3 -107 callsubr + -32 39 0 4 -107 callsubr + 9 -0.51175 -2.48825 29 2 -4 -107 callsubr + 1 1 -29 35 -107 callsubr + -21 0.63782 2.36218 49 144 393 -49.1252 48.74237 3.35931 -3.73611 48.74237 -49.1252 -3.73611 3.35931 100 -100 0 0 -5 -149.93752 11.93752 -32 -108 78 13.24245 -13.13925 -0.90555 1 -13.13925 13.24245 1 -0.90555 0 0 100 -100 74 -40.51248 -59.48752 62 -40 221 -49.39719 49.926 -17.47974 18 49.926 -49.39719 18 -17.47974 -107 callsubr + -14 47.79951 -8.8291 -37 -266 -12 -17.94495 17.37714 -54.15646 53.59456 17.37714 -17.94495 53.59456 -54.15646 -106 callsubr + -1 -53 15.06683 68.08769 26 -117 104 -1.47762 1.33163 14.12042 -14.2673 1.33163 -1.47762 -14.2673 14.12042 -100 100 0 0 -3 110.138 7.89159 -56 -349 -52 4.7025 -4.23788 -44.93797 45.40544 -4.23788 4.7025 45.40544 -44.93797 0 0 -100 100 51 19.44565 -2.60019 12 blend + rrcurveto + + + 2 vsindex + 390 190 0 1 blend + vmoveto + -10 1000 10 -190 0 0 -990 190 0 3 blend + vlineto + + + 500 880 rmoveto + 3 vsindex + -1000 10 1000 0 990 -1000 0 190 -107 callsubr + -990 1000 100 3 blend + vlineto + + + 4 vsindex + 924 793 -74 -3 16 0 0 100 -100 -104 callsubr + 4 53 -12 -106 callsubr + -50 0 -99 callsubr + 26 -12 16 -107 callsubr + -100 100 -107 callsubr + -15 43 -2 -106 callsubr + -18 -105 callsubr + 2 blend + rmoveto + -218 -323 -316 -271 -369 -163 8 -6 8 -10 5 -7 23 204.98349 -68.43005 100 0 -7.83304 7.25789 19.33598 -20.15994 7.37018 -7.83304 -20.15994 19.33598 -22.83272 -16.31778 56.44655 15.64632 -21.31949 90.37193 12.1505 -12.31773 0.83272 -6.01651 -13.84921 21.74211 13.16728 8.16728 -69.7971 10.15079 -2 61.66867 240.58855 0 -100 -11.60583 10.75365 28.64919 -29.87001 10.92003 -11.60583 -29.87001 28.64919 5.35852 4.20403 -20.25722 0.41129 -2.31786 0.32631 -15.56256 -0.42136 2.64148 5.66867 15.02719 0.24635 -1.64148 6.35852 -0.43849 -0.97281 5 286.01651 10.43005 0 0 -57.69223 58.89069 -26.84535 28.54887 58.64986 -57.69223 28.54887 -26.84535 -5.87553 1.96452 -14.44655 -32.66637 24.82884 -180.54054 11.91101 20.55125 2.87553 10.01651 7.14096 -31.89069 -11.87553 -16.87553 161.52539 10.14096 15 -10.66867 235.41145 0 0 26.83452 -25.707 68.03366 -66.42432 -25.93016 26.83452 -66.42432 68.03366 -11.83743 -16.25014 -1.74278 -0.40117 2.63501 -0.36285 29.08755 0.67159 -3.16257 -29.66867 -29.5061 -0.293 13.16257 -12.83743 0.90727 26.4939 -1 303 50 -100 0 -34.47473 33.85144 7.50937 -8.38893 33.97997 -34.47473 -8.38893 7.50937 1.70825 8.35326 -17 17.02003 -3.50937 90.16861 -10.06152 -8.23352 -3.70825 -4 6.70825 10.14856 -1.29175 8.70825 -91.72829 -20.29175 26 -68 161 0 100 -15.22868 14.95334 3.31714 -3.70569 15.01012 -15.22868 -3.70569 3.31714 -23.5211 -25.9539 35 -0.01012 -0.31714 0.03653 16.47499 -0.25023 0.5211 24 14.4789 0.04666 -11.5211 6.4789 -0.46878 -25.5211 22 2 -5 -104 callsubr + -31 35 0 5 25 -19 3 0 -4 0 7 -105 callsubr + -30 6 -3 -104 callsubr + -2 2 29 -34 25 -8 -2 -106 callsubr + -8 -105 callsubr + 37 4 -7 -104 callsubr + -35 31 1 -1 9.90472 -37 6 -106 callsubr + 36.09528 -100 callsubr + -100 callsubr + 0 -101 callsubr + 0 -101 callsubr + -101 callsubr + -100 callsubr + -101 callsubr + -58 7 -3 -104 callsubr + 2 3 44 -33 51.01941 -4 -3 -106 callsubr + -19.01941 -103 callsubr + -103 callsubr + 0 -102 callsubr + 0 -102 callsubr + -102 callsubr + -103 callsubr + -102 callsubr + 18 3 -6 -104 callsubr + -34 34 -1 -4 28.09528 -21 3 0 4 0 11.90472 -101 callsubr + -101 callsubr + 0 -100 callsubr + 0 -100 callsubr + -100 callsubr + -101 callsubr + -100 callsubr + -35 4 -2 -104 callsubr + 0 -5 27 -33 26.98059 -5 -107 callsubr + -13.98059 -102 callsubr + -102 callsubr + 0 -103 callsubr + 0 -103 callsubr + -103 callsubr + -102 callsubr + -103 callsubr + 12 blend + rrcurveto + 366 166 314 267 229 334 42 -302 -49 100 -105 callsubr + -42 -42 16 -106 callsubr + 47 -89 callsubr + -1 65 -162 0 -100 -99 callsubr + 1 1 -34 -106 callsubr + 7 -105 callsubr + -13 -282 -8 -105 callsubr + 0 13 13 12 -106 callsubr + -23 -106 callsubr + -4 0 -4 -106 callsubr + -6 13 -234 -105 callsubr + 0 6 6 3 -106 callsubr + -16 -105 callsubr + 5 -216 67 -100 -105 callsubr + -5 -5 -53 -106 callsubr + 9 -89 callsubr + 43 -66 -249 0 100 -99 callsubr + -43 -43 25 -106 callsubr + 56 -105 callsubr + 6 blend + rrcurveto + + + 5 vsindex + 880 -92 callsubr + 1 blend + vmoveto + -1000 20 1000 0 900 0 -100 -105 callsubr + 140 0 -20 20 -104 callsubr + -900 0 100 -104 callsubr + 0 3 blend + vlineto + -20 0 0 -140 0 20 -20 0 -107 callsubr + 1 blend + hmoveto + -20 1000 20 0 0 -140 -106 callsubr + 50 -50 -106 callsubr + -900 -104 callsubr + 0 -50 50 -96 callsubr + -1000 -980 900 -104 callsubr + 0 50 -50 0 0 900 -90 callsubr + 2 blend + rmoveto + -20 1000 20 0 0 -140 -106 callsubr + 50 -50 0 0 -92 callsubr + -96 callsubr + + + 880 vmoveto + 6 vsindex + -1000 30 970 940 -970 30 1000 -105 callsubr + 940 0 -200 -107 callsubr + 0 130 -95 callsubr + -130 100 -100 -104 callsubr + -940 0 200 -107 callsubr + 0 -260 -107 callsubr + 100 -100 100 -100 0 -940 -104 callsubr + 130 -100 100 -104 callsubr + 940 0 0 -200 -107 callsubr + 130 0 -97 callsubr + 0 -107 callsubr + 0 -940 0 0 200 -107 callsubr + 7 blend + vlineto + -990 -970 -105 callsubr + 0 940 -107 callsubr + 250 0 130 0 0 -100 100 -107 callsubr + 940 -106 callsubr + -300 300 0 0 2 blend + rmoveto + -30 989 30 -130 -91 callsubr + 0 0 0 -105 callsubr + 0 0 -940 -107 callsubr + -509 0 130 -94 callsubr + 0 0 3 blend + vlineto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wght + 0x0 + 100.0 + 100.0 + 900.0 + 256 + + + + + V000 + 0x1 + -1.0 + 0.0 + 1.0 + 257 + + + + + V001 + 0x1 + -1.0 + 0.0 + 1.0 + 258 + + + + + V002 + 0x1 + -1.0 + 0.0 + 1.0 + 259 + + + + + V003 + 0x1 + -1.0 + 0.0 + 1.0 + 260 + + + + + V004 + 0x1 + -1.0 + 0.0 + 1.0 + 261 + + + + + V005 + 0x1 + -1.0 + 0.0 + 1.0 + 262 + + + + + V006 + 0x1 + -1.0 + 0.0 + 1.0 + 263 + + + + + V007 + 0x1 + -1.0 + 0.0 + 1.0 + 264 + + + + + V008 + 0x1 + -1.0 + 0.0 + 1.0 + 265 + + + + + V009 + 0x1 + -1.0 + 0.0 + 1.0 + 266 + + + + + V010 + 0x1 + -1.0 + 0.0 + 1.0 + 267 + + + + + V011 + 0x1 + -1.0 + 0.0 + 1.0 + 268 + + + + + V012 + 0x1 + -1.0 + 0.0 + 1.0 + 269 + + + + diff --git a/tests/test_workflow.py b/tests/test_workflow.py index 45a7491..266c1bb 100644 --- a/tests/test_workflow.py +++ b/tests/test_workflow.py @@ -74,6 +74,16 @@ async def processGlyph(self, glyph: VariableGlyph) -> VariableGlyph: ( """ steps: +- input: fontra-read + source: "tests/data/notosanscjksc.fontra" +- output: compile-varc + destination: "output.otf" +""", + "notosanscjksc.otf.ttx", + ), + ( + """ +steps: - input: fontra-read source: "tests/data/MutatorSans.fontra" - output: compile-fontmake