Ejemplo n.º 1
0
class Test_Multielement_Str_MultiSet(unittest.TestCase):
    
    def setUp(self):
        self.test1 = MultiSet()
        self.test1.insert('a')
        self.test1.insert('z')
        self.test1.insert('c')
        self.test2 = MultiSet()
        self.test2.insert('c')
        self.test2.insert('a')
        self.test2.insert('z')
        self.test2.insert('b')
        self.test2.insert('a')
        self.test2.insert('d')
        self.test3 = MultiSet()
        self.test3.insert('n')
        self.test3.insert('m')
        self.test4 = MultiSet()
                
    def tearDown(self):
        self.test1 = None
        self.test2 = None
        self.test3 = None
        self.test4 = None
    
    def test_element(self):
        self.assertTrue(self.test1.__contains__('a'))
        self.assertFalse(self.test1.__contains__('b'))
        self.assertEqual(self.test1.count('a'), 1)
        self.assertEqual(self.test2.count('a'), 2)
        self.assertEqual(len(self.test1), 3)
        self.assertEqual(len(self.test2), 6)
        self.assertEqual(self.test1.__repr__(), "MultiSet(['a', 'c', 'z'])")
        self.test1.remove('b')
        self.assertEqual(len(self.test1), 3)
        self.test1.remove('a')
        self.assertEqual(len(self.test1), 2)
        self.test1.clear()
        self.assertEqual(len(self.test1), 0)
        self.assertEqual(self.test1.__repr__(), "MultiSet([])")
    
    def test_compare_method_emptyll(self):
        self.assertFalse(self.test1 == self.test2)
        self.assertFalse(self.test3 <= self.test2)
        self.assertTrue(self.test1 <= self.test2)
    
    def test_compare_method_emptyll_2(self):
        self.assertFalse(self.test1 == self.test4)
        self.assertFalse(self.test1 <= self.test4)
        self.assertFalse(self.test3 <= self.test4)    
        
    def test_sub_method(self):
        self.assertEqual(len(self.test2 - self.test1), 3)
        self.assertEqual(len(self.test3 - self.test2), 2)
    
    def test_sub_method_2(self):
        self.assertEqual(len(self.test4 - self.test1), 0)
        self.assertEqual(len(self.test4 - self.test2), 0)    
    
    def test_isub_method(self):
        self.test2 -= self.test1
        self.assertEqual(len(self.test1), 3)
    
    def test_isub_method_2(self):
        self.test4 -= self.test1
        self.assertEqual(len(self.test4), 0)    
    
    def test_isub_method_3(self):
        self.test3 -= self.test2
        self.assertEqual(len(self.test3), 2)
    
    def test_add_method(self):
        self.assertEqual(len(self.test1+self.test2), 9)
        self.assertEqual(len(self.test3+self.test2), 8)
       
    def test_isadd_method(self):
        self.test1 += self.test2
        self.assertEqual(len(self.test1), 9)
    
    def test_and_method(self):
        self.assertEqual(len(self.test1&self.test2), 3)
        self.assertEqual(len(self.test3&self.test2), 0)
    
    def test_and_method_2(self):
        self.assertEqual(len(self.test1&self.test4), 0)
        self.assertEqual(len(self.test3&self.test4), 0)    
    
    def test_iand_method(self):
        self.test1 &= self.test2
        self.assertEqual(len(self.test1), 3)  
    
    def test_iand_method_2(self):
        self.test3 &= self.test2
        self.assertEqual(len(self.test3), 0)     
        
    def test_isdisjoint_method(self):
        self.assertFalse(self.test1.isdisjoint(self.test2))
        self.assertTrue(self.test3.isdisjoint(self.test2))
        self.assertTrue(self.test1.isdisjoint(self.test4))
