From c77ddcad45c15a3e04f9231043d2a84037906710 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 20 Feb 2023 17:06:06 -0700 Subject: [PATCH] [qu2cu.benchmark] Convert multiple quadratics splines instead of 1 More realistic benchmark. --- Lib/fontTools/qu2cu/benchmark.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Lib/fontTools/qu2cu/benchmark.py b/Lib/fontTools/qu2cu/benchmark.py index 0839ab439..ab54a4dd8 100644 --- a/Lib/fontTools/qu2cu/benchmark.py +++ b/Lib/fontTools/qu2cu/benchmark.py @@ -5,23 +5,28 @@ from fontTools.cu2qu import curve_to_quadratic import random import timeit -MAX_ERR = 0.05 +MAX_ERR = 0.5 +NUM_CURVES = 5 -def generate_curve(): - return [ +def generate_curves(n): + points = [ tuple(float(random.randint(0, 2048)) for coord in range(2)) - for point in range(4) + for point in range(1 + 3 * n) ] + curves = [] + for i in range(n): + curves.append(tuple(points[i * 3: i * 3 + 4])) + return curves def setup_quadratic_to_curves(): - curve = generate_curve() - quadratics = curve_to_quadratic(curve, MAX_ERR) - return [quadratics], MAX_ERR + curves = generate_curves(NUM_CURVES) + quadratics = [curve_to_quadratic(curve, MAX_ERR) for curve in curves] + return quadratics, MAX_ERR -def run_benchmark(module, function, setup_suffix="", repeat=10, number=20): +def run_benchmark(module, function, setup_suffix="", repeat=25, number=1): setup_func = "setup_" + function if setup_suffix: print("%s with %s:" % (function, setup_suffix), end="")