def addPair(self, gc1, value1, gc2, value2): mergeable = (not self.forceSubtableBreak_ and self.classDef1_ is not None and self.classDef1_.canAdd(gc1) and self.classDef2_ is not None and self.classDef2_.canAdd(gc2)) if not mergeable: self.flush_() self.classDef1_ = otl.ClassDefBuilder(useClass0=True) self.classDef2_ = otl.ClassDefBuilder(useClass0=False) self.coverage_ = set() self.values_ = {} self.classDef1_.add(gc1) self.classDef2_.add(gc2) self.coverage_.update(gc1) self.values_[(gc1, gc2)] = (value1, value2)
def test_build_usingClass0(self): b = builder.ClassDefBuilder(useClass0=True) b.add({"a", "b"}) b.add({"c"}) b.add({"e", "f", "g", "h"}) cdef = b.build() self.assertIsInstance(cdef, otTables.ClassDef) self.assertEqual(cdef.classDefs, {"a": 1, "b": 1, "c": 2})
def test_build_usingClass0(self): b = builder.ClassDefBuilder(useClass0=True) b.add({"aa", "bb"}) b.add({"a", "b"}) b.add({"c"}) b.add({"e", "f", "g", "h"}) cdef = b.build() assert isinstance(cdef, otTables.ClassDef) assert cdef.classDefs == {"a": 2, "b": 2, "c": 3, "aa": 1, "bb": 1}
def test_canAdd(self): b = builder.ClassDefBuilder(useClass0=True) b.add({"a", "b", "c", "d"}) b.add({"e", "f"}) assert b.canAdd({"a", "b", "c", "d"}) assert b.canAdd({"e", "f"}) assert b.canAdd({"g", "h", "i"}) assert not b.canAdd({"b", "c", "d"}) assert not b.canAdd({"a", "b", "c", "d", "e", "f"}) assert not b.canAdd({"d", "e", "f"}) assert not b.canAdd({"f"})
def test_canAdd(self): b = builder.ClassDefBuilder(useClass0=True) b.add({"a", "b", "c", "d"}) b.add({"e", "f"}) self.assertTrue(b.canAdd({"a", "b", "c", "d"})) self.assertTrue(b.canAdd({"e", "f"})) self.assertTrue(b.canAdd({"g", "h", "i"})) self.assertFalse(b.canAdd({"b", "c", "d"})) self.assertFalse(b.canAdd({"a", "b", "c", "d", "e", "f"})) self.assertFalse(b.canAdd({"d", "e", "f"})) self.assertFalse(b.canAdd({"f"}))