Ejemplo n.º 2
0
class Test_Oneelement_MultiSet(unittest.TestCase):
    """ A class test one element multiset.
    """
    
    def setUp(self):
        self.test1 = MultiSet()
        self.test1.insert(5)
        self.test2 = MultiSet()
        self.test2.insert(5)
        self.test3 = MultiSet()
        self.test3.insert(6)
        
    def tearDown(self):
        self.test1 = None
        self.test2 = None
        self.test3 = None
    
    def test_oneelement(self):
        """ test __contains__, count, len, remove insert 
            clear repr method in one element multiset.
        """
        self.assertTrue(self.test1.__contains__(5), \
                        "check contains method which the element in set")
        self.assertFalse(self.test1.__contains__(6), \
                        "check contains method which the element in set")        
        self.assertEqual(self.test1.count(5), 1, \
                         "count method which element in list")
        self.assertEqual(len(self.test1), 1, "len method when set has element")
        self.assertEqual(self.test1.__repr__(), "MultiSet([5])", \
                         "repr method when set has element")
        #check remove method
        self.test1.remove(5)
        self.assertFalse(self.test1.__contains__(5), \
                         "contains method which element not in set")
        self.assertEqual(self.test1.count(5), 0, \
                         "count method which element not in set")
        self.assertEqual(len(self.test1), 0)
        self.assertEqual(self.test1.__repr__(), "MultiSet([])", \
                         "repr method when set has no element")
        #check insert method and clear method
        self.test1.insert(1)
        self.test1.clear()
        self.assertEqual(self.test1.__repr__(), "MultiSet([])", \
                         "repr method when set has no element")
    
    def test_compare_method_emptyll(self):
        """ test __eq__, __le__ method.
        """
        self.assertTrue(self.test1 == self.test2, "__eq__ in two same set")
        self.assertFalse(self.test1 == self.test3, \
                         "__eq__ in two difference set")
        self.assertTrue(self.test1 <= self.test2, "__le__ in two same set")
        self.assertFalse(self.test1 == self.test3, \
                         "__le__ in two difference set")
    
    def test_sub_method(self):
        self.assertEqual(len(self.test1 - self.test2), 0)
        self.assertEqual(len(self.test3 - self.test2), 1)
    
    def test_isub_method(self):
        self.test1 -= self.test2
        self.assertEqual(len(self.test1), 0)
    
    def test_isub_method2(self):
        self.test1 -= self.test3
        self.assertEqual(len(self.test1), 1)
     
    def test_add_method(self):
        self.assertEqual(len(self.test1+self.test2), 2)
       
    def test_isadd_method(self):
        self.test1 += self.test2
        self.assertEqual(len(self.test1), 2)
    
    def test_and_method(self):
        self.assertEqual(len(self.test1&self.test2), 1)
    
    def test_and_method2(self):
        self.assertEqual(len(self.test1&self.test3), 0)
        self.assertEqual(len(self.test1), 1)
        
    def test_iand_method(self):
        self.test1 &= self.test2
        self.assertEqual(len(self.test1), 1)
    
    def test_iand_method2(self):
        self.test1 &= self.test3
        self.assertEqual(len(self.test1), 0)    
     
    def test_isdisjoint_method(self):
        self.assertTrue(self.test1.isdisjoint(self.test3))
    
    def test_isdisjoint_method2(self):
        self.assertFalse(self.test1.isdisjoint(self.test2))
Ejemplo n.º 3
0
class Test_Multielement_MultiSet(unittest.TestCase):
    
    def setUp(self):
        self.test1 = MultiSet()
        self.test1.insert(1)
        self.test1.insert(1)
        self.test1.insert(1)
        self.test1.insert(2)
        self.test1.insert(3)
        self.test2 = MultiSet()
        self.test2.insert(1)
        self.test2.insert(3)
        self.test3 = MultiSet()
        self.test3.insert(1)
        self.test3.insert(2)
        self.test3.insert(3)
        self.test4 = MultiSet()
        test = None
        
    def tearDown(self):
        self.test1 = None
        self.test2 = None
        self.test3 = None
        self.test4 = None
        test = None
    
    def test_element(self):
        self.assertTrue(self.test1.__contains__(1))
        self.assertFalse(self.test1.__contains__(5))
        self.assertEqual(self.test1.count(1), 3)
        self.assertEqual(len(self.test1), 5)
        self.assertEqual(self.test1.__repr__(), "MultiSet([1, 1, 1, 2, 3])")
        self.test1.remove(5)
        self.assertEqual(len(self.test1), 5)
        self.test1.remove(1)
        self.test1.remove(3)
        self.assertEqual(len(self.test1), 3)
        self.test1.clear()
        self.assertEqual(len(self.test1), 0)
        self.assertEqual(self.test1.__repr__(), "MultiSet([])")
   
    def test_compare_method_emptyll(self):
        self.assertFalse(self.test1 == self.test2)
        self.assertFalse(self.test1 <= self.test2)
        self.assertTrue(self.test2 <= self.test1)
        self.assertFalse(self.test1 <= self.test3)
        
    def test_sub_method(self):
        self.assertEqual(len(self.test1 - self.test2), 3)
        self.assertEqual(len(self.test2 - self.test1), 0)
    
    def test_isub_method(self):
        self.test1 -= self.test2
        self.assertEqual(len(self.test1), 3)
    
    def test_isub_method2(self):
        self.test2 -= self.test1
        self.assertEqual(len(self.test2), 0)
     
    def test_add_method(self):
        test = self.test1 + self.test2
        self.assertEqual(len(test), 7)
       
    def test_isadd_method(self):
        self.test1 += self.test2
        self.assertEqual(len(self.test1), 7)
    
    def test_and_method(self):
        self.assertEqual(len(self.test1&self.test2), 2)
    
    def test_iand_method(self):
        self.test1 &= self.test2
        self.assertEqual(len(self.test1), 2)
    
    def test_iand__method2(self):
        self.test1 &= self.test4
        self.assertEqual(len(self.test1), 0)
        
    def test_isdisjoint_method2(self):
        self.assertFalse(self.test1.isdisjoint(self.test2))