blob: 36f63e0e7e869fb40e5b10d003822eaf51e5a158 [file] [log] [blame]
import fontTools.varLib.iup as iup
import sys
import pytest
class IupTest:
# -----
# Tests
# -----
@pytest.mark.parametrize(
"delta, coords, forced",
[
([(0, 0)], [(1, 2)], set()),
([(0, 0), (0, 0), (0, 0)], [(1, 2), (3, 2), (2, 3)], set()),
(
[(1, 1), (-1, 1), (-1, -1), (1, -1)],
[(0, 0), (2, 0), (2, 2), (0, 2)],
set(),
),
(
[
(-1, 0),
(-1, 0),
(-1, 0),
(-1, 0),
(-1, 0),
(0, 0),
(0, 0),
(0, 0),
(0, 0),
(0, 0),
(0, 0),
(-1, 0),
],
[
(-35, -152),
(-86, -101),
(-50, -65),
(0, -116),
(51, -65),
(86, -99),
(35, -151),
(87, -202),
(51, -238),
(-1, -187),
(-53, -239),
(-88, -205),
],
{11},
),
(
[
(0, 0),
(1, 0),
(2, 0),
(2, 0),
(0, 0),
(1, 0),
(3, 0),
(3, 0),
(2, 0),
(2, 0),
(0, 0),
(0, 0),
(-1, 0),
(-1, 0),
(-1, 0),
(-3, 0),
(-1, 0),
(0, 0),
(0, 0),
(-2, 0),
(-2, 0),
(-1, 0),
(-1, 0),
(-1, 0),
(-4, 0),
],
[
(330, 65),
(401, 65),
(499, 117),
(549, 225),
(549, 308),
(549, 422),
(549, 500),
(497, 600),
(397, 648),
(324, 648),
(271, 648),
(200, 620),
(165, 570),
(165, 536),
(165, 473),
(252, 407),
(355, 407),
(396, 407),
(396, 333),
(354, 333),
(249, 333),
(141, 268),
(141, 203),
(141, 131),
(247, 65),
],
{5, 15, 24},
),
],
)
def test_forced_set(self, delta, coords, forced):
f = iup._iup_contour_bound_forced_set(delta, coords)
assert forced == f
chain1, costs1 = iup._iup_contour_optimize_dp(delta, coords, f)
chain2, costs2 = iup._iup_contour_optimize_dp(delta, coords, set())
assert chain1 == chain2, f
assert costs1 == costs2, f
if __name__ == "__main__":
sys.exit(pytest.main(sys.argv))