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_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 #3
0
# process with varlib.model
mut1 = VariationModelMutator(items, [a])
m1i = mut1.makeInstance(dict(w=1))
print("\n#varlib")
print(m1i.items())

# process with mutator
bias, mut2 = buildMutator(items)
m2i = mut2.makeInstance(dict(w=1))
print("\n#mutator")
print(m2i.items())

# process with the same mathematical operations on a naked mathKerning object
v = None
deltas = [m, m]
scalars = [1.0, 1.0]
assert len(deltas) == len(scalars)
for i, (delta, scalar) in enumerate(zip(deltas, scalars)):
    if not scalar: continue
    contribution = delta * scalar
    if v is None:
        v = contribution
    else:
        v += contribution
print("\n#doing the math that varlib does")
print(v.items())

print(m.groups())
print((m * 2.0).groups())