def test_overlaps_1(): # https://github.com/fonttools/fonttools/issues/1400 conds = [ ([{'abcd': (4, 9)}], {0: 0}), ([{'abcd': (5, 10)}], {1: 1}), ([{'abcd': (0, 8)}], {2: 2}), ([{'abcd': (3, 7)}], {3: 3}), ] overlaps = overlayFeatureVariations(conds) subst = _match_condition({'abcd': 0}, overlaps) assert subst == {2: 2} subst = _match_condition({'abcd': 1}, overlaps) assert subst == {2: 2} subst = _match_condition({'abcd': 3}, overlaps) assert subst == {2: 2, 3: 3} subst = _match_condition({'abcd': 4}, overlaps) assert subst == {0: 0, 2: 2, 3: 3} subst = _match_condition({'abcd': 5}, overlaps) assert subst == {0: 0, 1: 1, 2: 2, 3: 3} subst = _match_condition({'abcd': 7}, overlaps) assert subst == {0: 0, 1: 1, 2: 2, 3: 3} subst = _match_condition({'abcd': 8}, overlaps) assert subst == {0: 0, 1: 1, 2: 2} subst = _match_condition({'abcd': 9}, overlaps) assert subst == {0: 0, 1: 1} subst = _match_condition({'abcd': 10}, overlaps) assert subst == {1: 1}
def test_quadratic(n=10): conds = [] for i in range(1, n + 1): region = [{'X': (0, i / n), 'Y': (0, (n + 1 - i) / n)}] subst = {str(i): str(n + 1 - i)} conds.append((region, subst)) overlaps = overlayFeatureVariations(conds) assert len(overlaps) == n * (n + 1) // 2, overlaps return conds, overlaps
def test_quadratic(n = 10): conds = [] for i in range(1, n + 1): region = [{'X': (0, i / n), 'Y': (0, (n + 1 - i) / n)}] subst = {str(i): str(n + 1 - i)} conds.append((region, subst)) overlaps = overlayFeatureVariations(conds) assert len(overlaps) == n * (n + 1) // 2, overlaps return conds, overlaps
def test_linear(n = 10): conds = [] for i in range(n): end = i / n start = end - 1. region = [{'X': (start, end)}] subst = {'g%.2g'%start: 'g%.2g'%end} conds.append((region, subst)) overlaps = overlayFeatureVariations(conds) assert len(overlaps) == 2 * n - 1, overlaps return conds, overlaps
def test_overlaps_2(): # https://github.com/fonttools/fonttools/issues/1400 conds = [ ([{'abcd': (1, 9)}], {0: 0}), ([{'abcd': (8, 10)}], {1: 1}), ([{'abcd': (3, 4)}], {2: 2}), ([{'abcd': (1, 10)}], {3: 3}), ] overlaps = overlayFeatureVariations(conds) subst = _match_condition({'abcd': 0}, overlaps) assert subst == {} subst = _match_condition({'abcd': 1}, overlaps) assert subst == {0: 0, 3: 3} subst = _match_condition({'abcd': 2}, overlaps) assert subst == {0: 0, 3: 3} subst = _match_condition({'abcd': 3}, overlaps) assert subst == {0: 0, 2: 2, 3: 3} subst = _match_condition({'abcd': 5}, overlaps) assert subst == {0: 0, 3: 3} subst = _match_condition({'abcd': 10}, overlaps) assert subst == {1: 1, 3: 3}