[specializer_test] Simplify tests

No need to go to string and back...
This commit is contained in:
Behdad Esfahbod 2024-11-12 19:44:50 -07:00
parent 6f37252e85
commit 4e2968462a

View File

@ -23,9 +23,7 @@ def charstr_specialize(charstr, **kwargs):
return programToString(specializeProgram(stringToProgram(charstr), **kwargs))
def charstr_stack_use(charstr, getNumRegions=None):
program = stringToProgram(charstr)
def program_stack_use(program, getNumRegions=None):
vsindex = None
maxStack = 0
stack = []
@ -588,17 +586,17 @@ class CFFSpecializeProgramTest:
numRegions = 15
numOps = 600
getNumRegions = lambda iv: numRegions
blend_one = " ".join([str(i) for i in range(1 + numRegions)] + ["1", "blend"])
operands = " ".join([blend_one] * 6)
blend_one = [i for i in range(1 + numRegions)] + [1, "blend"]
operands = blend_one * 6
operator = "rrcurveto"
charstr = " ".join([operands, operator] * numOps)
specialized = charstr_specialize(
charstr,
program = (operands + [operator]) * numOps
specialized = specializeProgram(
program,
getNumRegions=getNumRegions,
maxstack=maxStack,
generalizeFirst=False,
)
stack_use = charstr_stack_use(specialized, getNumRegions=getNumRegions)
stack_use = program_stack_use(specialized, getNumRegions=getNumRegions)
assert maxStack - numRegions < stack_use < maxStack
def test_maxstack_commands(self):
@ -606,17 +604,17 @@ class CFFSpecializeProgramTest:
numRegions = 400
numOps = 2
getNumRegions = lambda iv: numRegions
blend_one = " ".join([str(i) for i in range(1 + numRegions)] + ["1", "blend"])
operands = " ".join([blend_one] * 6)
blend_one = [i for i in range(1 + numRegions)] + [1, "blend"]
operands = blend_one * 6
operator = "rrcurveto"
charstr = " ".join([operands, operator] * numOps)
specialized = charstr_specialize(
charstr,
program = (operands + [operator]) * numOps
specialized = specializeProgram(
program,
getNumRegions=getNumRegions,
maxstack=maxStack,
generalizeFirst=False,
)
assert specialized.index("rrcurveto") == len(specialized) - len("rrcurveto")
assert specialized.index("rrcurveto") == len(specialized) - 1
class CFF2VFTestSpecialize(DataFilesHandler):