}
)
if axis in LINKED_VALUES and fallback.value in LINKED_VALUES[axis]:
- a["values"][-1]["linkedValue"] = LINKED_VALUES[axis][fallback.value]
+ linked_value = LINKED_VALUES[axis][fallback.value]
+ if any(f.value == linked_value for f in fallbacks):
+ a["values"][-1]["linkedValue"] = linked_value
res.append(a)
for axis, fallback in fallbacks_in_names:
"values": [{"name": fallback.name, "value": fallback.value, "flags": 0x0}],
}
if axis in LINKED_VALUES and fallback.value in LINKED_VALUES[axis]:
- a["values"][0]["linkedValue"] = LINKED_VALUES[axis][fallback.value]
+ linked_value = LINKED_VALUES[axis][fallback.value]
+ a["values"][0]["linkedValue"] = linked_value
res.append(a)
for axis, fallback in fallbacks_in_siblings:
--- /dev/null
+<Version value="0x00010001"/>
+<DesignAxisRecordSize value="8"/>
+<!-- DesignAxisCount=2 -->
+<DesignAxisRecord>
+ <Axis index="0">
+ <AxisTag value="ROND"/>
+ <AxisNameID value="256"/> <!-- Roundness -->
+ <AxisOrdering value="0"/>
+ </Axis>
+ <Axis index="1">
+ <AxisTag value="wght"/>
+ <AxisNameID value="258"/> <!-- Weight -->
+ <AxisOrdering value="1"/>
+ </Axis>
+</DesignAxisRecord>
+<!-- AxisValueCount=5 -->
+<AxisValueArray>
+ <AxisValue index="0" Format="1">
+ <AxisIndex value="0"/>
+ <Flags value="2"/> <!-- ElidableAxisValueName -->
+ <ValueNameID value="267"/> <!-- Default -->
+ <Value value="0.0"/>
+ </AxisValue>
+ <AxisValue index="1" Format="1">
+ <AxisIndex value="1"/>
+ <Flags value="0"/>
+ <ValueNameID value="259"/> <!-- Thin -->
+ <Value value="100.0"/>
+ </AxisValue>
+ <AxisValue index="2" Format="1">
+ <AxisIndex value="1"/>
+ <Flags value="0"/>
+ <ValueNameID value="260"/> <!-- ExtraLight -->
+ <Value value="200.0"/>
+ </AxisValue>
+ <AxisValue index="3" Format="1">
+ <AxisIndex value="1"/>
+ <Flags value="0"/>
+ <ValueNameID value="261"/> <!-- Light -->
+ <Value value="300.0"/>
+ </AxisValue>
+ <AxisValue index="4" Format="1">
+ <AxisIndex value="1"/>
+ <Flags value="2"/> <!-- ElidableAxisValueName -->
+ <ValueNameID value="2"/> <!-- Regular -->
+ <Value value="400.0"/>
+ </AxisValue>
+</AxisValueArray>
+<ElidedFallbackNameID value="2"/> <!-- Regular -->
\ No newline at end of file
opensans_cond_italic_fp = os.path.join(DATA_DIR, "OpenSansCondensed-Italic[wght].ttf")
wonky_fp = os.path.join(DATA_DIR, "Wonky[wdth,wght].ttf")
playfair_fp = os.path.join(DATA_DIR, "Playfair[opsz,wdth,wght].ttf")
+wavefont_fp = os.path.join(DATA_DIR, "Wavefont[ROND,YALN,wght].ttf")
@pytest.fixture
(17, 3, 1, 0x409): None,
},
),
- # Test opsz particle is kept
+ # Test opsz particle is kept.
+ # Fixes https://github.com/googlefonts/axisregistry/issues/130
(
playfair_fp,
"Playfair",
[opensans_roman_fp, opensans_italic_fp, opensans_cond_roman_fp],
),
(wonky_fp, []),
+ # don't add a linkedValue for Regular to Bold since Bold doensn't exist
+ # Fixes https://github.com/googlefonts/axisregistry/issues/104
+ (wavefont_fp, []),
],
)
def test_stat(fp, sibling_fps):