Exemple #1
0
 def test_sub(self):
     kerning1 = {
         ("A", "A"): 1,
         ("B", "B"): 1,
         ("NotIn2", "NotIn2"): 1,
         ("public.kern1.NotIn2", "C"): 1,
         ("public.kern1.D", "public.kern2.D"): 1,
     }
     groups1 = {
         "public.kern1.NotIn1": ["C"],
         "public.kern1.D": ["D", "H"],
         "public.kern2.D": ["D", "H"],
     }
     kerning2 = {
         ("A", "A"): -1,
         ("B", "B"): 1,
         ("NotIn1", "NotIn1"): 1,
         ("public.kern1.NotIn1", "C"): 1,
         ("public.kern1.D", "public.kern2.D"): 1,
     }
     groups2 = {
         "public.kern1.NotIn2": ["C"],
         "public.kern1.D": ["D"],
         "public.kern2.D": ["D", "H"],
     }
     obj = MathKerning(kerning1, groups1) - MathKerning(kerning2, groups2)
     self.assertEqual(sorted(obj.items()),
                      [(('A', 'A'), 2), (('NotIn1', 'NotIn1'), -1),
                       (('NotIn2', 'NotIn2'), 1),
                       (('public.kern1.NotIn1', 'C'), -1),
                       (('public.kern1.NotIn2', 'C'), 1)])
     self.assertEqual(sorted(obj.groups()["public.kern1.D"]), ['D', 'H'])
     self.assertEqual(sorted(obj.groups()["public.kern2.D"]), ['D', 'H'])
Exemple #2
0
 def test_addTo(self):
     kerning = {
         ("A", "A"): 1,
         ("B", "B"): -1,
     }
     obj = MathKerning(kerning)
     obj.addTo(1)
     self.assertEqual(sorted(obj.items()),
                      [(('A', 'A'), 2), (('B', 'B'), 0)])
Exemple #3
0
 def test_round(self):
     kerning = {
         ("A", "A"): 1.99,
         ("B", "B"): 4,
         ("C", "C"): 7,
         ("D", "D"): 9.01,
     }
     obj = MathKerning(kerning)
     obj.round(5)
     self.assertEqual(sorted(obj.items()),
                      [(('A', 'A'), 0), (('B', 'B'), 5), (('C', 'C'), 5),
                       (('D', 'D'), 10)])
Exemple #4
0
 def test_round(self):
     kerning = {
         ("A", "A"): 1.99,
         ("B", "B"): 4,
         ("C", "C"): 7,
         ("D", "D"): 9.01,
     }
     obj = MathKerning(kerning)
     obj.round(5)
     self.assertEqual(
         sorted(obj.items()),
         [(('A', 'A'), 0), (('B', 'B'), 5),
          (('C', 'C'), 5), (('D', 'D'), 10)])
Exemple #5
0
 def test_div_tuple_factor(self):
     kerning = {
         ("A", "A"): 0,
         ("B", "B"): 4,
         ("C2", "public.kern2.C"): 0,
         ("public.kern1.C", "public.kern2.C"): 4,
     }
     groups = {
         "public.kern1.C": ["C1", "C2"],
         "public.kern2.C": ["C1", "C2"],
     }
     obj = MathKerning(kerning, groups) / (4, 2)
     self.assertEqual(sorted(obj.items()),
                      [(('B', 'B'), 1), (('C2', 'public.kern2.C'), 0),
                       (('public.kern1.C', 'public.kern2.C'), 1)])
Exemple #6
0
 def test_mul(self):
     kerning = {
         ("A", "A"): 0,
         ("B", "B"): 1,
         ("C2", "public.kern2.C"): 0,
         ("public.kern1.C", "public.kern2.C"): 2,
     }
     groups = {
         "public.kern1.C": ["C1", "C2"],
         "public.kern2.C": ["C1", "C2"],
     }
     obj = MathKerning(kerning, groups) * 2
     self.assertEqual(sorted(obj.items()),
                      [(('B', 'B'), 2), (('C2', 'public.kern2.C'), 0),
                       (('public.kern1.C', 'public.kern2.C'), 4)])
Exemple #7
0
 def test_copy(self):
     kerning1 = {
         ("A", "A"): 1,
         ("B", "B"): 1,
         ("NotIn2", "NotIn2"): 1,
         ("public.kern1.NotIn2", "C"): 1,
         ("public.kern1.D", "public.kern2.D"): 1,
     }
     groups1 = {
         "public.kern1.NotIn1": ["C"],
         "public.kern1.D": ["D", "H"],
         "public.kern2.D": ["D", "H"],
     }
     obj1 = MathKerning(kerning1, groups1)
     obj2 = obj1.copy()
     self.assertEqual(sorted(obj1.items()), sorted(obj2.items()))
Exemple #8
0
 def test_cleanup(self):
     kerning = {
         ("A", "A"): 0,
         ("B", "B"): 1,
         ("C", "public.kern2.C"): 0,
         ("public.kern1.C", "public.kern2.C"): 1,
         ("D", "D"): 1.0,
         ("E", "E"): 1.2,
     }
     groups = {"public.kern1.C": ["C", "C1"], "public.kern2.C": ["C", "C1"]}
     obj = MathKerning(kerning, groups)
     obj.cleanup()
     self.assertEqual(sorted(obj.items()),
                      [(('B', 'B'), 1), (('C', 'public.kern2.C'), 0),
                       (('D', 'D'), 1), (('E', 'E'), 1.2),
                       (('public.kern1.C', 'public.kern2.C'), 1)])
