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,
|
||||
}
|
||||
|
||||
ttLib.getTableClass('gasp').mergeMap = {
|
||||
'tableTag': equal,
|
||||
'version': max,
|
||||
'gaspRange': first, # FIXME? Appears irreconcilable
|
||||
}
|
||||
|
||||
ttLib.getTableClass('name').mergeMap = {
|
||||
'tableTag': equal,
|
||||
'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('fpgm').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'))
|
||||
def merge(self, m, tables):
|
||||
|
@ -8,6 +8,41 @@ class MergeIntegrationTest(unittest.TestCase):
|
||||
# TODO
|
||||
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):
|
||||
def setUp(self):
|
||||
self.merger = Merger()
|
||||
|
Loading…
x
Reference in New Issue
Block a user