aboutsummaryrefslogtreecommitdiff
path: root/Tests/ttLib/tables/_h_m_t_x_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/ttLib/tables/_h_m_t_x_test.py')
-rw-r--r--Tests/ttLib/tables/_h_m_t_x_test.py109
1 files changed, 56 insertions, 53 deletions
diff --git a/Tests/ttLib/tables/_h_m_t_x_test.py b/Tests/ttLib/tables/_h_m_t_x_test.py
index 79d0cb7e..f7ab8b1d 100644
--- a/Tests/ttLib/tables/_h_m_t_x_test.py
+++ b/Tests/ttLib/tables/_h_m_t_x_test.py
@@ -8,7 +8,6 @@ import unittest
class HmtxTableTest(unittest.TestCase):
-
def __init__(self, methodName):
unittest.TestCase.__init__(self, methodName)
# Python 3 renamed assertRaisesRegexp to assertRaisesRegex,
@@ -23,10 +22,10 @@ class HmtxTableTest(unittest.TestCase):
def makeFont(self, numGlyphs, numberOfMetrics):
font = TTFont()
- maxp = font['maxp'] = newTable('maxp')
+ maxp = font["maxp"] = newTable("maxp")
maxp.numGlyphs = numGlyphs
# from A to ...
- font.glyphOrder = [chr(i) for i in range(65, 65+numGlyphs)]
+ font.glyphOrder = [chr(i) for i in range(65, 65 + numGlyphs)]
headerTag = self.tableClass.headerTag
font[headerTag] = newTable(headerTag)
numberOfMetricsName = self.tableClass.numberOfMetricsName
@@ -40,9 +39,9 @@ class HmtxTableTest(unittest.TestCase):
mtxTable = newTable(self.tag)
mtxTable.decompile(data, font)
- self.assertEqual(mtxTable['A'], (674, -11))
- self.assertEqual(mtxTable['B'], (632, 79))
- self.assertEqual(mtxTable['C'], (710, 54))
+ self.assertEqual(mtxTable["A"], (674, -11))
+ self.assertEqual(mtxTable["B"], (632, 79))
+ self.assertEqual(mtxTable["C"], (710, 54))
def test_decompile_additional_SB(self):
font = self.makeFont(numGlyphs=4, numberOfMetrics=2)
@@ -53,11 +52,11 @@ class HmtxTableTest(unittest.TestCase):
mtxTable = newTable(self.tag)
mtxTable.decompile(data, font)
- self.assertEqual(mtxTable['A'], (674, -11))
- self.assertEqual(mtxTable['B'], (632, 79))
+ self.assertEqual(mtxTable["A"], (674, -11))
+ self.assertEqual(mtxTable["B"], (632, 79))
# all following have same width as the previous
- self.assertEqual(mtxTable['C'], (632, 54))
- self.assertEqual(mtxTable['D'], (632, -4))
+ self.assertEqual(mtxTable["C"], (632, 54))
+ self.assertEqual(mtxTable["D"], (632, -4))
def test_decompile_not_enough_data(self):
font = self.makeFont(numGlyphs=1, numberOfMetrics=1)
@@ -75,20 +74,20 @@ class HmtxTableTest(unittest.TestCase):
with CapturingLogHandler(log, "WARNING") as captor:
mtxTable.decompile(b"\0\0\0\0\0", font)
- self.assertTrue(
- len([r for r in captor.records if msg == r.msg]) == 1)
+ self.assertTrue(len([r for r in captor.records if msg == r.msg]) == 1)
def test_decompile_num_metrics_greater_than_glyphs(self):
font = self.makeFont(numGlyphs=1, numberOfMetrics=2)
mtxTable = newTable(self.tag)
msg = "The %s.%s exceeds the maxp.numGlyphs" % (
- self.tableClass.headerTag, self.tableClass.numberOfMetricsName)
+ self.tableClass.headerTag,
+ self.tableClass.numberOfMetricsName,
+ )
with CapturingLogHandler(log, "WARNING") as captor:
mtxTable.decompile(b"\0\0\0\0", font)
- self.assertTrue(
- len([r for r in captor.records if msg == r.msg]) == 1)
+ self.assertTrue(len([r for r in captor.records if msg == r.msg]) == 1)
def test_decompile_possibly_negative_advance(self):
font = self.makeFont(numGlyphs=1, numberOfMetrics=1)
@@ -101,12 +100,12 @@ class HmtxTableTest(unittest.TestCase):
mtxTable.decompile(data, font)
self.assertTrue(
- len([r for r in captor.records
- if "has a huge advance" in r.msg]) == 1)
+ len([r for r in captor.records if "has a huge advance" in r.msg]) == 1
+ )
def test_decompile_no_header_table(self):
font = TTFont()
- maxp = font['maxp'] = newTable('maxp')
+ maxp = font["maxp"] = newTable("maxp")
maxp.numGlyphs = 3
font.glyphOrder = ["A", "B", "C"]
@@ -122,7 +121,7 @@ class HmtxTableTest(unittest.TestCase):
"A": (400, 30),
"B": (400, 40),
"C": (400, 50),
- }
+ },
)
def test_compile(self):
@@ -130,9 +129,9 @@ class HmtxTableTest(unittest.TestCase):
font = self.makeFont(numGlyphs=3, numberOfMetrics=4)
mtxTable = font[self.tag] = newTable(self.tag)
mtxTable.metrics = {
- 'A': (674, -11),
- 'B': (632, 79),
- 'C': (710, 54),
+ "A": (674, -11),
+ "B": (632, 79),
+ "C": (710, 54),
}
data = mtxTable.compile(font)
@@ -140,17 +139,16 @@ class HmtxTableTest(unittest.TestCase):
self.assertEqual(data, deHexStr("02A2 FFF5 0278 004F 02C6 0036"))
headerTable = font[self.tableClass.headerTag]
- self.assertEqual(
- getattr(headerTable, self.tableClass.numberOfMetricsName), 3)
+ self.assertEqual(getattr(headerTable, self.tableClass.numberOfMetricsName), 3)
def test_compile_additional_SB(self):
font = self.makeFont(numGlyphs=4, numberOfMetrics=1)
mtxTable = font[self.tag] = newTable(self.tag)
mtxTable.metrics = {
- 'A': (632, -11),
- 'B': (632, 79),
- 'C': (632, 54),
- 'D': (632, -4),
+ "A": (632, -11),
+ "B": (632, 79),
+ "C": (632, 54),
+ "D": (632, -4),
}
data = mtxTable.compile(font)
@@ -160,20 +158,23 @@ class HmtxTableTest(unittest.TestCase):
def test_compile_negative_advance(self):
font = self.makeFont(numGlyphs=1, numberOfMetrics=1)
mtxTable = font[self.tag] = newTable(self.tag)
- mtxTable.metrics = {'A': [-1, 0]}
+ mtxTable.metrics = {"A": [-1, 0]}
with CapturingLogHandler(log, "ERROR") as captor:
with self.assertRaisesRegex(TTLibError, "negative advance"):
mtxTable.compile(font)
self.assertTrue(
- len([r for r in captor.records
- if "Glyph 'A' has negative advance" in r.msg]) == 1)
+ len(
+ [r for r in captor.records if "Glyph 'A' has negative advance" in r.msg]
+ )
+ == 1
+ )
def test_compile_struct_out_of_range(self):
font = self.makeFont(numGlyphs=1, numberOfMetrics=1)
mtxTable = font[self.tag] = newTable(self.tag)
- mtxTable.metrics = {'A': (0xFFFF+1, -0x8001)}
+ mtxTable.metrics = {"A": (0xFFFF + 1, -0x8001)}
with self.assertRaises(struct.error):
mtxTable.compile(font)
@@ -182,9 +183,9 @@ class HmtxTableTest(unittest.TestCase):
font = self.makeFont(numGlyphs=3, numberOfMetrics=2)
mtxTable = font[self.tag] = newTable(self.tag)
mtxTable.metrics = {
- 'A': (0.5, 0.5), # round -> (1, 1)
- 'B': (0.1, 0.9), # round -> (0, 1)
- 'C': (0.1, 0.1), # round -> (0, 0)
+ "A": (0.5, 0.5), # round -> (1, 1)
+ "B": (0.1, 0.9), # round -> (0, 1)
+ "C": (0.1, 0.1), # round -> (0, 0)
}
data = mtxTable.compile(font)
@@ -193,7 +194,7 @@ class HmtxTableTest(unittest.TestCase):
def test_compile_no_header_table(self):
font = TTFont()
- maxp = font['maxp'] = newTable('maxp')
+ maxp = font["maxp"] = newTable("maxp")
maxp.numGlyphs = 3
font.glyphOrder = [chr(i) for i in range(65, 68)]
mtxTable = font[self.tag] = newTable(self.tag)
@@ -212,44 +213,46 @@ class HmtxTableTest(unittest.TestCase):
def test_toXML(self):
font = self.makeFont(numGlyphs=2, numberOfMetrics=2)
mtxTable = font[self.tag] = newTable(self.tag)
- mtxTable.metrics = {'B': (632, 79), 'A': (674, -11)}
+ mtxTable.metrics = {"B": (632, 79), "A": (674, -11)}
self.assertEqual(
getXML(mtxTable.toXML),
- ('<mtx name="A" %s="674" %s="-11"/>\n'
- '<mtx name="B" %s="632" %s="79"/>' % (
- (self.tableClass.advanceName,
- self.tableClass.sideBearingName) * 2)).split('\n'))
+ (
+ '<mtx name="A" %s="674" %s="-11"/>\n'
+ '<mtx name="B" %s="632" %s="79"/>'
+ % ((self.tableClass.advanceName, self.tableClass.sideBearingName) * 2)
+ ).split("\n"),
+ )
def test_fromXML(self):
mtxTable = newTable(self.tag)
for name, attrs, content in parseXML(
- '<mtx name="A" %s="674" %s="-11"/>'
- '<mtx name="B" %s="632" %s="79"/>' % (
- (self.tableClass.advanceName,
- self.tableClass.sideBearingName) * 2)):
+ '<mtx name="A" %s="674" %s="-11"/>'
+ '<mtx name="B" %s="632" %s="79"/>'
+ % ((self.tableClass.advanceName, self.tableClass.sideBearingName) * 2)
+ ):
mtxTable.fromXML(name, attrs, content, ttFont=None)
- self.assertEqual(
- mtxTable.metrics, {'A': (674, -11), 'B': (632, 79)})
+ self.assertEqual(mtxTable.metrics, {"A": (674, -11), "B": (632, 79)})
def test_delitem(self):
mtxTable = newTable(self.tag)
- mtxTable.metrics = {'A': (0, 0)}
+ mtxTable.metrics = {"A": (0, 0)}
- del mtxTable['A']
+ del mtxTable["A"]
- self.assertTrue('A' not in mtxTable.metrics)
+ self.assertTrue("A" not in mtxTable.metrics)
def test_setitem(self):
mtxTable = newTable(self.tag)
- mtxTable.metrics = {'A': (674, -11), 'B': (632, 79)}
- mtxTable['B'] = [0, 0] # list is converted to tuple
+ mtxTable.metrics = {"A": (674, -11), "B": (632, 79)}
+ mtxTable["B"] = [0, 0] # list is converted to tuple
- self.assertEqual(mtxTable.metrics, {'A': (674, -11), 'B': (0, 0)})
+ self.assertEqual(mtxTable.metrics, {"A": (674, -11), "B": (0, 0)})
if __name__ == "__main__":
import sys
+
sys.exit(unittest.main())