Change gasp merge logic to 'first' (#862)
* change gasp merge logic to first * fix typo * add comment * fix typo
This commit is contained in:
parent
c131bd93f6
commit
b45fcf0fd6
@ -316,12 +316,6 @@ ttLib.getTableClass('vmtx').mergeMap = ttLib.getTableClass('hmtx').mergeMap = {
|
|||||||
'metrics': sumDicts,
|
'metrics': sumDicts,
|
||||||
}
|
}
|
||||||
|
|
||||||
ttLib.getTableClass('gasp').mergeMap = {
|
|
||||||
'tableTag': equal,
|
|
||||||
'version': max,
|
|
||||||
'gaspRange': first, # FIXME? Appears irreconcilable
|
|
||||||
}
|
|
||||||
|
|
||||||
ttLib.getTableClass('name').mergeMap = {
|
ttLib.getTableClass('name').mergeMap = {
|
||||||
'tableTag': equal,
|
'tableTag': equal,
|
||||||
'names': first, # FIXME? Does mixing name records make sense?
|
'names': first, # FIXME? Does mixing name records make sense?
|
||||||
@ -355,6 +349,7 @@ def merge(self, m, tables):
|
|||||||
ttLib.getTableClass('prep').mergeMap = lambda self, lst: first(lst)
|
ttLib.getTableClass('prep').mergeMap = lambda self, lst: first(lst)
|
||||||
ttLib.getTableClass('fpgm').mergeMap = lambda self, lst: first(lst)
|
ttLib.getTableClass('fpgm').mergeMap = lambda self, lst: first(lst)
|
||||||
ttLib.getTableClass('cvt ').mergeMap = lambda self, lst: first(lst)
|
ttLib.getTableClass('cvt ').mergeMap = lambda self, lst: first(lst)
|
||||||
|
ttLib.getTableClass('gasp').mergeMap = lambda self, lst: first(lst) # FIXME? Appears irreconcilable
|
||||||
|
|
||||||
@_add_method(ttLib.getTableClass('cmap'))
|
@_add_method(ttLib.getTableClass('cmap'))
|
||||||
def merge(self, m, tables):
|
def merge(self, m, tables):
|
||||||
|
@ -8,6 +8,41 @@ class MergeIntegrationTest(unittest.TestCase):
|
|||||||
# TODO
|
# TODO
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class gaspMergeUnitTest(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self.merger = Merger()
|
||||||
|
|
||||||
|
self.table1 = ttLib.newTable('gasp')
|
||||||
|
self.table1.version = 1
|
||||||
|
self.table1.gaspRange = {
|
||||||
|
0x8: 0xA ,
|
||||||
|
0x10: 0x5,
|
||||||
|
}
|
||||||
|
|
||||||
|
self.table2 = ttLib.newTable('gasp')
|
||||||
|
self.table2.version = 1
|
||||||
|
self.table2.gaspRange = {
|
||||||
|
0x6: 0xB ,
|
||||||
|
0xFF: 0x4,
|
||||||
|
}
|
||||||
|
|
||||||
|
self.result = ttLib.newTable('gasp')
|
||||||
|
|
||||||
|
def test_gasp_merge_basic(self):
|
||||||
|
result = self.result.merge(self.merger, [self.table1, self.table2])
|
||||||
|
self.assertEqual(result, self.table1)
|
||||||
|
|
||||||
|
result = self.result.merge(self.merger, [self.table2, self.table1])
|
||||||
|
self.assertEqual(result, self.table2)
|
||||||
|
|
||||||
|
def test_gasp_merge_notImplemented(self):
|
||||||
|
result = self.result.merge(self.merger, [NotImplemented, self.table1])
|
||||||
|
self.assertEqual(result, NotImplemented)
|
||||||
|
|
||||||
|
result = self.result.merge(self.merger, [self.table1, NotImplemented])
|
||||||
|
self.assertEqual(result, self.table1)
|
||||||
|
|
||||||
|
|
||||||
class CmapMergeUnitTest(unittest.TestCase):
|
class CmapMergeUnitTest(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.merger = Merger()
|
self.merger = Merger()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user