def test_simple_hash(self): v1 = Variant([1]) v2 = Variant([1], 'BLOCK') v3 = Variant([2]) self.assertEqual(v1.__hash__(), v2.__hash__()) self.assertNotEqual(v1.__hash__(), v3.__hash__())
def test_hash_when_not_when(self): v1 = Variant([1], when='w-1') v2 = Variant([1], when='w-2') v3 = Variant([1], not_when='nw-1') v4 = Variant([1], not_when='nw-2') variants = [v1, v2, v3, v4] for (a, b) in itertools.product(variants, variants): if a is b: # 'Memory' equality: a and b point to the same object. continue self.assertNotEqual(a.__hash__(), b.__hash__())
def test_get_variant(self): c = Char(0x002A) c.add_variant([0x0030], when='w1') c.add_variant([0x0031], when='w2') c.add_variant([0x0031], not_when='nw-1') variant = c.get_variant((0x031, )) expected_output = [ Variant((0x0031, ), when='w2'), Variant((0x0031, ), not_when='nw-1') ] self.assertEqual(variant, expected_output)
def test_get_variants(self): self.cd.add_char([0x002A]) self.cd.add_variant([0x002A], [0x0030]) self.cd.add_variant([0x002A], [0x0030], when='w1') self.cd.add_variant([0x002A], [0x0030], not_when='w1') self.cd.add_variant([0x002A], [0x0030], when='w1', not_when='nw-1') variants = self.cd.get_variants([0x002A]) self.assertIsInstance(variants, types.GeneratorType) variant_list = list(variants) self.assertEqual(len(variant_list), 4) expected_output = [ Variant((0x0030, )), Variant((0x0030, ), when='w1'), Variant((0x0030, ), not_when='w1'), Variant((0x0030, ), when='w1', not_when='nw-1') ] self.assertEqual(variant_list, expected_output)
def test_equal_when_not_when(self): v1 = Variant([1], when='w-1') v2 = Variant([1], when='w-2') v3 = Variant([1], not_when='nw-1') v4 = Variant([1], not_when='nw-2') v5 = Variant([1], when='w-1', not_when='nw-1') v6 = Variant([1], when='w-2', not_when='nw-1') v7 = Variant([1], when='w-1', not_when='nw-2') v8 = Variant([1], when='w-2', not_when='nw-2') variants = [v1, v2, v3, v4, v5, v6, v7, v8] for (a, b) in itertools.product(variants, variants): if a is b: # 'Memory' equality: a and b point to the same object. continue self.assertNotEqual(a, b)