def test_output(self): """Test that empty or intentionally unchanged glyphs are unchanged, and everything else is changed. """ glyph_sets = self.getGlyphSets( self.instance_glyph_sets, self.instance_weights_to_test) standard = glyph_sets[0] pen = GlyphAreaPen(standard) areas = {} for name in self.instance_glyphs_to_test: standard[name].draw(pen) areas[name] = pen.unload() for other in glyph_sets[1:]: other_pen = GlyphAreaPen(other) for name, area in areas.iteritems(): if name in self.whitelist: continue other[name].draw(other_pen) other_area = other_pen.unload() if name in self.unchanged or not area: self.assertEqual( area, other_area, name + " has changed, but should not have: %s vs. %s." % (area, other_area)) else: self.assertNotEqual( area, other_area, name + " has not changed, but should have: %s vs. %s." % (area, other_area))
def setUp(self): """Determine which glyphs are intentionally unchanged.""" self.unchanged = set() master_a, master_b = self.getGlyphSets( self.master_glyph_sets, self.master_weights_to_test) pen_a = GlyphAreaPen(master_a) pen_b = GlyphAreaPen(master_b) for name in self.master_glyphs_to_test: if name in self.whitelist: continue master_a[name].draw(pen_a) area_a = pen_a.unload() master_b[name].draw(pen_b) area_b = pen_b.unload() if area_a == area_b: if area_a: self.unchanged.add(name) else: assert area_a and area_b