⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_sets.py

📁 mallet是自然语言处理、机器学习领域的一个开源项目。
💻 PY
📖 第 1 页 / 共 2 页
字号:
        self.assertEqual(self.set, Set(self.values))    def test_update_unit_tuple_overlap(self):        self.set.union_update(("a",))        self.assertEqual(self.set, Set(self.values))    def test_update_unit_tuple_non_overlap(self):        self.set.union_update(("a", "z"))        self.assertEqual(self.set, Set(self.values + ["z"]))#==============================================================================class TestSubsets(unittest.TestCase):    case2method = {"<=": "issubset",                   ">=": "issuperset",                  }    reverse = {"==": "==",               "!=": "!=",               "<":  ">",               ">":  "<",               "<=": ">=",               ">=": "<=",              }    def test_issubset(self):        x = self.left        y = self.right        for case in "!=", "==", "<", "<=", ">", ">=":            expected = case in self.cases            # Test the binary infix spelling.            result = eval("x" + case + "y", locals())            self.assertEqual(result, expected)            # Test the "friendly" method-name spelling, if one exists.            if case in TestSubsets.case2method:                method = getattr(x, TestSubsets.case2method[case])                result = method(y)                self.assertEqual(result, expected)            # Now do the same for the operands reversed.            rcase = TestSubsets.reverse[case]            result = eval("y" + rcase + "x", locals())            self.assertEqual(result, expected)            if rcase in TestSubsets.case2method:                method = getattr(y, TestSubsets.case2method[rcase])                result = method(x)                self.assertEqual(result, expected)#------------------------------------------------------------------------------class TestSubsetEqualEmpty(TestSubsets):    left  = Set()    right = Set()    name  = "both empty"    cases = "==", "<=", ">="#------------------------------------------------------------------------------class TestSubsetEqualNonEmpty(TestSubsets):    left  = Set([1, 2])    right = Set([1, 2])    name  = "equal pair"    cases = "==", "<=", ">="#------------------------------------------------------------------------------class TestSubsetEmptyNonEmpty(TestSubsets):    left  = Set()    right = Set([1, 2])    name  = "one empty, one non-empty"    cases = "!=", "<", "<="#------------------------------------------------------------------------------class TestSubsetPartial(TestSubsets):    left  = Set([1])    right = Set([1, 2])    name  = "one a non-empty proper subset of other"    cases = "!=", "<", "<="#------------------------------------------------------------------------------class TestSubsetNonOverlap(TestSubsets):    left  = Set([1])    right = Set([2])    name  = "neither empty, neither contains"    cases = "!="#==============================================================================class TestOnlySetsInBinaryOps(unittest.TestCase):    def test_eq_ne(self):        # Unlike the others, this is testing that == and != *are* allowed.        self.assertEqual(self.other == self.set, False)        self.assertEqual(self.set == self.other, False)        self.assertEqual(self.other != self.set, True)        self.assertEqual(self.set != self.other, True)    def test_ge_gt_le_lt(self):        self.assertRaises(TypeError, lambda: self.set < self.other)        self.assertRaises(TypeError, lambda: self.set <= self.other)        self.assertRaises(TypeError, lambda: self.set > self.other)        self.assertRaises(TypeError, lambda: self.set >= self.other)        self.assertRaises(TypeError, lambda: self.other < self.set)        self.assertRaises(TypeError, lambda: self.other <= self.set)        self.assertRaises(TypeError, lambda: self.other > self.set)        self.assertRaises(TypeError, lambda: self.other >= self.set)    def test_union_update_operator(self):        try:            self.set |= self.other        except TypeError:            pass        else:            self.fail("expected TypeError")    def test_union_update(self):        if self.otherIsIterable:            self.set.union_update(self.other)        else:            self.assertRaises(TypeError, self.set.union_update, self.other)    def test_union(self):        self.assertRaises(TypeError, lambda: self.set | self.other)        self.assertRaises(TypeError, lambda: self.other | self.set)        if self.otherIsIterable:            self.set.union(self.other)        else:            self.assertRaises(TypeError, self.set.union, self.other)    def test_intersection_update_operator(self):        try:            self.set &= self.other        except TypeError:            pass        else:            self.fail("expected TypeError")    def test_intersection_update(self):        if self.otherIsIterable:            self.set.intersection_update(self.other)        else:            self.assertRaises(TypeError,                              self.set.intersection_update,                              self.other)    def test_intersection(self):        self.assertRaises(TypeError, lambda: self.set & self.other)        self.assertRaises(TypeError, lambda: self.other & self.set)        if self.otherIsIterable:            self.set.intersection(self.other)        else:            self.assertRaises(TypeError, self.set.intersection, self.other)    def test_sym_difference_update_operator(self):        try:            self.set ^= self.other        except TypeError:            pass        else:            self.fail("expected TypeError")    def test_sym_difference_update(self):        if self.otherIsIterable:            self.set.symmetric_difference_update(self.other)        else:            self.assertRaises(TypeError,                              self.set.symmetric_difference_update,                              self.other)    def test_sym_difference(self):        self.assertRaises(TypeError, lambda: self.set ^ self.other)        self.assertRaises(TypeError, lambda: self.other ^ self.set)        if self.otherIsIterable:            self.set.symmetric_difference(self.other)        else:            self.assertRaises(TypeError, self.set.symmetric_difference, self.other)    def test_difference_update_operator(self):        try:            self.set -= self.other        except TypeError:            pass        else:            self.fail("expected TypeError")    def test_difference_update(self):        if self.otherIsIterable:            self.set.difference_update(self.other)        else:            self.assertRaises(TypeError,                              self.set.difference_update,                              self.other)    def test_difference(self):        self.assertRaises(TypeError, lambda: self.set - self.other)        self.assertRaises(TypeError, lambda: self.other - self.set)        if self.otherIsIterable:            self.set.difference(self.other)        else:            self.assertRaises(TypeError, self.set.difference, self.other)#------------------------------------------------------------------------------class TestOnlySetsNumeric(TestOnlySetsInBinaryOps):    def setUp(self):        self.set   = Set((1, 2, 3))        self.other = 19        self.otherIsIterable = False#------------------------------------------------------------------------------class TestOnlySetsDict(TestOnlySetsInBinaryOps):    def setUp(self):        self.set   = Set((1, 2, 3))        self.other = {1:2, 3:4}        self.otherIsIterable = True#------------------------------------------------------------------------------class TestOnlySetsOperator(TestOnlySetsInBinaryOps):    def setUp(self):        self.set   = Set((1, 2, 3))        self.other = operator.add        self.otherIsIterable = False#------------------------------------------------------------------------------class TestOnlySetsTuple(TestOnlySetsInBinaryOps):    def setUp(self):        self.set   = Set((1, 2, 3))        self.other = (2, 4, 6)        self.otherIsIterable = True#------------------------------------------------------------------------------class TestOnlySetsString(TestOnlySetsInBinaryOps):    def setUp(self):        self.set   = Set((1, 2, 3))        self.other = 'abc'        self.otherIsIterable = True#------------------------------------------------------------------------------class TestOnlySetsGenerator(TestOnlySetsInBinaryOps):    def setUp(self):        def gen():            for i in xrange(0, 10, 2):                yield i        self.set   = Set((1, 2, 3))        self.other = gen()        self.otherIsIterable = True#==============================================================================class TestCopying(unittest.TestCase):    def test_copy(self):        dup = self.set.copy()        dup_list = list(dup); dup_list.sort()        set_list = list(self.set); set_list.sort()        self.assertEqual(len(dup_list), len(set_list))        for i in range(len(dup_list)):            self.failUnless(dup_list[i] is set_list[i])    def test_deep_copy(self):        dup = copy.deepcopy(self.set)        ##print type(dup), `dup`        dup_list = list(dup); dup_list.sort()        set_list = list(self.set); set_list.sort()        self.assertEqual(len(dup_list), len(set_list))        for i in range(len(dup_list)):            self.assertEqual(dup_list[i], set_list[i])#------------------------------------------------------------------------------class TestCopyingEmpty(TestCopying):    def setUp(self):        self.set = Set()#------------------------------------------------------------------------------class TestCopyingSingleton(TestCopying):    def setUp(self):        self.set = Set(["hello"])#------------------------------------------------------------------------------class TestCopyingTriple(TestCopying):    def setUp(self):        self.set = Set(["zero", 0, None])#------------------------------------------------------------------------------class TestCopyingTuple(TestCopying):    def setUp(self):        self.set = Set([(1, 2)])#------------------------------------------------------------------------------class TestCopyingNested(TestCopying):    def setUp(self):        self.set = Set([((1, 2), (3, 4))])#==============================================================================class TestIdentities(unittest.TestCase):    def setUp(self):        self.a = Set('abracadabra')        self.b = Set('alacazam')    def test_binopsVsSubsets(self):        a, b = self.a, self.b        self.assert_(a - b < a)        self.assert_(b - a < b)        self.assert_(a & b < a)        self.assert_(a & b < b)        self.assert_(a | b > a)        self.assert_(a | b > b)        self.assert_(a ^ b < a | b)    def test_commutativity(self):        a, b = self.a, self.b        self.assertEqual(a&b, b&a)        self.assertEqual(a|b, b|a)        self.assertEqual(a^b, b^a)        if a != b:            self.assertNotEqual(a-b, b-a)    def test_summations(self):        # check that sums of parts equal the whole        a, b = self.a, self.b        self.assertEqual((a-b)|(a&b)|(b-a), a|b)        self.assertEqual((a&b)|(a^b), a|b)        self.assertEqual(a|(b-a), a|b)        self.assertEqual((a-b)|b, a|b)        self.assertEqual((a-b)|(a&b), a)        self.assertEqual((b-a)|(a&b), b)        self.assertEqual((a-b)|(b-a), a^b)    def test_exclusion(self):        # check that inverse operations show non-overlap        a, b, zero = self.a, self.b, Set()        self.assertEqual((a-b)&b, zero)        self.assertEqual((b-a)&a, zero)        self.assertEqual((a&b)&(a^b), zero)#==============================================================================def test_main(verbose=False):    test_suite = unittest.TestSuite()    test_loader = unittest.TestLoader()    def suite_add(case):        test_suite.addTest(test_loader.loadTestsFromTestCase(case))    for t in [        TestSetOfSets,        TestExceptionPropagation,        TestBasicOpsEmpty,        TestBasicOpsSingleton,        TestBasicOpsTuple,        TestBasicOpsTriple,        TestBinaryOps,        TestUpdateOps,        TestMutate,        TestSubsetEqualEmpty,        TestSubsetEqualNonEmpty,        TestSubsetEmptyNonEmpty,        TestSubsetPartial,        TestSubsetNonOverlap,        TestOnlySetsNumeric,        TestOnlySetsDict,        TestOnlySetsOperator,        TestOnlySetsTuple,        TestOnlySetsString,        TestOnlySetsGenerator,        TestCopyingEmpty,        TestCopyingSingleton,        TestCopyingTriple,        TestCopyingTuple,        TestCopyingNested,        TestIdentities,    ]:      suite_add(t)        _verbose = test_support.verbose    try:      test_support.verbose = False      test_support.run_suite(test_suite)    finally:      test_support.verbose = _verboseif __name__ == "__main__":    test_main(verbose=False)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -