Tidy up spacing, make generic fea2fea checker
This commit is contained in:
parent
15f4cfa2d3
commit
7d01f365ea
@ -133,17 +133,21 @@ class BuilderTest(unittest.TestCase):
|
|||||||
if tag in font:
|
if tag in font:
|
||||||
font[tag].compile(font)
|
font[tag].compile(font)
|
||||||
|
|
||||||
def check_fea2fea_file(self, name):
|
def check_fea2fea_file(self, name, base=None, parser=Parser):
|
||||||
f = self.getpath("{}.fea".format(name))
|
if '.' not in name :
|
||||||
p = Parser(f)
|
name = name + ".fea"
|
||||||
|
if base is None :
|
||||||
|
base = name
|
||||||
|
f = self.getpath(name)
|
||||||
|
p = parser(f)
|
||||||
doc = p.parse()
|
doc = p.parse()
|
||||||
tlines = self.normal_fea(doc.asFea().split("\n"))
|
tlines = self.normal_fea(doc.asFea().split("\n"))
|
||||||
with open(f, "r", encoding="utf-8") as ofile:
|
with open(self.getpath(base), "r", encoding="utf-8") as ofile:
|
||||||
olines = self.normal_fea(ofile.readlines())
|
olines = self.normal_fea(ofile.readlines())
|
||||||
if olines != tlines:
|
if olines != tlines:
|
||||||
for line in difflib.unified_diff(olines, tlines):
|
for line in difflib.unified_diff(olines, tlines):
|
||||||
sys.stderr.write(line)
|
sys.stderr.write(line)
|
||||||
self.fail("Fea2Fea output is different from expected")
|
self.fail("Fea2Fea output is different from expected. Generated:\n{}\n".format("\n".join(tlines)))
|
||||||
|
|
||||||
def normal_fea(self, lines):
|
def normal_fea(self, lines):
|
||||||
output = []
|
output = []
|
||||||
@ -377,7 +381,8 @@ class BuilderTest(unittest.TestCase):
|
|||||||
if isinstance(self.base, ast.MarkClassName):
|
if isinstance(self.base, ast.MarkClassName):
|
||||||
res = ""
|
res = ""
|
||||||
for bcd in self.base.markClass.definitions:
|
for bcd in self.base.markClass.definitions:
|
||||||
if res != "" : res += "\n{}".format(indent)
|
if res != "":
|
||||||
|
res += "\n{}".format(indent)
|
||||||
res += "pos base {} {}".format(bcd.glyphs.asFea(), bcd.anchor.asFea())
|
res += "pos base {} {}".format(bcd.glyphs.asFea(), bcd.anchor.asFea())
|
||||||
for m in self.marks:
|
for m in self.marks:
|
||||||
res += " mark @{}".format(m.name)
|
res += " mark @{}".format(m.name)
|
||||||
@ -437,17 +442,7 @@ class BuilderTest(unittest.TestCase):
|
|||||||
}
|
}
|
||||||
ast = testAst()
|
ast = testAst()
|
||||||
|
|
||||||
f = self.getpath("baseClass.feax")
|
self.check_fea2fea_file("baseClass.feax", base="baseClass.fea", parser=testParser)
|
||||||
p = testParser(f)
|
|
||||||
#import pdb; pdb.set_trace()
|
|
||||||
doc = p.parse()
|
|
||||||
tlines = self.normal_fea(doc.asFea().split("\n"))
|
|
||||||
with open(self.getpath("baseClass.fea"), "r", encoding="utf-8") as ofile:
|
|
||||||
olines = self.normal_fea(ofile.readlines())
|
|
||||||
if olines != tlines:
|
|
||||||
for line in difflib.unified_diff(olines, tlines):
|
|
||||||
sys.stderr.write(line)
|
|
||||||
self.fail("Fea2Fea output is different from expected:\n{}".format("\n".join(tlines)))
|
|
||||||
|
|
||||||
|
|
||||||
def generate_feature_file_test(name):
|
def generate_feature_file_test(name):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user