Exemple #9
0
 def test_div_tuple_factor(self):
     kerning = {
         ("A", "A"): 0,
         ("B", "B"): 4,
         ("C2", "public.kern2.C"): 0,
         ("public.kern1.C", "public.kern2.C"): 4,
     }
     groups = {
         "public.kern1.C": ["C1", "C2"],
         "public.kern2.C": ["C1", "C2"],
     }
     obj = MathKerning(kerning, groups) / (4, 2)
     self.assertEqual(
         sorted(obj.items()),
         [(('B', 'B'), 1),
          (('C2', 'public.kern2.C'), 0),
          (('public.kern1.C', 'public.kern2.C'), 1)])
Exemple #10
0
 def test_mul(self):
     kerning = {
         ("A", "A"): 0,
         ("B", "B"): 1,
         ("C2", "public.kern2.C"): 0,
         ("public.kern1.C", "public.kern2.C"): 2,
     }
     groups = {
         "public.kern1.C": ["C1", "C2"],
         "public.kern2.C": ["C1", "C2"],
     }
     obj = MathKerning(kerning, groups) * 2
     self.assertEqual(
         sorted(obj.items()),
         [(('B', 'B'), 2),
          (('C2', 'public.kern2.C'), 0),
          (('public.kern1.C', 'public.kern2.C'), 4)])
Exemple #11
0
 def test_add(self):
     kerning1 = {
         ("A", "A"): 1,
         ("B", "B"): 1,
         ("NotIn2", "NotIn2"): 1,
         ("public.kern1.NotIn2", "C"): 1,
         ("public.kern1.D", "public.kern2.D"): 1,
     }
     groups1 = {
         "public.kern1.NotIn1": ["C"],
         "public.kern1.D": ["D", "H"],
         "public.kern2.D": ["D", "H"],
     }
     kerning2 = {
         ("A", "A"): -1,
         ("B", "B"): 1,
         ("NotIn1", "NotIn1"): 1,
         ("public.kern1.NotIn1", "C"): 1,
         ("public.kern1.D", "public.kern2.D"): 1,
     }
     groups2 = {
         "public.kern1.NotIn2": ["C"],
         "public.kern1.D": ["D", "H"],
         "public.kern2.D": ["D", "H"],
     }
     obj = MathKerning(kerning1, groups1) + MathKerning(kerning2, groups2)
     self.assertEqual(
         sorted(obj.items()),
         [(('B', 'B'), 2),
          (('NotIn1', 'NotIn1'), 1),
          (('NotIn2', 'NotIn2'), 1),
          (('public.kern1.D', 'public.kern2.D'), 2),
          (('public.kern1.NotIn1', 'C'), 1),
          (('public.kern1.NotIn2', 'C'), 1)])
     self.assertEqual(
         obj.groups()["public.kern1.D"],
         ['D', 'H'])
     self.assertEqual(
         obj.groups()["public.kern2.D"],
         ['D', 'H'])
Exemple #12
0
 def test_cleanup(self):
     kerning = {
         ("A", "A"): 0,
         ("B", "B"): 1,
         ("C", "public.kern2.C"): 0,
         ("public.kern1.C", "public.kern2.C"): 1,
         ("D", "D"): 1.0,
         ("E", "E"): 1.2,
     }
     groups = {
         "public.kern1.C": ["C", "C1"],
         "public.kern2.C": ["C", "C1"]
     }
     obj = MathKerning(kerning, groups)
     obj.cleanup()
     self.assertEqual(
         sorted(obj.items()),
         [(('B', 'B'), 1),
          (('C', 'public.kern2.C'), 0),
          (('D', 'D'), 1),
          (('E', 'E'), 1.2),
          (('public.kern1.C', 'public.kern2.C'), 1)])
Exemple #13
0
from fontMath.mathKerning import MathKerning
from defcon.objects.font import Font

f = Font()
f.groups["public.kern1.groupA"] = ['one', 'Bee']
f.groups["public.kern2.groupB"] = ['two', 'Three']
f.kerning[('public.kern1.groupA', 'public.kern2.groupB')] = -100
f.kerning[('one', 'two')] = 0
m = MathKerning(f.kerning, f.groups)

print(m.items())
print((m*1.0).items())


Exemple #14
0
from ufoProcessor.varModels import VariationModelMutator
from mutatorMath.objects.mutator import buildMutator
from fontTools.designspaceLib import AxisDescriptor

# kerning exception value. Different results for 1 and 0
value = 0

#f = Font()
f = RFont()  # doesn't make a difference
f.groups["public.kern1.groupA"] = ['one', 'Bee']
f.groups["public.kern2.groupB"] = ['two', 'Three']
f.kerning[('public.kern1.groupA', 'public.kern2.groupB')] = -100
f.kerning[("one", "two")] = value

m = MathKerning(f.kerning, f.groups)
print("mathKerning object items:", m.items())
print("\tpair", ('public.kern1.groupA', 'public.kern2.groupB'),
      m[('public.kern1.groupA', 'public.kern2.groupB')])
print("\tpair", ('public.kern1.groupA', 'two'),
      m[('public.kern1.groupA', 'two')])
print("\tpair", ('one', 'public.kern2.groupB'),
      m[('one', 'public.kern2.groupB')])
print("\tpair", ('one', 'two'), m[('one', 'two')])

items = [(dict(w=0), m), (dict(w=1), m)]
a = AxisDescriptor()
a.name = "w"
a.minimum = 0
a.default = 0
a.maximum = 1